Lines Matching full:pass
23 #include "pass.h"
28 class Pass;
39 * @brief PassDriver is the wrapper around all Pass instances in order to execute them
52 * @brief Insert a Pass: can warn if multiple passes have the same name.
54 void InsertPass(const Pass* new_pass) {
59 // It is an error to override an existing pass.
61 << "Pass name " << new_pass->GetName() << " already used.";
67 * @brief Run a pass using the name as key.
68 * @return whether the pass was applied.
71 // Paranoid: c_unit cannot be null and we need a pass name.
75 const Pass* cur_pass = GetPass(pass_name);
81 // Return false, we did not find the pass.
89 for (const Pass* cur_pass : pass_list_) {
95 * @brief Searches for a particular pass.
96 * @param the name of the pass to be searched for.
98 const Pass* GetPass(const char* name) const {
99 for (const Pass* cur_pass : pass_list_) {
108 * @brief Run a pass using the Pass itself.
110 * @return whether the pass was applied.
112 virtual bool RunPass(const Pass* pass, bool time_split = false) = 0;
118 virtual void ApplyPass(PassDataHolder* data, const Pass* pass) {
119 pass->Start(data);
120 DispatchPass(pass);
121 pass->End(data);
128 virtual void DispatchPass(const Pass* pass) {
129 UNUSED(pass);
134 std::vector<const Pass*> pass_list_;