00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef LOOPINVOCATIONINSTRUCTION_H_
00011 #define LOOPINVOCATIONINSTRUCTION_H_
00012
00013 #include "Instruction.h"
00014
00015
00016 namespace sail {
00017 class BasicBlock;
00018
00024 class LoopInvocationInstruction: public sail::Instruction {
00025 friend class boost::serialization::access;
00026
00027 template<class Archive>
00028 void serialize(Archive & ar, const unsigned int version)
00029 {
00030 ar & boost::serialization::base_object<sail::Instruction>(*this);
00031 ar & header;
00032 }
00033 private:
00034 BasicBlock* header;
00035 public:
00036 LoopInvocationInstruction(BasicBlock* header);
00037 LoopInvocationInstruction(){};
00038 virtual ~LoopInvocationInstruction();
00039 virtual string to_string() const;
00040 virtual string to_string(bool pretty_print) const;
00041 virtual bool is_removable();
00042 };
00043
00044 }
00045
00046 #endif