[cfe-commits] r170125 - /cfe/trunk/lib/Basic/Targets.cpp

Benyei, Guy guy.benyei at intel.com
Thu Dec 20 01:06:54 PST 2012


Hi Eli,

>From the LLVM Language Reference Manual:

" When constructing the data layout for a given target, LLVM starts with a default set of specifications which are then (possibly) overridden by the specifications in the datalayout keyword. The default specifications are given in this list:

E - big endian..."

It seems to me, that the default big endian is taken even if I don't define a data layout, and the rest of the data is still relevant.
I'm not sure how to handle this, from the SPIR point of view it's possible to completely ignore the issue by declaring that the default endian in SPIR is neither little nor big, and this IR is still strong enough to work. Another solution would be to introduce a new notation for "unknown" endian.

Any other ideas on this issue?

Thanks
    Guy

-----Original Message-----
From: Eli Friedman [mailto:eli.friedman at gmail.com] 
Sent: Wednesday, December 19, 2012 03:31
To: Benyei, Guy
Cc: cfe-commits at cs.uiuc.edu
Subject: Re: [cfe-commits] r170125 - /cfe/trunk/lib/Basic/Targets.cpp

On Thu, Dec 13, 2012 at 5:22 AM, Guy Benyei <guy.benyei at intel.com> wrote:
> Author: gbenyei
> Date: Thu Dec 13 07:22:48 2012
> New Revision: 170125
>
> URL: http://llvm.org/viewvc/llvm-project?rev=170125&view=rev
> Log:
> Remove little endian specification from SPIR data layout - SPIR doesn't define endiannes in the data layout.
>
> Modified:
>     cfe/trunk/lib/Basic/Targets.cpp
>
> Modified: cfe/trunk/lib/Basic/Targets.cpp
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?re
> v=170125&r1=170124&r2=170125&view=diff
> ======================================================================
> ========
> --- cfe/trunk/lib/Basic/Targets.cpp (original)
> +++ cfe/trunk/lib/Basic/Targets.cpp Thu Dec 13 07:22:48 2012
> @@ -4486,7 +4486,7 @@
>        SizeType     = TargetInfo::UnsignedInt;
>        PtrDiffType = IntPtrType = TargetInfo::SignedInt;
>        DescriptionString
> -        = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"
> +        = "p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"
>            "f32:32:32-f64:64:64-v16:16:16-v24:32:32-v32:32:32-v48:64:64-"
>            "v64:64:64-v96:128:128-v128:128:128-v192:256:256-v256:256:256-"
>            "v512:512:512-v1024:1024:1024"; @@ -4500,7 +4500,7 @@
>        SizeType     = TargetInfo::UnsignedLong;
>        PtrDiffType = IntPtrType = TargetInfo::SignedLong;
>        DescriptionString
> -        = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"
> +        = "p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"
>            "f32:32:32-f64:64:64-v16:16:16-v24:32:32-v32:32:32-v48:64:64-"
>            "v64:64:64-v96:128:128-v128:128:128-v192:256:256-v256:256:256-"
>            "v512:512:512-v1024:1024:1024";

This change doesn't actually help; the DataLayout will just assume big-endian.  You probably shouldn't have a description string at all.

-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.





More information about the cfe-commits mailing list