- 15 Jan, 2015 40 commits
-
-
Jason Ekstrand authored
Previously, the casting operations were macros. While this is usually fine, the casting macro used the input parameter twice leading to strange behavior when you passed the result of another function into it. Since we know the source and destination types explicitly, we don't loose anything by making it a function. Also, this gives us a nice little macro for creating cast function that will hopefully prevent mistyping. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
We used to have the number of components built into the intrinsic. This meant that all of our load/store intrinsics had vec1, vec2, vec3, and vec4 variants. This lead to piles of switch statements to generate the correct intrinsic names, and introspection to figure out the number of components. We can make things much nicer by allowing "vectorized" intrinsics. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
This pass analizes all of the load/store operations and, when a variable is never aliased (potentially used by an indirect operation), it is lowered directly to an SSA value. This pass translates to SSA directly and does not require any fixup by the original to-SSA pass. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Instead, we give SSA definitions a temporary index of 0xFFFFFFFF if the instruction does not have a block and a proper index when it actually gets added to the list. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Previously, we used a string name. It was nice for translating out of GLSL IR (which also does that) but cumbersome the rest of the time. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
This pass is still fairly basic. It only handles ALU operations, constant loads, and phi nodes. No texture ops or intrinsics yet. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Since we don't actually have an "if" instruction, this is a very common pattern when iterating over instructions. This adds a helper function for it to make things a little less painful. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
This pass is kind of stupidly implemented but it should be enough to get us up and going. We probably want something better that doesn't generate all of the redundant moves eventually. However, the i965 backend should be able to handle the movs, so I'm not too worried about it in the short term.
-
Jason Ekstrand authored
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Connor Abbott authored
v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes
-
Connor Abbott authored
-
Connor Abbott authored
v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes
-
Connor Abbott authored
-
Connor Abbott authored
After linking and inlining, this allows us to convert these registers into SSA values and optimise more code.
-
Connor Abbott authored
v2: Jason Ekstrand <jason.ekstrand@intel.com> whitespace fixes
-
Connor Abbott authored
v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes
-
Connor Abbott authored
-
Connor Abbott authored
After we lower variables, we want to delete them in order to free up some memory. v2: Jason Ekstrand <jason.ekstrand@intel.com>: whitespace fixes
-
Connor Abbott authored
-