| /llvm-project-15.0.7/bolt/lib/Core/ |
| H A D | BinaryFunctionProfile.cpp | 159 JumpTable *JT = getJumpTableContainingAddress(JTAddress); in postProcessProfile() local 160 if (!JT) in postProcessProfile() 168 JT->Count += TotalBranchCount; in postProcessProfile() 173 if (JT->Counts.empty()) in postProcessProfile() 174 JT->Counts.resize(JT->Entries.size()); in postProcessProfile() 175 auto EI = JT->Entries.begin(); in postProcessProfile() 176 uint64_t Delta = (JTAddress - JT->getAddress()) / JT->EntrySize; in postProcessProfile() 178 while (EI != JT->Entries.end()) { in postProcessProfile() 183 assert(Delta < JT->Counts.size()); in postProcessProfile() 184 JT->Counts[Delta].Count += BranchInfo.Count; in postProcessProfile() [all …]
|
| H A D | BinaryEmitter.cpp | 719 JumpTable &JT = *JTI.second; in emitJumpTables() local 721 JT.print(outs()); in emitJumpTables() 724 JT.updateOriginal(); in emitJumpTables() 736 JT.setOutputSection(Section); in emitJumpTables() 763 auto LI = JT.Labels.find(Index * JT.EntrySize); in emitJumpTable() 764 if (LI != JT.Labels.end()) { in emitJumpTable() 778 for (MCSymbol *Entry : JT.Entries) { in emitJumpTable() 779 auto LI = JT.Labels.find(Offset); in emitJumpTable() 780 if (LI != JT.Labels.end()) { in emitJumpTable() 798 if (JT.Type == JumpTable::JTT_NORMAL) { in emitJumpTable() [all …]
|
| H A D | BinaryContext.cpp | 641 analyzeJumpTable(JT->getAddress(), JT->Type, *(JT->Parents[0]), in populateJumpTables() 650 JT->print(dbgs()); in populateJumpTables() 680 Address < JT->getAddress() + JT->getSize(); in populateJumpTables() 780 if (JT->Parents.size() == 1 && JT->Parents[0] != &Function) { in getOrCreateJumpTable() 791 JT->print(outs()); in getOrCreateJumpTable() 804 return JT->getFirstLabel(); in getOrCreateJumpTable() 828 JT->print(outs()); in getOrCreateJumpTable() 853 new JumpTable(*NewLabel, JT->getAddress(), JT->EntrySize, JT->Type, in duplicateJumpTable() 856 NewJT->Parents = JT->Parents; in duplicateJumpTable() 857 NewJT->Entries = JT->Entries; in duplicateJumpTable() [all …]
|
| H A D | BinaryBasicBlock.cpp | 44 const JumpTable *JT = Inst ? Function->getJumpTable(*Inst) : nullptr; in getJumpTable() local 45 return JT; in getJumpTable() 75 const JumpTable *JT = Inst ? Function->getJumpTable(*Inst) : nullptr; in validateSuccessorInvariants() local 79 if (JT) { in validateSuccessorInvariants() 85 std::next(JT->Entries.begin(), Range.first), in validateSuccessorInvariants() 86 std::next(JT->Entries.begin(), Range.second)); in validateSuccessorInvariants() 147 if (JT) { in validateSuccessorInvariants() 150 JT->print(errs()); in validateSuccessorInvariants() 356 const JumpTable *JT = getJumpTable(); in updateJumpTableSuccessors() local 357 assert(JT && "Expected jump table instruction."); in updateJumpTableSuccessors() [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/SampleProfile/ |
| H A D | pseudo-probe-dangle.ll | 3 ; RUN: FileCheck %s < %t --check-prefix=JT 12 ; JT-LABEL: @foo( 13 ; JT: call void @llvm.pseudoprobe(i64 [[#GUID:]], i64 1, i32 0, i64 -1) 23 ; JT-LABEL-NO: T 24 ; JT-LABEL-NO: F 25 ; JT-LABEL: Merge 26 ; JT-NOT: call void @llvm.pseudoprobe(i64 [[#GUID:]], i64 3 27 ; JT-NOT: call void @llvm.pseudoprobe(i64 [[#GUID:]], i64 2 28 ; JT: call void @llvm.pseudoprobe(i64 [[#GUID:]], i64 4, i32 0, i64 -1)
|
| /llvm-project-15.0.7/llvm/test/Transforms/LowerTypeTests/ |
| H A D | function-weak.ll | 36 ; CHECK: ret i1 icmp ne (void ()* select (i1 icmp ne (void ()* @f, void ()* null), void ()* @[[JT:.… 55 ; X86: define private void @[[JT]]() #{{.*}} align 8 { 56 ; ARM: define private void @[[JT]]() #{{.*}} align 4 { 57 ; RISCV: define private void @[[JT]]() #{{.*}} align 8 { 61 ; CHECK-NEXT: store void ()* select (i1 icmp ne (void ()* @f, void ()* null), void ()* @[[JT]], voi… 62 ; CHECK-NEXT: store void ()* select (i1 icmp ne (void ()* @f, void ()* null), void ()* @[[JT]], voi… 63 ; CHECK-NEXT: store void ()* select (i1 icmp ne (void ()* @f, void ()* null), void ()* @[[JT]], voi… 64 …ast (void ()* select (i1 icmp ne (void ()* @f, void ()* null), void ()* @[[JT]], void ()* null) to… 65 … void ()* null), void ()* @[[JT]], void ()* null), void ()* select (i1 icmp ne (void ()* @f, void …
|
| H A D | function.ll | 23 ; NATIVE: @f = alias void (), void ()* @[[JT:.*]] 25 …telementptr inbounds ([2 x [8 x i8]], [2 x [8 x i8]]* bitcast (void ()* @[[JT]] to [2 x [8 x i8]]*… 26 …telementptr inbounds ([2 x [4 x i8]], [2 x [4 x i8]]* bitcast (void ()* @[[JT]] to [2 x [4 x i8]]*… 27 …telementptr inbounds ([2 x [4 x i8]], [2 x [4 x i8]]* bitcast (void ()* @[[JT]] to [2 x [4 x i8]]*… 28 …telementptr inbounds ([2 x [8 x i8]], [2 x [8 x i8]]* bitcast (void ()* @[[JT]] to [2 x [8 x i8]]*… 47 ; NATIVE: sub i64 {{.*}}, ptrtoint (void ()* @[[JT]] to i64) 54 ; X86-LINUX: define private void @[[JT]]() #[[ATTR:.*]] align 8 { 55 ; X86-WIN32: define private void @[[JT]]() #[[ATTR:.*]] align 8 { 56 ; ARM: define private void @[[JT]]() #[[ATTR:.*]] align 4 { 57 ; THUMB: define private void @[[JT]]() #[[ATTR:.*]] align 4 { [all …]
|
| H A D | section.ll | 8 ; CHECK: @f = alias void (), void ()* @[[JT:.*]] 22 ; CHECK: define private void @[[JT]]() #{{.*}} align {{.*}} {
|
| H A D | aarch64-jumptable.ll | 9 ; AARCH64: @f = alias void (), void ()* @[[JT:.*]] 32 ; AARCH64: define private void @[[JT]]() #[[ATTR:.*]] align 8 {
|
| H A D | function-ext.ll | 31 ; X64: ret void ()* @[[JT:.*]] 40 ; X64: define private void @[[JT]]() #{{.*}} align {{.*}} {
|
| /llvm-project-15.0.7/bolt/lib/Passes/ |
| H A D | AsmDump.cpp | 61 const JumpTable *JT = BF.getJumpTable(Instr); in dumpJumpTableFdata() local 62 for (uint32_t i = 0; i < JT->Entries.size(); ++i) { in dumpJumpTableFdata() 63 StringRef TargetName = JT->Entries[i]->getName(); in dumpJumpTableFdata() 64 const uint64_t Mispreds = JT->Counts[i].Mispreds; in dumpJumpTableFdata() 65 const uint64_t Count = JT->Counts[i].Count; in dumpJumpTableFdata() 103 if (&JT->getSection() != LastBS) { in dumpJumpTableSymbols() 104 OS << ".section " << JT->getSectionName() << '\n'; in dumpJumpTableSymbols() 105 LastBS = &JT->getSection(); in dumpJumpTableSymbols() 107 OS << "\"" << JT->getName() << "\":\n"; in dumpJumpTableSymbols() 108 for (MCSymbol *JTEntry : JT->Entries) in dumpJumpTableSymbols() [all …]
|
| H A D | IndirectCallPromotion.cpp | 242 if (const JumpTable *JT = BF.getJumpTable(Inst)) { in getCallTargets() local 248 JT->getEntriesForAddress(BC.MIB->getJumpTable(Inst)); in getCallTargets() 249 assert(JT->Counts.empty() || JT->Counts.size() >= Range.second); in getCallTargets() 252 JT->Counts.empty() ? &DefaultJI : &JT->Counts[Range.first]; in getCallTargets() 253 const size_t JIAdj = JT->Counts.empty() ? 0 : 1; in getCallTargets() 254 assert(JT->Type == JumpTable::JTT_PIC || in getCallTargets() 257 MCSymbol *Entry = JT->Entries[I]; in getCallTargets() 463 (AccessInfo.Offset - (ArrayStart - JT->getAddress())) / JT->EntrySize; in maybeGetHotJumpTableTargets() 483 JT->print(dbgs()); in maybeGetHotJumpTableTargets() 495 HotTargetMap[JT->Entries[Index + Range.first]]; in maybeGetHotJumpTableTargets() [all …]
|
| H A D | JTFootprintReduction.cpp | 117 JumpTable *JT = JTFreq.first; in checkOpportunities() local 120 if (!BlacklistedJTs.count(JT)) { in checkOpportunities() 122 if (JT->EntrySize == 8) in checkOpportunities() 123 BytesSaved += JT->getSize() >> 1; in checkOpportunities()
|
| /llvm-project-15.0.7/llvm/test/CodeGen/AArch64/ |
| H A D | jump-table.ll | 17 ; CHECK: add x[[JT:[0-9]+]], [[JTPAGE]], {{#?}}:lo12:.LJTI0_0 19 ; CHECK: ldrb w[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}] 34 ; CHECK-PIC: add x[[JT:[0-9]+]], [[JTPAGE]], {{#?}}:lo12:.LJTI0_0 36 ; CHECK-PIC: ldrb w[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}] 41 ; CHECK-IOS: add x[[JT:[0-9]+]], [[JTPAGE]], LJTI0_0@PAGEOFF 43 ; CHECK-IOS: ldrb w[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}] 48 ; CHECK-TINY: adr x[[JT:[0-9]+]], .LJTI0_0 50 ; CHECK-TINY: ldrb w[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}] 91 ; CHECK: add x[[JT:[0-9]+]], [[JTPAGE]], {{#?}}:lo12:.LJTI1_0 93 ; CHECK: ldrh w[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}, lsl #1]
|
| H A D | jump-table-exynos.ll | 15 ; CHECK: add x[[JT:[0-9]+]], [[JTPAGE]], {{#?}}:lo12:.LJTI0_0 18 ; CHECK: ldrsw x[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}, lsl #2] 52 ; CHECK: add x[[JT:[0-9]+]], [[JTPAGE]], {{#?}}:lo12:.LJTI1_0 54 ; CHECK: ldrb w[[OFFSET:[0-9]+]], [x[[JT]], {{x[0-9]+}}]
|
| H A D | jump-table-32.ll | 15 ; CHECK: add x[[JT:[0-9]+]], [[JTPAGE]], LJTI0_0@PAGEOFF 17 ; CHECK: ldrb w[[OFFSET:[0-9]+]], [x[[JT]], x[[INDEX]]]
|
| /llvm-project-15.0.7/llvm/test/CodeGen/PowerPC/ |
| H A D | mcm-obj.ll | 8 ; RUN: llvm-readobj -r - | FileCheck -check-prefix=MEDIUM-JT %s 10 ; RUN: llvm-readobj -r - | FileCheck -check-prefix=LARGE-JT %s 187 ; MEDIUM-JT: Relocations [ 188 ; MEDIUM-JT: Section ({{.*}}) .rela.text { 189 ; MEDIUM-JT-NEXT: 0x{{[0-9,A-F]+}} R_PPC64_TOC16_HA [[SYM:[^ ]+]] 190 ; MEDIUM-JT-NEXT: 0x{{[0-9,A-F]+}} R_PPC64_TOC16_LO_DS [[SYM]] 192 ; LARGE-JT: Relocations [ 193 ; LARGE-JT: Section ({{.*}}) .rela.text { 194 ; LARGE-JT-NEXT: 0x{{[0-9,A-F]+}} R_PPC64_TOC16_HA [[SYM:[^ ]+]] 195 ; LARGE-JT-NEXT: 0x{{[0-9,A-F]+}} R_PPC64_TOC16_LO_DS [[SYM]]
|
| /llvm-project-15.0.7/llvm/test/CodeGen/X86/ |
| H A D | switch-jump-table.ll | 2 …nu-linux -print-after=finalize-isel %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=CHECK-JT-PROB 57 ; CHECK-JT-PROB-LABEL: bar: 58 ; CHECK-JT-PROB: successors: %bb.6(0x12492492), %bb.8(0x6db6db6e) 59 ; CHECK-JT-PROB: successors: %bb.1(0x15555555), %bb.2(0x15555555), %bb.3(0x15555555), %bb.4(0x15555…
|
| /llvm-project-15.0.7/llvm/lib/Target/MSP430/ |
| H A D | MSP430ISelDAGToDAG.cpp | 51 int JT = -1; member 57 return GV != nullptr || CP != nullptr || ES != nullptr || JT != -1; in hasSymbolicDisplacement() 80 } else if (JT != -1) in dump() 81 errs() << " JT" << JT << " Align" << Alignment.value() << '\n'; in dump() 155 AM.JT = J->getIndex(); in MatchWrapper() 269 else if (AM.JT != -1) in SelectAddr() 270 Disp = CurDAG->getTargetJumpTable(AM.JT, MVT::i16, 0/*AM.SymbolFlags*/); in SelectAddr()
|
| /llvm-project-15.0.7/llvm/lib/Target/AArch64/ |
| H A D | AArch64CompressJumpTables.cpp | 115 const MachineJumpTableEntry &JT = JTInfo.getJumpTables()[JTIdx]; in compressJumpTable() local 118 if (JT.MBBs.empty()) in compressJumpTable() 124 for (auto *Block : JT.MBBs) { in compressJumpTable()
|
| /llvm-project-15.0.7/bolt/test/X86/ |
| H A D | shrinkwrapping-critedge.s | 25 jmp *JT(,%rbx,8) 32 JT: label
|
| H A D | tail-duplication-prop-bug.s | 17 jmpq *JT(,%rcx,8) 42 JT: label
|
| H A D | shrinkwrapping-mov.s | 37 jmp *JT(,%rdi,8) 52 JT: label
|
| /llvm-project-15.0.7/bolt/test/runtime/X86/ |
| H A D | instrumentation-dup-jts.s | 3 # each indirect jump that uses a JT will have its own copy of it. When 9 # cloned JT.
|
| /llvm-project-15.0.7/llvm/test/Transforms/NewGVN/ |
| H A D | pair_jumpthread.ll | 3 ; RUN: opt < %s -newgvn -jump-threading -S | FileCheck --check-prefix=CHECK-JT %s 23 ; CHECK-JT-LABEL: @testBI( 24 ; CHECK-JT: _ZL6calleei.exit.thread: 82 ; CHECK-JT-LABEL: @testIB( 83 ; CHECK-JT: _ZL6calleei.exit.thread:
|