diff options
author | alon@honor <none@none> | 2010-09-20 20:14:56 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-09-20 20:14:56 -0700 |
commit | ab582256db454b3ccab074058941311845746f8b (patch) | |
tree | d4cf0ed511bc3e4d1a635fcfa132b523f2d733e2 /src/analyzer.js | |
parent | fea809cb090c648f58f11561f7f25ce813d9944f (diff) |
optimize __lastLabel__/phi
Diffstat (limited to 'src/analyzer.js')
-rw-r--r-- | src/analyzer.js | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/analyzer.js b/src/analyzer.js index c9ccf82a..6daf9191 100644 --- a/src/analyzer.js +++ b/src/analyzer.js @@ -12,7 +12,6 @@ function cleanFunc(func) { } function analyzer(data) { -//print('zz analaz') substrate = new Substrate('Analyzer'); // Sorter @@ -261,6 +260,26 @@ function analyzer(data) { dprint('vars', '// var ' + vname + ': ' + JSON.stringify(variable)); } }); + this.forwardItem(item, 'LabelAnalyzer'); + }, + }); + + // Label analyzer + substrate.addZyme('LabelAnalyzer', { + processItem: function(item) { + item.functions.forEach(function(func) { + func.hasPhi = false; + func.remarkableLabels = []; + func.labels.forEach(function(label) { + label.lines.forEach(function(line) { + if (line.value && line.value.intertype == 'phi') { + func.remarkableLabels.push(toNiceIdent(line.value.label1)); + func.remarkableLabels.push(toNiceIdent(line.value.label2)); + func.hasPhi = true; + } + }); + }); + }); this.forwardItem(item, 'Relooper'); }, }); |