Age | Commit message (Collapse) | Author |
|
|
|
These variations are parameterized by the type of the nodes in the
list. This enables skipping the explicit usage of exec_node_data in
the loop body.
|
|
Validate desired test cases by ensuring the output of glcpp matches
the output of the gcc preprocessor, (ignoring any lines of the gcc
output beginning with '#').
Only one test case so far with a trivial #define.
|
|
By using the recently-imported hash_table implementation.
|
|
This compiles the debugging code for teh parser. It's not active
unless the yydebug variable is set to a non-zero value.
|
|
The preprocessor here is intended to become part of the glsl2 codebase
eventually anyway.
|
|
To ignore generated source files (and glcpp binary).
|
|
Most of the current problems were (mostly) harmless things like
missing declarations, but there was at least one real error, (reversed
argument order for yyerrror).
|
|
This allows the final program to be 100% "valgrind clean", (freeing
all memory that it allocates). This will make it much easier to ensure
that any allocation that parser actions perform are also cleaned up.
|
|
It doesn't really *do* anything yet---merlely parsing a stream of
whitespace-separated tokens, (and not interpreting them at all).
|
|
|
|
|
|
This has some ugly hackery to work-around C++ fail. I have
emperically determined that it works in all the cases that matter.
|
|
The statement making up a loop body, a then-statement, or an
else-statement are single nodes. If the statement is a block, the
single node will be an ast_compound_statement. There is no need to
loop at the top level when processing these statements.
|
|
|
|
Previously the list of function call parameters was stored as a
circular list in ast_expression::subexpressions[1]. They are now
stored as a regular list in ast_expression::expressions.
|
|
|
|
This cleans up a bunch of junk code in some of the GLSL parser tests,
and could potentially help real-world too (particularly after copy
propagation has happened).
|
|
Found this with the local dead code pass, which never saw variable
dereferences occurring.
|
|
|
|
This may trigger other optimization phases to make more progress themselves.
|
|
This improves the ACP to not get cleared when more complicated assignments
occur, cleaning up more redundant copies in programs.
|
|
This is pretty basic. Right now it only handles pure assignments --
same type on each side, no swizzling, and only within basic blocks.
|
|
Debugging this took forever as I only looked at constructors in ir.cpp
to find who wasn't setting up ->type. I dislike hiding code (as
opposed to prototypes and definitions) in C++ header files, but in
this case I have only myself to blame.
|
|
Mesa doesn't use pedantic ANSI C89, so I have no idea why we would.
|
|
Cleans up compile warning about unused state in _mesa_glsl_warning. We
would want infolog handling roughly like this anyway.
|
|
|
|
|
|
|
|
|
|
|
|
This caused a nasty bug where the function inliner would create new
variables for each of the formal parameters, but the body would still
reference the old copies.
This was highly visible since the dead code eliminator (rightly) removed
the new declarations, leading to printed IR that referenced non-existent
variable names.
|
|
|
|
|
|
Now that we can support different APIs at runtime, we need to check the
context for the API we're currently providing as well.
https://bugs.freedesktop.org/show_bug.cgi?id=28194
|
|
|
|
|
|
Signed-off-by: José Fonseca <jfonseca@vmware.com>
|
|
Based on Julien Pommier's SSE and SSE2 algorithms.
Signed-off-by: José Fonseca <jfonseca@vmware.com>
|
|
We should be able to do 16, but are limited by Mesa's static buffer
allocations.
|
|
If you used all 4 color targets we currently support, we would see 0
and end up just writing the first output. Give enough bits that we
can do the maximum of 16.
Fixes piglit fbo-drawbuffers-maxtargets.
|
|
|
|
|
|
|
|
|
|
|
|
They have been moved to git+ssh://git.freedesktop.org/git/mesa/demos.
|
|
When we don't get invalidate events, we need to invalidate a drawable
before using it for tfp to make sure we have uptodate buffers.
|
|
This introduces a new per-context vtable, which lets us clean up all the
#ifdef's a bit and move the DRI2 specific implementation into dri2_glx.c.
|
|
|