extern X86VectorEnum X86Vector;
extern bool X86ScalarSSE;
+extern bool X86DAGIsel;
/// createX86ISelPattern - This pass converts an LLVM function into a
/// machine code representation using pattern matching and a machine
X86VectorEnum llvm::X86Vector = NoSSE;
bool llvm::X86ScalarSSE = false;
+bool llvm::X86DAGIsel = false;
/// X86TargetMachineModule - Note that this is used on hosts that cannot link
/// in a library unless there are references into the library. In particular,
cl::location(X86ScalarSSE),
cl::init(false));
- cl::opt<bool> EnableX86DAGDAG("enable-x86-dag-isel", cl::Hidden,
- cl::desc("Enable DAG-to-DAG isel for X86"));
+ cl::opt<bool, true> EnableX86DAGDAG("enable-x86-dag-isel", cl::Hidden,
+ cl::desc("Enable DAG-to-DAG isel for X86"),
+ cl::location(X86DAGIsel),
+ cl::init(false));
// FIXME: This should eventually be handled with target triples and
// subtarget support!
PM.add(createUnreachableBlockEliminationPass());
// Install an instruction selector.
- if (EnableX86DAGDAG)
+ if (X86DAGIsel)
PM.add(createX86ISelDag(*this));
else
PM.add(createX86ISelPattern(*this));
PM.add(createUnreachableBlockEliminationPass());
// Install an instruction selector.
- if (EnableX86DAGDAG)
+ if (X86DAGIsel)
PM.add(createX86ISelDag(TM));
else
PM.add(createX86ISelPattern(TM));