summaryrefslogtreecommitdiff
path: root/ir.h
AgeCommit message (Collapse)Author
2010-06-24Merge branch 'mesa'Eric Anholt
This brings in the ir_to_mesa.cpp code I've been developing to codegen to the Mesa IR. It does not actually generate a complete Mesa fragment/vertex program yet.
2010-06-24Make loop jump mode public so I can switch on it.Eric Anholt
2010-06-24ir_to_mesa: Add (almost) the rest of the builtin varyings.Eric Anholt
2010-06-23Close memory leak in ir_call::get_error_instruction.Carl Worth
By propagating a 'ctx' parameter through these calls. This fix happens to have no impact on glsl-orangebook-ch06-bump.frag, (since it doesn't trigger any errors).
2010-06-23glsl_symbol_table: Add new talloc-based new()Carl Worth
We take advantage of overloading of the new operator (with an additional parameter!) to make this look as "C++ like" as possible. This closes 507 memory leaks when compiling glsl-orangebook-ch06-bump.frag when measured with: valgrind ./glsl glsl-orangebook-ch06-bump.frag as seen here: total heap usage: 55,623 allocs, 14,389 frees (was 13,882 frees before)
2010-06-23Fix typos of "variable" as "varaible"Carl Worth
One of these was just in a comment. But ther other was in an enum tag, (which is apparently not being used anywhere yet).
2010-06-23Add a virtual clone() method to ir_instruction.Eric Anholt
This will be used by function inlining, the linker, and avoiding double usage of the LHS deref chains in ++, *=, and similar operations.
2010-06-23ir_variable: Add query to get number of slots used by a variableIan Romanick
2010-06-23ir_variable: Track the location of uniforms, varings, attributes, etc.Ian Romanick
2010-06-23ir_variable: Add method to get string representing interpolation qualifierIan Romanick
2010-06-23ir_constant: Add method to determine if two constants have the same valueIan Romanick
2010-06-22ir_validate: New pass for checking our invariants.Eric Anholt
2010-06-22ir: Give ir_instruction a print visitor helper.Eric Anholt
This avoids spamming each file with includes of ir_print_visitor.h because someone was doing debugging at some point, and is less typing when doing debugging.
2010-06-22Include stdio.h and stdlib.h everywhere, and don't cook our own #define NULL.Eric Anholt
2010-06-11ir_constant: Eliminate 'void *' constructorIan Romanick
All of the places that had been using the (glsl_type *, void *) constructor were actually passing an ir_constant_data for the 'void *'. The code can be greatly simplified by replacing this constructor with a (glsl_type *, ir_constant_data *) constructor. This should also help prevent one class of invalid uses of the old constructor.
2010-06-11Matrix and vector constructors with a single constant scalar are constantIan Romanick
2010-06-11ir_constant: Add get_record_field queryIan Romanick
2010-06-11ir_constant: Support constant structures in cloneIan Romanick
2010-06-11ir_constant: Add storage for multiple constants for arrays and recordsIan Romanick
2010-06-11Construct an ir_constant from a list of ir_constant valuesIan Romanick
2010-06-11Add methods to ir_constant to get scalar components in a particular typeIan Romanick
2010-06-11Construct an ir_constant from a scalar component of another ir_constantIan Romanick
2010-06-09Implement dFdx, dFdy, and fwidth via new expression opcodes.Kenneth Graunke
2010-06-09ir_function_cloning_visitor: Add support for ir_texture.Kenneth Graunke
2010-06-09Set the type of ir_texture properly; infer it from the sampler type.Kenneth Graunke
2010-06-09Add stub visitor support for ir_texture.Kenneth Graunke
2010-06-09Add mappings between ir_texture_opcode and strings.Kenneth Graunke
2010-06-09Define IR instruction for texture look-upsIan Romanick
2010-06-02There is no class ir_label, so there's no need for ir_instruction::as_labelIan Romanick
2010-06-01ir_vec_index_to_swizzle: Pass to convert indexing of vectors to swizzles.Eric Anholt
This should remove the burden of handling constant vector indexing well from backend codegen, and could help with swizzle optimizations.
2010-05-26ir_dereference::mode is no longer used, kill with fireIan Romanick
2010-05-26Refactor whole-variable assigment checking into member functionIan Romanick
2010-05-26Refactor ir_dereference data fields to subclassesIan Romanick
2010-05-26Refactor ir_dereference support for ir_visitorIan Romanick
Move the accept method for visitors from ir_dereference to the derived classes.
2010-05-26Refactor ir_dereference support for ir_hierarchical_visitorIan Romanick
Move the accept method for hierarchical visitors from ir_dereference to the derived classes. This was mostly straight-forward, but I suspect that ir_dead_code_local may be broken now.
2010-05-26Begin refactoring ir_dereferenceIan Romanick
Create separate subclasses of ir_dereference for variable, array, and record dereferences. As a side effect, array and record dereferences no longer point to ir_variable objects directly. Instead they each point to an ir_dereference_variable object. This is the first of several steps in the refactoring process. The intention is that ir_dereference will eventually become an abstract base class.
2010-05-17Add ir_hierarchical_visitor base class and associated infrastructureIan Romanick
This type of visitor should eventually replace all or almost all current uses of ir_visitor.
2010-05-14Add ir_rvalue::variable_referencedIan Romanick
2010-05-14Implement "sin" and "cos" builtins via new expression operators.Kenneth Graunke
2010-05-14Implement "sign" builtin via a new expression operator.Kenneth Graunke
2010-05-04ir_copy_propagation: New pass to rewrite dereferences to avoid copies.Eric Anholt
This is pretty basic. Right now it only handles pure assignments -- same type on each side, no swizzling, and only within basic blocks.
2010-05-03ir_to_mesa.cpp: Fix missing types on some ir_swizzles.Eric Anholt
Debugging this took forever as I only looked at constructors in ir.cpp to find who wasn't setting up ->type. I dislike hiding code (as opposed to prototypes and definitions) in C++ header files, but in this case I have only myself to blame.
2010-04-28Add ir_dereference constructor for structure field dereferencesIan Romanick
2010-04-28Move array of operator strings out of ir_print_visitor.cpp.Kenneth Graunke
Also implement a reverse-lookup function for use in the IR reader.
2010-04-28Factor out parameter list replacement for later reuse.Kenneth Graunke
2010-04-28Factor out parameter list matching from ast_function::hir for later reuse.Kenneth Graunke
Unfortunately, we still have two kinds of matching - one, with implicit conversions (for use in calls) and another without them (for finding a prototype to overwrite when processing a function body). This commit does not attempt to coalesce the two.
2010-04-28Factor out qualifier checking code for later reuse.Kenneth Graunke
2010-04-28Refactor ir_expression::get_num_operands.Kenneth Graunke
A new static version takes an ir_expression_operation enum, and the original non-static version now uses it. This will make it easier to read operations (where the ir_expression doesn't yet exist).
2010-04-21Fix ir_dead_code for function refactoring.Kenneth Graunke
2010-04-21Remove ir_label since it is no longer used.Kenneth Graunke