summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2020-11-10 14:55:36 -0800
committerGitHub <noreply@github.com>2020-11-10 14:55:36 -0800
commit7bcc2b15c8be4aebc6b9b8f05af6db7a451b228b (patch)
tree2b89d5deaa9992cdb8c6c1ff72a399a5176be802 /source/slang/slang-emit.cpp
parent1c4d768bc1b400ab40c10715df98d0b2122bcd66 (diff)
Use integer RTTI/witness handles in existential tuples. (#1598)
* Use integer RTTI/witness handles in existential tuples. * Fix clang error. * Fix IR serialization to use 16bits for opcode. * Undo accidental comment change. * Use variable length encoding for opcode. * Fix compile error. * Fixing issues * Fix code review issues.
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index fbddd2910..baa020b6d 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -664,18 +664,10 @@ Result linkAndOptimizeIR(
break;
}
- switch (target)
- {
- case CodeGenTarget::CPPSource:
- case CodeGenTarget::CUDASource:
- break;
- default:
- // For all targets that don't support true dynamic dispatch through
- // witness tables, we need to eliminate witness tables from the IR so
- // that they don't keep symbols live that we don't actually need.
- stripWitnessTables(irModule);
- break;
- }
+ // TODO: our current dynamic dispatch pass will remove all uses of witness tables.
+ // If we are going to support function-pointer based, "real" modular dynamic dispatch,
+ // we will need to disable this pass.
+ stripWitnessTables(irModule);
#if 0
dumpIRIfEnabled(compileRequest, irModule, "AFTER STRIP WITNESS TABLES");