Age | Commit message (Collapse) | Author |
|
This was affecting the build, but the files don't actually exist.
|
|
This removes a bunch of gratuitous moving around of constant values
from constructors. Makes a shader ir I was looking at for structure
handling almost readable.
|
|
|
|
This should remove the burden of handling constant vector indexing
well from backend codegen, and could help with swizzle optimizations.
|
|
|
|
This type of visitor should eventually replace all or almost all
current uses of ir_visitor.
|
|
make will now regenerate builtin_function.cpp whenever you
change/add/remove files in the builtins/* folders.
|
|
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).
|
|
This is pretty basic. Right now it only handles pure assignments --
same type on each side, no swizzling, and only within basic blocks.
|
|
|
|
|
|
We still don't inline for control flow in the inlined function, and we
don't have any limits on what we will inline.
|
|
The script to generate it was longer and more obfuscated than the output.
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
Currently only works for constants. The rest will be added later.
|
|
|
|
Otherwise, having cleaned glsl_parser.h, we'd never regenerate it because
glsl_parser.cpp was already right where it needed to be.
|
|
|
|
|
|
|
|
|
|
The code is still really rough and *REALLY* incomplete. This at least
passes the first few trivially simple test cases.
|
|
|
|
The ir_visitor class is the abstract base class for all visitors.
ir_print_visitor contains the beginnings of a concrete visitor class
that will print out an IR sequence in a Lisp / Scheme-like syntax.
|
|
Among other benefits, this cleans up a the hackery invovled in
initializing the union field in builtin_types.h.
|
|
|
|
|