[cfe-commits] [Patch] SPIR32/SPIR64 targets in Clang
Tanya Lattner
lattner at apple.com
Tue Dec 11 13:20:21 PST 2012
Looks fine to me.
-Tanya
On Dec 11, 2012, at 6:49 AM, "Benyei, Guy" <guy.benyei at intel.com> wrote:
> Hi Eli,
> Thanks for the review.
>
> Attached a fixed patch, please review.
>
>> + virtual bool hasFeature(StringRef Feature) const {
>> + return Feature == "spir";
>> + }
>>
>> What's the point of this?
>
> This one is quite the same as in every virtual architecture, including PNaCl/le32. I guess it is a convinient way to find out if the current target implements this kind of abstraction.
>
> thanks
> Guy Benyei
>
>
> -----Original Message-----
> From: Eli Friedman [mailto:eli.friedman at gmail.com]
> Sent: Tuesday, December 11, 2012 01:18
> To: Benyei, Guy
> Cc: cfe-commits at cs.uiuc.edu
> Subject: Re: [cfe-commits] [Patch] SPIR32/SPIR64 targets in Clang
>
> On Sun, Dec 9, 2012 at 1:30 AM, Benyei, Guy <guy.benyei at intel.com> wrote:
>>
>> As I've got no response up until now, I'm re-sending this patch -
>> removed some target defines that probably should be defined in the
>> pre-processor initialization.
>>
>>
>>
>> I think this is a fairly simple patch.
>
> Sorry about the delay; I was out last week.
>
> + assert(getTriple().getOS() == llvm::Triple::UnknownOS &&
> + "SPIR target must use unknown OS");
> + assert(getTriple().getEnvironment() ==
> llvm::Triple::UnknownEnvironment &&
> + "SPIR target must use unknown environment type");
>
> Don't assert something we don't enforce. If you really want to enforce it, check before the "new SPIR32TargetInfo(T)".
>
> + virtual bool hasFeature(StringRef Feature) const {
> + return Feature == "spir";
> + }
>
> What's the point of this?
>
> + virtual const char *getVAListDeclaration() const {
> + return "";
> + }
>
> How did this sneak in?
>
> Index: test/CodeGenOpenCL/spir32_target.cl
> ===================================================================
> --- test/CodeGenOpenCL/spir32_target.cl (revision 0)
> +++ test/CodeGenOpenCL/spir32_target.cl (revision 0)
> @@ -0,0 +1,24 @@
> +// RUN: %clang_cc1 %s -triple "spir-unknown-unknown" -emit-llvm -o -
> | FileCheck %s
> +
> +// CHECK: target triple = "spir-unknown-unknown"
> +
> +typedef struct {
> + char c;
> + void *v;
> + void *v2;
> +} my_st;
> +
> +kernel void foo(global long *arg) {
> + arg[0] = sizeof(my_st);
> +//CHECK: store i64 12, i64 addrspace(1)*
>
> We generally prefer to write this sort of test using _Static_Assert or equivalent.
>
> -Eli
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
> <SPIRtarget3.patch>_______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list