mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-23 03:59:12 +00:00
Change -arm-divmod-libcall to a target neutral option.
llvm-svn: 129045
This commit is contained in:
parent
1d3691e071
commit
859dff2c87
@ -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
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -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"),
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user