summaryrefslogtreecommitdiff
path: root/ir_constant_expression.cpp
AgeCommit message (Collapse)Author
2010-06-24Move the talloc_parent lookup down in a few hot paths.Eric Anholt
talloc_parent is still 80% of our runtime, but likely talloc_parent lookups will be reduced as we improve the handling of memory ownership.
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-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-22Include stdio.h and stdlib.h everywhere, and don't cook our own #define NULL.Eric Anholt
2010-06-11ir_constant_visitor: Type of constant result is same as original expressionIan Romanick
The type of the resulting constant must be the same as the type of the original expression. The changes to the code require that the case where an unhandled expression is received, and there really shouldn't be any of these, must be an exit point.
2010-06-11ir_constant_visitor: Types of ir_binop_{equal,nequal} must matchIan Romanick
The types must match exactly, so there is no reason to check the types here.
2010-06-11ir_constant_visitor: Use 'union ir_constant_data' in expression handlerIan Romanick
2010-06-11ir_constant_visitor: Use 'union ir_constant_data' instead of open-coded versionIan Romanick
2010-06-11ir_constant_visitor: Handle bool-to-int and int-to-boolIan Romanick
2010-06-11ir_constant_visitor: Handle constant swizzlesIan Romanick
2010-06-11ir_constant_visitor: Handle array access of constant vectors and matricesIan Romanick
2010-06-11ir_constant_visitor: Handle dereferences of constant recordsIan Romanick
2010-06-11ir_constant_visitor: Use clone to create a constant from a variable referenceIan Romanick
2010-06-11Add float/bool conversion to ir_constant_expression.cpp.Ian Romanick
2010-06-09ir_constant_visitor: Add support for dFdx and dFdy operations.Kenneth Graunke
If the argument is a constant expression...it's not changing per pixel, so the result is simply 0.
2010-06-09Add stub visitor support for ir_texture.Kenneth Graunke
2010-06-01ir_constant_expression: Handle several floating point unops.Eric Anholt
Cleans up a bunch of pointless operations in a GStreamer fragment shader.
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-04-21Remove ir_label since it is no longer used.Kenneth Graunke
2010-04-07Add support for bool to ir_equal and ir_nequal constant handlingIan Romanick
2010-04-07Add ir_loop_jump to represent 'break' and 'continue' in loopsIan Romanick
2010-04-07Add ir_loop to represent loopsIan Romanick
This touches a lot of files because everything derived from ir_visitor has to be updated. This is the primary disadvantage of the visitor pattern.
2010-04-06Add float/int conversion to ir_constant_expression.cpp.Eric Anholt
Gives CorrectParse2.frag one more constant folding.
2010-04-06Handle constant expressions using derefs of const values.Eric Anholt
Fixes CorrectParse1.frag and makes for a ton of folding in CorrectParse2.frag.
2010-04-06Add support for =, != to ir_constant_expresion.cppEric Anholt
This results in constant folding of one more expression in CorrectParse2.frag.
2010-04-06Add ir_constant_expression.cpp support for <, >, <=, >=.Eric Anholt
This results in folding one more constant expression in CorrectParse2.frag.
2010-04-02Add some more operations to ir_constant_expression.cpp.Eric Anholt
2010-04-02Make ir_constant_expression.cpp support multi-component types.Eric Anholt
2010-04-02Simplify ir_constant_expression.cpp by factoring operand computation out.Eric Anholt
2010-04-02Handle logic not in constant expression evaluation.Eric Anholt
2010-04-02Start trying to fill in a few bits of ir_constant_expression.cppEric Anholt
This makes a little progress on CorrectParse2.frag.
2010-03-30Initial bits of constant expression evaluatorIan Romanick
Currently only works for constants. The rest will be added later.