
Public Member Functions | |
| const IR::Node * | postorder (IR::Add *expr) override |
| const IR::Node * | postorder (IR::ArrayIndex *expr) override |
| const IR::Node * | postorder (IR::BAnd *expr) override |
| const IR::Node * | postorder (IR::BOr *expr) override |
| const IR::Node * | postorder (IR::BXor *expr) override |
| const IR::Node * | postorder (IR::Cmpl *expr) override |
| const IR::Node * | postorder (IR::Concat *expr) override |
| const IR::Node * | postorder (IR::Div *expr) override |
| const IR::Node * | postorder (IR::Equ *expr) override |
| const IR::Node * | postorder (IR::LAnd *expr) override |
| const IR::Node * | postorder (IR::LNot *expr) override |
| const IR::Node * | postorder (IR::LOr *expr) override |
| const IR::Node * | postorder (IR::Mask *expr) override |
| const IR::Node * | postorder (IR::Mod *expr) override |
| const IR::Node * | postorder (IR::Mul *expr) override |
| const IR::Node * | postorder (IR::Mux *expr) override |
| const IR::Node * | postorder (IR::Neq *expr) override |
| const IR::Node * | postorder (IR::Range *expr) override |
| const IR::Node * | postorder (IR::Shl *expr) override |
| const IR::Node * | postorder (IR::Shr *expr) override |
| const IR::Node * | postorder (IR::Slice *expr) override |
| const IR::Node * | postorder (IR::Sub *expr) override |
| const IR::Node * | postorder (IR::UPlus *expr) override |
| const IR::BlockStatement * | preorder (IR::BlockStatement *bs) override |
Implements a pass that replaces expensive arithmetic and boolean operations with cheaper ones – i.e., strength reduction
Specifically, it provides:
0, 1, true, or false, or a power of 20