mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Allow the FP stackifier to completely ignore functions that do not use FP at
all. This should speed up the X86 backend fairly significantly on integer codes. Now if only we didn't have to compute livevar still... ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19796 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3563015b0d
commit
42e25b387f
@ -157,6 +157,21 @@ FunctionPass *llvm::createX86FloatingPointStackifierPass() { return new FPS(); }
|
||||
/// register references into FP stack references.
|
||||
///
|
||||
bool FPS::runOnMachineFunction(MachineFunction &MF) {
|
||||
// We only need to run this pass if there are any FP registers used in this
|
||||
// function. If it is all integer, there is nothing for us to do!
|
||||
const bool *PhysRegsUsed = MF.getUsedPhysregs();
|
||||
bool FPIsUsed = false;
|
||||
|
||||
assert(X86::FP6 == X86::FP0+6 && "Register enums aren't sorted right!");
|
||||
for (unsigned i = 0; i <= 6; ++i)
|
||||
if (PhysRegsUsed[X86::FP0+i]) {
|
||||
FPIsUsed = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Early exit.
|
||||
if (!FPIsUsed) return false;
|
||||
|
||||
LV = &getAnalysis<LiveVariables>();
|
||||
StackTop = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user