summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-05-26Refactor ir_dereference data fields to subclassesIan Romanick
2010-05-26Replace open coded deref navigation with hierarchical visitorsIan 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-18Use ir_rvalue::variable_referenced instead of open coding itIan Romanick
2010-05-17ir_visit_tree is no longer used, remove ir_visit_tree.{cpp,h}Ian Romanick
2010-05-17Reimplement kill_for_derefs using ir_hierarchical_vistorIan Romanick
The output of all test cases was verified to be the same using diff.
2010-05-17Reimplement has_call_callback using ir_hierarchical_vistorIan Romanick
This has the added advantage that it will stop traversing the tree as soon as the first call is found. The output of all test cases was verified to be the same using diff.
2010-05-17Reimplement ir_if_simplicifation_visitor using ir_hierarchical_vistorIan Romanick
The output of all test cases was verified to be the same using diff.
2010-05-17Make visit_list_elements safe against node removalsIan Romanick
2010-05-17Reimplement ir_function_can_inline_visitor using ir_hierarchical_vistorIan Romanick
The output of all test cases was verified to be the same using diff.
2010-05-17Reimplement ir_dead_code_visitor using ir_hierarchical_vistorIan Romanick
The output of all test cases was verified to be the same using diff.
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-17Replace find_dead_code with visit_exec_listIan Romanick
find_dead_code appears to be an open-coded version of visit_exec_list that was implemented first.
2010-05-14Use ir_rvalue::variable_referenced instead of open-coding itIan Romanick
2010-05-14Add ir_rvalue::variable_referencedIan Romanick
2010-05-14Refresh autogenerated builtin_function.cpp.Kenneth Graunke
2010-05-14Implement "tan" builtin.Kenneth Graunke
2010-05-14Implement "sin" and "cos" builtins via new expression operators.Kenneth Graunke
2010-05-14Implement "cross" builtin.Kenneth Graunke
2010-05-14Implement "fract" builtin.Kenneth Graunke
2010-05-14Implement "sign" builtin via a new expression operator.Kenneth Graunke
2010-05-14Implement "smoothstep" builtin.Kenneth Graunke
2010-05-14Implement "step" builtin.Kenneth Graunke
2010-05-14Integrate generate_builtins.pl into the build process.Kenneth Graunke
make will now regenerate builtin_function.cpp whenever you change/add/remove files in the builtins/* folders.
2010-05-14Replace old builtin_function.cpp with new autogenerated one.Kenneth Graunke
2010-05-14Add a perl script to generate builtin_function.cpp.Kenneth Graunke
Usage: ./builtins/tools/generate_builtins.pl > builtin_function.cpp
2010-05-14Fix bogus expression typing in various builtins.Kenneth Graunke
2010-05-14Initial commit of IR for builtins.Kenneth Graunke
These were all generated by Eric's existing builtin_functions.cpp; I split the uvec* signatures out of 110 into the 130 folder.
2010-05-14ir_reader: Set function signatures as defined.Kenneth Graunke
2010-05-14FS gl_FragCoord and and gl_FrontFacing are FS ins, not outs.Eric Anholt
2010-05-14Fix function call parameter printer to omit extraneous leading commaIan Romanick
The output of all test cases was verified to be the same using diff.
2010-05-10Replace many uses of foreach_list with foreach_list_typedIan Romanick
2010-05-10exec_list: Add foreach_list_typed and foreach_list_typed_constIan Romanick
These variations are parameterized by the type of the nodes in the list. This enables skipping the explicit usage of exec_node_data in the loop body.
2010-05-10Convert ast_node use of simple_node to exec_list and exec_nodeIan Romanick
2010-05-10exec_list: Add simpler exec_list for-each macrosIan Romanick
2010-05-10exec_list: Add macros to get ptr to structure containing a nodeIan Romanick
This has some ugly hackery to work-around C++ fail. I have emperically determined that it works in all the cases that matter.
2010-05-10Loop bodies, then-statements, and else-statements are not listsIan Romanick
The statement making up a loop body, a then-statement, or an else-statement are single nodes. If the statement is a block, the single node will be an ast_compound_statement. There is no need to loop at the top level when processing these statements.
2010-05-10Remove unnecessary include of simple_list.hIan Romanick
2010-05-10Store AST function call parameters in expressionsIan Romanick
Previously the list of function call parameters was stored as a circular list in ast_expression::subexpressions[1]. They are now stored as a regular list in ast_expression::expressions.
2010-05-05Move optimization pass prototypes to a single header.Eric Anholt
2010-05-05ir_dead_code_local: Remove redundant assignments within basic blocks.Eric Anholt
This cleans up a bunch of junk code in some of the GLSL parser tests, and could potentially help real-world too (particularly after copy propagation has happened).
2010-05-05ir_visit_tree: Make sure we visit dereference targets, too.Eric Anholt
Found this with the local dead code pass, which never saw variable dereferences occurring.
2010-05-05ir_copy_propagation: Fix up the doxygen about the file.Eric Anholt
2010-05-05ir_copy_propagation: Return true if we optimized out any assignments.Eric Anholt
This may trigger other optimization phases to make more progress themselves.
2010-05-05ir_copy_propagation: Handle swizzles and array derefs on LHS of assign.Eric Anholt
This improves the ACP to not get cleared when more complicated assignments occur, cleaning up more redundant copies in programs.
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-05-03Remove the pedantic C junk.Eric Anholt
Mesa doesn't use pedantic ANSI C89, so I have no idea why we would.