25 #ifndef _JIT_COMPILER2_PASS
26 #define _JIT_COMPILER2_PASS
51 bool allowed_to_use_result(
char &
id)
const;
64 template<
class _PassClass>
66 if (!allowed_to_use_result(_PassClass::ID)) {
67 assert(0 &&
"Not allowed to get result (not declared in get_PassUsage())");
70 return pm->get_Pass_result<_PassClass>();
78 template<
class _PassClass>
80 if (!pm->result_ready[&_PassClass::ID])
82 return pm->get_Pass_result<_PassClass>();
113 virtual bool run(
JITData &JD) = 0;
121 virtual bool verify()
const {
return true; }
Pass superclass All compiler passes should inheritate this class.
void set_PassManager(PassManager *PM)
virtual PassUsage & get_PassUsage(PassUsage &PU) const
Set the requirements for the pass.
virtual void finalize()
Finalize the Pass.
_PassClass * get_Pass() const
Get the result of a previous compiler pass.
Stores the interdependencies of a pass.
Manage the execution of compiler passes.
virtual bool verify() const
Verify the Result.
virtual ~Pass()
Destructor.
_PassClass * get_Pass_if_available() const
Get the result of a previous compiler pass.
virtual void initialize()
Initialize the Pass.