- 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
Reviewed-by:
Chris Forbes <chrisf@ijw.co.nz>
-
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
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
This commit switches us over to the new variable lowering code which is capable of properly handling lowering indirects as we go. Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
With this commit, the GLSL IR -> NIR pass generates NIR in more-or-less SSA form. It's SSA in the sense that it doesn't have any registers, but it isn't really useful SSA because it still has a pile of load/store intrinsics that we will need to get rid of. 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
Reviewed-by:
Connor Abbott <cwabbott0@gmail.com>
-
Jason Ekstrand authored
This is killing piglit. I'll leave the logging local 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
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
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
Backends want to be able to do special things with constant values such as put them into immediates or make decisions based on whether or not a value is constant. Before, constants always got lowered to a load_const into a register and then a register use. Now we leave constants as SSA values so backends can special-case them if they want. Since handling constant SSA values is trivial, this shouldn't be a problem for backends. 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>
-