summaryrefslogtreecommitdiff
path: root/ir.h
AgeCommit message (Collapse)Author
2010-04-01Track max accessed array element, reject additional out-of-bounds accessesIan Romanick
For unsized arrays, we can't flag out-of-bounds accesses until the array is redeclared with a size. Track the maximum accessed element and generate an error if the declaration specifies a size that would cause that access to be out-of-bounds. This causes the following tests to pass: glslparsertest/shaders/array10.frag
2010-03-31Add ir_variable::cloneIan Romanick
2010-03-31Add ir_function_signature::function_nameIan Romanick
2010-03-31Make ir_function::signatures privateIan Romanick
2010-03-31Add ir_function::iterator to iterate over function signaturesIan Romanick
2010-03-31Use ir_function::add_signature to create link between function and signatureIan Romanick
ir_function_signature now has a pointer back to the ir_function that owns it.
2010-03-30Initial bits of constant expression evaluatorIan Romanick
Currently only works for constants. The rest will be added later.
2010-03-29Implement ir_if (for if-statments) and conversion from ASTIan Romanick
The following tests now pass: glslparsertest/shaders/if1.frag glslparsertest/shaders/if2.frag The following tests that used to pass now fail. It appears that most of these fail because ast_nequal and ast_equal are not converted to HIR. shaders/glsl-unused-varying.frag shaders/glsl-fs-sqrt-branch.frag
2010-03-29Trivial code cleanup in ir_dereference::is_lvalueIan Romanick
2010-03-29Don't let swizzles with duplicated components be considered as lvalues.Eric Anholt
Fixes swizzle2.frag.
2010-03-29Implement exp2() and log2(), and make ir_unop_exp and ir_unop_log be base e.Eric Anholt
Making the base e functions IR operations is not a clear win. i965 doesn't support it, it doesn't look like r600 supports it, but r500 does. It should be easily supportable as a lowering pass, though.
2010-03-29Add sqrt() builtin as an IR operation.Eric Anholt
Following a discussion in #dri-devel, I think this makes more sense than implementing it as RSQ RCP CMP as Mesa did. The i965 has a hardware sqrt that should work, and AMD is suppposed to be able to implement it as RSQ RCP with an alternate floating point mode so that the 0.0 case is handled like we want.
2010-03-29Implement the first builtin function: exp().Eric Anholt
2010-03-26Make read-only variables not be considered lvalues.Eric Anholt
This should fix tests trying to assign to builtin "in" variables, and will also be relied on for post_inc/dec handling.
2010-03-26Add constructors for immediate hir constants.Eric Anholt
This will make ast_to_hir for inc/dec easier.
2010-03-26IR print visitor: Print out something for the operator.Eric Anholt
2010-03-26Add hack ir_call::callee_name to get the name of the called functionIan Romanick
2010-03-26Add ir_call::iterator to iterate over actual parametersIan Romanick
2010-03-26Add unary operator to convert unsigned integer to floatIan Romanick
2010-03-26Move swizzles out of ir_dereference and into their own class.Kenneth Graunke
Also turn generate_swizzle into a static "create" method of the new class; we'll want to use it for the IR reader as well. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-03-26Add new abstract ir_rvalue class; rework accordingly.Kenneth Graunke
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-03-26Replace "mode" type tag with virtual as_foo() downcasting functions.Kenneth Graunke
These should work well even in a non-flat IR hierarchy. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
2010-03-25Add dereference constructor for array element dereferencesIan Romanick
This should have gone in before the previous commit.
2010-03-25Widen num_components to handle vec4 correctly.Kenneth Graunke
2010-03-25Typo fixes: de/re/ference.Kenneth Graunke
2010-03-24Add method to set the swizzle of an ir_dereferenceIan Romanick
2010-03-23ir_function constructor now takes the function name as a parameterIan Romanick
2010-03-23Set the type of a function call to be the return type of the calleeIan Romanick
2010-03-23Set, and require, a return type for function signaturesIan Romanick
2010-03-19Implement IR return instructionsIan Romanick
2010-03-15Add multiple include protection to ir.hIan Romanick
2010-03-11Initial pass at resolving function callsIan Romanick
The code is still really rough and *REALLY* incomplete. This at least passes the first few trivially simple test cases.
2010-03-11Add ir_call call to represent function calls.Ian Romanick
2010-03-11Fix broken constructor of ir_instruction base classIan Romanick
Make the constructor inline-able, and don't try to initialize it as a simple_node. It hasn't been derived from simple_node in a long time.
2010-03-10Tell emacs that C++ .h files are C++Ian Romanick
2010-03-10IR variable: Initial work to support GLSL built-in variablesIan Romanick
2010-03-09IR visitor: Add initial version of ir_visitor classesIan Romanick
The ir_visitor class is the abstract base class for all visitors. ir_print_visitor contains the beginnings of a concrete visitor class that will print out an IR sequence in a Lisp / Scheme-like syntax.
2010-03-08Conver IR structures to use exec_list instead of simple_nodeIan Romanick
2010-02-22Initial commit. lolIan Romanick