Browse Source

IPRA: Exit early on functions without calls

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311636 91177308-0d34-0410-b5e6-96231b3b80d8
Matt Arsenault 8 years ago
parent
commit
ee106fcc4b
1 changed files with 5 additions and 0 deletions
  1. 5 0
      lib/CodeGen/RegUsageInfoPropagate.cpp

+ 5 - 0
lib/CodeGen/RegUsageInfoPropagate.cpp

@@ -21,6 +21,7 @@
 
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/CodeGen/MachineFrameInfo.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/CodeGen/Passes.h"
@@ -95,6 +96,10 @@ bool RegUsageInfoPropagationPass::runOnMachineFunction(MachineFunction &MF) {
                << " ++++++++++++++++++++  \n");
   DEBUG(dbgs() << "MachineFunction : " << MF.getName() << "\n");
 
+  const MachineFrameInfo &MFI = MF.getFrameInfo();
+  if (!MFI.hasCalls() && !MFI.hasTailCall())
+    return false;
+
   bool Changed = false;
 
   for (MachineBasicBlock &MBB : MF) {