diff options
| author | Robert Lougher <rob.lougher@gmail.com> | 2016-10-25 18:44:07 +0000 |
|---|---|---|
| committer | Robert Lougher <rob.lougher@gmail.com> | 2016-10-25 18:44:07 +0000 |
| commit | e32564774c09344e80ea8f17bdc652412543f77b (patch) | |
| tree | b49727c3964bfd80289b4b6d258bdf1c25018b1a /llvm/test/DebugInfo/COFF/local-variables.ll | |
| parent | cffedc4a94cc21a124521e96280935ef7ca1aa85 (diff) | |
| download | bcm5719-llvm-e32564774c09344e80ea8f17bdc652412543f77b.tar.gz bcm5719-llvm-e32564774c09344e80ea8f17bdc652412543f77b.zip | |
Remove debug location from common tail when tail-merging
The branch folding pass tail merges blocks into a common-tail. However, the
tail retains the debug information from one of the original inputs to the
merge (chosen randomly). This is a problem for sampled-based PGO, as hits
on the common-tail will be attributed to whichever block was chosen,
irrespective of which path was actually taken to the common-tail.
This patch fixes the issue by nulling the debug location for the common-tail.
Differential Revision: https://reviews.llvm.org/D25742
llvm-svn: 285093
Diffstat (limited to 'llvm/test/DebugInfo/COFF/local-variables.ll')
| -rw-r--r-- | llvm/test/DebugInfo/COFF/local-variables.ll | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/test/DebugInfo/COFF/local-variables.ll b/llvm/test/DebugInfo/COFF/local-variables.ll index 2c3fd89a9d4..d1ad8767d41 100644 --- a/llvm/test/DebugInfo/COFF/local-variables.ll +++ b/llvm/test/DebugInfo/COFF/local-variables.ll @@ -63,11 +63,9 @@ ; ASM: .cv_loc 2 1 5 3 # t.cpp:5:3 ; ASM: callq capture ; ASM: leaq 36(%rsp), %rcx -; ASM: [[inline_site2_end:\.Ltmp.*]]: +; ASM: [[else_end:\.Ltmp.*]]: ; ASM: .LBB0_3: # %if.end -; ASM: .cv_loc 0 1 15 5 # t.cpp:15:5 ; ASM: callq capture -; ASM: [[else_end:\.Ltmp.*]]: ; ASM: .cv_loc 0 1 17 1 # t.cpp:17:1 ; ASM: nop ; ASM: addq $56, %rsp @@ -101,7 +99,7 @@ ; ASM: .long 116 # TypeIndex ; ASM: .short 0 # Flags ; ASM: .asciz "v" -; ASM: .cv_def_range [[inline_site2]] [[inline_site2_end]], "E\021O\001\000\0000\000\000\000" +; ASM: .cv_def_range [[inline_site2]] [[else_end]], "E\021O\001\000\0000\000\000\000" ; ASM: .short 4430 # Record kind: S_INLINESITE_END ; OBJ: Subsection [ @@ -159,7 +157,7 @@ ; OBJ: LocalVariableAddrRange { ; OBJ: OffsetStart: .text+0x2D ; OBJ: ISectStart: 0x0 -; OBJ: Range: 0x24 +; OBJ: Range: 0x1F ; OBJ: } ; OBJ: } ; OBJ: InlineSite { @@ -200,7 +198,7 @@ ; OBJ: ChangeLineOffset: 1 ; OBJ: ChangeCodeOffset: 0x35 ; OBJ: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xD, LineOffset: 1} -; OBJ: ChangeCodeLength: 0xA +; OBJ: ChangeCodeLength: 0xF ; OBJ: ] ; OBJ: } ; OBJ: Local { |

