[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / tools / llvm-objdump / X86 / elf-bbaddrmap-disassemble-symbolize-operands.yaml
blob2e9eb9af35615aad4f57e4f70b2c5d0d94e2ad67
1 ## Test that in the presence of SHT_LLVM_BB_ADDR_MAP sections,
2 ## --symbolize-operands can display <BB*> labels.
4 ## Fails on windows (https://github.com/llvm/llvm-project/issues/60013).
5 # UNSUPPORTED: system-windows
7 ## Executable object file.
8 # RUN: yaml2obj --docnum=1 -DFOO_ADDR=0x4000 -DBAR_ADDR=0x5000 %s -o %t1
9 # RUN: llvm-objdump %t1 -d --symbolize-operands -M intel --no-show-raw-insn --no-leading-addr | \
10 # RUN:   FileCheck %s -DSYM=symbol --match-full-lines --check-prefixes=INTEL
11 # RUN: llvm-objdump %t1 -d --symbolize-operands -M att --no-show-raw-insn --no-leading-addr | \
12 # RUN:   FileCheck %s -DSYM=symbol --match-full-lines --check-prefixes=ATT
14 ## Executable object file with a single SHT_LLVM_BB_ADDR_MAP for multiple text sections.
15 # RUN: yaml2obj --docnum=2 %s -o %t3
16 # RUN: llvm-objdump %t3 -d --symbolize-operands -M intel --no-show-raw-insn --no-leading-addr | \
17 # RUN:   FileCheck %s -DSYM=symbol --match-full-lines --check-prefixes=INTEL
18 # RUN: llvm-objdump %t3 -d --symbolize-operands -M att --no-show-raw-insn --no-leading-addr | \
19 # RUN:   FileCheck %s -DSYM=symbol --match-full-lines --check-prefixes=ATT
21 ## Expect to find the branch and basic block labels and global variable name.
22 # ATT:      <foo>:
23 # ATT-NEXT: <BB3>:
24 # ATT-NEXT:   pushq %rax
25 # ATT-NEXT: <BB1>:
26 # ATT-NEXT:   cmpl  , %eax <[[SYM]]>
27 # ATT-NEXT:   nop
28 # ATT-NEXT: <BB2>:
29 # ATT-NEXT:   jge    <BB5>
30 # ATT-NEXT:   jmp    <BB1>
31 # ATT-NEXT: <BB5>:
32 # ATT-NEXT:   retq
33 # ATT:      <bar>:
34 # ATT-NEXT: <BB0>:
35 # ATT-NEXT:   pushq  %rax
36 # ATT-NEXT:   movl   %edx, %eax
37 # ATT-NEXT:   je     <BB2>
38 # ATT-NEXT: <BB1>:
39 # ATT-NEXT:   xorl   %esi, %esi
40 # ATT-NEXT: <BB2>:
41 # ATT-NEXT:   callq  <bar>
42 # ATT-NEXT:   retq
44 # INTEL:      <foo>:
45 # INTEL-NEXT: <BB3>:
46 # INTEL-NEXT:   push rax
47 # INTEL-NEXT: <BB1>:
48 # INTEL-NEXT:   cmp  eax, dword ptr <[[SYM]]>
49 # INTEL-NEXT:   nop
50 # INTEL-NEXT: <BB2>:
51 # INTEL-NEXT:   jge   <BB5>
52 # INTEL-NEXT:   jmp   <BB1>
53 # INTEL-NEXT: <BB5>:
54 # INTEL-NEXT:   ret
55 # INTEL:      <bar>:
56 # INTEL-NEXT: <BB0>:
57 # INTEL-NEXT:   push  rax
58 # INTEL-NEXT:   mov   eax, edx
59 # INTEL-NEXT:   je    <BB2>
60 # INTEL-NEXT: <BB1>:
61 # INTEL-NEXT:   xor   esi, esi
62 # INTEL-NEXT: <BB2>:
63 # INTEL-NEXT:   call  <bar>
64 # INTEL-NEXT:   ret
66 ## This object file contains a separate text section and SHT_LLVM_BB_ADDR_MAP
67 ## section for each of the two functions foo and bar.
68 ## This is used to test --symbolize-operands on reloctable and non-relocotable
69 ## object files.
70 --- !ELF
71 FileHeader:
72   Class:   ELFCLASS64
73   Data:    ELFDATA2LSB
74   Type:    ET_EXEC
75   Machine: EM_X86_64
76 Sections:
77   - Name:    .text.foo
78     Type:    SHT_PROGBITS
79     Address: [[FOO_ADDR]]
80     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
81     Content: '503b0505200000907d02ebf5c3'
82   - Name:    .text.bar
83     Type:    SHT_PROGBITS
84     Address: [[BAR_ADDR]]
85     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
86     Content: '5089d0740231f6e8f4ffffffc3'
87   - Name:    .data
88     Type:    SHT_PROGBITS
89     Flags:   [SHF_ALLOC, SHF_WRITE]
90     Address: 0x6000
91   - Name:   .llvm_bb_addr_map.foo
92     Type:   SHT_LLVM_BB_ADDR_MAP
93     Link:   .text.foo
94     Entries:
95       - Version: 2
96         Address: [[FOO_ADDR]]
97         BBEntries:
98           - ID:            3
99             AddressOffset: 0x0
100             Size:          0x1
101             Metadata:      0x1
102           - ID:            1
103             AddressOffset: 0x0
104             Size:          0x6
105             Metadata:      0x0
106           - ID:            2
107             AddressOffset: 0x1
108             Size:          0x4
109             Metadata:      0x0
110           - ID:            5
111             AddressOffset: 0x0
112             Size:          0x1
113             Metadata:      0x2
114   - Name:   .llvm_bb_addr_map.bar
115     Type:   SHT_LLVM_BB_ADDR_MAP
116     Link:   .text.bar
117     Entries:
118       - Version: 1
119         Address: [[BAR_ADDR]]
120         BBEntries:
121           - AddressOffset: 0x0
122             Size:          0x1
123             Metadata:      0x1
124           - AddressOffset: 0x4
125             Size:          0x2
126             Metadata:      0x0
127           - AddressOffset: 0x0
128             Size:          0x6
129             Metadata:      0x0
131 Symbols:
132   - Name:    foo
133     Section: .text.foo
134     Value:   [[FOO_ADDR]]
135   - Name:    bar
136     Section: .text.bar
137     Value:   [[BAR_ADDR]]
138   - Name:    symbol
139     Section: .data
140     Value:   0x600c
142 ## This object file contains a single SHT_LLVM_BB_ADDR_MAP for two text
143 ## sections .text.foo and .text.bar.
144 --- !ELF
145 FileHeader:
146   Class:   ELFCLASS64
147   Data:    ELFDATA2LSB
148   Type:    ET_EXEC
149   Machine: EM_X86_64
150 Sections:
151   - Name:    .text.foo
152     Type:    SHT_PROGBITS
153     Address: 0x4000
154     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
155     Content: '503b0505200000907d02ebf5c3'
156   - Name:    .text.bar
157     Type:    SHT_PROGBITS
158     Address: 0x5000
159     Flags:   [SHF_ALLOC, SHF_EXECINSTR]
160     Content: '5089d0740231f6e8f4ffffffc3'
161   - Name:    .data
162     Type:    SHT_PROGBITS
163     Flags:   [SHF_ALLOC, SHF_WRITE]
164     Address: 0x6000
165   - Name:   .llvm_bb_addr_map.foo
166     Type:   SHT_LLVM_BB_ADDR_MAP
167     Link:   .text.foo
168     Entries:
169       - Version: 2
170         Address: 0x4000
171         BBEntries:
172           - ID:            3
173             AddressOffset: 0x0
174             Size:          0x1
175             Metadata:      0x1
176           - ID:            1
177             AddressOffset: 0x0
178             Size:          0x6
179             Metadata:      0x0
180           - ID:            2
181             AddressOffset: 0x1
182             Size:          0x4
183             Metadata:      0x0
184           - ID:            5
185             AddressOffset: 0x0
186             Size:          0x1
187             Metadata:      0x2
188       - Version: 1
189         Address: 0x5000
190         BBEntries:
191           - AddressOffset: 0x0
192             Size:          0x1
193             Metadata:      0x1
194           - AddressOffset: 0x4
195             Size:          0x2
196             Metadata:      0x0
197           - AddressOffset: 0x0
198             Size:          0x6
199             Metadata:      0x0
201 Symbols:
202   - Name:    foo
203     Section: .text.foo
204     Value:   0x4000
205   - Name:    bar
206     Section: .text.bar
207     Value:   0x5000
208   - Name:    symbol
209     Section: .data
210     Value:   0x600c