Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/test/DebugInfo/X86/spill-nospill.ll
; RUN: llc < %s -experimental-debug-variable-locations=false | FileCheck %s | ; RUN: llc < %s -experimental-debug-variable-locations=true | FileCheck %s | ||||
; RUN: llc < %s -filetype=obj -experimental-debug-variable-locations=false | llvm-dwarfdump - | FileCheck %s --check-prefix=DWARF | ; RUN: llc < %s -filetype=obj -experimental-debug-variable-locations=true | llvm-dwarfdump - | FileCheck %s --check-prefix=DWARF | ||||
; This test creates two UserValues in LiveDebugVariables with one location | ; This test creates two UserValues in LiveDebugVariables with one location | ||||
; each. x must be spilled, but y will be allocated to a CSR. x's location | ; each. x must be spilled, but y will be allocated to a CSR. x's location | ||||
; should be indirect, but y's should be direct. | ; should be indirect, but y's should be direct. | ||||
; C source: | ; C source: | ||||
; #define FORCE_SPILL() \ | ; #define FORCE_SPILL() \ | ||||
; __asm volatile("" : : : \ | ; __asm volatile("" : : : \ | ||||
Show All 27 Lines | |||||
; CHECK: callq g | ; CHECK: callq g | ||||
; CHECK: movl [[X_OFFS]](%rsp), %eax # 4-byte Reload | ; CHECK: movl [[X_OFFS]](%rsp), %eax # 4-byte Reload | ||||
; CHECK: #DEBUG_VALUE: f:x <- $eax | ; CHECK: #DEBUG_VALUE: f:x <- $eax | ||||
; CHECK: addl %[[CSR]], %eax | ; CHECK: addl %[[CSR]], %eax | ||||
; DWARF: DW_TAG_variable | ; DWARF: DW_TAG_variable | ||||
; DWARF-NEXT: DW_AT_location ( | ; DWARF-NEXT: DW_AT_location ( | ||||
; DWARF-NEXT: [{{.*}}, {{.*}}): DW_OP_breg7 RSP+36 | ; DWARF-NEXT: [{{.*}}, {{.*}}): DW_OP_breg7 RSP+36 | ||||
; DWARF-NEXT: [{{.*}}, {{.*}}): DW_OP_reg0 RAX) | ; DWARF-NEXT: [{{.*}}, {{.*}}): DW_OP_reg0 RAX | ||||
; DWARF-NEXT: [{{.*}}, {{.*}}): DW_OP_breg7 RSP+36) | |||||
; DWARF-NEXT: DW_AT_name ("x") | ; DWARF-NEXT: DW_AT_name ("x") | ||||
; DWARF: DW_TAG_variable | ; DWARF: DW_TAG_variable | ||||
; DWARF-NEXT: DW_AT_location ( | ; DWARF-NEXT: DW_AT_location ( | ||||
; DWARF-NEXT: [{{.*}}, {{.*}}): DW_OP_reg4 RSI) | ; DWARF-NEXT: [{{.*}}, {{.*}}): DW_OP_reg4 RSI) | ||||
; DWARF-NEXT: DW_AT_name ("y") | ; DWARF-NEXT: DW_AT_name ("y") | ||||
; ModuleID = 'spill-nospill.c' | ; ModuleID = 'spill-nospill.c' | ||||
▲ Show 20 Lines • Show All 59 Lines • Show Last 20 Lines |