Eric Anholt
43b5b03d67
glsl2: Actually add the declaration of _post_incdec_temp.
2010-07-07 14:06:26 -07:00
Ian Romanick
e78e0fa42b
glsl2: Put the initializer in the instruction stream after the declaration
2010-07-07 12:41:26 -07:00
Ian Romanick
2e85f993d8
Revert "glsl2: Put the declaration in the instruction stream before its initializer."
...
This change causes segfaults in other tests. A fix for both sets of
segfaults is coming.
This reverts commit d4d630b72c .
2010-07-07 12:41:26 -07:00
Eric Anholt
d4d630b72c
glsl2: Put the declaration in the instruction stream before its initializer.
...
This fixes a regression in the generated code from when I did the
ir_validate.cpp-driven rework of assignments.
2010-07-06 18:49:24 -07:00
Ian Romanick
ca088cc277
glsl2: Clone methods return the type of the thing being cloned
...
This is as opposed to returning the type of the base class of the hierarchy.
2010-07-06 17:44:37 -07:00
Ian Romanick
6f0823da09
glsl2: Support AST-to-IR translation of invariant keyword
2010-07-01 20:39:08 -07:00
Ian Romanick
12873fa4e3
glsl2: Don't bounds check unsize array redeclarations
...
This along with several previous commits fix test CorrectUnsizedArray.frag.
2010-07-01 14:10:19 -07:00
Ian Romanick
127308b4be
glsl2: Add gl_MaxTextureCoords
2010-07-01 13:30:50 -07:00
Ian Romanick
cd00d5b88c
glsl2: Default delcaration of gl_TexCoord is unsized
2010-07-01 13:17:54 -07:00
Ian Romanick
5466b63968
glsl2: Change order of semaintic checks on variable declarations
...
This will make it easier to support more (valid) kinds of redeclarations.
2010-07-01 12:56:49 -07:00
Kenneth Graunke
77049a702a
glsl2: Implement AST->HIR support for the "discard" instruction.
2010-06-30 14:54:58 -07:00
Kenneth Graunke
c7f4ff193a
glsl2: Fix storing of dead memory in the symbol table.
...
decl->identifier is part of the AST, so it doesn't live very long.
Instead, add var->name which is owned by var.
2010-06-30 13:52:24 -07:00
Kenneth Graunke
953ff1283d
glsl2: Use _mesa_glsl_parse_state as the talloc parent, not glsl_shader.
...
_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.
2010-06-30 13:52:24 -07:00
Kenneth Graunke
506199b852
glsl2: Keep the same number of components in implicit conversions.
...
Fixes piglit test glsl-implicit-conversion-01.
2010-06-29 16:31:52 -07:00
Ian Romanick
49e3577b91
glsl_type: Add get_record_instance method
2010-06-29 11:15:39 -07:00
Ian Romanick
12681610f5
glsl_type: Remove vector and matrix constructor generators
...
All scalar, vector, and matrix constructors are generated in-line
during AST-to-HIR translation. There is no longer any need to
generate function versions of the constructors.
2010-06-29 11:15:26 -07:00
Kenneth Graunke
6de8256505
glsl2: Check for non-void functions that don't have a return statement.
...
This doesn't do any control flow analysis to ensure that the return
statements are actually reached.
Fixes piglit tests function5.frag and function-07.vert.
2010-06-29 11:12:54 -07:00
Kenneth Graunke
ac04c257e3
glsl2: Reject return types with qualifiers.
...
Fixes piglit test return-qualifier.frag.
2010-06-29 11:12:54 -07:00
Kenneth Graunke
18707eba1c
glsl2: Check that returned expressions match the function return type.
...
From my reading of the specification, implicit conversions are not
allowed. ATI seems to agree, though nVidia allows it without warning.
2010-06-29 11:12:53 -07:00
Eric Anholt
2928588267
glsl2: Move the compiler to the subdirectory it will live in in Mesa.
2010-06-24 15:36:00 -07:00