diff options
| author | Yong He <yonghe@outlook.com> | 2023-05-31 12:36:48 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-31 12:36:48 -0700 |
| commit | 5dd401e416e18fdfe904a66284b0cf56cf256ec7 (patch) | |
| tree | 78c18e41b683261138f1b6349a34057d145a3ae2 /source/slang/slang-emit.cpp | |
| parent | 57f0ab410766374b155fa546c31812d593480048 (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.cpp | 14 |
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); |
