summaryrefslogtreecommitdiff
path: root/ir_copy_propagation.cpp
AgeCommit message (Collapse)Author
2010-06-23exec_node: Add new talloc-based new()Carl Worth
And fix all callers to use the tallbac-based new for exec_node construction. We make ready use of talloc_parent in order to get valid, (and appropriate) talloc owners for everything we construct without having to add new 'ctx' parameters up and down all the call trees. This closes the majority of the memory leaks in the glsl-orangebook-ch06-bump.frag test: total heap usage: 55,623 allocs, 42,672 frees (was 14,533 frees) Now 76.7% leak-free. Woo-hoo!
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-05-26Reimplement ir_copy_propagation_visitor using ir_hierarchical_vistorIan 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-14Use ir_rvalue::variable_referenced instead of open-coding itIan Romanick
2010-05-05Move optimization pass prototypes to a single header.Eric Anholt
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.