aboutsummaryrefslogtreecommitdiff
path: root/tools/eliminator/safe-eliminator-test.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/eliminator/safe-eliminator-test.js')
-rw-r--r--tools/eliminator/safe-eliminator-test.js198
1 files changed, 99 insertions, 99 deletions
diff --git a/tools/eliminator/safe-eliminator-test.js b/tools/eliminator/safe-eliminator-test.js
index a181fb8a..d7bfdecc 100644
--- a/tools/eliminator/safe-eliminator-test.js
+++ b/tools/eliminator/safe-eliminator-test.js
@@ -1,103 +1,103 @@
function a($directory) {
- var $1 = _strlen($directory);
- var $p_0 = $directory + $1 | 0;
- chak($p_0);
- var $210 = HEAP32[100]; // heaps alias each other! so this cannot be eliminated
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $210;
- chak();
- var $210a = HEAP32[100]; // function calls can also modify memory
- something();
- HEAP32[90] = $210a;
- chak();
- var $a = $hack; // no mem use (just a global), so ok to eliminate
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $a;
- chak();
- var $bb = HEAP32[11]; // ok to eliminate
- var $b = ($bb+7)|0; // ok to eliminate by itself, but not with inlined $bb which is mem-using!
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $b;
- chak();
- var $bb2 = HEAP32[11];
- HEAP32[111] = 321;
- var $b2 = ($bb2+7)|0;
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $b2;
- chak();
- var $d = HEAP32[100]; // alias on next line, but that is where we are consumed - so ok.
- HEAP32[1e3] = $d;
- chak();
- var $e = func();
- HEAP32[1e3] = $e;
- chak();
- var $e2 = func();
- tor($e2);
- chak();
- var $e3 = HEAP[9];
- tor($e3);
- barrier(); // same stuff, but with a var on top and assigns as the first and only def
- var $$210, $$210a, $$a, $$bb, $$b, $$bb2, $$b2, $$d, $$e, $$e2, $$e3;
- $$210 = HEAP32[100]; // heaps alias each other! so this cannot be eliminated
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $$210;
- chak();
- $$210a = HEAP32[100]; // function calls can also modify memory
- something();
- HEAP32[90] = $$210a;
- chak();
- $$a = $$hack; // no mem use, so ok to eliminate
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $$a;
- chak();
- $$bb = HEAP32[11]; // ok to eliminate
- $$b = ($$bb+7)|0; // ok to eliminate by itself, but not with inlined $$bb which is mem-using!
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $$b;
- chak();
- $$bb2 = HEAP32[11];
- HEAP32[111] = 321;
- $$b2 = ($$bb2+7)|0;
- HEAP32[1e3] = HEAP32[5];
- HEAP32[90] = $$b2;
- chak();
- $$d = HEAP32[100]; // alias on next line, but that is where we are consumed - so ok.
- HEAP32[1e3] = $$d;
- chak();
- $$e = func();
- HEAP32[1e3] = $$e;
- chak();
- $$e2 = func();
- tor($$e2);
- chak();
- $$e3 = HEAP[9];
- tor($$e3);
- barrier();
- var $65, $image, $51$s2, $71;
- var $66 = HEAP32[$65 >> 2];
- var $71 = $66 - _int_ceildiv(HEAP32[$image >> 2], HEAP32[$51$s2]) | 0;
- HEAP32[$65 >> 2] = _int_ceildivpow2($71, HEAP32[$51$s2 + 10]);
- barr();
- var ONCE = sheep();
- while (ONCE) {
- work();
- }
- var ONCEb = 75;
- while (ONCEb) {
- work();
- }
- var $26 = __ZL3minIiET_S0_S0_12(4096, 4096 - $16 | 0); // cannot eliminate this because the call might modify FUNCTION_TABLE
- var $27 = FUNCTION_TABLE[$22]($18, $this + ($16 + 27) | 0, $26);
- print($27);
- chak();
- var zzz = 10;
- do {
- print(zzz);
- } while (0);
- var zzz1 = 10;
- do {
- print(zzz1);
- } while (1); // cannot eliminate a do-while that is not one-time
+ var $1 = _strlen($directory);
+ var $p_0 = $directory + $1 | 0;
+ chak($p_0);
+ var $210 = HEAP32[100]; // heaps alias each other! so this cannot be eliminated
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $210;
+ chak();
+ var $210a = HEAP32[100]; // function calls can also modify memory
+ something();
+ HEAP32[90] = $210a;
+ chak();
+ var $a = $hack; // no mem use (just a global), so ok to eliminate
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $a;
+ chak();
+ var $bb = HEAP32[11]; // ok to eliminate
+ var $b = ($bb+7)|0; // ok to eliminate by itself, but not with inlined $bb which is mem-using!
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $b;
+ chak();
+ var $bb2 = HEAP32[11];
+ HEAP32[111] = 321;
+ var $b2 = ($bb2+7)|0;
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $b2;
+ chak();
+ var $d = HEAP32[100]; // alias on next line, but that is where we are consumed - so ok.
+ HEAP32[1e3] = $d;
+ chak();
+ var $e = func();
+ HEAP32[1e3] = $e;
+ chak();
+ var $e2 = func();
+ tor($e2);
+ chak();
+ var $e3 = HEAP[9];
+ tor($e3);
+ barrier(); // same stuff, but with a var on top and assigns as the first and only def
+ var $$210, $$210a, $$a, $$bb, $$b, $$bb2, $$b2, $$d, $$e, $$e2, $$e3;
+ $$210 = HEAP32[100]; // heaps alias each other! so this cannot be eliminated
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $$210;
+ chak();
+ $$210a = HEAP32[100]; // function calls can also modify memory
+ something();
+ HEAP32[90] = $$210a;
+ chak();
+ $$a = $$hack; // no mem use, so ok to eliminate
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $$a;
+ chak();
+ $$bb = HEAP32[11]; // ok to eliminate
+ $$b = ($$bb+7)|0; // ok to eliminate by itself, but not with inlined $$bb which is mem-using!
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $$b;
+ chak();
+ $$bb2 = HEAP32[11];
+ HEAP32[111] = 321;
+ $$b2 = ($$bb2+7)|0;
+ HEAP32[1e3] = HEAP32[5];
+ HEAP32[90] = $$b2;
+ chak();
+ $$d = HEAP32[100]; // alias on next line, but that is where we are consumed - so ok.
+ HEAP32[1e3] = $$d;
+ chak();
+ $$e = func();
+ HEAP32[1e3] = $$e;
+ chak();
+ $$e2 = func();
+ tor($$e2);
+ chak();
+ $$e3 = HEAP[9];
+ tor($$e3);
+ barrier();
+ var $65, $image, $51$s2, $71;
+ var $66 = HEAP32[$65 >> 2];
+ var $71 = $66 - _int_ceildiv(HEAP32[$image >> 2], HEAP32[$51$s2]) | 0;
+ HEAP32[$65 >> 2] = _int_ceildivpow2($71, HEAP32[$51$s2 + 10]);
+ barr();
+ var ONCE = sheep();
+ while (ONCE) {
+ work();
+ }
+ var ONCEb = 75;
+ while (ONCEb) {
+ work();
+ }
+ var $26 = __ZL3minIiET_S0_S0_12(4096, 4096 - $16 | 0); // cannot eliminate this because the call might modify FUNCTION_TABLE
+ var $27 = FUNCTION_TABLE[$22]($18, $this + ($16 + 27) | 0, $26);
+ print($27);
+ chak();
+ var zzz = 10;
+ do {
+ print(zzz);
+ } while (0);
+ var zzz1 = 10;
+ do {
+ print(zzz1);
+ } while (1); // cannot eliminate a do-while that is not one-time
}
// EMSCRIPTEN_GENERATED_FUNCTIONS: ["a"]