Add mechanism to select register allocator to use
authorChris Lattner <sabre@nondot.org>
Mon, 16 Dec 2002 16:15:51 +0000 (16:15 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 16 Dec 2002 16:15:51 +0000 (16:15 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5079 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86TargetMachine.cpp

index d710eb473d3463cc0bb8bc67feccc77e3a867d37..cdb7dea41559f707efc7634204fbb06a582ed3db 100644 (file)
@@ -8,11 +8,17 @@
 #include "llvm/Transforms/Scalar.h"
 #include "llvm/Target/TargetMachineImpls.h"
 #include "llvm/CodeGen/MachineFunction.h"
-#include "Support/Statistic.h"
 #include "llvm/PassManager.h"
 #include "X86.h"
+#include "Support/CommandLine.h"
+#include "Support/Statistic.h"
 #include <iostream>
 
+namespace {
+  cl::opt<bool> UseLocalRA("local-ra",
+                           cl::desc("Use Local RegAlloc instead of Simple RA"));
+}
+
 // allocateX86TargetMachine - Allocate and return a subclass of TargetMachine
 // that implements the X86 backend.
 //
@@ -43,7 +49,10 @@ bool X86TargetMachine::addPassesToJITCompile(PassManager &PM) {
   DEBUG(PM.add(createMachineFunctionPrinterPass()));
 
   // Perform register allocation to convert to a concrete x86 representation
-  PM.add(createSimpleRegisterAllocator(*this));
+  if (UseLocalRA)
+    PM.add(createLocalRegisterAllocator(*this));
+  else
+    PM.add(createSimpleRegisterAllocator(*this));
 
   // Print the instruction selected machine code...
   // PM.add(createMachineFunctionPrinterPass());