on master help sign in
javascript: elim dead cases in a loop
commit33f8c837e56df182bcae2a6b455a478f5fab2aab authorraichoo <raichoo@googlemail.com> dateWed 29 Jan 2014, 11:12 (13 years ago) parent4c2a230
1 file changed+6−1
src/IRTS/CodegenJavaScript.hs+6−1
src/IRTS/CodegenJavaScript.hs+6−1
@@ -480,6 +480,11 @@ reduceJS js = reduceLoop [] ([], js)
480480funName :: JS -> String
481481funName (JSAlloc fun _) = fun
482482
483+elimDeadLoop :: [JS] -> [JS]
484+elimDeadLoop js
485+ | ret <- deadEvalApplyCases js
486+ , ret /= js = elimDeadLoop ret
487+ | otherwise = js
483488
484489deadEvalApplyCases :: [JS] -> [JS]
485490deadEvalApplyCases js =
@@ -942,7 +947,7 @@ codegenJavaScript target definitions filename outputType = do
942947 constRemoved = map reduceConstants reduced
943948 constrInit = initConstructors constRemoved
944949 removeAlloc = map removeAllocations constrInit
945− deadElim = deadEvalApplyCases removeAlloc
950+ deadElim = elimDeadLoop removeAlloc
946951 js = inlineFunctions deadElim in
947952 map compileJS js
948953