summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-05-31 12:36:48 -0700
committerGitHub <noreply@github.com>2023-05-31 12:36:48 -0700
commit5dd401e416e18fdfe904a66284b0cf56cf256ec7 (patch)
tree78c18e41b683261138f1b6349a34057d145a3ae2 /source/slang/slang-emit.cpp
parent57f0ab410766374b155fa546c31812d593480048 (diff)
Fix div-by-zero error during sccp. (#2911)
* Diagnose on div-by-zero during sccp. * fix --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-emit.cpp')
-rw-r--r--source/slang/slang-emit.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/source/slang/slang-emit.cpp b/source/slang/slang-emit.cpp
index a96cb6908..f1ec402dd 100644
--- a/source/slang/slang-emit.cpp
+++ b/source/slang/slang-emit.cpp
@@ -324,7 +324,7 @@ Result linkAndOptimizeIR(
}
lowerOptionalType(irModule, sink);
- simplifyIR(irModule);
+ simplifyIR(irModule, sink);
switch (target)
{
@@ -450,7 +450,7 @@ Result linkAndOptimizeIR(
validateIRModuleIfEnabled(codeGenContext, irModule);
- simplifyIR(irModule);
+ simplifyIR(irModule, sink);
if (!ArtifactDescUtil::isCpuLikeTarget(artifactDesc))
{
@@ -483,7 +483,7 @@ Result linkAndOptimizeIR(
// up downstream passes like type legalization, so we
// will run a DCE pass to clean up after the specialization.
//
- simplifyIR(irModule);
+ simplifyIR(irModule, sink);
#if 0
dumpIRIfEnabled(codeGenContext, irModule, "AFTER DCE");
@@ -565,7 +565,7 @@ Result linkAndOptimizeIR(
// to see if we can clean up any temporaries created by legalization.
// (e.g., things that used to be aggregated might now be split up,
// so that we can work with the individual fields).
- simplifyIR(irModule);
+ simplifyIR(irModule, sink);
#if 0
dumpIRIfEnabled(codeGenContext, irModule, "AFTER SSA");
@@ -591,7 +591,7 @@ Result linkAndOptimizeIR(
{
specializeArrayParameters(codeGenContext, irModule);
}
- simplifyIR(irModule);
+ simplifyIR(irModule, sink);
// Rewrite functions that return arrays to return them via `out` parameter,
// since our target languages doesn't allow returning arrays.
@@ -835,7 +835,7 @@ Result linkAndOptimizeIR(
//
// We run IR simplification passes again to clean things up.
//
- simplifyIR(irModule);
+ simplifyIR(irModule, sink);
if (isKhronosTarget(targetRequest))
{
@@ -865,7 +865,7 @@ Result linkAndOptimizeIR(
// Lower all bit_cast operations on complex types into leaf-level
// bit_cast on basic types.
lowerBitCast(targetRequest, irModule);
- simplifyIR(irModule);
+ simplifyIR(irModule, sink);
eliminateMultiLevelBreak(irModule);