- static Statistic<> NumReturnInst("instcount","Number of ReturnInsts");
- static Statistic<> NumBranchInst("instcount", "Number of BranchInsts");
- static Statistic<> NumPHINode("instcount", "Number of PHINodes");
- static Statistic<> NumCastInst("instcount", "Number of CastInsts");
- static Statistic<> NumCallInst("instcount", "Number of CallInsts");
- static Statistic<> NumMallocInst("instcount", "Number of MallocInsts");
- static Statistic<> NumAllocaInst("instcount", "Number of AllocaInsts");
- static Statistic<> NumFreeInst("instcount", "Number of FreeInsts");
- static Statistic<> NumLoadInst("instcount", "Number of LoadInsts");
- static Statistic<> NumStoreInst("instcount", "Number of StoreInsts");
- static Statistic<> NumGetElementPtrInst("instcount",
- "Number of GetElementPtrInsts");
-
- static Statistic<> NumSwitchInst("instcount", "Number of SwitchInsts");
- static Statistic<> NumInvokeInst("instcount", "Number of InvokeInsts");
- static Statistic<> NumBinaryOperator("instcount",
- "Total Number of BinaryOperators");
-
- static Statistic<> NumShiftInst("instcount", " Total Number of ShiftInsts");
- static Statistic<> NumShlInst("instcount", "Number of Left ShiftInsts");
-
- static Statistic<> NumShrInst("instcount", "Number of Right ShiftInsts");
-
-
- static Statistic<> NumAddInst("instcount", "Number of AddInsts");
- static Statistic<> NumSubInst("instcount", "Number of SubInsts");
- static Statistic<> NumMulInst("instcount", "Number of MulInsts");
- static Statistic<> NumDivInst("instcount", "Number of DivInsts");
- static Statistic<> NumRemInst("instcount", "Number of RemInsts");
- static Statistic<> NumAndInst("instcount", "Number of AndInsts");
- static Statistic<> NumOrInst("instcount", "Number of OrInsts");
- static Statistic<> NumXorInst("instcount", "Number of XorInsts");
- static Statistic<> NumSetCondInst("instcount", "Total Number of SetCondInsts");
- static Statistic<> NumSetEQInst("instcount", "Number of SetEQInsts");
- static Statistic<> NumSetNEInst("instcount", "Number of SetNEInsts");
- static Statistic<> NumSetLEInst("instcount", "Number of SetLEInsts");
- static Statistic<> NumSetGEInst("instcount", "Number of SetGEInsts");
- static Statistic<> NumSetLTInst("instcount", "Number of SetLTInsts");
- static Statistic<> NumSetGTInst("instcount", "Number of SetGTInsts");
-
- class InstCount : public Pass, public InstVisitor<InstCount> {
- private:
- friend class InstVisitor<InstCount>;
-
-
- void visitBinaryOperator(BinaryOperator &I);
- void visitShiftInst(ShiftInst &I);
- void visitSetCondInst(SetCondInst &I);
-
- inline void visitSwitchInst(SwitchInst &I) { NumSwitchInst++; }
- inline void visitInvokeInst(InvokeInst &I) { NumInvokeInst++; }
- inline void visitReturnInst(ReturnInst &I) { NumReturnInst++; }
- inline void visitBranchInst(BranchInst &I) { NumBranchInst++; }
- inline void visitPHINode(PHINode &I) { NumPHINode++; }
- inline void visitCastInst (CastInst &I) { NumCastInst++; }
- inline void visitCallInst (CallInst &I) { NumCallInst++; }
- inline void visitMallocInst(MallocInst &I) { NumMallocInst++; }
- inline void visitAllocaInst(AllocaInst &I) { NumAllocaInst++; }
- inline void visitFreeInst (FreeInst &I) { NumFreeInst++; }
- inline void visitLoadInst (LoadInst &I) { NumLoadInst++; }
- inline void visitStoreInst (StoreInst &I) { NumStoreInst++; }
- inline void visitGetElementPtrInst(GetElementPtrInst &I) {
- NumGetElementPtrInst++; }
-
- inline void visitInstruction(Instruction &I) {
- std::cerr << "Instruction Count does not know about " << I;
- abort();