summaryrefslogtreecommitdiff
path: root/src/glsl/ir_function_inlining.cpp
AgeCommit message (Collapse)Author
2010-10-08glsl: Remove const decoration from inlined function parametersIan Romanick
The constness of the function parameter gets inlined with the rest of the function. However, there is also an assignment to the parameter. If this occurs inside a loop the loop analysis code will get confused by the assignment to a read-only variable. Fixes bugzilla #30552. NOTE: this is a candidate for the 7.9 branch.
2010-08-14Revert "glsl2: Use stdint.h instead of inttypes.h"José Fonseca
This reverts commit a77a6bc008b3146c56431fa520a00e1f8dfa3938.
2010-08-13glsl2: Use stdint.h instead of inttypes.hIan Romanick
2010-08-09glsl2: do not use __retval name; two underscores is reserved word according ↵Aras Pranckevicius
to GLSL spec (and Win7 ATI drivers do complain about that)
2010-08-06ir_function_inlining: Fix missing iter.next() in inlining sampler params.Aras Pranckevicius
Fixes glsl-fs-function-samplers.
2010-08-06glsl2: Fix inlining with sampler array or struct dereferences as arguments.Eric Anholt
Previously, we'd replace an argument of mysampler[2] with a plain reference to mysampler by using the cloning hash table. Instead, use a visitor to clone whatever complicated sampler dereference into the sampler parameter derefs in the inlined function body.
2010-08-04glsl2: Make the clone() method take a talloc context.Eric Anholt
In most cases, we needed to be reparenting the cloned IR to a different context (for example, to the linked shader instead of the unlinked shader), or optimization before the reparent would cause memory usage of the original object to grow and grow.
2010-08-02glsl2: Give the path within src/mesa/ for headers instead of relying on -I.Aras Pranckevicius
2010-07-29glsl2: Fix spelling of "sentinel."Eric Anholt
2010-07-29glsl2: Remove an inlined unvalued return statement.Eric Anholt
We already have asserts that it was the last call in the function, so it's safe to remove after it got cloned in. Fixes: glsl-fs-functions-4.
2010-07-22glsl2: When inlining, don't clone and assign sampler arguments.Eric Anholt
Instead, just use the incoming sampler param. Fixes many texture-using piglit tests since the linker rework.
2010-07-21glsl2: Replace insert_before/remove pairs with exec_node::replace_with.Kenneth Graunke
2010-07-20glsl2: Add and use new variable mode ir_var_temporaryIan Romanick
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'.
2010-07-20glsl2: Fix handling of out values in function inlining.Eric Anholt
The parameters[i] is our inlined variables representing the parameters, so they are always ir_var_auto. Walk the signature params in handling "out" values like we do for "in" values to find the mode. Fixes (with the previous 2 commits): glsl1-function call with in, out params glsl1-function call with inout params
2010-07-12glsl2: Check when inlining a bare function call that it actually is.Eric Anholt
It would be easy to miss an entry either of the two visitors involved that would result in trying to ir->remove() the call to remove it from the instruction stream when really it's part of an expression tree that wasn't flattened.
2010-07-06glsl2: Clone methods return the type of the thing being clonedIan Romanick
This is as opposed to returning the type of the base class of the hierarchy.
2010-07-06Add hash table helper functions for using pointers as hash keysIan Romanick
2010-06-24glsl2: Wrap includes of C interfaces with extern "C".Eric Anholt
2010-06-24glsl2: Move the compiler to the subdirectory it will live in in Mesa.Eric Anholt