1 #ifndef MAGIC_CTLAZY_CHECKPOINT_PASS_H 2 #define MAGIC_CTLAZY_CHECKPOINT_PASS_H 3 4 #include <magic/magic.h> 5 #include <magic/MagicPass.h> 6 #include <magic/support/VariableRefs.h> 7 8 using namespace llvm; 9 10 namespace llvm { 11 12 #define magicCTLazyCheckpointPassLog(M) DEBUG(dbgs() << "MagicCTLazyCheckpointPass: " << M << "\n") 13 14 class MagicCTLazyCheckpointPass : public FunctionPass { 15 16 public: 17 static char ID; 18 19 MagicCTLazyCheckpointPass(); 20 21 virtual void getAnalysisUsage(AnalysisUsage &AU) const; 22 virtual bool runOnFunction(Function &F); 23 24 private: 25 AliasAnalysis *AA; 26 27 bool instructionModifiesVar(Module &M, Instruction *inst, GlobalVariable* var); 28 }; 29 30 } 31 32 #endif 33