[LLVMdev] [pocl-devel] [cfe-dev] SPIR provisional specification is now available in the Khronos website
james at jamesmolloy.co.uk
Sat Sep 29 05:30:19 PDT 2012
Yes, it would.
But I was concerned Micah was just going to write it off as an
implementation detail, so I felt that I should offer a "less correct but
less work" option for him to consider.
On 29 September 2012 03:16, Owen Anderson <resistor at mac.com> wrote:
> On Sep 28, 2012, at 9:45 AM, James Molloy <james at jamesmolloy.co.uk> wrote:
> You can easily simplify this problem with a restriction in SPIR: disallow
> ConstantExpr casts - no ptrtoint constant expression. Because
> GlobalVariables have pointer type, if you disallow converting their type to
> non-pointer type in a constantexpr, the number of constantexpr subclasses
> you have to deal with is drastically reduced (to essentially just BitCast
> and GEP).
> Wouldn't an easier solution just be not to represent them as constants in
> the first place? For instance, you could have a built-in function to get
> the address of local N, where N is taken as a parameter. You can call the
> builtins at the beginning of the kernel, and then proceed to use them as
> you wish without having to worry about reversing a constant folding later.
> Plus, if a given vendor's backend *wants* the address to get constant
> folded, it's easy to do replaceAllUsesWith of the call with a global, and
> run an appropriate constant folding pass.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev