aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-12-31 09:41:15 -0800
committerAlon Zakai <alonzakai@gmail.com>2011-12-31 09:41:15 -0800
commit0823d6c87d7dc424f680faa021caa68fec5bb120 (patch)
treec0d5360fa18f9b402e638a242d56096f9ba253b7 /tools
parent8f4be2eb565c5c612d065973f9eca6f47835efe5 (diff)
fix and enable optimizeShiftsAggressive test
Diffstat (limited to 'tools')
-rw-r--r--tools/test-js-optimizer-t2-output.js47
-rw-r--r--tools/test-js-optimizer-t2.js12
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));