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:[email protected]]
Sent: Wednesday, December 19, 2012 03:31
To: Benyei, Guy
Cc: [email protected]
Subject: Re: [cfe-commits] r170125 - /cfe/trunk/lib/Basic/Targets.cpp
On Thu, Dec 13, 2012 at 5:22 AM, Guy Benyei <[email protected]> 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.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits