diff options
-rw-r--r-- | src/wasm/wasm-debug.cpp | 135 | ||||
-rw-r--r-- | test/passes/fannkuch3.bin.txt | 292 | ||||
-rw-r--r-- | test/passes/fannkuch3_manyopts.bin.txt | 204 | ||||
-rw-r--r-- | test/passes/fib2.bin.txt | 40 |
4 files changed, 356 insertions, 315 deletions
diff --git a/src/wasm/wasm-debug.cpp b/src/wasm/wasm-debug.cpp index 4181b06f2..e90dc6d48 100644 --- a/src/wasm/wasm-debug.cpp +++ b/src/wasm/wasm-debug.cpp @@ -473,12 +473,18 @@ struct LocationUpdater { AddrExprMap oldExprAddrMap; FuncAddrMap oldFuncAddrMap; + // Map offsets of location list entries in the debug_loc section to the index + // of their compile unit. + std::unordered_map<BinaryLocation, size_t> locToUnitMap; + // Map start of line tables in the debug_line section to their new locations. - std::map<BinaryLocation, BinaryLocation> debugLineMap; + std::unordered_map<BinaryLocation, BinaryLocation> debugLineMap; + + typedef std::pair<BinaryLocation, BinaryLocation> OldToNew; - // Map offset of location list entries in the debug_loc section to the base - // address of the compilation units referencing them. - std::map<BinaryLocation, BinaryLocation> debugLocToUnitMap; + // Map of compile unit index => old and new base offsets (i.e., in the + // original binary and in the new one). + std::unordered_map<size_t, OldToNew> compileUnitBases; // TODO: for memory efficiency, we may want to do this in a streaming manner, // binary to binary, without YAML IR. @@ -618,8 +624,14 @@ struct LocationUpdater { return debugLineMap.at(old); } - BinaryLocation getLocationBaseAddress(BinaryLocation offset) const { - return debugLocToUnitMap.at(offset); + // Given an offset in .debug_loc, get the old and new compile unit bases. + OldToNew getCompileUnitBasesForLoc(size_t offset) const { + auto index = locToUnitMap.at(offset); + auto iter = compileUnitBases.find(index); + if (iter != compileUnitBases.end()) { + return iter->second; + } + return OldToNew{0, 0}; } }; @@ -756,7 +768,7 @@ static void updateDIE(const llvm::DWARFDebugInfoEntry& DIE, llvm::DWARFYAML::Entry& yamlEntry, const llvm::DWARFAbbreviationDeclaration* abbrevDecl, LocationUpdater& locationUpdater, - BinaryLocation compilationUnitBaseAddress) { + size_t compileUnitIndex) { auto tag = DIE.getTag(); // Pairs of low/high_pc require some special handling, as the high // may be an offset relative to the low. First, process everything but @@ -776,8 +788,13 @@ static void updateDIE(const llvm::DWARFDebugInfoEntry& DIE, tag == llvm::dwarf::DW_TAG_lexical_block || tag == llvm::dwarf::DW_TAG_label) { newValue = locationUpdater.getNewExprStart(oldValue); - } else if (tag == llvm::dwarf::DW_TAG_compile_unit || - tag == llvm::dwarf::DW_TAG_subprogram) { + } else if (tag == llvm::dwarf::DW_TAG_compile_unit) { + newValue = locationUpdater.getNewFuncStart(oldValue); + // Per the DWARF spec, "The base address of a compile unit is + // defined as the value of the DW_AT_low_pc attribute, if present." + locationUpdater.compileUnitBases[compileUnitIndex] = + LocationUpdater::OldToNew{oldValue, newValue}; + } else if (tag == llvm::dwarf::DW_TAG_subprogram) { newValue = locationUpdater.getNewFuncStart(oldValue); } else { Fatal() << "unknown tag with low_pc " @@ -793,8 +810,7 @@ static void updateDIE(const llvm::DWARFDebugInfoEntry& DIE, } else if (attr == llvm::dwarf::DW_AT_location && attrSpec.Form == llvm::dwarf::DW_FORM_sec_offset) { BinaryLocation locOffset = yamlValue.Value; - locationUpdater.debugLocToUnitMap[locOffset] = - compilationUnitBaseAddress; + locationUpdater.locToUnitMap[locOffset] = compileUnitIndex; } }); // Next, process the high_pcs. @@ -838,6 +854,7 @@ static void updateCompileUnits(const BinaryenDWARFInfo& info, LocationUpdater& locationUpdater) { // The context has the high-level information we need, and the YAML is where // we write changes. First, iterate over the compile units. + size_t compileUnitIndex = 0; iterContextAndYAML( info.context->compile_units(), yaml.CompileUnits, @@ -854,15 +871,11 @@ static void updateCompileUnits(const BinaryenDWARFInfo& info, auto abbrevDecl = DIE.getAbbreviationDeclarationPtr(); if (abbrevDecl) { // This is relevant; look for things to update. - BinaryLocation compilationUnitBaseAddress = - CU->getBaseAddress() ? CU->getBaseAddress()->Address : 0; - updateDIE(DIE, - yamlEntry, - abbrevDecl, - locationUpdater, - compilationUnitBaseAddress); + updateDIE( + DIE, yamlEntry, abbrevDecl, locationUpdater, compileUnitIndex); } }); + compileUnitIndex++; }); } @@ -907,59 +920,87 @@ static void updateRanges(llvm::DWARFYAML::Data& yaml, // would indicate an end or a base in .debug_loc). static const BinaryLocation IGNOREABLE_LOCATION = 1; +static bool isNewBaseLoc(const llvm::DWARFYAML::Loc& loc) { + return loc.Start == BinaryLocation(-1); +} + +static bool isEndMarkerLoc(const llvm::DWARFYAML::Loc& loc) { + return loc.Start == 0 && loc.End == 0; +} + // Update the .debug_loc section. static void updateLoc(llvm::DWARFYAML::Data& yaml, const LocationUpdater& locationUpdater) { // Similar to ranges, try to update the start and end. Note that here we // can't skip since the location description is a variable number of bytes, // so we mark no longer valid addresses as empty. - // Locations have an optional base. bool atStart = true; - BinaryLocation base = 0; - for (size_t i = 0; i < yaml.Locs.size(); i++) { - auto& loc = yaml.Locs[i]; + // We need to keep positions in the .debug_loc section identical to before + // (or else we'd need to update their positions too) and so we need to keep + // base entries around (a base entry is added to every entry after it in the + // list). However, we may change the base's value as after moving instructions + // around the old base may not be smaller than all the values relative to it. + BinaryLocation oldBase, newBase; + auto& locs = yaml.Locs; + for (size_t i = 0; i < locs.size(); i++) { + auto& loc = locs[i]; if (atStart) { - base = locationUpdater.getLocationBaseAddress(loc.CompileUnitOffset); + std::tie(oldBase, newBase) = + locationUpdater.getCompileUnitBasesForLoc(loc.CompileUnitOffset); atStart = false; } + // By default we copy values over, unless we modify them below. BinaryLocation newStart = loc.Start, newEnd = loc.End; - if (newStart == BinaryLocation(-1)) { + if (isNewBaseLoc(loc)) { // This is a new base. // Note that the base is not the address of an instruction, necessarily - // it's just a number (seems like it could always be an instruction, but // that's not what LLVM emits). - base = newEnd; - } else if (newStart == 0 && newEnd == 0) { - // This is an end marker, this list is done. - base = 0; + // We must look forward at everything relative to this base, so that we + // can emit a new proper base (as mentioned earlier, the original base may + // not be valid if instructions moved to a position before it - they must + // be positive offsets from it). + oldBase = newBase = newEnd; + BinaryLocation smallest = -1; + for (size_t j = i + 1; j < locs.size(); j++) { + auto& futureLoc = locs[j]; + if (isNewBaseLoc(futureLoc) || isEndMarkerLoc(futureLoc)) { + break; + } + auto updatedStart = + locationUpdater.getNewStart(futureLoc.Start + oldBase); + // If we found a valid mapping, this is a relevant value for us. If the + // optimizer removed it, it's a 0, and we can ignore it here - we will + // emit IGNOREABLE_LOCATION for it later anyhow. + if (updatedStart != 0) { + smallest = std::min(smallest, updatedStart); + } + } + // If we found no valid values that will be relativized here, just use 0 + // as the new (never-to-be-used) base, which is less confusing (otherwise + // the value looks like it means something). + if (smallest == BinaryLocation(-1)) { + smallest = 0; + } + newBase = newEnd = smallest; + } else if (isEndMarkerLoc(loc)) { + // This is an end marker, this list is done; reset the base. atStart = true; } else { // This is a normal entry, try to find what it should be updated to. First // de-relativize it to the base to get the absolute address, then look for // a new address for it. - newStart = locationUpdater.getNewStart(loc.Start + base); - newEnd = locationUpdater.getNewEnd(loc.End + base); + newStart = locationUpdater.getNewStart(loc.Start + oldBase); + newEnd = locationUpdater.getNewEnd(loc.End + oldBase); if (newStart == 0 || newEnd == 0) { // This part of the loc no longer has a mapping, so we must ignore it. newStart = newEnd = IGNOREABLE_LOCATION; } else { - // See if we can relativize it against the base. If things moved around - // so that the base is no longer before the start or the end, then we - // must skip this. That is, if we had something like - // - // [base] [start] [end] - // - // (where the X axis is the offset) and transforms led to - // - // [start] [base] [end] - // - // or such, then give up TODO: perhaps remap with a new base? - if (newStart >= base && newEnd >= base) { - newStart -= base; - newEnd -= base; - } else { - newStart = newEnd = IGNOREABLE_LOCATION; - } + // We picked a new base that ensures it is smaller than the values we + // will relativize to it. + assert(newStart >= newBase && newEnd >= newBase); + newStart -= newBase; + newEnd -= newBase; } // The loc start and end markers have been preserved. However, TODO // instructions in the middle may have moved around, making the loc no diff --git a/test/passes/fannkuch3.bin.txt b/test/passes/fannkuch3.bin.txt index a0989808d..5c2a86d8e 100644 --- a/test/passes/fannkuch3.bin.txt +++ b/test/passes/fannkuch3.bin.txt @@ -2567,16 +2567,16 @@ Abbrev table for offset: 0x00000000 0x000000c3: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x0000001d: - [0xffffffff, 0x00000006): - [0x00000007, 0x00000030): DW_OP_consts +0, DW_OP_stack_value - [0x00000046, 0x0000004b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x000000dc, 0x000000e5): DW_OP_consts +1, DW_OP_stack_value - [0x00000121, 0x0000012b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000169, 0x00000176): DW_OP_consts +0, DW_OP_stack_value - [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value - [0x00000269, 0x00000272): DW_OP_consts +1, DW_OP_stack_value - [0x000002ae, 0x000002b8): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x000002f6, 0x00000303): DW_OP_consts +0, DW_OP_stack_value) + [0xffffffff, 0x0000000d): + [0x00000000, 0x00000029): DW_OP_consts +0, DW_OP_stack_value + [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x000000d5, 0x000000de): DW_OP_consts +1, DW_OP_stack_value + [0x0000011a, 0x00000124): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000162, 0x0000016f): DW_OP_consts +0, DW_OP_stack_value + [0x00000251, 0x0000025c): DW_OP_consts +0, DW_OP_stack_value + [0x00000262, 0x0000026b): DW_OP_consts +1, DW_OP_stack_value + [0x000002a7, 0x000002b1): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x000002ef, 0x000002fc): DW_OP_consts +0, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000d6] = "i") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2584,8 +2584,8 @@ Abbrev table for offset: 0x00000000 0x000000d2: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000a5: - [0xffffffff, 0x00000006): - [0x0000000e, 0x00000030): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value) + [0xffffffff, 0x00000014): + [0x00000000, 0x00000022): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2593,8 +2593,8 @@ Abbrev table for offset: 0x00000000 0x000000e1: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000c3: - [0xffffffff, 0x00000006): - [0x00000017, 0x00000030): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) + [0xffffffff, 0x0000001d): + [0x00000000, 0x00000019): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000013e] = "perm1") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (29) @@ -2602,8 +2602,8 @@ Abbrev table for offset: 0x00000000 0x000000f0: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000e1: - [0xffffffff, 0x00000006): - [0x0000001d, 0x00000030): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value) + [0xffffffff, 0x00000023): + [0x00000000, 0x00000013): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000196] = "perm") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (29) @@ -2611,8 +2611,8 @@ Abbrev table for offset: 0x00000000 0x000000ff: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000ff: - [0xffffffff, 0x00000006): - [0x00000023, 0x00000030): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) + [0xffffffff, 0x00000029): + [0x00000000, 0x0000000d): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000144] = "count") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (29) @@ -2620,9 +2620,9 @@ Abbrev table for offset: 0x00000000 0x0000010e: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x0000011d: - [0xffffffff, 0x00000006): - [0x000001d2, 0x000001d7): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value - [0x0000035f, 0x00000364): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value) + [0xffffffff, 0x000001d8): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value + [0x0000018d, 0x00000192): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000014a] = "r") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2630,13 +2630,13 @@ Abbrev table for offset: 0x00000000 0x0000011d: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x00000149: - [0xffffffff, 0x00000006): - [0x000000c3, 0x000000d6): DW_OP_consts +0, DW_OP_stack_value - [0x000000dc, 0x000000e5): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value - [0x0000014a, 0x00000152): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value - [0x00000269, 0x00000272): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value - [0x000002d7, 0x000002df): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) + [0xffffffff, 0x000000c9): + [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value + [0x00000019, 0x00000022): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value + [0x00000087, 0x0000008f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000195, 0x000001a0): DW_OP_consts +0, DW_OP_stack_value + [0x000001a6, 0x000001af): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value + [0x00000214, 0x0000021c): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000155] = "flips") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2644,9 +2644,9 @@ Abbrev table for offset: 0x00000000 0x0000012c: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000001ab: - [0xffffffff, 0x00000006): - [0x000000d2, 0x000000d6): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value - [0x0000025f, 0x00000263): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value) + [0xffffffff, 0x000000d8): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value + [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019b] = "k") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2654,11 +2654,11 @@ Abbrev table for offset: 0x00000000 0x0000013b: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000001d7: - [0xffffffff, 0x00000006): - [0x000000ec, 0x000000f0): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000128, 0x0000012b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000279, 0x0000027d): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x000002b5, 0x000002b8): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x000000f2): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x000001c9, 0x000001cc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019d] = "j") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2666,11 +2666,11 @@ Abbrev table for offset: 0x00000000 0x0000014a: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x0000021f: - [0xffffffff, 0x00000006): - [0x00000101, 0x0000012b): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value - [0x0000013c, 0x00000152): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x0000028e, 0x000002b8): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value - [0x000002c9, 0x000002df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x00000107): + [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value + [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000018d, 0x000001b7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value + [0x000001c8, 0x000001de): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019f] = "tmp") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2841,8 +2841,8 @@ Abbrev table for offset: 0x00000000 0x00000269: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x00000267: - [0xffffffff, 0x0000039f): - [0x00000012, 0x00000017): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) + [0xffffffff, 0x000003b1): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (153) @@ -2861,29 +2861,29 @@ Abbrev table for offset: 0x00000000 0x0000028d: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000285: - [0xffffffff, 0x0000039f): - [0x00000025, 0x0000002e): DW_OP_consts +30, DW_OP_stack_value) + [0xffffffff, 0x000003c4): + [0x00000000, 0x00000009): DW_OP_consts +30, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01c3 => {0x000001c3} "showmax") 0x00000296: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000002a2: - [0xffffffff, 0x0000039f): - [0x00000025, 0x0000002e): DW_OP_lit0, DW_OP_stack_value - [0x000002ac, 0x000002c4): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) + [0xffffffff, 0x000003c4): + [0x00000000, 0x00000009): DW_OP_lit0, DW_OP_stack_value + [0x00000287, 0x0000029f): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ce => {0x000001ce} "args") 0x0000029f: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000002cc: - [0xffffffff, 0x0000039f): - [0x00000025, 0x0000002e): DW_OP_consts +0, DW_OP_stack_value - [0x00000063, 0x00000068): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x0000006e, 0x0000008e): DW_OP_consts +0, DW_OP_stack_value - [0x000000a4, 0x000000a9): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x000000c2, 0x000000c6): DW_OP_consts +0, DW_OP_stack_value - [0x000000ed, 0x000000f2): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x0000013a, 0x0000014a): DW_OP_consts +0, DW_OP_stack_value - [0x000001be, 0x000001cc): DW_OP_consts +0, DW_OP_stack_value - [0x00000201, 0x00000215): DW_OP_consts +0, DW_OP_stack_value) + [0xffffffff, 0x000003c4): + [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value + [0x0000003e, 0x00000043): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000049, 0x00000069): DW_OP_consts +0, DW_OP_stack_value + [0x0000007f, 0x00000084): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000009d, 0x000000a1): DW_OP_consts +0, DW_OP_stack_value + [0x000000c8, 0x000000cd): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000115, 0x00000125): DW_OP_consts +0, DW_OP_stack_value + [0x00000199, 0x000001a7): DW_OP_consts +0, DW_OP_stack_value + [0x000001dc, 0x000001f0): DW_OP_consts +0, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01d9 => {0x000001d9} "i") 0x000002a8: DW_TAG_variable [27] @@ -2891,34 +2891,34 @@ Abbrev table for offset: 0x00000000 0x000002ad: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000354: - [0xffffffff, 0x0000039f): - [0x00000079, 0x0000008e): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x00000418): + [0x00000000, 0x00000015): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ef => {0x000001ef} "perm1") 0x000002b6: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000372: - [0xffffffff, 0x0000039f): - [0x0000007f, 0x0000008e): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value) + [0xffffffff, 0x0000041e): + [0x00000000, 0x0000000f): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01fa => {0x000001fa} "count") 0x000002bf: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000390: - [0xffffffff, 0x0000039f): - [0x000001a8, 0x000001af): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value - [0x00000273, 0x0000027a): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) + [0xffffffff, 0x00000547): + [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0x000000cb, 0x000000d2): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0205 => {0x00000205} "r") 0x000002c8: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000003e8: - [0xffffffff, 0x0000039f): - [0x0000028e, 0x00000299): DW_OP_consts +0, DW_OP_stack_value - [0x000002bc, 0x000002c4): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) + [0xffffffff, 0x0000062d): + [0x00000000, 0x0000000b): DW_OP_consts +0, DW_OP_stack_value + [0x0000002e, 0x00000036): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0210 => {0x00000210} "maxflips") 0x000002d1: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000413: - [0xffffffff, 0x0000039f): - [0x000002a5, 0x000002c4): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x00000644): + [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x021b => {0x0000021b} "flips") 0x000002da: DW_TAG_label [28] @@ -2932,9 +2932,9 @@ Abbrev table for offset: 0x00000000 0x000002e8: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000003bc: - [0xffffffff, 0x0000039f): - [0x00000141, 0x0000014a): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value - [0x00000208, 0x00000215): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value) + [0xffffffff, 0x000004e0): + [0x00000000, 0x00000009): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value + [0x000000c7, 0x000000d4): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x022e => {0x0000022e} "p0") 0x000002f1: NULL @@ -3004,117 +3004,117 @@ Abbrev table for offset: 0x00000000 [0x00000000, 0x00000030): DW_OP_consts +0, DW_OP_stack_value 0x0000001d: - [0xffffffff, 0x00000006): - [0x00000007, 0x00000030): DW_OP_consts +0, DW_OP_stack_value - [0x00000046, 0x0000004b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x000000dc, 0x000000e5): DW_OP_consts +1, DW_OP_stack_value - [0x00000121, 0x0000012b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000169, 0x00000176): DW_OP_consts +0, DW_OP_stack_value - [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value - [0x00000269, 0x00000272): DW_OP_consts +1, DW_OP_stack_value - [0x000002ae, 0x000002b8): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x000002f6, 0x00000303): DW_OP_consts +0, DW_OP_stack_value + [0xffffffff, 0x0000000d): + [0x00000000, 0x00000029): DW_OP_consts +0, DW_OP_stack_value + [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x000000d5, 0x000000de): DW_OP_consts +1, DW_OP_stack_value + [0x0000011a, 0x00000124): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000162, 0x0000016f): DW_OP_consts +0, DW_OP_stack_value + [0x00000251, 0x0000025c): DW_OP_consts +0, DW_OP_stack_value + [0x00000262, 0x0000026b): DW_OP_consts +1, DW_OP_stack_value + [0x000002a7, 0x000002b1): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x000002ef, 0x000002fc): DW_OP_consts +0, DW_OP_stack_value 0x000000a5: - [0xffffffff, 0x00000006): - [0x0000000e, 0x00000030): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value + [0xffffffff, 0x00000014): + [0x00000000, 0x00000022): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value 0x000000c3: - [0xffffffff, 0x00000006): - [0x00000017, 0x00000030): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value + [0xffffffff, 0x0000001d): + [0x00000000, 0x00000019): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value 0x000000e1: - [0xffffffff, 0x00000006): - [0x0000001d, 0x00000030): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value + [0xffffffff, 0x00000023): + [0x00000000, 0x00000013): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value 0x000000ff: - [0xffffffff, 0x00000006): - [0x00000023, 0x00000030): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0xffffffff, 0x00000029): + [0x00000000, 0x0000000d): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value 0x0000011d: - [0xffffffff, 0x00000006): - [0x000001d2, 0x000001d7): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value - [0x0000035f, 0x00000364): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value + [0xffffffff, 0x000001d8): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value + [0x0000018d, 0x00000192): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value 0x00000149: - [0xffffffff, 0x00000006): - [0x000000c3, 0x000000d6): DW_OP_consts +0, DW_OP_stack_value - [0x000000dc, 0x000000e5): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value - [0x0000014a, 0x00000152): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value - [0x00000269, 0x00000272): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value - [0x000002d7, 0x000002df): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0xffffffff, 0x000000c9): + [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value + [0x00000019, 0x00000022): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value + [0x00000087, 0x0000008f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000195, 0x000001a0): DW_OP_consts +0, DW_OP_stack_value + [0x000001a6, 0x000001af): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value + [0x00000214, 0x0000021c): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value 0x000001ab: - [0xffffffff, 0x00000006): - [0x000000d2, 0x000000d6): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value - [0x0000025f, 0x00000263): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value + [0xffffffff, 0x000000d8): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value + [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value 0x000001d7: - [0xffffffff, 0x00000006): - [0x000000ec, 0x000000f0): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000128, 0x0000012b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000279, 0x0000027d): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x000002b5, 0x000002b8): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x000000f2): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x000001c9, 0x000001cc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value 0x0000021f: - [0xffffffff, 0x00000006): - [0x00000101, 0x0000012b): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value - [0x0000013c, 0x00000152): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x0000028e, 0x000002b8): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value - [0x000002c9, 0x000002df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x00000107): + [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value + [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000018d, 0x000001b7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value + [0x000001c8, 0x000001de): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value 0x00000267: - [0xffffffff, 0x0000039f): - [0x00000012, 0x00000017): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value + [0xffffffff, 0x000003b1): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value 0x00000285: - [0xffffffff, 0x0000039f): - [0x00000025, 0x0000002e): DW_OP_consts +30, DW_OP_stack_value + [0xffffffff, 0x000003c4): + [0x00000000, 0x00000009): DW_OP_consts +30, DW_OP_stack_value 0x000002a2: - [0xffffffff, 0x0000039f): - [0x00000025, 0x0000002e): DW_OP_lit0, DW_OP_stack_value - [0x000002ac, 0x000002c4): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0xffffffff, 0x000003c4): + [0x00000000, 0x00000009): DW_OP_lit0, DW_OP_stack_value + [0x00000287, 0x0000029f): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value 0x000002cc: - [0xffffffff, 0x0000039f): - [0x00000025, 0x0000002e): DW_OP_consts +0, DW_OP_stack_value - [0x00000063, 0x00000068): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x0000006e, 0x0000008e): DW_OP_consts +0, DW_OP_stack_value - [0x000000a4, 0x000000a9): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x000000c2, 0x000000c6): DW_OP_consts +0, DW_OP_stack_value - [0x000000ed, 0x000000f2): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x0000013a, 0x0000014a): DW_OP_consts +0, DW_OP_stack_value - [0x000001be, 0x000001cc): DW_OP_consts +0, DW_OP_stack_value - [0x00000201, 0x00000215): DW_OP_consts +0, DW_OP_stack_value + [0xffffffff, 0x000003c4): + [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value + [0x0000003e, 0x00000043): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000049, 0x00000069): DW_OP_consts +0, DW_OP_stack_value + [0x0000007f, 0x00000084): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000009d, 0x000000a1): DW_OP_consts +0, DW_OP_stack_value + [0x000000c8, 0x000000cd): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000115, 0x00000125): DW_OP_consts +0, DW_OP_stack_value + [0x00000199, 0x000001a7): DW_OP_consts +0, DW_OP_stack_value + [0x000001dc, 0x000001f0): DW_OP_consts +0, DW_OP_stack_value 0x00000354: - [0xffffffff, 0x0000039f): - [0x00000079, 0x0000008e): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x00000418): + [0x00000000, 0x00000015): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value 0x00000372: - [0xffffffff, 0x0000039f): - [0x0000007f, 0x0000008e): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value + [0xffffffff, 0x0000041e): + [0x00000000, 0x0000000f): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value 0x00000390: - [0xffffffff, 0x0000039f): - [0x000001a8, 0x000001af): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value - [0x00000273, 0x0000027a): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0xffffffff, 0x00000547): + [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0x000000cb, 0x000000d2): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value 0x000003bc: - [0xffffffff, 0x0000039f): - [0x00000141, 0x0000014a): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value - [0x00000208, 0x00000215): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value + [0xffffffff, 0x000004e0): + [0x00000000, 0x00000009): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value + [0x000000c7, 0x000000d4): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value 0x000003e8: - [0xffffffff, 0x0000039f): - [0x0000028e, 0x00000299): DW_OP_consts +0, DW_OP_stack_value - [0x000002bc, 0x000002c4): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0xffffffff, 0x0000062d): + [0x00000000, 0x0000000b): DW_OP_consts +0, DW_OP_stack_value + [0x0000002e, 0x00000036): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value 0x00000413: - [0xffffffff, 0x0000039f): - [0x000002a5, 0x000002c4): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x00000644): + [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value .debug_line contents: debug_line[0x00000000] diff --git a/test/passes/fannkuch3_manyopts.bin.txt b/test/passes/fannkuch3_manyopts.bin.txt index 627fccd30..db8eb4dce 100644 --- a/test/passes/fannkuch3_manyopts.bin.txt +++ b/test/passes/fannkuch3_manyopts.bin.txt @@ -2558,7 +2558,7 @@ Abbrev table for offset: 0x00000000 0x000000b4: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x00000000: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000007): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000014c] = "maxflips") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") @@ -2567,15 +2567,15 @@ Abbrev table for offset: 0x00000000 0x000000c3: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x0000001d: - [0xffffffff, 0x00000006): + [0xffffffff, 0x0000000a): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000041, 0x00000046): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000003d, 0x00000042): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value - [0x00000110, 0x0000011a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000010c, 0x00000116): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value + [0x00000235, 0x00000240): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value - [0x0000028d, 0x00000297): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000289, 0x00000293): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000d6] = "i") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") @@ -2584,7 +2584,7 @@ Abbrev table for offset: 0x00000000 0x000000d2: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000a5: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000011): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") @@ -2593,7 +2593,7 @@ Abbrev table for offset: 0x00000000 0x000000e1: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000c3: - [0xffffffff, 0x00000006): + [0xffffffff, 0x0000001a): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000013e] = "perm1") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") @@ -2602,7 +2602,7 @@ Abbrev table for offset: 0x00000000 0x000000f0: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000e1: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000020): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000196] = "perm") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") @@ -2611,7 +2611,7 @@ Abbrev table for offset: 0x00000000 0x000000ff: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000000ff: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000026): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000144] = "count") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") @@ -2620,9 +2620,9 @@ Abbrev table for offset: 0x00000000 0x0000010e: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x0000011d: - [0xffffffff, 0x00000006): - [0x000001bf, 0x000001c4): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value - [0x0000033c, 0x00000341): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value) + [0xffffffff, 0x000001c5): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value + [0x0000017d, 0x00000182): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000014a] = "r") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2630,13 +2630,13 @@ Abbrev table for offset: 0x00000000 0x0000011d: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x00000149: - [0xffffffff, 0x00000006): - [0x000000b4, 0x000000c7): DW_OP_consts +0, DW_OP_stack_value + [0xffffffff, 0x000000ba): + [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value - [0x00000139, 0x00000141): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value + [0x00000085, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000185, 0x00000190): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value - [0x000002b6, 0x000002be): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) + [0x00000202, 0x0000020a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000155] = "flips") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2644,9 +2644,9 @@ Abbrev table for offset: 0x00000000 0x0000012c: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000001ab: - [0xffffffff, 0x00000006): - [0x000000c3, 0x000000c7): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value - [0x00000240, 0x00000244): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value) + [0xffffffff, 0x000000c9): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value + [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019b] = "k") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2654,11 +2654,11 @@ Abbrev table for offset: 0x00000000 0x0000013b: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x000001d7: - [0xffffffff, 0x00000006): - [0x000000db, 0x000000df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000117, 0x0000011a): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000258, 0x0000025c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000294, 0x00000297): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x000000e1): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x000001b9, 0x000001bc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019d] = "j") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2666,11 +2666,11 @@ Abbrev table for offset: 0x00000000 0x0000014a: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x0000021f: - [0xffffffff, 0x00000006): - [0x000000f0, 0x0000011a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value - [0x0000012b, 0x00000141): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x0000026d, 0x00000297): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value - [0x000002a8, 0x000002be): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x000000f6): + [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value + [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000017d, 0x000001a7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value + [0x000001b8, 0x000001ce): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019f] = "tmp") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (30) @@ -2841,8 +2841,8 @@ Abbrev table for offset: 0x00000000 0x00000269: DW_TAG_variable [13] DW_AT_location [DW_FORM_sec_offset] (0x00000267: - [0xffffffff, 0x0000039f): - [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) + [0xffffffff, 0x00000386): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp") DW_AT_decl_line [DW_FORM_data1] (153) @@ -2861,26 +2861,26 @@ Abbrev table for offset: 0x00000000 0x0000028d: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000285: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x00000000): [0x00000001, 0x00000001): DW_OP_consts +30, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01c3 => {0x000001c3} "showmax") 0x00000296: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000002a2: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000005fe): [0x00000001, 0x00000001): DW_OP_lit0, DW_OP_stack_value - [0x0000025f, 0x00000277): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) + [0x00000000, 0x00000018): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ce => {0x000001ce} "args") 0x0000029f: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000002cc: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000003d5): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000036, 0x0000003b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000075, 0x0000007a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000093, 0x00000097): DW_OP_consts +0, DW_OP_stack_value - [0x000000be, 0x000000c3): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000005d, 0x00000061): DW_OP_consts +0, DW_OP_stack_value + [0x00000088, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value) @@ -2891,34 +2891,34 @@ Abbrev table for offset: 0x00000000 0x000002ad: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000354: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000003eb): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ef => {0x000001ef} "perm1") 0x000002b6: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000372: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000003f1): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01fa => {0x000001fa} "count") 0x000002bf: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000390: - [0xffffffff, 0x0000039f): - [0x0000016f, 0x00000176): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value - [0x0000022d, 0x00000234): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) + [0xffffffff, 0x0000050e): + [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0x000000be, 0x000000c5): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0205 => {0x00000205} "r") 0x000002c8: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000003e8: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000005e7): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x0000026f, 0x00000277): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) + [0x00000027, 0x0000002f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0210 => {0x00000210} "maxflips") 0x000002d1: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x00000413: - [0xffffffff, 0x0000039f): - [0x00000258, 0x00000277): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x000005f7): + [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x021b => {0x0000021b} "flips") 0x000002da: DW_TAG_label [28] @@ -2932,7 +2932,7 @@ Abbrev table for offset: 0x00000000 0x000002e8: DW_TAG_variable [26] DW_AT_location [DW_FORM_sec_offset] (0x000003bc: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x00000565): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value) DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x022e => {0x0000022e} "p0") @@ -3000,121 +3000,121 @@ Abbrev table for offset: 0x00000000 .debug_loc contents: 0x00000000: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000007): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value 0x0000001d: - [0xffffffff, 0x00000006): + [0xffffffff, 0x0000000a): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000041, 0x00000046): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000003d, 0x00000042): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value - [0x00000110, 0x0000011a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000010c, 0x00000116): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value + [0x00000235, 0x00000240): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value - [0x0000028d, 0x00000297): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000289, 0x00000293): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value 0x000000a5: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000011): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value 0x000000c3: - [0xffffffff, 0x00000006): + [0xffffffff, 0x0000001a): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value 0x000000e1: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000020): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value 0x000000ff: - [0xffffffff, 0x00000006): + [0xffffffff, 0x00000026): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value 0x0000011d: - [0xffffffff, 0x00000006): - [0x000001bf, 0x000001c4): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value - [0x0000033c, 0x00000341): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value + [0xffffffff, 0x000001c5): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value + [0x0000017d, 0x00000182): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value 0x00000149: - [0xffffffff, 0x00000006): - [0x000000b4, 0x000000c7): DW_OP_consts +0, DW_OP_stack_value + [0xffffffff, 0x000000ba): + [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value - [0x00000139, 0x00000141): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value + [0x00000085, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000185, 0x00000190): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value - [0x000002b6, 0x000002be): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000202, 0x0000020a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value 0x000001ab: - [0xffffffff, 0x00000006): - [0x000000c3, 0x000000c7): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value - [0x00000240, 0x00000244): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value + [0xffffffff, 0x000000c9): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value + [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value 0x000001d7: - [0xffffffff, 0x00000006): - [0x000000db, 0x000000df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000117, 0x0000011a): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000258, 0x0000025c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x00000294, 0x00000297): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x000000e1): + [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x000001b9, 0x000001bc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value 0x0000021f: - [0xffffffff, 0x00000006): - [0x000000f0, 0x0000011a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value - [0x0000012b, 0x00000141): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value - [0x0000026d, 0x00000297): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value - [0x000002a8, 0x000002be): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x000000f6): + [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value + [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0x0000017d, 0x000001a7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value + [0x000001b8, 0x000001ce): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value 0x00000267: - [0xffffffff, 0x0000039f): - [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value + [0xffffffff, 0x00000386): + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value 0x00000285: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x00000000): [0x00000001, 0x00000001): DW_OP_consts +30, DW_OP_stack_value 0x000002a2: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000005fe): [0x00000001, 0x00000001): DW_OP_lit0, DW_OP_stack_value - [0x0000025f, 0x00000277): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0x00000000, 0x00000018): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value 0x000002cc: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000003d5): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000036, 0x0000003b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x00000075, 0x0000007a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value - [0x00000093, 0x00000097): DW_OP_consts +0, DW_OP_stack_value - [0x000000be, 0x000000c3): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x0000005d, 0x00000061): DW_OP_consts +0, DW_OP_stack_value + [0x00000088, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value 0x00000354: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000003eb): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value 0x00000372: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000003f1): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value 0x00000390: - [0xffffffff, 0x0000039f): - [0x0000016f, 0x00000176): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value - [0x0000022d, 0x00000234): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0xffffffff, 0x0000050e): + [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value + [0x000000be, 0x000000c5): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value 0x000003bc: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x00000565): [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value 0x000003e8: - [0xffffffff, 0x0000039f): + [0xffffffff, 0x000005e7): [0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value - [0x0000026f, 0x00000277): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value + [0x00000027, 0x0000002f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value 0x00000413: - [0xffffffff, 0x0000039f): - [0x00000258, 0x00000277): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x000005f7): + [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value .debug_line contents: debug_line[0x00000000] diff --git a/test/passes/fib2.bin.txt b/test/passes/fib2.bin.txt index 3c88fda88..2380cb146 100644 --- a/test/passes/fib2.bin.txt +++ b/test/passes/fib2.bin.txt @@ -404,9 +404,9 @@ Abbrev table for offset: 0x00000000 0x00000049: DW_TAG_variable [4] DW_AT_location [DW_FORM_sec_offset] (0x00000000: - [0xffffffff, 0x00000005): - [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value - [0x0000001e, 0x00000033): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) + [0xffffffff, 0x0000000c): + [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value + [0x00000017, 0x0000002c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000ac] = "a") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/2-binaryen/fib2.c") DW_AT_decl_line [DW_FORM_data1] (2) @@ -414,10 +414,10 @@ Abbrev table for offset: 0x00000000 0x00000058: DW_TAG_variable [4] DW_AT_location [DW_FORM_sec_offset] (0x0000002b: - [0xffffffff, 0x00000005): - [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value - [0x0000001e, 0x00000023): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value - [0x00000023, 0x00000033): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) + [0xffffffff, 0x0000000c): + [0x00000000, 0x00000009): DW_OP_consts +1, DW_OP_stack_value + [0x00000017, 0x0000001c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value + [0x0000001c, 0x0000002c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000ae] = "b") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/2-binaryen/fib2.c") DW_AT_decl_line [DW_FORM_data1] (2) @@ -425,9 +425,9 @@ Abbrev table for offset: 0x00000000 0x00000067: DW_TAG_variable [4] DW_AT_location [DW_FORM_sec_offset] (0x00000064: - [0xffffffff, 0x00000005): - [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value - [0x0000002e, 0x00000033): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value) + [0xffffffff, 0x0000000c): + [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value + [0x00000027, 0x0000002c): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value) DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000b0] = "i") DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/2-binaryen/fib2.c") DW_AT_decl_line [DW_FORM_data1] (2) @@ -466,20 +466,20 @@ Abbrev table for offset: 0x00000000 .debug_loc contents: 0x00000000: - [0xffffffff, 0x00000005): - [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value - [0x0000001e, 0x00000033): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value + [0xffffffff, 0x0000000c): + [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value + [0x00000017, 0x0000002c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value 0x0000002b: - [0xffffffff, 0x00000005): - [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value - [0x0000001e, 0x00000023): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value - [0x00000023, 0x00000033): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value + [0xffffffff, 0x0000000c): + [0x00000000, 0x00000009): DW_OP_consts +1, DW_OP_stack_value + [0x00000017, 0x0000001c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value + [0x0000001c, 0x0000002c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value 0x00000064: - [0xffffffff, 0x00000005): - [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value - [0x0000002e, 0x00000033): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value + [0xffffffff, 0x0000000c): + [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value + [0x00000027, 0x0000002c): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value .debug_line contents: debug_line[0x00000000] |