Add fast-isel stats to determine who's doing all the work, the

target-independent selector or the target-specific selector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144833 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chad Rosier 2011-11-16 21:05:28 +00:00
parent f91488cc10
commit 053e69ad57

View File

@ -39,6 +39,7 @@
//
//===----------------------------------------------------------------------===//
#define DEBUG_TYPE "isel"
#include "llvm/Function.h"
#include "llvm/GlobalVariable.h"
#include "llvm/Instructions.h"
@ -58,8 +59,12 @@
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Debug.h"
#include "llvm/ADT/Statistic.h"
using namespace llvm;
STATISTIC(NumFastIselSuccessIndependent, "Number of insts selected by target-independent selector");
STATISTIC(NumFastIselSuccessTarget, "Number of insts selected by target-specific selector");
/// startNewBlock - Set the current block to which generated machine
/// instructions will be appended, and clear the local CSE map.
///
@ -765,12 +770,14 @@ FastISel::SelectInstruction(const Instruction *I) {
// First, try doing target-independent selection.
if (SelectOperator(I, I->getOpcode())) {
++NumFastIselSuccessIndependent;
DL = DebugLoc();
return true;
}
// Next, try calling the target to attempt to handle the instruction.
if (TargetSelectInstruction(I)) {
++NumFastIselSuccessTarget;
DL = DebugLoc();
return true;
}