Age | Commit message (Collapse) | Author | |
---|---|---|---|
2010-04-28 | ir_print_visitor: Remove unnecessary parenthesis around variable names. | Kenneth Graunke | |
2010-04-28 | Refactor ir_expression::get_num_operands. | Kenneth Graunke | |
A new static version takes an ir_expression_operation enum, and the original non-static version now uses it. This will make it easier to read operations (where the ir_expression doesn't yet exist). | |||
2010-04-28 | ir_print_visitor: print the type of expressions. | Kenneth Graunke | |
This can be useful for debugging - it allows us to see that the inferred type is what we think it should be. Furthermore, it will allow the IR reader to avoid complex, operator-specific type inference. | |||
2010-04-28 | ir_print_visitor: Remove unnecessary parenthesis around type names. | Kenneth Graunke | |
Parenthesis should only be present for compound types (i.e. arrays or structures). For atomic types, simply print the symbol. | |||
2010-04-28 | Print full type for ir_constant instead of base and component count. | Kenneth Graunke | |
vec4 and mat2x2 have the same base type and number of components; printing the full type allows us to distinguish the two. | |||
2010-04-26 | Implement gl_TextureMatrix built-in uniform | Ian Romanick | |
2010-04-26 | Make private glsl_type singletons public | Ian Romanick | |
2010-04-26 | Initial implementation of #line | Ian Romanick | |
Does not handle comments in #line or line continuation characters, but it should be good enough for now. | |||
2010-04-23 | builtin_functions: Clean up compiler warning about unused name, instructions. | Eric Anholt | |
2010-04-23 | De-obfuscate some of builtin_types.h. | Eric Anholt | |
2010-04-23 | ir_function_inlining: Implement inlining in many more cases. | Eric Anholt | |
We still don't inline for control flow in the inlined function, and we don't have any limits on what we will inline. | |||
2010-04-23 | Put static pointers to vec[234]_types along with the static float_type. | Eric Anholt | |
Otherwise you have to type a lot of get_instance. | |||
2010-04-23 | Replace builtin_types.h generation with the generated output. | Eric Anholt | |
The script to generate it was longer and more obfuscated than the output. | |||
2010-04-23 | Fix the swizzling of vector constructors from scalars. | Eric Anholt | |
A refactor turned 'i' into '1', meaning everything writemasked into the y component. | |||
2010-04-23 | ir_function_inlining: Avoid NULL dereference on assignment conditions. | Eric Anholt | |
2010-04-23 | Zero-out the entire parser state structure at initialization | Ian Romanick | |
Among other things, this ensures that all of the extension flags are initially disabled. This causes the following tests to pass: glslparsertest/glsl2/draw_buffers-02.frag | |||
2010-04-23 | Add missing 'else's to fix extension processing | Ian Romanick | |
The missing else-statements caused all of the extensions execpt GL_ARB_texture_rectangle to be unsupported. This causes the following tests to pass: glslparsertest/glsl2/draw_buffers-04.frag | |||
2010-04-22 | Fix illegal (var_ref (array_ref ...)) in matrix constructors. | Kenneth Graunke | |
2010-04-21 | Actually emit temp declaration in vector comparison builtins. | Kenneth Graunke | |
2010-04-21 | Fix ir_dead_code for function refactoring. | Kenneth Graunke | |
2010-04-21 | Emit body for constructors in the right place. | Kenneth Graunke | |
Previously, the body of some vector constructors were added to the wrong function signature, and the body of matrix constructors were just being dumped in the main instruction stream. | |||
2010-04-21 | Remove ir_label since it is no longer used. | Kenneth Graunke | |
2010-04-21 | Refactor IR function representation. | Kenneth Graunke | |
Now, ir_function is emitted as part of the IR instructions, rather than simply existing in the symbol table. Individual ir_function_signatures are not emitted themselves, but only as part of ir_function. | |||
2010-04-21 | Use ir_function_signature::function_name() rather than direct access. | Kenneth Graunke | |
2010-04-21 | Ensure that both parameter lists are the same length in function overloading. | Kenneth Graunke | |
Fixes new test function-05.glsl, where the second function has matching parameter types, but less of them. | |||
2010-04-21 | Add missing break statement | Ian Romanick | |
2010-04-19 | Remove dead code assignments and variable declarations. | Eric Anholt | |
This pass only works on assignments where the variable is never referenced. There is no code flow analysis, so it can't do a better job of avoiding redundant assignments. For now, the optimizer only does do_dead_code_unlinked(), so it won't trim the builtin variable list or initializers outside of the scope of functions. This is because we don't have the visibility into other functions that might get linked in in order to eliminate work on global variables. | |||
2010-04-19 | Mark some variables as having usage beyond the shader's scope. | Eric Anholt | |
This will be important to optimization passes. We don't want to dead-code eliminate writes to out varyings, or propagate uninitialized values of uniforms. | |||
2010-04-16 | While-loops also start a new scope. | Ian Romanick | |
2010-04-16 | Avoid generating ir_if for &&, || short-circuiting with constant LHS. | Eric Anholt | |
It was breaking constant expression detection for constant initializers, i.e. CorrectParse2.frag, CorrectParse2.vert. | |||
2010-04-16 | Add support for inlining calls done inside of expressions. | Eric Anholt | |
2010-04-16 | Make && and || only evaluate the RHS when the LHS requires it. | Eric Anholt | |
2010-04-14 | Add an ir_if simplification pass. | Eric Anholt | |
This is relatively simple at the moment, recognizing only constant values, and not (for example) values that are restricted to a range that make the branching constant. However, it does remove 59 lines from the printout of CorrectParse2.vert. | |||
2010-04-14 | Check that the return type of function definition matches its prototype. | Eric Anholt | |
Doesn't fix any testcases, but fixes a FINISHME. | |||
2010-04-14 | Check that function definition parameter qualifiers match proto qualifiers. | Eric Anholt | |
Fixes function9.frag. | |||
2010-04-14 | Return the rvalue of a variable decl to fix while (bool b = condition) {} | Eric Anholt | |
2010-04-14 | Fix the type of gl_FogFragCoord. | Eric Anholt | |
2010-04-08 | Add an implementation of gentype-only clamp(). | Eric Anholt | |
2010-04-08 | Add builtin implementations of vector comparison functions. | Eric Anholt | |
Fixes CorrectFunction1.vert, glsl-fs-notequal.frag. | |||
2010-04-08 | Add support for builtin gentype mix(gentype a, gentype b) | Eric Anholt | |
Fixes glsl-fs-mix.frag, glsl-fs-mix-constant.frag. | |||
2010-04-08 | Add buitlin functions for any(), all(), not(). | Eric Anholt | |
2010-04-08 | Add builtin normalize() functions. | Eric Anholt | |
Fixes CorrectSqizzle2.vert. | |||
2010-04-08 | Repeat the optimization passes until we stop making progress. | Eric Anholt | |
2010-04-08 | Add inlining support for array dereferences. | Eric Anholt | |
2010-04-08 | Inline functions consisting of a return of an expression. | Eric Anholt | |
2010-04-07 | Remove extraneous base-class constructor calls | Ian Romanick | |
2010-04-07 | Make function bodies rely on the parameter variable declarations. | Eric Anholt | |
Previously, generating inlined function bodies was going to be difficult, as there was no mapping between the body's declaration of variables where parameter values were supposed to live and the parameter variables that a caller would use in paramater setup. Presumably this also have been a problem for actual codegen. | |||
2010-04-07 | Make dot() take the right number of args. | Eric Anholt | |
2010-04-07 | Fix the returns of builtin functions to actually return. | Eric Anholt | |
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). |