Enable FastISel by default (on x86 and x86-64) with the -fast option.

llvm-svn: 56930
This commit is contained in:
Dan Gohman 2008-10-01 20:39:19 +00:00
parent 41a83d99e6
commit 3b88f10f46
1 changed files with 16 additions and 4 deletions

View File

@ -53,10 +53,15 @@ DisablePostRAScheduler("disable-post-RA-scheduler",
cl::desc("Disable scheduling after register allocation"),
cl::init(true));
static cl::opt<bool, true>
FastISelOption("fast-isel", cl::Hidden,
cl::desc("Enable the experimental \"fast\" instruction selector"),
cl::location(EnableFastISel));
// Enable or disable FastISel. Both options are needed, because
// FastISel is enabled by default with -fast, and we wish to be
// able to enable or disable fast-isel independently from -fast.
static cl::opt<bool>
EnableFastISelOption("fast-isel", cl::Hidden,
cl::desc("Enable the experimental \"fast\" instruction selector"));
static cl::opt<bool>
DisableFastISelOption("disable-fast-isel", cl::Hidden,
cl::desc("Disable the experimental \"fast\" instruction selector"));
FileModel::Model
LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
@ -169,6 +174,13 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM, bool Fast) {
// Standard Lower-Level Passes.
// Enable FastISel with -fast, but allow that to be overridden.
assert((!EnableFastISelOption || !DisableFastISelOption) &&
"Both -fast-isel and -disable-fast-isel given!");
if (EnableFastISelOption ||
(Fast && !DisableFastISelOption))
EnableFastISel = true;
// Ask the target for an isel.
if (addInstSelector(PM, Fast))
return true;