diff options
| author | Yong He <yonghe@outlook.com> | 2020-10-22 23:44:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-22 23:44:11 -0700 |
| commit | 6d1fe29cdcbca18d559e302d6427a504d1762173 (patch) | |
| tree | c4f2539c4ad926f3a71ee4af5e13e28e3f7b9606 /source/slang/slang-ir-lower-generics.cpp | |
| parent | 10e1bae34733f1cdb5abc001666b1aafa1c1f406 (diff) | |
Generate `if` based dispatch logic on GPU targets. (#1585)
Diffstat (limited to 'source/slang/slang-ir-lower-generics.cpp')
| -rw-r--r-- | source/slang/slang-ir-lower-generics.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/slang/slang-ir-lower-generics.cpp b/source/slang/slang-ir-lower-generics.cpp index a9540a87a..4b86cff51 100644 --- a/source/slang/slang-ir-lower-generics.cpp +++ b/source/slang/slang-ir-lower-generics.cpp @@ -8,6 +8,7 @@ #include "slang-ir-lower-generic-function.h" #include "slang-ir-lower-generic-call.h" #include "slang-ir-lower-generic-type.h" +#include "slang-ir-specialize-dispatch.h" #include "slang-ir-witness-table-wrapper.h" #include "slang-ir-ssa.h" #include "slang-ir-dce.h" @@ -57,6 +58,15 @@ namespace Slang generateAnyValueMarshallingFunctions(&sharedContext); if (sink->getErrorCount() != 0) return; + + // On non-CPU targets, generate `if` based dispatch functions. + if (sharedContext.targetReq->getTarget() != CodeGenTarget::CPPSource) + { + specializeDispatchFunctions(&sharedContext); + if (sink->getErrorCount() != 0) + return; + } + // We might have generated new temporary variables during lowering. // An SSA pass can clean up unnecessary load/stores. constructSSA(module); |
