diff options
Diffstat (limited to 'gcc/gimple-walker.hpp')
-rw-r--r-- | gcc/gimple-walker.hpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/gimple-walker.hpp b/gcc/gimple-walker.hpp new file mode 100644 index 00000000000..40d92257efe --- /dev/null +++ b/gcc/gimple-walker.hpp @@ -0,0 +1,27 @@ +#pragma once + +class GimpleWalker +{ +public: + GimpleWalker() {}; + void walk(cgraph_node *cnode); + +private: + + void walk(basic_block bb); + +#define GimpleWalkerFuncDecl(type) \ + virtual void _walk_pre(type *stmt) {}; \ + void walk(type *stmt); \ + void _walk(type *stmt); \ + virtual void _walk_post(type *stmt) {} + + GimpleWalkerFuncDecl(gimple); + GimpleWalkerFuncDecl(gassign); + GimpleWalkerFuncDecl(greturn); + GimpleWalkerFuncDecl(gcond); + GimpleWalkerFuncDecl(gcall); + GimpleWalkerFuncDecl(glabel); + GimpleWalkerFuncDecl(gswitch); +}; + |