1*3e457fe3SDavid van Moolenbroek #ifndef VARIABLE_REFS_H 2*3e457fe3SDavid van Moolenbroek #define VARIABLE_REFS_H 3*3e457fe3SDavid van Moolenbroek 4*3e457fe3SDavid van Moolenbroek #include <pass.h> 5*3e457fe3SDavid van Moolenbroek 6*3e457fe3SDavid van Moolenbroek using namespace llvm; 7*3e457fe3SDavid van Moolenbroek 8*3e457fe3SDavid van Moolenbroek namespace llvm { 9*3e457fe3SDavid van Moolenbroek 10*3e457fe3SDavid van Moolenbroek class VariableRefs { 11*3e457fe3SDavid van Moolenbroek public: 12*3e457fe3SDavid van Moolenbroek VariableRefs(); 13*3e457fe3SDavid van Moolenbroek 14*3e457fe3SDavid van Moolenbroek bool isUnnecessaryInstruction(Instruction* inst) const; 15*3e457fe3SDavid van Moolenbroek Instruction* getInstruction() const; 16*3e457fe3SDavid van Moolenbroek bool isInstructionInEntryBlock() const; 17*3e457fe3SDavid van Moolenbroek 18*3e457fe3SDavid van Moolenbroek void addInstruction(Instruction* inst); 19*3e457fe3SDavid van Moolenbroek void clear(); 20*3e457fe3SDavid van Moolenbroek 21*3e457fe3SDavid van Moolenbroek private: 22*3e457fe3SDavid van Moolenbroek Instruction* instruction; 23*3e457fe3SDavid van Moolenbroek bool instructionInEntryBlock; 24*3e457fe3SDavid van Moolenbroek 25*3e457fe3SDavid van Moolenbroek void setFunctionEntryInstruction(Function* function); 26*3e457fe3SDavid van Moolenbroek }; 27*3e457fe3SDavid van Moolenbroek 28*3e457fe3SDavid van Moolenbroek } 29*3e457fe3SDavid van Moolenbroek 30*3e457fe3SDavid van Moolenbroek #endif 31