summaryrefslogtreecommitdiff
path: root/willow/lib/IR/Instruction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'willow/lib/IR/Instruction.cpp')
-rw-r--r--willow/lib/IR/Instruction.cpp37
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