Change -arm-divmod-libcall to a target neutral option.

llvm-svn: 129045
This commit is contained in:
Evan Cheng 2011-04-07 00:58:44 +00:00
parent 1d3691e071
commit 859dff2c87
4 changed files with 12 additions and 7 deletions

View File

@ -157,6 +157,10 @@ namespace llvm {
/// 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

View File

@ -72,11 +72,6 @@ ARMInterworking("arm-interworking", cl::Hidden,
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 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
setLibcallCallingConv(RTLIB::UDIV_I32, CallingConv::ARM_AAPCS);
}
if (UseDivMod) {
if (HasDivModLibcall) {
setLibcallName(RTLIB::SDIVREM_I32, "__divmodsi4");
setLibcallName(RTLIB::UDIVREM_I32, "__udivmodsi4");
}

View File

@ -48,6 +48,7 @@ namespace llvm {
bool RealignStack;
bool DisableJumpTables;
bool StrongPHIElim;
bool HasDivModLibcall;
bool AsmVerbosityDefault(false);
}
@ -205,6 +206,11 @@ EnableStrongPHIElim(cl::Hidden, "strong-phi-elim",
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"),

View File

@ -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: