mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-17 06:33:21 +00:00
Enable partial libcall inlining for all targets by default.
This pass attempts to speculatively use a sqrt instruction if one exists on the target, falling back to a libcall if the target instruction returned NaN. This was enabled for MIPS and System-Z, but is well guarded and is good for most targets - GCC does this for (that I've checked) X86, ARM and AArch64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213752 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3b867c9c8e
commit
ed10064699
@ -71,6 +71,8 @@ static cl::opt<bool> DisableCGP("disable-cgp", cl::Hidden,
|
||||
cl::desc("Disable Codegen Prepare"));
|
||||
static cl::opt<bool> DisableCopyProp("disable-copyprop", cl::Hidden,
|
||||
cl::desc("Disable Copy Propagation pass"));
|
||||
static cl::opt<bool> DisablePartialLibcallInlining("disable-partial-libcall-inlining",
|
||||
cl::Hidden, cl::desc("Disable Partial Libcall Inlining"));
|
||||
static cl::opt<bool> PrintLSR("print-lsr-output", cl::Hidden,
|
||||
cl::desc("Print LLVM IR produced by the loop-reduce pass"));
|
||||
static cl::opt<bool> PrintISelInput("print-isel-input", cl::Hidden,
|
||||
@ -399,6 +401,9 @@ void TargetPassConfig::addIRPasses() {
|
||||
// Prepare expensive constants for SelectionDAG.
|
||||
if (getOptLevel() != CodeGenOpt::None && !DisableConstantHoisting)
|
||||
addPass(createConstantHoistingPass());
|
||||
|
||||
if (getOptLevel() != CodeGenOpt::None && !DisablePartialLibcallInlining)
|
||||
addPass(createPartiallyInlineLibCallsPass());
|
||||
}
|
||||
|
||||
/// Turn exception handling constructs into something the code generators can
|
||||
|
@ -141,7 +141,6 @@ void MipsPassConfig::addIRPasses() {
|
||||
addPass(createMipsOs16(getMipsTargetMachine()));
|
||||
if (getMipsSubtarget().inMips16HardFloat())
|
||||
addPass(createMips16HardFloat(getMipsTargetMachine()));
|
||||
addPass(createPartiallyInlineLibCallsPass());
|
||||
}
|
||||
// Install an instruction selector pass using
|
||||
// the ISelDag to gen Mips code.
|
||||
|
@ -49,7 +49,6 @@ public:
|
||||
|
||||
void SystemZPassConfig::addIRPasses() {
|
||||
TargetPassConfig::addIRPasses();
|
||||
addPass(createPartiallyInlineLibCallsPass());
|
||||
}
|
||||
|
||||
bool SystemZPassConfig::addInstSelector() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user