"llvm/git@repo.hca.bsc.es:rferrer/llvm-epi-0.8.git" did not exist on "8710aab04cb4e18683bccd5594aee8acd2c747d8"
- Jul 07, 2011
-
-
Devang Patel authored
llvm-svn: 134559
-
- May 08, 2011
-
-
Jakob Stoklund Olesen authored
It can happen that a live debug variable is the last use of a sub-register, and the register allocator will pick a larger register class for the virtual register. If the allocated register doesn't support the sub-register index, just use %noreg for the debug variables instead of asserting. In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD register. The register is split and one part is inflated to GR32 and assigned %ESI because there are no more normal uses of sub_8bit_hi. Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will simply insert a %noreg instead, and the debug variable will be marked unavailable in that range. We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I don't know if DWARF even supports that. llvm-svn: 131073
-
- May 06, 2011
-
-
Jakob Stoklund Olesen authored
This should unbreak dragonegg-i386-linux and build-self-4-mingw32. llvm-svn: 131007
-
Jakob Stoklund Olesen authored
After a virtual register is split, update any debug user variables that resided in the old register. This ensures that the LiveDebugVariables are still correct after register allocation. This may create DBG_VALUE instructions that place a user variable in a register in parts of the function and in a stack slot in other parts. DwarfDebug currently doesn't support that. llvm-svn: 130998
-
Jakob Stoklund Olesen authored
llvm-svn: 130997
-
- Apr 15, 2011
-
-
Chris Lattner authored
Luis Felipe Strano Moraes! llvm-svn: 129558
-
- Mar 22, 2011
-
-
Jakob Stoklund Olesen authored
This will extend the ranges of debug info variables in registers until they are clobbered. Fix 1: Don't mistake DBG_VALUE instructions referring to incoming arguments on the stack with DBG_VALUE instructions referring to variables in the frame pointer. This fixes the gdb test-suite failure. Fix 2: Don't trace through copies to physical registers setting up call arguments. These registers are call clobbered, and the source register is more likely to be a callee-saved register that can be extended through the call instruction. llvm-svn: 128114
-
Andrew Trick authored
Temporarily reverting these to see if we can get llvm-objdump to link. Hopefully this is not the problem. llvm-svn: 128097
-
Jakob Stoklund Olesen authored
These ranges get completely jumbled by the post-ra scheduler, and it is not really reasonable to expect it to make sense of them. Instead, teach DwarfDebug to notice when user variables in registers are clobbered, and terminate the ranges there. llvm-svn: 128045
-
- Mar 18, 2011
-
-
Jakob Stoklund Olesen authored
The llvm.dbg.value intrinsic refers to SSA values, not virtual registers, so we should be able to extend the range of a value by tracking that value through register copies. This greatly improves the debug value tracking for function arguments that for some reason are copied to a second virtual register at the end of the entry block. We only extend the debug value range where its register is killed. All original llvm.dbg.value locations are still respected. Copies from physical registers are ignored. That should not be a problem since the entry block already adds DBG_VALUE instructions for the virtual registers holding the function arguments. llvm-svn: 127912
-
- Feb 04, 2011
-
-
Devang Patel authored
DebugLoc associated with a machine instruction is used to emit location entries. DebugLoc associated with a DBG_VALUE is used to identify lexical scope of the variable. After register allocation, while inserting DBG_VALUE remember original debug location for the first instruction and reuse it, otherwise dwarf writer may be mislead in identifying the variable's scope. llvm-svn: 124845
-
- Jan 14, 2011
-
-
Jakob Stoklund Olesen authored
This approach also works when the terminator doesn't have a slot index. (Which can happen??) llvm-svn: 123413
-
- Jan 13, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 123400
-
Jakob Stoklund Olesen authored
llvm-svn: 123342
-
Jakob Stoklund Olesen authored
llvm-svn: 123339
-
Jakob Stoklund Olesen authored
llvm-svn: 123338
-
- Jan 12, 2011
-
-
Jakob Stoklund Olesen authored
Make sure we don't crash in that case, but simply turn them into %noreg instead. llvm-svn: 123335
-
Jakob Stoklund Olesen authored
llvm-svn: 123290
-
- Jan 11, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 123282
-
Jakob Stoklund Olesen authored
For one, MachineBasicBlock::getFirstTerminator() doesn't understand what is happening, and it also makes sense to have all control flow run through the DBG_VALUE. llvm-svn: 123277
-
- Jan 10, 2011
-
-
Jakob Stoklund Olesen authored
These functions not longer assert when passed 0, but simply return false instead. No functional change intended. llvm-svn: 123155
-
- Jan 09, 2011
-
-
Jakob Stoklund Olesen authored
of using a Location class with the same information. When making a copy of a MachineOperand that was already stored in a MachineInstr, it is necessary to clear the parent pointer on the copy. Otherwise the register use-def lists become inconsistent. Add MachineOperand::clearParent() to do that. An alternative would be a custom MachineOperand copy constructor that cleared ParentMI. I didn't want to do that because of the performance impact. llvm-svn: 123109
-
Jakob Stoklund Olesen authored
Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg. llvm-svn: 123107
-
- Jan 07, 2011
-
-
Devang Patel authored
llvm-svn: 123039
-
Devang Patel authored
Enable live debug variables pass. llvm-svn: 123032
-
- Dec 03, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 120846
-
Jakob Stoklund Olesen authored
be emitted. llvm-svn: 120845
-
Jakob Stoklund Olesen authored
llvm-svn: 120842
-
Jakob Stoklund Olesen authored
llvm-svn: 120841
-
- Dec 02, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 120720
-
Jakob Stoklund Olesen authored
Scan the MachineFunction for DBG_VALUE instructions, and replace them with a data structure similar to LiveIntervals. The live range of a DBG_VALUE is determined by propagating it down the dominator tree until a new DBG_VALUE is found. When a DBG_VALUE lives in a register, its live range is confined to the live range of the register's value. LiveDebugVariables runs before coalescing, so DBG_VALUEs are not artificially extended when registers are joined. The missing half will recreate DBG_VALUE instructions from the intervals when register allocation is complete. The pass is disabled by default. It can be enabled with the temporary command line option -live-debug-variables. llvm-svn: 120636
-
- Nov 30, 2010
-
-
Jakob Stoklund Olesen authored
This analysis is going to run immediately after LiveIntervals. It will stay alive during register allocation and keep track of user variables mentioned in DBG_VALUE instructions. When the register allocator is moving values between registers and the stack, it is very hard to keep track of DBG_VALUE instructions. We usually get it wrong. This analysis maintains a data structure that makes it easy to update DBG_VALUE instructions. llvm-svn: 120385
-