diff options
author | alon@honor <none@none> | 2010-08-29 20:39:36 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-08-29 20:39:36 -0700 |
commit | 7a0103b77e09097aa73ee8e137d826e6049bd2ac (patch) | |
tree | 5d5fed852c7234cd1180993618f9640b4212778c /src | |
parent | c203d5c8e027a2cf0bea23540fc0edf93e4e37eb (diff) |
clean up segments from noalias etc.
Diffstat (limited to 'src')
-rw-r--r-- | src/enzymatic.js | 2 | ||||
-rw-r--r-- | src/parser.js | 13 | ||||
-rw-r--r-- | src/utility.js | 18 |
3 files changed, 27 insertions, 6 deletions
diff --git a/src/enzymatic.js b/src/enzymatic.js index 2ad8e165..6cd99bdf 100644 --- a/src/enzymatic.js +++ b/src/enzymatic.js @@ -28,7 +28,7 @@ Substrate.prototype = { }, solve: function() { - if (DEBUG) print("Solving..."); + print("// Solving " + this._name + "..."); var startTime = Date.now(); var midTime = startTime; diff --git a/src/parser.js b/src/parser.js index 7f25d2e5..2d61b1b3 100644 --- a/src/parser.js +++ b/src/parser.js @@ -199,7 +199,8 @@ function parseParamTokens(params) { var segment = params.slice(0, i); //print(' seg ' + JSON.stringify(segment)); params = params.slice(i+1); - if (segment[1].text === 'getelementptr' || segment[1].text === 'noalias') { + segment = cleanSegment(segment); + if (segment[1].text === 'getelementptr') { ret.push(parseGetElementPtr(segment)); } else if (segment[1].text === 'bitcast') { ret.push(parseBitcast(segment)); @@ -224,12 +225,18 @@ function parseParamTokens(params) { return ret; } -function parseGetElementPtr(segment) { - segment = segment.slice(0); +function cleanSegment(segment) { while (['noalias', 'sret', 'nocapture', 'nest', 'zeroext', 'signext'].indexOf(segment[1].text) != -1) { segment.splice(1, 1); } + return segment; +} + +function parseGetElementPtr(segment) { + segment = segment.slice(0); + segment = cleanSegment(segment); assertTrue(['inreg', 'byval'].indexOf(segment[1].text) == -1); + //dprint('// zz: ' + dump(segment) + '\n\n\n'); var ret = { intertype: 'getelementptr', type: segment[0], diff --git a/src/utility.js b/src/utility.js index 94a2132a..bcff0b65 100644 --- a/src/utility.js +++ b/src/utility.js @@ -1,7 +1,21 @@ function dump(item) { + function lineify(text) { + var ret = ''; + while (text.length > 0) { + if (text.length < 80) { + ret += text; + return ret; + } + var subText = text.substring(60, 80); + var index = 61+Math.max(subText.indexOf(','), subText.indexOf(']'), subText.indexOf('}'), 21); + ret += text.substr(0,index) + '\n'; + text = '// ' + text.substr(index); + } + } + try { - return JSON.stringify(item).substr(0,200); + return lineify(JSON.stringify(item)); } catch(e) { var ret = []; for (var i in item) { @@ -12,7 +26,7 @@ function dump(item) { ret.push(i + ': [?]'); } } - return ret.join(', ').substr(0,200); + return lineify(ret.join(', ')); } } |