Author: akhuang Date: Tue Sep 10 16:15:38 2019 New Revision: 371568 URL: http://llvm.org/viewvc/llvm-project?rev=371568&view=rev Log: Reland "Change the X86 datalayout to add three address spaces for 32 bit signed, 32 bit unsigned, and 64 bit pointers." This reverts 57076d3199fc2b0af4a3736b7749dd5462cacda5.
Original review at https://reviews.llvm.org/D64931. Review for added fix at https://reviews.llvm.org/D66843. Modified: cfe/trunk/lib/Basic/Targets/OSTargets.h cfe/trunk/lib/Basic/Targets/X86.h cfe/trunk/test/CodeGen/Inputs/thinlto-multi-module.ll cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict1.ll cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict2.ll cfe/trunk/test/CodeGen/iamcu-abi.c cfe/trunk/test/CodeGen/target-data.c cfe/trunk/test/CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll cfe/trunk/test/CodeGen/thinlto-distributed-backend-skip.ll cfe/trunk/test/CodeGen/thinlto-distributed-cfi-devirt.ll cfe/trunk/test/CodeGen/thinlto-distributed-cfi.ll cfe/trunk/test/CodeGen/thinlto-distributed.ll cfe/trunk/test/CodeGen/thinlto-multi-module.ll cfe/trunk/test/CodeGen/thinlto_backend.ll cfe/trunk/test/CodeGen/thinlto_backend_local_name_conflict.ll Modified: cfe/trunk/lib/Basic/Targets/OSTargets.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/OSTargets.h?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets/OSTargets.h (original) +++ cfe/trunk/lib/Basic/Targets/OSTargets.h Tue Sep 10 16:15:38 2019 @@ -775,9 +775,11 @@ public: if (Triple.getArch() == llvm::Triple::arm) { // Handled in ARM's setABI(). } else if (Triple.getArch() == llvm::Triple::x86) { - this->resetDataLayout("e-m:e-p:32:32-i64:64-n8:16:32-S128"); + this->resetDataLayout("e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-" + "i64:64-n8:16:32-S128"); } else if (Triple.getArch() == llvm::Triple::x86_64) { - this->resetDataLayout("e-m:e-p:32:32-i64:64-n8:16:32:64-S128"); + this->resetDataLayout("e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-" + "i64:64-n8:16:32:64-S128"); } else if (Triple.getArch() == llvm::Triple::mipsel) { // Handled on mips' setDataLayout. } else { Modified: cfe/trunk/lib/Basic/Targets/X86.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/X86.h?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets/X86.h (original) +++ cfe/trunk/lib/Basic/Targets/X86.h Tue Sep 10 16:15:38 2019 @@ -339,7 +339,8 @@ public: LongDoubleWidth = 96; LongDoubleAlign = 32; SuitableAlign = 128; - resetDataLayout("e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"); + resetDataLayout("e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-" + "f80:32-n8:16:32-S128"); SizeType = UnsignedInt; PtrDiffType = SignedInt; IntPtrType = SignedInt; @@ -439,7 +440,8 @@ public: UseSignedCharForObjCBool = false; SizeType = UnsignedLong; IntPtrType = SignedLong; - resetDataLayout("e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128"); + resetDataLayout("e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-" + "f80:128-n8:16:32-S128"); HasAlignMac68kSupport = true; } @@ -464,9 +466,10 @@ public: DoubleAlign = LongLongAlign = 64; bool IsWinCOFF = getTriple().isOSWindows() && getTriple().isOSBinFormatCOFF(); - resetDataLayout(IsWinCOFF - ? "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32" - : "e-m:e-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"); + resetDataLayout(IsWinCOFF ? "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:" + "64-i64:64-f80:32-n8:16:32-a:0:32-S32" + : "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:" + "64-i64:64-f80:32-n8:16:32-a:0:32-S32"); } }; @@ -514,7 +517,8 @@ public: : X86_32TargetInfo(Triple, Opts) { this->WCharType = TargetInfo::UnsignedShort; DoubleAlign = LongLongAlign = 64; - resetDataLayout("e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"); + resetDataLayout("e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:" + "32-n8:16:32-a:0:32-S32"); } void getTargetDefines(const LangOptions &Opts, @@ -551,7 +555,8 @@ public: : X86_32TargetInfo(Triple, Opts) { LongDoubleWidth = 64; LongDoubleFormat = &llvm::APFloat::IEEEdouble(); - resetDataLayout("e-m:e-p:32:32-i64:32-f64:32-f128:32-n8:16:32-a:0:32-S32"); + resetDataLayout("e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:32-f64:" + "32-f128:32-n8:16:32-a:0:32-S32"); WIntType = UnsignedInt; } @@ -610,10 +615,12 @@ public: RegParmMax = 6; // Pointers are 32-bit in x32. - 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"); + resetDataLayout(IsX32 ? "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-" + "i64:64-f80:128-n8:16:32:64-S128" + : IsWinCOFF ? "e-m:w-p270:32:32-p271:32:32-p272:64:" + "64-i64:64-f80:128-n8:16:32:64-S128" + : "e-m:e-p270:32:32-p271:32:32-p272:64:" + "64-i64:64-f80:128-n8:16:32:64-S128"); // Use fpret only for long double. RealTypeUsesObjCFPRet = (1 << TargetInfo::LongDouble); @@ -803,7 +810,8 @@ public: llvm::Triple T = llvm::Triple(Triple); if (T.isiOS()) UseSignedCharForObjCBool = false; - resetDataLayout("e-m:o-i64:64-f80:128-n8:16:32:64-S128"); + resetDataLayout("e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:" + "16:32:64-S128"); } bool handleTargetFeatures(std::vector<std::string> &Features, Modified: cfe/trunk/test/CodeGen/Inputs/thinlto-multi-module.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/Inputs/thinlto-multi-module.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/Inputs/thinlto-multi-module.ll (original) +++ cfe/trunk/test/CodeGen/Inputs/thinlto-multi-module.ll Tue Sep 10 16:15:38 2019 @@ -1,4 +1,4 @@ -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" define void @f2() { Modified: cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll (original) +++ cfe/trunk/test/CodeGen/Inputs/thinlto_backend.ll Tue Sep 10 16:15:38 2019 @@ -1,4 +1,4 @@ -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" define void @f2() { Modified: cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict1.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict1.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict1.ll (original) +++ cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict1.ll Tue Sep 10 16:15:38 2019 @@ -1,6 +1,6 @@ ; ModuleID = 'local_name_conflict_var.o' source_filename = "local_name_conflict_var.c" -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @baz = internal global i32 10, align 4 Modified: cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict2.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict2.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict2.ll (original) +++ cfe/trunk/test/CodeGen/Inputs/thinlto_backend_local_name_conflict2.ll Tue Sep 10 16:15:38 2019 @@ -1,6 +1,6 @@ ; ModuleID = 'local_name_conflict_var.o' source_filename = "local_name_conflict_var.c" -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @baz = internal global i32 10, align 4 Modified: cfe/trunk/test/CodeGen/iamcu-abi.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/iamcu-abi.c?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/iamcu-abi.c (original) +++ cfe/trunk/test/CodeGen/iamcu-abi.c Tue Sep 10 16:15:38 2019 @@ -1,9 +1,8 @@ // RUN: %clang_cc1 -triple i386-pc-elfiamcu -emit-llvm -o - %s | FileCheck %s -// CHECK: target datalayout = "e-m:e-p:32:32-i64:32-f64:32-f128:32-n8:16:32-a:0:32-S32" +// CHECK: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:32-f64:32-f128:32-n8:16:32-a:0:32-S32" // CHECK: target triple = "i386-pc-elfiamcu" - void food(double *d); void fooll(long long *ll); void fooull(unsigned long long *ull); Modified: cfe/trunk/test/CodeGen/target-data.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/target-data.c?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/target-data.c (original) +++ cfe/trunk/test/CodeGen/target-data.c Tue Sep 10 16:15:38 2019 @@ -1,22 +1,22 @@ // RUN: %clang_cc1 -triple i686-unknown-unknown -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=I686-UNKNOWN %s -// I686-UNKNOWN: target datalayout = "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128" +// I686-UNKNOWN: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128" // RUN: %clang_cc1 -triple i686-apple-darwin9 -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=I686-DARWIN %s -// I686-DARWIN: target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128" +// I686-DARWIN: target datalayout = "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:128-n8:16:32-S128" // RUN: %clang_cc1 -triple i686-unknown-win32 -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=I686-WIN32 %s -// I686-WIN32: target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32" +// I686-WIN32: target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:32-n8:16:32-a:0:32-S32" // RUN: %clang_cc1 -triple i686-unknown-cygwin -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=I686-CYGWIN %s -// I686-CYGWIN: target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32" +// I686-CYGWIN: target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:32-n8:16:32-a:0:32-S32" // RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=X86_64 %s -// X86_64: target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +// X86_64: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" // RUN: %clang_cc1 -triple xcore-unknown-unknown -emit-llvm -o - %s | \ // RUN: FileCheck --check-prefix=XCORE %s @@ -88,11 +88,11 @@ // RUN: %clang_cc1 -triple i686-nacl -o - -emit-llvm %s | \ // RUN: FileCheck %s -check-prefix=I686-NACL -// I686-NACL: target datalayout = "e-m:e-p:32:32-i64:64-n8:16:32-S128" +// I686-NACL: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-n8:16:32-S128" // RUN: %clang_cc1 -triple x86_64-nacl -o - -emit-llvm %s | \ // RUN: FileCheck %s -check-prefix=X86_64-NACL -// X86_64-NACL: target datalayout = "e-m:e-p:32:32-i64:64-n8:16:32:64-S128" +// X86_64-NACL: target datalayout = "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-n8:16:32:64-S128" // RUN: %clang_cc1 -triple arm-nacl -o - -emit-llvm %s | \ // RUN: FileCheck %s -check-prefix=ARM-NACL Modified: cfe/trunk/test/CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll (original) +++ cfe/trunk/test/CodeGen/thinlto-diagnostic-handler-remarks-with-hotness.ll Tue Sep 10 16:15:38 2019 @@ -32,7 +32,7 @@ ; CHECK: tinkywinky inlined into main with (cost=0, threshold=337) (hotness: 300) -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-scei-ps4" declare i32 @patatino() Modified: cfe/trunk/test/CodeGen/thinlto-distributed-backend-skip.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto-distributed-backend-skip.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto-distributed-backend-skip.ll (original) +++ cfe/trunk/test/CodeGen/thinlto-distributed-backend-skip.ll Tue Sep 10 16:15:38 2019 @@ -9,7 +9,7 @@ ; RUN: -fthinlto-index=%S/Inputs/thinlto-distributed-backend-skip.bc \ ; RUN: -emit-llvm -o - -x ir %t.o | FileCheck %s -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-grtev4-linux-gnu" ; CHECK: "empty" Modified: cfe/trunk/test/CodeGen/thinlto-distributed-cfi-devirt.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto-distributed-cfi-devirt.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto-distributed-cfi-devirt.ll (original) +++ cfe/trunk/test/CodeGen/thinlto-distributed-cfi-devirt.ll Tue Sep 10 16:15:38 2019 @@ -47,7 +47,7 @@ ; RUN: -emit-obj -fthinlto-index=%t.o.thinlto.bc -O2 \ ; RUN: -o %t.native.o -x ir %t.o -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-grtev4-linux-gnu" %struct.A = type { i32 (...)** } Modified: cfe/trunk/test/CodeGen/thinlto-distributed-cfi.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto-distributed-cfi.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto-distributed-cfi.ll (original) +++ cfe/trunk/test/CodeGen/thinlto-distributed-cfi.ll Tue Sep 10 16:15:38 2019 @@ -36,7 +36,7 @@ ; RUN: -emit-obj -fthinlto-index=%t.o.thinlto.bc \ ; RUN: -o %t.native.o -x ir %t.o -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-grtev4-linux-gnu" %struct.B = type { %struct.A } Modified: cfe/trunk/test/CodeGen/thinlto-distributed.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto-distributed.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto-distributed.ll (original) +++ cfe/trunk/test/CodeGen/thinlto-distributed.ll Tue Sep 10 16:15:38 2019 @@ -12,7 +12,7 @@ ; RUN: -emit-obj -fthinlto-index=%t.o.thinlto.bc \ ; RUN: -o %t.native.o -x ir %t.o -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-grtev4-linux-gnu" define i32 @main() { 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=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto-multi-module.ll (original) +++ cfe/trunk/test/CodeGen/thinlto-multi-module.ll Tue Sep 10 16:15:38 2019 @@ -11,7 +11,7 @@ ; CHECK-OBJ: T f1 ; CHECK-OBJ: U f2 -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-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=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto_backend.ll (original) +++ cfe/trunk/test/CodeGen/thinlto_backend.ll Tue Sep 10 16:15:38 2019 @@ -50,7 +50,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-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-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_local_name_conflict.ll URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/thinlto_backend_local_name_conflict.ll?rev=371568&r1=371567&r2=371568&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/thinlto_backend_local_name_conflict.ll (original) +++ cfe/trunk/test/CodeGen/thinlto_backend_local_name_conflict.ll Tue Sep 10 16:15:38 2019 @@ -21,7 +21,7 @@ ; ModuleID = 'local_name_conflict_var_main.o' source_filename = "local_name_conflict_var_main.c" -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: noinline nounwind uwtable _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits