diff options
author | Alon Zakai <alonzakai@gmail.com> | 2011-11-18 14:34:54 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2011-11-18 14:34:54 -0800 |
commit | 42b3bb7206356f6543737696d3bbd75ebe2aad4f (patch) | |
tree | 6c5b3d2855f13f0084a3f972f029686c726bd1af /src/analyzer.js | |
parent | 7d95ee5784c4e1bd475aef46ebcdf4f4cac5cfbe (diff) |
phi progress, almost all unoptimized tests pass
Diffstat (limited to 'src/analyzer.js')
-rw-r--r-- | src/analyzer.js | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/analyzer.js b/src/analyzer.js index a3428250..c5d1d405 100644 --- a/src/analyzer.js +++ b/src/analyzer.js @@ -628,7 +628,7 @@ function analyzer(data) { var sourceLabelId = phi.params[i].label; var sourceLabel = func.labelsDict[sourceLabelId]; var lastLine = sourceLabel.lines.slice(-1)[0]; - assert(lastLine.intertype == 'branch', 'Only branches can lead to labels with phis'); + assert(lastLine.intertype == 'branch', 'Only branches can lead to labels with phis, line ' + [func.ident, label.ident]); lastLine.currLabelId = sourceLabelId; } phis.push(line); @@ -671,7 +671,7 @@ function analyzer(data) { var sourceLabelId = param.label; var sourceLabel = func.labelsDict[sourceLabelId]; var lastLine = sourceLabel.lines.slice(-1)[0]; - assert(lastLine.intertype == 'branch', 'Only branches can lead to labels with phis'); + assert(lastLine.intertype == 'branch', 'Only branches can lead to labels with phis, line ' + [func.ident, label.ident]); if (!lastLine.phi) { // We store the phi assignments in the branch's params (which are otherwise unused) lastLine.phi = true; @@ -681,7 +681,8 @@ function analyzer(data) { lastLine.params.push({ intertype: 'phiassign', ident: line.ident, - value: param.value + value: param.value, + targetLabel: label.ident }); } // The assign to phi is now just a var |