diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-12-31 09:41:15 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-12-31 09:41:15 -0800 |
commit | 0823d6c87d7dc424f680faa021caa68fec5bb120 (patch) | |
tree | c0d5360fa18f9b402e638a242d56096f9ba253b7 /tools | |
parent | 8f4be2eb565c5c612d065973f9eca6f47835efe5 (diff) |
fix and enable optimizeShiftsAggressive test
Diffstat (limited to 'tools')
-rw-r--r-- | tools/test-js-optimizer-t2-output.js | 47 | ||||
-rw-r--r-- | tools/test-js-optimizer-t2.js | 12 |
2 files changed, 29 insertions, 30 deletions
diff --git a/tools/test-js-optimizer-t2-output.js b/tools/test-js-optimizer-t2-output.js index 51e2af77..11806014 100644 --- a/tools/test-js-optimizer-t2-output.js +++ b/tools/test-js-optimizer-t2-output.js @@ -1,11 +1,12 @@ -function shifty($id) { +function shifty($id2) { var $tp$s2; var $parameters_addr$s2; var $wavelet38$s2; var _dwt_norms_real$s2; + var $a_addr$s2; var _idents$s2; var $id3$s3; - var $id2$s1; + var $id2$s1 = $id2 >> 1; q(HEAP32[$id >> 2]); q(HEAP32[$id + 40 >> 2]); q(HEAP32[$id + 80 >> 2]); @@ -17,9 +18,9 @@ function shifty($id) { $id = q(".."); q($id << _somethingElse_); pause(-1); - var $id2; - $id2 = get(54); - $id2$s1 = $id2 >> 1; + q(HEAP32[$id2$s1]); + q(HEAP32[$id2$s1]); + q(HEAP32[$id2$s1]); q(HEAP32[$id2$s1]); q(HEAP32[$id2$s1 + 20]); q(HEAP32[$id2$s1 + 40]); @@ -29,40 +30,38 @@ function shifty($id) { q(HEAP32[$id3$s3 + 10]); q($id3); pause(0); - var _idents = get("abc") >> 2; - q(HEAP32[HEAP32[_idents] + 8 >> 2]); - q(HEAP32[HEAP32[_idents] + 8 >> 2]); - q(HEAP32[HEAP32[_idents] + 8 >> 2]); + var _idents = get("abc"), _idents$s2 = _idents >> 2; + q(HEAP32[HEAP32[_idents$s2] + 8 >> 2]); + q(HEAP32[HEAP32[_idents$s2] + 8 >> 2]); + q(HEAP32[HEAP32[_idents$s2] + 8 >> 2]); pause(1); var $sn_addr = get(12), $a_addr = get(999), $a_addr$s2 = $a_addr >> 2; var $i = get(112233); q(HEAP32[($sn_addr - 1 << 1) + $a_addr$s2 + 1]); q(HEAP32[($i - 1 << 1) + $a_addr$s2 + 1]); - $a_addr = $a_addr + 4; - $a_addr$s2 = $a_addr >> 2; q(HEAP32[($i << 1) + $a_addr$s2]); q(HEAP32[$a_addr$s2 + $i]); q($a_addr$s2, z($a_addr$s2)); pause(2); var $level = HEAP[get(322) >> 2]; - var _dwt_norms_real = get("a") >> 2, $orient = get("cheez"); - q(HEAP32[($level << 1) + _dwt_norms_real + ($orient * 20 | 0)]); - q(HEAP32[($level << 1) + _dwt_norms_real + ($orient * 20 | 0) + 1]); - q(HEAP32[($level << 1) + _dwt_norms_real + ($orient * 20 | 0) + 2]); + var _dwt_norms_real = get("a"), _dwt_norms_real$s2 = _dwt_norms_real >> 2, $orient = get("cheez"); + q(HEAP32[($level << 1) + _dwt_norms_real$s2 + ($orient * 20 | 0)]); + q(HEAP32[($level << 1) + _dwt_norms_real$s2 + ($orient * 20 | 0) + 1]); + q(HEAP32[($level << 1) + _dwt_norms_real$s2 + ($orient * 20 | 0) + 2]); pause(3); - var $wavelet38 = get(38) >> 2; + var $wavelet38 = get(38), $wavelet38$s2 = $wavelet38 >> 2; $k = $a_addr; - q(HEAPF32[(HEAP32[$wavelet38] + 8 >> 2) + ($k << 2)]); - q(HEAPF32[(HEAP32[$wavelet38] + 12 >> 2) + ($k << 2)]); - q(HEAPF32[(HEAP32[$wavelet38] + 400 >> 2) + ($k << 2)]); + q(HEAPF32[HEAP32[$wavelet38$s2] + ($k << 4) + 8 >> 2]); + q(HEAPF32[HEAP32[$wavelet38$s2] + ($k << 4) + 12 >> 2]); + q(HEAPF32[HEAP32[$wavelet38$s2] + ($k << 4) + 400 >> 2]); pause(4); - var $p = $k, $parameters_addr = get("burger") >> 2; - q(HEAP32[$parameters_addr + $p + 1406]); - q(HEAP32[$parameters_addr + $p + 1411]); - q(HEAP32[$parameters_addr + $p + 1416]); + var $p = $k, $parameters_addr = get("burger"), $parameters_addr$s2 = $parameters_addr >> 2; + q(HEAP32[$parameters_addr$s2 + $p + 1406]); + q(HEAP32[$parameters_addr$s2 + $p + 1411]); + q(HEAP32[$parameters_addr$s2 + $p + 1416]); pause(5); var $res_spec242 = get($real), $cp = get("b"), $tileno = arguments[2]; - q(HEAP32[$parameters_addr + ($res_spec242 - 1) + 1406]); + q(HEAP32[$parameters_addr$s2 + ($res_spec242 - 1) + 1406]); q(HEAP32[(HEAP32[$cp + 108 >> 2] + 420 >> 2) + ($tileno * 1397 | 0)]); pause(6); q($idx << 3); diff --git a/tools/test-js-optimizer-t2.js b/tools/test-js-optimizer-t2.js index 9418c688..3bc7cea5 100644 --- a/tools/test-js-optimizer-t2.js +++ b/tools/test-js-optimizer-t2.js @@ -1,7 +1,7 @@ // TODO also with >> 1 and >> 3 // also HEAP*U*, and HEAP8, 16 -function shifty($id) { - // $id is a param, $id2 is a local. both should be replaced with a shifted version +function shifty($id2) { + // $id is a non-ssa, $id2 is a param. both should be replaced with a shifted version q(HEAP32[$id >> 2]); q(HEAP32[($id + 40) >> 2]); q(HEAP32[($id + 80 | 0) >> 2]); @@ -13,8 +13,9 @@ function shifty($id) { $id = q('..'); q($id << _somethingElse_); // non-fixed shift pause(-1); - var $id2; - $id2 = get(54); + q(HEAP32[$id2 >> 1]); + q(HEAP32[$id2 >> 1]); + q(HEAP32[$id2 >> 1]); q(HEAP32[$id2 >> 1]); q(HEAP32[($id2 + 40) >> 1]); q(HEAP32[($id2 + 80 | 0) >> 1]); @@ -30,13 +31,12 @@ function shifty($id) { q(HEAP32[(HEAP32[_idents >> 2] + 8 | 0) >> 2]); q(HEAP32[(HEAP32[_idents >> 2] + 8 | 0) >> 2]); pause(1); - // $a_addr is *not* ssa. $i's shifts should consolidate (the last should be 0..? + // $i's shifts should consolidate (the last should be 0..? // since we may have had |0 in the middle!) var $sn_addr = get(12), $a_addr = get(999); var $i = get(112233); q(HEAP32[($a_addr + ((($sn_addr - 1 << 1) + 1 | 0) << 2) | 0) >> 2]); q(HEAP32[($a_addr + ((($i - 1 << 1) + 1 | 0) << 2) | 0) >> 2]); - $a_addr = $a_addr + 4; q(HEAP32[($a_addr + (($i << 1 | 0) << 2) | 0) >> 2]); q(HEAP32[($a_addr + ($i << 2)) >> 2]); q($a_addr >> 2, z($a_addr >> 2)); |