[llvm] r310875 - IPRA: Run RegUsageInfoPropagate much later

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 14 12:54:45 PDT 2017


Author: arsenm
Date: Mon Aug 14 12:54:45 2017
New Revision: 310875

URL: http://llvm.org/viewvc/llvm-project?rev=310875&view=rev
Log:
IPRA: Run RegUsageInfoPropagate much later

This was running immediately after isel, before
isel pseudos were even expanded which is really
unreasonable. Move this to before pre-reglloc
passes in case some other pre-regalloc pass wants to
use the updated regmask info.

Fixes one of the reasons IPRA doesn't do anything on
AMDGPU currently. Tests will be included with future
patch after a few more are fixed.

Modified:
    llvm/trunk/lib/CodeGen/TargetPassConfig.cpp

Modified: llvm/trunk/lib/CodeGen/TargetPassConfig.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetPassConfig.cpp?rev=310875&r1=310874&r2=310875&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/TargetPassConfig.cpp (original)
+++ llvm/trunk/lib/CodeGen/TargetPassConfig.cpp Mon Aug 14 12:54:45 2017
@@ -779,9 +779,6 @@ void TargetPassConfig::addMachinePasses(
   // Print the instruction selected machine code...
   printAndVerify("After Instruction Selection");
 
-  if (TM->Options.EnableIPRA)
-    addPass(createRegUsageInfoPropPass());
-
   // Expand pseudo-instructions emitted by ISel.
   addPass(&ExpandISelPseudosID);
 
@@ -794,6 +791,9 @@ void TargetPassConfig::addMachinePasses(
     addPass(&LocalStackSlotAllocationID, false);
   }
 
+  if (TM->Options.EnableIPRA)
+    addPass(createRegUsageInfoPropPass());
+
   // Run pre-ra passes.
   addPreRegAlloc();
 




More information about the llvm-commits mailing list