diff options
Diffstat (limited to 'source/slang/slang-ir.cpp')
| -rw-r--r-- | source/slang/slang-ir.cpp | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/source/slang/slang-ir.cpp b/source/slang/slang-ir.cpp index a30445682..a8f42c326 100644 --- a/source/slang/slang-ir.cpp +++ b/source/slang/slang-ir.cpp @@ -10,9 +10,6 @@ namespace Slang { struct IRSpecContext; - - SLANG_COMPILE_TIME_ASSERT(kIROpCount < kIRPseudoOp_First); - IRInst* cloneGlobalValueWithLinkage( IRSpecContext* context, IRInst* originalVal, @@ -39,31 +36,14 @@ namespace Slang { kIROp_##ID, { #MNEMONIC, ARG_COUNT, FLAGS, } }, #include "slang-ir-inst-defs.h" - // Pseudo ops -#define INST(ID, MNEMONIC, ARG_COUNT, FLAGS) /* empty */ -#define PSEUDO_INST(ID) \ - { kIRPseudoOp_##ID, { #ID, 0, 0 } }, - - // First is 'invalid' + // Invalid op sentinel value comes after all the valid ones { kIROp_Invalid,{ "invalid", 0, 0 } }, - // Then all the other psuedo ops -#include "slang-ir-inst-defs.h" - }; IROpInfo getIROpInfo(IROp opIn) { - const int op = opIn & kIROpMeta_PseudoOpMask; - if ((op & kIROpMeta_IsPseudoOp) && op < kIRPseudoOp_LastPlusOne) - { - // It's a pseudo op - const int index = op - kIRPseudoOp_First; - // Pseudo ops start from kIROpcount - const auto& entry = kIROps[kIROpCount + index]; - SLANG_ASSERT(entry.op == op); - return entry.info; - } - else if (op < kIROpCount) + const int op = opIn & kIROpMeta_OpMask; + if (op < kIROpCount) { // It's a main op const auto& entry = kIROps[op]; @@ -4460,8 +4440,8 @@ namespace Slang return false; } - const IROp opA = IROp(a->op & kIROpMeta_PseudoOpMask); - const IROp opB = IROp(b->op & kIROpMeta_PseudoOpMask); + const IROp opA = IROp(a->op & kIROpMeta_OpMask); + const IROp opB = IROp(b->op & kIROpMeta_OpMask); if (opA != opB) { |
