summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2010-07-18 00:57:59 +0000
committerLang Hames <lhames@gmail.com>2010-07-18 00:57:59 +0000
commit1392b8eb7948530dbfb8153ec822675e8bb5c860 (patch)
treec8390338d662586f126b4202fc25a33a39ce01ab /llvm/lib/CodeGen
parentad4f38b1a9ca9be17de56a19d11f4a88611647b2 (diff)
downloadbcm5719-llvm-1392b8eb7948530dbfb8153ec822675e8bb5c860.tar.gz
bcm5719-llvm-1392b8eb7948530dbfb8153ec822675e8bb5c860.zip
Added -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require
LoopSplitter be run prior to register allocation. Entirely for testing purposes at the moment. llvm-svn: 108634
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/RegAllocPBQP.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/RegAllocPBQP.cpp b/llvm/lib/CodeGen/RegAllocPBQP.cpp
index a7ea8e7c3ad..ea2a02ddffa 100644
--- a/llvm/lib/CodeGen/RegAllocPBQP.cpp
+++ b/llvm/lib/CodeGen/RegAllocPBQP.cpp
@@ -34,6 +34,7 @@
#include "PBQP/HeuristicSolver.h"
#include "PBQP/Graph.h"
#include "PBQP/Heuristics/Briggs.h"
+#include "Splitter.h"
#include "VirtRegMap.h"
#include "VirtRegRewriter.h"
#include "llvm/CodeGen/CalcSpillWeights.h"
@@ -65,6 +66,11 @@ pbqpCoalescing("pbqp-coalescing",
cl::desc("Attempt coalescing during PBQP register allocation."),
cl::init(false), cl::Hidden);
+static cl::opt<bool>
+pbqpPreSplitting("pbqp-pre-splitting",
+ cl::desc("Pre-splite before PBQP register allocation."),
+ cl::init(false), cl::Hidden);
+
namespace {
///
@@ -96,6 +102,8 @@ namespace {
au.addPreserved<LiveStacks>();
au.addRequired<MachineLoopInfo>();
au.addPreserved<MachineLoopInfo>();
+ if (pbqpPreSplitting)
+ au.addRequired<LoopSplitter>();
au.addRequired<VirtRegMap>();
MachineFunctionPass::getAnalysisUsage(au);
}
OpenPOWER on IntegriCloud