[cfe-dev] [LLVMdev] [pocl-devel] SPIR provisional specification is now available in the Khronos website

James Molloy 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.
> --Owen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120929/3a48e815/attachment.html>

More information about the cfe-dev mailing list