Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-04-07 | Remove extraneous base-class constructor calls | Ian Romanick | |
2010-04-07 | Put function bodies under function signatures, instead of flat in the parent. | Eric Anholt | |
This will let us know the length of function bodies for the purpose of inlining (among other uses). | |||
2010-04-07 | Clarify the types of various exec_list in ir.h | Eric Anholt | |
2010-04-07 | Add tracking for extension based warnings | Ian Romanick | |
Using '#extension foo: warn' instructs the compiler to generate a warning when some feature of the extension 'foo' is used. This patch adds some infrastructure needed to support that for variables. Similar changes will be needed for types and built-in functions. | |||
2010-04-07 | Add dynamic cast for ir_loop | Ian Romanick | |
2010-04-07 | Add ir_loop_jump to represent 'break' and 'continue' in loops | Ian Romanick | |
2010-04-07 | Add ir_loop to represent loops | Ian 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-06 | Make constant folding descend into if statements. | Eric Anholt | |
2010-04-06 | Handle constant expressions using derefs of const values. | Eric Anholt | |
Fixes CorrectParse1.frag and makes for a ton of folding in CorrectParse2.frag. | |||
2010-04-02 | Track whether whole-arrays are assignable | Ian Romanick | |
In GLSL 1.10 this was not allowed, but in GLSL 1.20 and later it is. This causes the following tests to pass: glslparsertest/glsl2/array-09.vert glslparsertest/glsl2/array-13.vert | |||
2010-04-02 | Add bool/int conversion as IR operations. | Eric Anholt | |
Fixes constructor-09.glsl and CorrectParse2.frag. | |||
2010-04-02 | Add conversion of bool to float as an IR operation to match int to float. | Eric Anholt | |
2010-04-02 | Allow array dereferences to be considered as lvalues. | Eric Anholt | |
Fixes glsl-vs-arrays.vert and glsl-vs-mov-after-deref.vert. Regresses parser3.frag which was failing for the wrong reason. | |||
2010-04-02 | Simplify ir_constant_expression.cpp by factoring operand computation out. | Eric Anholt | |
2010-04-02 | Remove fake ir_binop_logic_not. I think you meant ir_unop_logic_not. | Eric Anholt | |
2010-04-01 | Track max accessed array element, reject additional out-of-bounds accesses | Ian 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-31 | Add ir_variable::clone | Ian Romanick | |
2010-03-31 | Add ir_function_signature::function_name | Ian Romanick | |
2010-03-31 | Make ir_function::signatures private | Ian Romanick | |
2010-03-31 | Add ir_function::iterator to iterate over function signatures | Ian Romanick | |
2010-03-31 | Use ir_function::add_signature to create link between function and signature | Ian Romanick | |
ir_function_signature now has a pointer back to the ir_function that owns it. | |||
2010-03-30 | Initial bits of constant expression evaluator | Ian Romanick | |
Currently only works for constants. The rest will be added later. | |||
2010-03-29 | Implement ir_if (for if-statments) and conversion from AST | Ian 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-29 | Trivial code cleanup in ir_dereference::is_lvalue | Ian Romanick | |
2010-03-29 | Don't let swizzles with duplicated components be considered as lvalues. | Eric Anholt | |
Fixes swizzle2.frag. | |||
2010-03-29 | Implement 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-29 | Add 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-29 | Implement the first builtin function: exp(). | Eric Anholt | |
2010-03-26 | Make 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-26 | Add constructors for immediate hir constants. | Eric Anholt | |
This will make ast_to_hir for inc/dec easier. | |||
2010-03-26 | IR print visitor: Print out something for the operator. | Eric Anholt | |
2010-03-26 | Add hack ir_call::callee_name to get the name of the called function | Ian Romanick | |
2010-03-26 | Add ir_call::iterator to iterate over actual parameters | Ian Romanick | |
2010-03-26 | Add unary operator to convert unsigned integer to float | Ian Romanick | |
2010-03-26 | Move 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-26 | Add new abstract ir_rvalue class; rework accordingly. | Kenneth Graunke | |
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> | |||
2010-03-26 | Replace "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-25 | Add dereference constructor for array element dereferences | Ian Romanick | |
This should have gone in before the previous commit. | |||
2010-03-25 | Widen num_components to handle vec4 correctly. | Kenneth Graunke | |
2010-03-25 | Typo fixes: de/re/ference. | Kenneth Graunke | |
2010-03-24 | Add method to set the swizzle of an ir_dereference | Ian Romanick | |
2010-03-23 | ir_function constructor now takes the function name as a parameter | Ian Romanick | |
2010-03-23 | Set the type of a function call to be the return type of the callee | Ian Romanick | |
2010-03-23 | Set, and require, a return type for function signatures | Ian Romanick | |
2010-03-19 | Implement IR return instructions | Ian Romanick | |
2010-03-15 | Add multiple include protection to ir.h | Ian Romanick | |
2010-03-11 | Initial pass at resolving function calls | Ian Romanick | |
The code is still really rough and *REALLY* incomplete. This at least passes the first few trivially simple test cases. | |||
2010-03-11 | Add ir_call call to represent function calls. | Ian Romanick | |
2010-03-11 | Fix broken constructor of ir_instruction base class | Ian 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-10 | Tell emacs that C++ .h files are C++ | Ian Romanick | |