25 #ifndef _JIT_COMPILER2_PASSUSAGE
26 #define _JIT_COMPILER2_PASSUSAGE
77 template<
class PassName>
79 requires.insert(PassName::template ID<PassName>());
88 template<
class PassName>
90 destroys.insert(PassName::template ID<PassName>());
99 template<
class PassName>
101 modifies.insert(PassName::template ID<PassName>());
112 template<
class PassName>
114 run_before.insert(PassName::template ID<PassName>());
126 template<
class PassName>
142 template<
class PassName>
Pass superclass All compiler passes should inheritate this class.
void add_run_before()
Run before PassName.
const_iterator destroys_end() const
const_iterator requires_end() const
const_iterator schedule_after_end() const
bool is_required(const PassInfo::IDTy &ID) const
const_iterator modifies_end() const
std::unordered_set< Key, Hash, KeyEqual, Allocator< Key > > type
void add_schedule_before(PassInfo::IDTy id)
alloc::unordered_set< PassInfo::IDTy >::type PIIDSet
void add_schedule_after()
Schedule after PassName.
void add_schedule_before()
Schedule before PassName.
const_iterator schedule_after_begin() const
const_iterator schedule_before_end() const
const_iterator run_before_begin() const
Stores the interdependencies of a pass.
const_iterator schedule_before_begin() const
void add_modifies(PassInfo::IDTy id)
void add_requires(PassInfo::IDTy id)
void add_destroys()
PassName will be invalidated.
const_iterator destroys_begin() const
void add_run_before(PassInfo::IDTy id)
const_iterator run_before_end() const
PIIDSet::const_iterator const_iterator
void add_modifies()
PassName will be modified.
void add_destroys(PassInfo::IDTy id)
const_iterator requires_begin() const
void add_requires()
PassName is required.
void add_schedule_after(PassInfo::IDTy id)
const_iterator modifies_begin() const