aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-09-02 13:43:56 -0700
committerAlon Zakai <alonzakai@gmail.com>2011-09-02 13:43:56 -0700
commita6d1361de793ff3c2813011ce6e253982d7fd7f5 (patch)
treeca940034708a2d0a6a98a4ce3d6c07607dc0a365
parentf567a0bee4c6db7827291675271fd02e6842e529 (diff)
some metadata and label fixes
-rw-r--r--src/analyzer.js5
-rw-r--r--src/modules.js8
-rw-r--r--src/settings.js1
3 files changed, 8 insertions, 6 deletions
diff --git a/src/analyzer.js b/src/analyzer.js
index 3384bdea..6bee2da5 100644
--- a/src/analyzer.js
+++ b/src/analyzer.js
@@ -60,7 +60,7 @@ function analyzer(data) {
if (LLVM_STYLE == 'new' && item.items[i+1].intertype !== 'label') {
item.items.splice(i+1, 0, {
intertype: 'label',
- ident: '_entry',
+ ident: toNiceIdent('%0'),
lineNum: subItem.lineNum + '.5'
});
}
@@ -579,7 +579,7 @@ function analyzer(data) {
func.labelsDict[label.ident] = label;
func.labelIds[label.ident] = func.labelIdCounter++;
});
- func.labelIds[toNiceIdent('%entry')] = -1; // entry is always -1
+ func.labelIds[toNiceIdent('%0')] = -1; // entry is always -1
func.hasPhi = false;
func.hasIndirectBr = false;
@@ -591,6 +591,7 @@ function analyzer(data) {
var remarkableLabelId = line.value.params[i].label;
func.remarkableLabels.push(remarkableLabelId);
var remarkableLabel = func.labelsDict[remarkableLabelId];
+ assert(remarkableLabel);
var lastLine = remarkableLabel.lines.slice(-1)[0];
if (lastLine.value) {
lastLine.value.currLabelId = remarkableLabelId;
diff --git a/src/modules.js b/src/modules.js
index 5eb0479f..f431eb94 100644
--- a/src/modules.js
+++ b/src/modules.js
@@ -30,11 +30,11 @@ var Debugging = {
var form1 = new RegExp(/^ .*, !dbg !(\d+) *$/);
var form2 = new RegExp(/^ .*, !dbg !(\d+) *; .*$/);
var form3 = new RegExp(/^!(\d+) = metadata !{i32 (\d+), (?:i32 \d+|null), metadata !(\d+), .*}$/);
- var form3a = new RegExp(/^!(\d+) = metadata !{i32 \d+, metadata !\d+, (?:i32 \d+|null), (?:i32 \d+|null), metadata !(\d+), (?:i32 \d+|null)} ; \[ DW_TAG_lexical_block \]$/);
+ var form3a = new RegExp(/^!(\d+) = metadata !{i32 \d+, metadata !\d+, (?:i32 \d+|null), (?:i32 \d+|null), metadata !(\d+), (?:i32 \d+|null)}.*/);
var form3ab = new RegExp(/^!(\d+) = metadata !{i32 \d+, (?:i32 \d+|null), metadata !(\d+), .*$/);
var form3ac = new RegExp(/^!(\d+) = metadata !{i32 \d+, (?:metadata !\d+|null), metadata !"[^"]+", metadata !(\d+)[^\[]* ; \[ DW_TAG_.*$/);
var form3ad = new RegExp(/^!(\d+) = metadata !{i32 \d+, (?:i32 \d+|null), (?:i32 \d+|null), metadata !"[^"]*", metadata !"[^"]*", metadata !"[^"]*", metadata !(\d+),.*$/);
- var form3b = new RegExp(/^!(\d+) = metadata !{i32 \d+, metadata !"([^"]+)", metadata !"([^"]+)", (metadata !\d+|null)} ; \[ DW_TAG_file_type \]$/);
+ var form3b = new RegExp(/^!(\d+) = metadata !{i32 \d+, metadata !"([^"]+)", metadata !"([^"]+)", (metadata !\d+|null)}.*$/);
var form3c = new RegExp(/^!(\d+) = metadata !{\w+\d* !?(\d+)[^\d].*$/);
var form4 = new RegExp(/^!llvm.dbg.[\w\.]+ = .*$/);
var form5 = new RegExp(/^!(\d+) = metadata !{.*$/);
@@ -112,9 +112,9 @@ var Debugging = {
for (var l in llvmLineToMetadata) {
var m = llvmLineToMetadata[l];
this.llvmLineToSourceLine[l] = metadataToSourceLine[m];
- //dprint('starting to recurse metadata for: ' + m);
+ dprint('metadata', 'starting to recurse metadata for: ' + m);
while (!metadataToFilename[m]) {
- //dprint('recursing metadata, at: ' + m);
+ dprint('metadata', 'recursing metadata, at: ' + m);
m = metadataToParentMetadata[m];
assert(m, 'Confused as to parent metadata for llvm #' + l + ', metadata !' + m);
}
diff --git a/src/settings.js b/src/settings.js
index ab532e67..88887794 100644
--- a/src/settings.js
+++ b/src/settings.js
@@ -149,4 +149,5 @@ DEBUG_TAGS_SHOWING = [];
// vars
// relooping
// unparsedFunctions
+ // metadata