[cfe-commits] [PATCH][llvm][clang] Use Triple::MinGW32 instead of Triple::MinGW64
NAKAMURA Takumi
geek4civic at gmail.com
Tue Feb 15 19:57:59 PST 2011
Hello.
I have reworked Triple patches.
- Use Triple::MinGW32. (I got rid of Triple::MinGW)
- *-mingw64 is no longer recognized. Use *-mingw32.
Please take a look into them, thank you.
* clang-0001-Triple-MinGW64-is-deprecated-and-removed.-We-can.patch.txt
* llvm-0001-Triple-MinGW64-is-deprecated-and-removed.-We-can.patch.txt
Reworked.
* clang-0002-lib-Frontend-InitHeaderSearch.cpp-Add-mingw-w64-.patch.txt
Almost same as last one.
...Takumi
-------------- next part --------------
From ae588cf518e2ffe66fac97d58ca2477e6de3e234 Mon Sep 17 00:00:00 2001
From: NAKAMURA Takumi <geek4civic at gmail.com>
Date: Wed, 16 Feb 2011 10:47:25 +0900
Subject: [PATCH 1/2] Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 instead.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.7.1.GIT"
This is a multi-part message in MIME format.
--------------1.7.1.GIT
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32.
---
lib/Basic/Targets.cpp | 2 +-
lib/CodeGen/TargetInfo.cpp | 2 +-
lib/Driver/Driver.cpp | 1 -
lib/Driver/Tools.cpp | 3 +--
lib/Frontend/InitHeaderSearch.cpp | 9 ---------
lib/Sema/TargetAttributesSema.cpp | 3 +--
6 files changed, 4 insertions(+), 16 deletions(-)
--------------1.7.1.GIT
Content-Type: text/x-patch; name="0001-Triple-MinGW64-is-deprecated-and-removed.-We-can.patch.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-Triple-MinGW64-is-deprecated-and-removed.-We-can.patch.txt"
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 2af28d6..35817a2 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -2691,7 +2691,7 @@ static TargetInfo *AllocateTarget(const std::string &T) {
return new FreeBSDTargetInfo<X86_64TargetInfo>(T);
case llvm::Triple::Solaris:
return new SolarisTargetInfo<X86_64TargetInfo>(T);
- case llvm::Triple::MinGW64:
+ case llvm::Triple::MinGW32:
return new MinGWX86_64TargetInfo(T);
case llvm::Triple::Win32: // This is what Triple.h supports now.
if (Triple.getEnvironment() == llvm::Triple::MachO)
diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp
index c12e540..e27292c 100644
--- a/lib/CodeGen/TargetInfo.cpp
+++ b/lib/CodeGen/TargetInfo.cpp
@@ -2829,7 +2829,7 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
case llvm::Triple::x86_64:
switch (Triple.getOS()) {
case llvm::Triple::Win32:
- case llvm::Triple::MinGW64:
+ case llvm::Triple::MinGW32:
case llvm::Triple::Cygwin:
return *(TheTargetCodeGenInfo = new WinX86_64TargetCodeGenInfo(Types));
default:
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index a4f6c3f..5a5986b 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -1349,7 +1349,6 @@ const HostInfo *Driver::GetHostInfo(const char *TripleStr) const {
case llvm::Triple::Win32:
return createWindowsHostInfo(*this, Triple);
case llvm::Triple::MinGW32:
- case llvm::Triple::MinGW64:
return createMinGWHostInfo(*this, Triple);
default:
return createUnknownHostInfo(*this, Triple);
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index c8a3ef7..176384a 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -1448,8 +1448,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
if (KernelOrKext ||
!Args.hasFlag(options::OPT_fuse_cxa_atexit, options::OPT_fno_use_cxa_atexit,
getToolChain().getTriple().getOS() != llvm::Triple::Cygwin &&
- getToolChain().getTriple().getOS() != llvm::Triple::MinGW32 &&
- getToolChain().getTriple().getOS() != llvm::Triple::MinGW64))
+ getToolChain().getTriple().getOS() != llvm::Triple::MinGW32))
CmdArgs.push_back("-fno-use-cxa-atexit");
// -fms-extensions=0 is default.
diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp
index 50b89aa..39f30e5 100644
--- a/lib/Frontend/InitHeaderSearch.cpp
+++ b/lib/Frontend/InitHeaderSearch.cpp
@@ -529,7 +529,6 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple,
case llvm::Triple::Cygwin:
AddPath("/usr/include/w32api", System, true, false, false);
break;
- case llvm::Triple::MinGW64:
case llvm::Triple::MinGW32:
AddPath("c:/mingw/include", System, true, false, false);
break;
@@ -566,14 +565,6 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple) {
// FIXME: Do we support g++-3.4.4?
AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "3.4.4");
break;
- case llvm::Triple::MinGW64:
- // Try gcc 4.5.0
- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw64", "4.5.0");
- // Try gcc 4.4.0
- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw64", "4.4.0");
- // Try gcc 4.3.0
- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw64", "4.3.0");
- // Fall through.
case llvm::Triple::MinGW32:
// Try gcc 4.5.0
AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.5.0");
diff --git a/lib/Sema/TargetAttributesSema.cpp b/lib/Sema/TargetAttributesSema.cpp
index bb61802..6d7f2e6 100644
--- a/lib/Sema/TargetAttributesSema.cpp
+++ b/lib/Sema/TargetAttributesSema.cpp
@@ -238,8 +238,7 @@ namespace {
const AttributeList &Attr, Sema &S) const {
const llvm::Triple &Triple(S.Context.Target.getTriple());
if (Triple.getOS() == llvm::Triple::Win32 ||
- Triple.getOS() == llvm::Triple::MinGW32 ||
- Triple.getOS() == llvm::Triple::MinGW64) {
+ Triple.getOS() == llvm::Triple::MinGW32) {
switch (Attr.getKind()) {
case AttributeList::AT_dllimport: HandleDLLImportAttr(D, Attr, S);
return true;
--------------1.7.1.GIT--
-------------- next part --------------
From 7b89bb61e24b3f2e51aa6d0be94938de8a5700d5 Mon Sep 17 00:00:00 2001
From: NAKAMURA Takumi <geek4civic at gmail.com>
Date: Wed, 16 Feb 2011 10:41:06 +0900
Subject: [PATCH] Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.7.1.GIT"
This is a multi-part message in MIME format.
--------------1.7.1.GIT
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way.
---
include/llvm/ADT/Triple.h | 3 +--
lib/Support/Triple.cpp | 3 ---
lib/Target/ARM/ARMTargetMachine.cpp | 1 -
lib/Target/MBlaze/MBlazeTargetMachine.cpp | 1 -
lib/Target/X86/X86AsmBackend.cpp | 2 +-
lib/Target/X86/X86Subtarget.h | 4 +---
lib/Target/X86/X86TargetMachine.cpp | 2 --
test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll | 2 +-
test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll | 2 +-
9 files changed, 5 insertions(+), 15 deletions(-)
--------------1.7.1.GIT
Content-Type: text/x-patch; name="0001-Triple-MinGW64-is-deprecated-and-removed.-We-can.patch.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-Triple-MinGW64-is-deprecated-and-removed.-We-can.patch.txt"
diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h
index 9e2eb86..e6dcc23 100644
--- a/include/llvm/ADT/Triple.h
+++ b/include/llvm/ADT/Triple.h
@@ -84,8 +84,7 @@ public:
FreeBSD,
Linux,
Lv2, // PS3
- MinGW32,
- MinGW64,
+ MinGW32, // i*86-pc-mingw32, *-w64-mingw32
NetBSD,
OpenBSD,
Psp,
diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp
index d4a7dec..36edf6e 100644
--- a/lib/Support/Triple.cpp
+++ b/lib/Support/Triple.cpp
@@ -101,7 +101,6 @@ const char *Triple::getOSTypeName(OSType Kind) {
case Linux: return "linux";
case Lv2: return "lv2";
case MinGW32: return "mingw32";
- case MinGW64: return "mingw64";
case NetBSD: return "netbsd";
case OpenBSD: return "openbsd";
case Psp: return "psp";
@@ -318,8 +317,6 @@ Triple::OSType Triple::ParseOS(StringRef OSName) {
return Lv2;
else if (OSName.startswith("mingw32"))
return MinGW32;
- else if (OSName.startswith("mingw64"))
- return MinGW64;
else if (OSName.startswith("netbsd"))
return NetBSD;
else if (OSName.startswith("openbsd"))
diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp
index 60df718..0ee773b 100644
--- a/lib/Target/ARM/ARMTargetMachine.cpp
+++ b/lib/Target/ARM/ARMTargetMachine.cpp
@@ -45,7 +45,6 @@ static MCStreamer *createMCStreamer(const Target &T, const std::string &TT,
case Triple::Darwin:
return createMachOStreamer(Ctx, TAB, OS, Emitter, RelaxAll);
case Triple::MinGW32:
- case Triple::MinGW64:
case Triple::Cygwin:
case Triple::Win32:
llvm_unreachable("ARM does not support Windows COFF format");
diff --git a/lib/Target/MBlaze/MBlazeTargetMachine.cpp b/lib/Target/MBlaze/MBlazeTargetMachine.cpp
index f83f70b..cd949e1 100644
--- a/lib/Target/MBlaze/MBlazeTargetMachine.cpp
+++ b/lib/Target/MBlaze/MBlazeTargetMachine.cpp
@@ -41,7 +41,6 @@ static MCStreamer *createMCStreamer(const Target &T, const std::string &TT,
llvm_unreachable("MBlaze does not support Darwin MACH-O format");
return NULL;
case Triple::MinGW32:
- case Triple::MinGW64:
case Triple::Cygwin:
case Triple::Win32:
llvm_unreachable("MBlaze does not support Windows COFF format");
diff --git a/lib/Target/X86/X86AsmBackend.cpp b/lib/Target/X86/X86AsmBackend.cpp
index 3c426be..da5f5b1 100644
--- a/lib/Target/X86/X86AsmBackend.cpp
+++ b/lib/Target/X86/X86AsmBackend.cpp
@@ -428,7 +428,7 @@ TargetAsmBackend *llvm::createX86_64AsmBackend(const Target &T,
switch (Triple(TT).getOS()) {
case Triple::Darwin:
return new DarwinX86_64AsmBackend(T);
- case Triple::MinGW64:
+ case Triple::MinGW32:
case Triple::Cygwin:
case Triple::Win32:
if (Triple(TT).getEnvironment() == Triple::MachO)
diff --git a/lib/Target/X86/X86Subtarget.h b/lib/Target/X86/X86Subtarget.h
index 48ceb21..2bd60da 100644
--- a/lib/Target/X86/X86Subtarget.h
+++ b/lib/Target/X86/X86Subtarget.h
@@ -175,9 +175,7 @@ public:
bool isTargetLinux() const { return TargetTriple.getOS() == Triple::Linux; }
bool isTargetWindows() const { return TargetTriple.getOS() == Triple::Win32; }
- bool isTargetMingw() const {
- return TargetTriple.getOS() == Triple::MinGW32 ||
- TargetTriple.getOS() == Triple::MinGW64; }
+ bool isTargetMingw() const { return TargetTriple.getOS() == Triple::MinGW32; }
bool isTargetCygwin() const { return TargetTriple.getOS() == Triple::Cygwin; }
bool isTargetCygMing() const {
return isTargetMingw() || isTargetCygwin();
diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp
index f216279..b2a9a5c 100644
--- a/lib/Target/X86/X86TargetMachine.cpp
+++ b/lib/Target/X86/X86TargetMachine.cpp
@@ -30,7 +30,6 @@ static MCAsmInfo *createMCAsmInfo(const Target &T, StringRef TT) {
case Triple::Darwin:
return new X86MCAsmInfoDarwin(TheTriple);
case Triple::MinGW32:
- case Triple::MinGW64:
case Triple::Cygwin:
case Triple::Win32:
if (TheTriple.getEnvironment() == Triple::MachO)
@@ -53,7 +52,6 @@ static MCStreamer *createMCStreamer(const Target &T, const std::string &TT,
case Triple::Darwin:
return createMachOStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll);
case Triple::MinGW32:
- case Triple::MinGW64:
case Triple::Cygwin:
case Triple::Win32:
if (TheTriple.getEnvironment() == Triple::MachO)
diff --git a/test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll b/test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll
index 9d06a9e..98b1e0e 100644
--- a/test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll
+++ b/test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=x86_64-pc-mingw64 < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-mingw32 < %s | FileCheck %s
; CHECK-NOT: -{{[1-9][0-9]*}}(%rsp)
define x86_fp80 @a(i64 %x) nounwind readnone {
diff --git a/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll b/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
index 6e8d9a9..12bd285 100644
--- a/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
+++ b/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
@@ -1,4 +1,4 @@
-; RUN: llc -mtriple=x86_64-pc-mingw64 < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-mingw32 < %s | FileCheck %s
; CHECK: subq $40, %rsp
; CHECK: movaps %xmm8, (%rsp)
; CHECK: movaps %xmm7, 16(%rsp)
--------------1.7.1.GIT--
-------------- next part --------------
From 641db868ffb08e4a49ea8207405e385dcd2d42df Mon Sep 17 00:00:00 2001
From: NAKAMURA Takumi <geek4civic at gmail.com>
Date: Wed, 16 Feb 2011 11:01:30 +0900
Subject: [PATCH 2/2] lib/Frontend/InitHeaderSearch.cpp: Add mingw-w64's include paths.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.7.1.GIT"
This is a multi-part message in MIME format.
--------------1.7.1.GIT
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
---
lib/Frontend/InitHeaderSearch.cpp | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
--------------1.7.1.GIT
Content-Type: text/x-patch; name="0002-lib-Frontend-InitHeaderSearch.cpp-Add-mingw-w64-.patch.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0002-lib-Frontend-InitHeaderSearch.cpp-Add-mingw-w64-.patch.txt"
diff --git a/lib/Frontend/InitHeaderSearch.cpp b/lib/Frontend/InitHeaderSearch.cpp
index 39f30e5..cc9bb0c 100644
--- a/lib/Frontend/InitHeaderSearch.cpp
+++ b/lib/Frontend/InitHeaderSearch.cpp
@@ -566,6 +566,14 @@ AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple) {
AddMinGWCPlusPlusIncludePaths("/usr/lib/gcc", "i686-pc-cygwin", "3.4.4");
break;
case llvm::Triple::MinGW32:
+ // mingw-w64-20110207
+ AddPath("c:/MinGW/include/c++/4.5.3", System, true, false, false);
+ AddPath("c:/MinGW/include/c++/4.5.3/x86_64-w64-mingw32", System, true, false, false);
+ AddPath("c:/MinGW/include/c++/4.5.3/backward", System, true, false, false);
+ // mingw-w64-20101129
+ AddPath("c:/MinGW/include/c++/4.5.2", System, true, false, false);
+ AddPath("c:/MinGW/include/c++/4.5.2/x86_64-w64-mingw32", System, true, false, false);
+ AddPath("c:/MinGW/include/c++/4.5.2/backward", System, true, false, false);
// Try gcc 4.5.0
AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.5.0");
// Try gcc 4.4.0
--------------1.7.1.GIT--
More information about the cfe-commits
mailing list