aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-03-01 16:02:37 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-03-01 16:02:37 -0800
commit3c71f36c40fe5f223428a00e6a2db53c6cf7815f (patch)
treebb74cb91e1131ee8450e1b3d2cc1b5b6c8700f7b
parent894fa8a25adf98d1788988750b6bef786ec4e994 (diff)
don't run optimizeShiftsAggressive without relooping, since it assumes non-switch structures
-rwxr-xr-xemcc4
1 files changed, 3 insertions, 1 deletions
diff --git a/emcc b/emcc
index 2a09b172..630c2504 100755
--- a/emcc
+++ b/emcc
@@ -771,7 +771,9 @@ try:
if DEBUG: save_intermediate('eliminator')
# js optimizer pre-pass
- js_optimizer_queue += ['simplifyExpressionsPre', 'optimizeShiftsAggressive']
+ js_optimizer_queue += ['simplifyExpressionsPre']
+ if shared.Settings.RELOOP:
+ js_optimizer_queue += ['optimizeShiftsAggressive'] # aggressive shifts optimization requires loops, it breaks on switches
flush_js_optimizer_queue()
final = shared.Building.eliminator(final) # aggressive shifts optimization introduces some new variables, remove ones that we can
if DEBUG: save_intermediate('eliminator')