[llvm-commits] [llvm] r129045 - in /llvm/trunk: include/llvm/Target/TargetOptions.h lib/Target/ARM/ARMISelLowering.cpp lib/Target/TargetMachine.cpp test/CodeGen/ARM/divmod.ll
Evan Cheng
evan.cheng at apple.com
Wed Apr 6 17:58:44 PDT 2011
Author: evancheng
Date: Wed Apr 6 19:58:44 2011
New Revision: 129045
URL: http://llvm.org/viewvc/llvm-project?rev=129045&view=rev
Log:
Change -arm-divmod-libcall to a target neutral option.
Modified:
llvm/trunk/include/llvm/Target/TargetOptions.h
llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
llvm/trunk/lib/Target/TargetMachine.cpp
llvm/trunk/test/CodeGen/ARM/divmod.ll
Modified: llvm/trunk/include/llvm/Target/TargetOptions.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetOptions.h?rev=129045&r1=129044&r2=129045&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Target/TargetOptions.h (original)
+++ llvm/trunk/include/llvm/Target/TargetOptions.h Wed Apr 6 19:58:44 2011
@@ -157,6 +157,10 @@
/// wth earlier copy coalescing.
extern bool StrongPHIElim;
+ /// HasDivModLibcall - This flag indicates whether the target compiler
+ /// runtime library has integer divmod libcalls.
+ extern bool HasDivModLibcall;
+
} // End llvm namespace
#endif
Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=129045&r1=129044&r2=129045&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Wed Apr 6 19:58:44 2011
@@ -72,11 +72,6 @@
cl::desc("Enable / disable ARM interworking (for debugging only)"),
cl::init(true));
-static cl::opt<bool>
-UseDivMod("arm-divmod-libcall", cl::Hidden,
- cl::desc("Use __{u}divmod libcalls for div / rem pairs"),
- cl::init(false));
-
void ARMTargetLowering::addTypeForNEON(EVT VT, EVT PromotedLdStVT,
EVT PromotedBitwiseVT) {
if (VT != PromotedLdStVT) {
@@ -398,7 +393,7 @@
setLibcallCallingConv(RTLIB::UDIV_I32, CallingConv::ARM_AAPCS);
}
- if (UseDivMod) {
+ if (HasDivModLibcall) {
setLibcallName(RTLIB::SDIVREM_I32, "__divmodsi4");
setLibcallName(RTLIB::UDIVREM_I32, "__udivmodsi4");
}
Modified: llvm/trunk/lib/Target/TargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetMachine.cpp?rev=129045&r1=129044&r2=129045&view=diff
==============================================================================
--- llvm/trunk/lib/Target/TargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/TargetMachine.cpp Wed Apr 6 19:58:44 2011
@@ -48,6 +48,7 @@
bool RealignStack;
bool DisableJumpTables;
bool StrongPHIElim;
+ bool HasDivModLibcall;
bool AsmVerbosityDefault(false);
}
@@ -205,6 +206,11 @@
cl::desc("Use strong PHI elimination."),
cl::location(StrongPHIElim),
cl::init(false));
+static cl::opt<bool, true>
+UseDivMod("use-divmod-libcall",
+ cl::desc("Use __{u}divmod libcalls for div / rem pairs"),
+ cl::location(HasDivModLibcall),
+ cl::init(false));
static cl::opt<bool>
DataSections("fdata-sections",
cl::desc("Emit data into separate sections"),
Modified: llvm/trunk/test/CodeGen/ARM/divmod.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/divmod.ll?rev=129045&r1=129044&r2=129045&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/divmod.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/divmod.ll Wed Apr 6 19:58:44 2011
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mtriple=arm-apple-darwin -arm-divmod-libcall | FileCheck %s
+; RUN: llc < %s -mtriple=arm-apple-darwin -use-divmod-libcall | FileCheck %s
define void @foo(i32 %x, i32 %y, i32* nocapture %P) nounwind ssp {
entry:
More information about the llvm-commits
mailing list