summaryrefslogtreecommitdiffstats
path: root/ir_expression_flattening.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Include stdio.h and stdlib.h everywhere, and don't cook our own #define NULL.Eric Anholt2010-06-221-1/+0
|
* ir_expression_flattening: Handle flattening values out of swizzles, too.Eric Anholt2010-06-011-12/+30
| | | | Fixes an uninlined normalize() in CorrectSwizzle2.vert.
* ir_expression_flattening: Fix breakage from hierarchichal visitor.Eric Anholt2010-06-011-0/+30
| | | | | | | | | Similar to other situations where the visitor pattern doesn't fit, in this case we need the pointer to the base instruction in the instruction stream for where to insert any new instructions we generate (not the instruction in the tree we're looking at). By removing the code for setting the base_ir, flattened expressions would end up, for example, before the function definition where they had appeared.
* Reimplement ir_expression_flattening_visitor using ir_hierarchical_vistorIan Romanick2010-05-261-115/+19
|
* Refactor ir_dereference data fields to subclassesIan Romanick2010-05-261-3/+3
|
* Refactor ir_dereference support for ir_visitorIan Romanick2010-05-261-5/+17
| | | | | Move the accept method for visitors from ir_dereference to the derived classes.
* Begin refactoring ir_dereferenceIan Romanick2010-05-261-2/+2
| | | | | | | | | | | 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.
* Remove ir_label since it is no longer used.Kenneth Graunke2010-04-211-8/+0
|
* Add support for inlining calls done inside of expressions.Eric Anholt2010-04-161-0/+216