diff options
Diffstat (limited to 'willow/lib/IR/Instruction.cpp')
| -rw-r--r-- | willow/lib/IR/Instruction.cpp | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/willow/lib/IR/Instruction.cpp b/willow/lib/IR/Instruction.cpp index a61cd55..587736d 100644 --- a/willow/lib/IR/Instruction.cpp +++ b/willow/lib/IR/Instruction.cpp @@ -1,3 +1,38 @@ #include <willow/IR/Instruction.h> -namespace willow {}; +namespace willow { + +bool Instruction::isTerminatorOp(Opcode op) { + using enum Opcode; + switch (op) { + case Jmp: + case Br: + case Call: + case Ret: + return true; + case Add: + case Mul: + case Sub: + case Div: + case Mod: + case Shl: + case Shr: + case Ashl: + case Ashr: + case Eq: + case Lt: + case Gt: + case Le: + case Ge: + case And: + case Or: + case Not: + case Phi: + case Alloca: + return false; + } +} + +Successors Instruction::succs(); + +}; // namespace willow |