Maybe it would be easier to provide a bitcode example of this problem.

After thinking about this more, I'm not sure if this is applicable to SPIR 
itself. For you to have a constant GEP expression, you have to know the pointer 
size in order to correctly generate the expression. Since the pointer size 
itself is not known, I don't yet see how you can generate a constant expression 
that is valid SPIR.

Micah

From: [email protected] [mailto:[email protected]] On Behalf Of James 
Molloy
Sent: Saturday, September 29, 2012 5:30 AM
To: Owen Anderson
Cc: Villmow, Micah; [email protected]; [email protected]; 
[email protected]
Subject: Re: [LLVMdev] [pocl-devel] [cfe-dev] SPIR provisional specification is 
now available in the Khronos website

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.

Cheers,

James
On 29 September 2012 03:16, Owen Anderson 
<[email protected]<mailto:[email protected]>> wrote:

On Sep 28, 2012, at 9:45 AM, James Molloy 
<[email protected]<mailto:[email protected]>> 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

------------------------------------------------------------------------------
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
pocl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pocl-devel

Reply via email to