Add an option to control this heuristic tweak so I can test it.
authorEvan Cheng <evan.cheng@apple.com>
Fri, 7 Dec 2007 00:28:32 +0000 (00:28 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 7 Dec 2007 00:28:32 +0000 (00:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44671 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SimpleRegisterCoalescing.cpp

index 6eec5ab885caa832b3192549d582e44f4268c7c3..7252f66ba04286fd0ab15e04dbc355635d74a543 100644 (file)
@@ -52,6 +52,11 @@ namespace {
                 cl::desc("Use new coalescer heuristic"),
                 cl::init(false));
 
+  static cl::opt<bool>
+  ReMatSpillWeight("tweak-remat-spill-weight",
+                   cl::desc("Tweak spill weight of re-materializable intervals"),
+                   cl::init(true));
+
   RegisterPass<SimpleRegisterCoalescing> 
   X("simple-register-coalescing", "Simple Register Coalescing");
 
@@ -1487,7 +1492,7 @@ bool SimpleRegisterCoalescing::runOnMachineFunction(MachineFunction &fn) {
         LI.weight = HUGE_VALF;
       else {
         bool isLoad = false;
-        if (li_->isReMaterializable(LI, isLoad)) {
+        if (ReMatSpillWeight && li_->isReMaterializable(LI, isLoad)) {
           // If all of the definitions of the interval are re-materializable,
           // it is a preferred candidate for spilling. If non of the defs are
           // loads, then it's potentially very cheap to re-materialize.