[llvm] r197411 - One last cleanup of LLVM's DataLayout strings.

Rafael Espindola rafael.espindola at gmail.com
Mon Dec 16 11:31:14 PST 2013


Author: rafael
Date: Mon Dec 16 13:31:14 2013
New Revision: 197411

URL: http://llvm.org/viewvc/llvm-project?rev=197411&view=rev
Log:
One last cleanup of LLVM's DataLayout strings.

Produce them in the same order on every target. The order is that of
getStringRepresentation: e|E-i*-f*-v*-a*-s*-n*-S*.

Modified:
    llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
    llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp
    llvm/trunk/lib/Target/R600/AMDGPUTargetMachine.cpp
    llvm/trunk/lib/Target/X86/X86TargetMachine.cpp
    llvm/trunk/lib/Target/XCore/XCoreTargetMachine.cpp

Modified: llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp?rev=197411&r1=197410&r2=197411&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp Mon Dec 16 13:31:14 2013
@@ -71,6 +71,11 @@ static std::string computeDataLayout(ARM
   // Little endian. Pointers are 32 bits and aligned to 32 bits.
   std::string Ret = "e-p:32:32";
 
+  // On thumb, i16,i18 and i1 have natural aligment requirements, but we try to
+  // align to 32.
+  if (ST.isThumb())
+    Ret += "-i1:8:32-i8:8:32-i16:16:32";
+
   // We have 64 bits floats and integers. The APCS ABI requires them to be
   // aligned s them to 32 bits, others to 64 bits. We always try to align to
   // 64 bits.
@@ -79,15 +84,10 @@ static std::string computeDataLayout(ARM
   else
     Ret += "-i64:64";
 
-  // On thumb, i16,i18 and i1 have natural aligment requirements, but we try to
-  // align to 32.
-  if (ST.isThumb())
-    Ret += "-i16:16:32-i8:8:32-i1:8:32";
-
   // We have 128 and 64 bit vectors. The APCS ABI aligns them to 32 bits, others
   // to 64. We always ty to give them natural alignment.
   if (ST.isAPCS_ABI())
-    Ret += "-v128:32:128-v64:32:64";
+    Ret += "-v64:32:64-v128:32:128";
   else
     Ret += "-v128:64:128";
 

Modified: llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp?rev=197411&r1=197410&r2=197411&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp Mon Dec 16 13:31:14 2013
@@ -71,7 +71,7 @@ HexagonTargetMachine::HexagonTargetMachi
                                            CodeModel::Model CM,
                                            CodeGenOpt::Level OL)
   : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
-    DL("e-p:32:32-i64:64-i1:32-a:0-n32") ,
+    DL("e-p:32:32-i1:32-i64:64-a:0-n32") ,
     Subtarget(TT, CPU, FS), InstrInfo(Subtarget), TLInfo(*this),
     TSInfo(*this),
     FrameLowering(Subtarget),

Modified: llvm/trunk/lib/Target/R600/AMDGPUTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/R600/AMDGPUTargetMachine.cpp?rev=197411&r1=197410&r2=197411&view=diff
==============================================================================
--- llvm/trunk/lib/Target/R600/AMDGPUTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/R600/AMDGPUTargetMachine.cpp Mon Dec 16 13:31:14 2013
@@ -50,8 +50,7 @@ SchedCustomRegistry("r600", "Run R600's
                     createR600MachineScheduler);
 
 static std::string computeDataLayout(const AMDGPUSubtarget &ST) {
-  std::string Ret = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256"
-                    "-v256:256-v512:512-v1024:1024-v2048:2048-n32:64";
+  std::string Ret = "e";
 
   if (!ST.is64bit())
     Ret += "-p:32:32";
@@ -59,6 +58,9 @@ static std::string computeDataLayout(con
   if (ST.getGeneration() >= AMDGPUSubtarget::SOUTHERN_ISLANDS)
     Ret += "-p3:32:32";
 
+  Ret += "-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256"
+         "-v512:512-v1024:1024-v2048:2048-n32:64";
+
   return Ret;
 }
 

Modified: llvm/trunk/lib/Target/X86/X86TargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp?rev=197411&r1=197410&r2=197411&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86TargetMachine.cpp Mon Dec 16 13:31:14 2013
@@ -38,11 +38,6 @@ static std::string computeDataLayout(con
   if (ST.isTarget64BitILP32() || !ST.is64Bit())
     Ret += "-p:32:32";
 
-  // Objects on the stack ore aligned to 64 bits.
-  // FIXME: of any size?
-  if (ST.is64Bit())
-    Ret += "-s:64";
-
   // Some ABIs align 64 bit integers and doubles to 64 bits, others to 32.
   if (ST.is64Bit() || ST.isTargetCygMing() || ST.isTargetWindows())
     Ret += "-i64:64";
@@ -55,6 +50,10 @@ static std::string computeDataLayout(con
   else
     Ret += "-f80:32";
 
+  // Objects on the stack ore aligned to 64 bits.
+  if (ST.is64Bit())
+    Ret += "-s:64";
+
   // The registers can hold 8, 16, 32 or, in x86-64, 64 bits.
   if (ST.is64Bit())
     Ret += "-n8:16:32:64";

Modified: llvm/trunk/lib/Target/XCore/XCoreTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/XCoreTargetMachine.cpp?rev=197411&r1=197410&r2=197411&view=diff
==============================================================================
--- llvm/trunk/lib/Target/XCore/XCoreTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/XCore/XCoreTargetMachine.cpp Mon Dec 16 13:31:14 2013
@@ -27,7 +27,7 @@ XCoreTargetMachine::XCoreTargetMachine(c
                                        CodeGenOpt::Level OL)
   : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
     Subtarget(TT, CPU, FS),
-    DL("e-p:32:32-a:0:32-f64:32-i1:8:32-i8:8:32-i16:16:32-i64:32-n32"),
+    DL("e-p:32:32-i1:8:32-i8:8:32-i16:16:32-i64:32-f64:32-a:0:32-n32"),
     InstrInfo(),
     FrameLowering(Subtarget),
     TLInfo(*this),





More information about the llvm-commits mailing list