Author: echristo
Date: Thu Feb  9 22:35:21 2017
New Revision: 294708

URL: http://llvm.org/viewvc/llvm-project?rev=294708&view=rev
Log:
Temporarily revert "For X86-64 linux and PPC64 linux align int128 to 16 bytes."
until we can get better TargetMachine::isCompatibleDataLayout to compare - 
otherwise
we can't code generate existing bitcode without a string equality data layout.

This reverts commit r294703.

Modified:
    cfe/trunk/lib/Basic/Targets.cpp
    cfe/trunk/test/CodeGen/target-data.c
    cfe/trunk/test/CodeGen/thinlto-multi-module.ll
    cfe/trunk/test/CodeGen/thinlto_backend.ll

Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=294708&r1=294707&r2=294708&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Thu Feb  9 22:35:21 2017
@@ -1673,35 +1673,15 @@ public:
     IntMaxType = SignedLong;
     Int64Type = SignedLong;
 
-    std::string Layout;
-
-    // PPC64LE is little endian.
-    if (Triple.getArch() == llvm::Triple::ppc64le)
-      Layout = "e";
-    else
-      Layout = "E";
-
-    Layout += llvm::DataLayout::getManglingComponent(Triple);
-
-    Layout += "-i64:64";
-
-    // 128 bit integers are always aligned to 128 bits, but only 64-bit 
matters,
-    // because __int128 is only supoprted on 64-bit targets.
-    // FIXME: See if this is valid on other 64-bit ppc oses.
-    if (Triple.isOSLinux())
-      Layout += "-i128:128";
-
-    Layout += "-n32:64";
-
-    resetDataLayout(Layout);
-
-    // PPC64LE started a new ABI.
-    if (Triple.getArch() == llvm::Triple::ppc64le)
+    if ((Triple.getArch() == llvm::Triple::ppc64le)) {
+      resetDataLayout("e-m:e-i64:64-n32:64");
       ABI = "elfv2";
-    else
+    } else {
+      resetDataLayout("E-m:e-i64:64-n32:64");
       ABI = "elfv1";
+    }
 
-    switch (Triple.getOS()) {
+    switch (getTriple().getOS()) {
     case llvm::Triple::FreeBSD:
       LongDoubleWidth = LongDoubleAlign = 64;
       LongDoubleFormat = &llvm::APFloat::IEEEdouble();
@@ -4601,21 +4581,11 @@ public:
     Int64Type   = IsX32 ? SignedLongLong   : SignedLong;
     RegParmMax = 6;
 
-    // Use 128-bit alignment for 128-bit integers in linux.
-    // FIXME: Figure out if we should change this for other oses.
     // Pointers are 32-bit in x32.
-    if (IsX32) {
-      if (Triple.isOSLinux())
-        resetDataLayout(
-            "e-m:e-p:32:32-i64:64-i128:128-f80:128-n8:16:32:64-S128");
-      else
-       resetDataLayout("e-m:e-p:32:32-i64:64-f80:128-n8:16:32:64-S128");
-    } else if (IsWinCOFF)
-      resetDataLayout("e-m:w-i64:64-f80:128-n8:16:32:64-S128");
-    else if (Triple.isOSLinux())
-      resetDataLayout("e-m:e-i64:64-i128:128-f80:128-n8:16:32:64-S128");
-    else
-      resetDataLayout("e-m:e-i64:64-f80:128-n8:16:32:64-S128");
+    resetDataLayout(IsX32
+                        ? "e-m:e-p:32:32-i64:64-f80:128-n8:16:32:64-S128"
+                        : IsWinCOFF ? "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
+                                    : "e-m:e-i64:64-f80:128-n8:16:32:64-S128");
 
     // Use fpret only for long double.
     RealTypeUsesObjCFPRet = (1 << TargetInfo::LongDouble);

Modified: cfe/trunk/test/CodeGen/target-data.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/target-data.c?rev=294708&r1=294707&r2=294708&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/target-data.c (original)
+++ cfe/trunk/test/CodeGen/target-data.c Thu Feb  9 22:35:21 2017
@@ -100,11 +100,11 @@
 
 // RUN: %clang_cc1 -triple powerpc64-linux -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=PPC64-LINUX
-// PPC64-LINUX: target datalayout = "E-m:e-i64:64-i128:128-n32:64"
+// PPC64-LINUX: target datalayout = "E-m:e-i64:64-n32:64"
 
 // RUN: %clang_cc1 -triple powerpc64le-linux -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=PPC64LE-LINUX
-// PPC64LE-LINUX: target datalayout = "e-m:e-i64:64-i128:128-n32:64"
+// PPC64LE-LINUX: target datalayout = "e-m:e-i64:64-n32:64"
 
 // RUN: %clang_cc1 -triple powerpc-darwin -o - -emit-llvm %s | \
 // RUN: FileCheck %s -check-prefix=PPC32-DARWIN

Modified: cfe/trunk/test/CodeGen/thinlto-multi-module.ll
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto-multi-module.ll?rev=294708&r1=294707&r2=294708&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/thinlto-multi-module.ll (original)
+++ cfe/trunk/test/CodeGen/thinlto-multi-module.ll Thu Feb  9 22:35:21 2017
@@ -11,7 +11,7 @@
 ; CHECK-OBJ: T f1
 ; CHECK-OBJ: U f2
 
-target datalayout = "e-m:e-i64:64-i128:128-f80:128-n8:16:32:64-S128"
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 
 declare void @f2()

Modified: cfe/trunk/test/CodeGen/thinlto_backend.ll
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto_backend.ll?rev=294708&r1=294707&r2=294708&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/thinlto_backend.ll (original)
+++ cfe/trunk/test/CodeGen/thinlto_backend.ll Thu Feb  9 22:35:21 2017
@@ -31,7 +31,7 @@
 ; RUN: %clang -target x86_64-unknown-linux-gnu -O2 -o %t3.o -x ir %t1.o -c 
-fthinlto-index=%t.thinlto.bc 2>&1 | FileCheck %s -check-prefix=CHECK-ERROR2
 ; CHECK-ERROR2: Error loading imported file '{{.*}}': Could not find module 
summary
 
-target datalayout = "e-m:e-i64:64-i128:128-f80:128-n8:16:32:64-S128"
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
 
 declare void @f2()


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to