From 419f7c2345b7a2b553629e909ed29297bdeeb566 Mon Sep 17 00:00:00 2001 From: Bill Schmidt Date: Fri, 26 Jul 2013 21:39:15 +0000 Subject: [PATCH] [PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc. Both GCC and LLVM will implicitly define __ppc__ and __powerpc__ for all PowerPC targets, whether 32- or 64-bit. They will both implicitly define __ppc64__ and __powerpc64__ for 64-bit PowerPC targets, and not for 32-bit targets. We cannot be sure that all other possible compilers used to compile Clang/LLVM define both __ppc__ and __powerpc__, for example, so it is best to check for both when relying on either inside the Clang/LLVM code base. This patch makes sure we always check for both variants. In addition, it fixes one unnecessary check in lib/Target/PowerPC/PPCJITInfo.cpp. (At least one of __ppc__ and __powerpc__ should always be defined when compiling for a PowerPC target, no matter which compiler is used, so testing for them is unnecessary.) There are some places in the compiler that check for other variants, like __POWERPC__ and _POWER, and I have left those in place. There is no need to add them elsewhere. This seems to be in Apple-specific code, and I won't take a chance on breaking it. There is no intended change in behavior; thus, no test cases are added. llvm-svn: 187248 --- llvm/lib/Support/Unix/Memory.inc | 4 ++-- llvm/lib/Target/PowerPC/PPCJITInfo.cpp | 6 +++--- llvm/unittests/ADT/BitVectorTest.cpp | 2 +- llvm/unittests/ADT/PackedVectorTest.cpp | 2 +- llvm/unittests/ExecutionEngine/JIT/MultiJITTest.cpp | 3 ++- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/llvm/lib/Support/Unix/Memory.inc b/llvm/lib/Support/Unix/Memory.inc index 58fda420eb62..73f586ff4a89 100644 --- a/llvm/lib/Support/Unix/Memory.inc +++ b/llvm/lib/Support/Unix/Memory.inc @@ -310,14 +310,14 @@ void Memory::InvalidateInstructionCache(const void *Addr, // icache invalidation for PPC and ARM. #if defined(__APPLE__) -# if (defined(__POWERPC__) || defined (__ppc__) || \ +# if (defined(__POWERPC__) || defined (__ppc__) || defined (__powerpc__) \ defined(_POWER) || defined(_ARCH_PPC)) || defined(__arm__) sys_icache_invalidate(const_cast(Addr), Len); # endif #else -# if (defined(__POWERPC__) || defined (__ppc__) || \ +# if (defined(__POWERPC__) || defined (__ppc__) || defined (__powerpc__) || \ defined(_POWER) || defined(_ARCH_PPC)) && defined(__GNUC__) const size_t LineSize = 32; diff --git a/llvm/lib/Target/PowerPC/PPCJITInfo.cpp b/llvm/lib/Target/PowerPC/PPCJITInfo.cpp index 18f4adf839e3..71c8f1db1c75 100644 --- a/llvm/lib/Target/PowerPC/PPCJITInfo.cpp +++ b/llvm/lib/Target/PowerPC/PPCJITInfo.cpp @@ -71,7 +71,7 @@ static void EmitBranchToAt(uint64_t At, uint64_t To, bool isCall, bool is64Bit){ extern "C" void PPC32CompilationCallback(); extern "C" void PPC64CompilationCallback(); -#if (!defined(__ppc__) && !defined(__powerpc__)) || defined(__powerpc64__) || defined(__ppc64__) +#if defined(__powerpc64__) || defined(__ppc64__) void PPC32CompilationCallback() { llvm_unreachable("This is not a 32bit PowerPC, you can't execute this!"); } @@ -356,8 +356,8 @@ TargetJITInfo::StubLayout PPCJITInfo::getStubLayout() { return Result; } -#if (defined(__POWERPC__) || defined (__ppc__) || defined(_POWER)) && \ -defined(__APPLE__) +#if (defined(__POWERPC__) || defined (__ppc__) || defined(__powerpc__) || \ +defined(_POWER)) && defined(__APPLE__) extern "C" void sys_icache_invalidate(const void *Addr, size_t len); #endif diff --git a/llvm/unittests/ADT/BitVectorTest.cpp b/llvm/unittests/ADT/BitVectorTest.cpp index d7cde891fb56..4d3223e418d8 100644 --- a/llvm/unittests/ADT/BitVectorTest.cpp +++ b/llvm/unittests/ADT/BitVectorTest.cpp @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // Some of these tests fail on PowerPC for unknown reasons. -#ifndef __ppc__ +#if !defined(__ppc__) && !defined(__powerpc__) #include "llvm/ADT/BitVector.h" #include "llvm/ADT/SmallBitVector.h" diff --git a/llvm/unittests/ADT/PackedVectorTest.cpp b/llvm/unittests/ADT/PackedVectorTest.cpp index 55b5d8d049dd..b6a7e5830124 100644 --- a/llvm/unittests/ADT/PackedVectorTest.cpp +++ b/llvm/unittests/ADT/PackedVectorTest.cpp @@ -9,7 +9,7 @@ // BitVectorTest tests fail on PowerPC for unknown reasons, so disable this // as well since it depends on a BitVector. -#ifndef __ppc__ +#if !defined(__ppc__) && !defined(__powerpc__) #include "llvm/ADT/PackedVector.h" #include "gtest/gtest.h" diff --git a/llvm/unittests/ExecutionEngine/JIT/MultiJITTest.cpp b/llvm/unittests/ExecutionEngine/JIT/MultiJITTest.cpp index 4018cd5ce2f2..29689b71a248 100644 --- a/llvm/unittests/ExecutionEngine/JIT/MultiJITTest.cpp +++ b/llvm/unittests/ExecutionEngine/JIT/MultiJITTest.cpp @@ -21,7 +21,8 @@ using namespace llvm; namespace { // ARM, PowerPC and SystemZ tests disabled pending fix for PR10783. -#if !defined(__arm__) && !defined(__powerpc__) && !defined(__s390__) +#if !defined(__arm__) && !defined(__powerpc__) && !defined(__s390__) && \ + !defined(__ppc__) bool LoadAssemblyInto(Module *M, const char *assembly) { SMDiagnostic Error; -- GitLab