Displaying 2 results from an estimated 2 matches for "minsn".
Did you mean:
insn
2015 Jun 23
4
[LLVMdev] Improving the quality of debug locations / DbgValueHistoryCalculator
...he current basic block BB.
- outgoing_loc[BB][var] is the list of locations for var valid at
the end of a basic block BB.
// This code is probably buggy because I didn't run it through a
// compiler yet, but I hope it serves to illustrate my point.
// Visit a machine instruction.
transfer(MInsn) {
// A DBG_VALUE marks the beginning of a new range.
if (MInsn is a DBG_VALUE(var, loc)) {
for ((rvar, start) : open_ranges[BB])
// A DBG_VALUE terminates a range started by a previous
// DBG_VALUE for the same variable, if the described pieces
// overlap.
if (var...
2015 Aug 12
3
[LLVMdev] Improving the quality of debug locations / DbgValueHistoryCalculator
...neInstructions (start, end) that both belong
> to the same basic block.
> - range[var] is the final list of live ranges for a variable.
>
How come you never remove ranges from range[var]? What if you have smth.
like
BB1:
DBG_VALUE %RAX, %noreg, !"a"
jmp BB2
BB2:
// more minsns
clobber %RAX
BB3:
clobber %RAX
DBG_VALUE %RBX, %noreg, !"a"
jmp BB2
Looks like you would handle BB1, then BB2, and create a range for "a" from
the beginning of BB2 to clobber instruction.
But this might be incorrect - if we have jumped to BB2 from BB3, then the
locati...