[llvm] r187248 - [PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc.
Bill Schmidt
wschmidt at linux.vnet.ibm.com
Fri Jul 26 14:39:15 PDT 2013
Author: wschmidt
Date: Fri Jul 26 16:39:15 2013
New Revision: 187248
URL: http://llvm.org/viewvc/llvm-project?rev=187248&view=rev
Log:
[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.
Modified:
llvm/trunk/lib/Support/Unix/Memory.inc
llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp
llvm/trunk/unittests/ADT/BitVectorTest.cpp
llvm/trunk/unittests/ADT/PackedVectorTest.cpp
llvm/trunk/unittests/ExecutionEngine/JIT/MultiJITTest.cpp
Modified: llvm/trunk/lib/Support/Unix/Memory.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Unix/Memory.inc?rev=187248&r1=187247&r2=187248&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Unix/Memory.inc (original)
+++ llvm/trunk/lib/Support/Unix/Memory.inc Fri Jul 26 16:39:15 2013
@@ -310,14 +310,14 @@ void Memory::InvalidateInstructionCache(
// 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<void *>(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;
Modified: llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp?rev=187248&r1=187247&r2=187248&view=diff
==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCJITInfo.cpp Fri Jul 26 16:39:15 2013
@@ -71,7 +71,7 @@ static void EmitBranchToAt(uint64_t At,
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::ge
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
Modified: llvm/trunk/unittests/ADT/BitVectorTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/BitVectorTest.cpp?rev=187248&r1=187247&r2=187248&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/BitVectorTest.cpp (original)
+++ llvm/trunk/unittests/ADT/BitVectorTest.cpp Fri Jul 26 16:39:15 2013
@@ -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"
Modified: llvm/trunk/unittests/ADT/PackedVectorTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/PackedVectorTest.cpp?rev=187248&r1=187247&r2=187248&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/PackedVectorTest.cpp (original)
+++ llvm/trunk/unittests/ADT/PackedVectorTest.cpp Fri Jul 26 16:39:15 2013
@@ -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"
Modified: llvm/trunk/unittests/ExecutionEngine/JIT/MultiJITTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/JIT/MultiJITTest.cpp?rev=187248&r1=187247&r2=187248&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/JIT/MultiJITTest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/JIT/MultiJITTest.cpp Fri Jul 26 16:39:15 2013
@@ -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;
More information about the llvm-commits
mailing list