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 } // EMSCRIPTEN_GENERATED_FUNCTIONS: ["a"]