summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_reader.cpp
Commit message (Collapse)AuthorAgeFilesLines
* glsl2: Rework builtin function generation.Kenneth Graunke2010-08-131-8/+16
| | | | | | | | | | | | | | | | Each language version/extension and target now has a "profile" containing all of the available builtin function prototypes. These are written in GLSL, and come directly out of the GLSL spec (except for expanding genType). A new builtins/ir/ folder contains the hand-written IR for each builtin, regardless of what version includes it. Only those definitions that have prototypes in the profile will be included. The autogenerated IR for texture builtins is no longer written to disk, so there's no longer any confusion as to what's hand-written or generated. All scripts are now in python instead of perl.
* ir_reader: Don't mark functions as defined if their body is empty.Kenneth Graunke2010-08-131-1/+1
|
* glsl2: Make ir_assignment derive from ir_instruction, not ir_rvalue.Kenneth Graunke2010-07-221-2/+2
| | | | | | Assignments can only exist at the top level instruction stream; the residual value is handled by assigning the value to a temporary and returning an ir_dereference_variable of that temporary.
* ir_reader: Add support for reading constant arrays.Kenneth Graunke2010-07-211-2/+27
|
* glsl2: glsl_type has its own talloc context, don't pass one inIan Romanick2010-07-201-1/+1
|
* glsl2: Add and use new variable mode ir_var_temporaryIan Romanick2010-07-201-1/+2
| | | | | | | | | | | | | | | | | This is quite a large patch because breaking it into smaller pieces would result in the tree being intermitently broken. The big changes are: * Add the ir_var_temporary variable mode * Change the ir_variable constructor to take the mode as a parameter and correctly specify the mode for all ir_varables. * Change the linker to not cross validate ir_var_temporary variables. * Change the linker to pull all ir_var_temporary variables from global scope into 'main'.
* glsl2: Remove the const disease from function signature's callee.Eric Anholt2010-07-181-1/+1
|
* linker: Implement first bits of intrastage linkingIan Romanick2010-07-121-0/+1
| | | | | | | This currently involves an ugly hack so that every link doesn't result in all the built-in functions showing up as multiply defined. As soon as the built-in functions are stored in a separate compilation unit, ir_function_signature::is_built_in can be removed.
* ir_reader: Don't emit ir_function multiple times.Kenneth Graunke2010-07-071-8/+8
|
* glsl2: Fix for dead strings being stored in the symbol table.Kenneth Graunke2010-07-021-2/+2
|
* glsl2: Use _mesa_glsl_parse_state as the talloc parent, not glsl_shader.Kenneth Graunke2010-06-301-15/+15
| | | | | | | | | | | | | _mesa_glsl_parse_state should be the parent for all temporary allocation done while compiling a shader. glsl_shader should only be used as the parent for the shader's final IR---the _result_ of compilation. Since many IR instructions may be added or discarded during optimization passes, IR should not ever be allocated to glsl_shader directly. Done via sed -i s/talloc_parent(state)/state/g and s/talloc_parent(st)/st/g. This also removes a ton of talloc_parent calls, which may help performance.
* ir_reader: Free memory for S-Expressions earlier.Kenneth Graunke2010-06-251-2/+2
| | | | | | There's no point in keeping it around once we've read the IR. Also, remove an unnecessary talloc_parent call.
* glsl2: Move the compiler to the subdirectory it will live in in Mesa.Eric Anholt2010-06-241-0/+1053