Home
last modified time | relevance | path

Searched refs:JumpTable (Results 1 – 25 of 67) sorted by relevance

123

/llvm-project-15.0.7/bolt/lib/Passes/
H A DJTFootprintReduction.cpp45 std::map<JumpTable *, uint64_t> AllJTs; in checkOpportunities()
49 JumpTable *JumpTable = Function.getJumpTable(Inst); in checkOpportunities() local
50 if (!JumpTable) in checkOpportunities()
74 BlacklistedJTs.insert(JumpTable); in checkOpportunities()
117 JumpTable *JT = JTFreq.first; in checkOpportunities()
132 uint64_t JTAddr, JumpTable *JumpTable, DataflowInfoManager &Info) { in tryOptimizeNonPIC() argument
164 JumpTable->OutputEntrySize = 4; in tryOptimizeNonPIC()
173 uint64_t JTAddr, JumpTable *JumpTable, in tryOptimizePIC() argument
203 JumpTable->OutputEntrySize = 4; in tryOptimizePIC()
205 JumpTable->Type = JumpTable::JTT_NORMAL; in tryOptimizePIC()
[all …]
H A DIdenticalCodeFolding.cpp45 using JumpTable = bolt::JumpTable; typedef
49 bool equalJumpTables(const JumpTable &JumpTableA, const JumpTable &JumpTableB, in equalJumpTables()
256 const JumpTable *JumpTableA = in isIdenticalWith()
261 const JumpTable *JumpTableB = in isIdenticalWith()
H A DAsmDump.cpp61 const JumpTable *JT = BF.getJumpTable(Instr); in dumpJumpTableFdata()
101 void dumpJumpTableSymbols(raw_ostream &OS, const JumpTable *JT, AsmPrinter &MAP, in dumpJumpTableSymbols()
H A DIndirectCallPromotion.cpp242 if (const JumpTable *JT = BF.getJumpTable(Inst)) { in getCallTargets()
244 if (!opts::ICPJumpTablesByTarget && JT->Type == JumpTable::JTT_PIC) in getCallTargets()
250 JumpTable::JumpInfo DefaultJI; in getCallTargets()
251 const JumpTable::JumpInfo *JI = in getCallTargets()
254 assert(JT->Type == JumpTable::JTT_PIC || in getCallTargets()
372 const JumpTable *JT) const { in maybeGetHotJumpTableTargets()
528 const JumpTable *JT = BB.getFunction()->getJumpTable(CallInst); in findCallTargetSymbols()
/llvm-project-15.0.7/bolt/include/bolt/Core/
H A DJumpTable.h41 class JumpTable : public BinaryData {
44 JumpTable() = delete;
45 JumpTable(const JumpTable &) = delete;
46 JumpTable &operator=(const JumpTable &) = delete;
94 JumpTable(MCSymbol &Symbol, uint64_t Address, size_t EntrySize,
H A DBinaryContext.h192 std::map<uint64_t, JumpTable *> JumpTables;
368 uint64_t getJumpTableEntrySize(JumpTable::JumpTableType Type) const { in getJumpTableEntrySize()
369 return Type == JumpTable::JTT_PIC ? 4 : AsmInfo->getCodePointerSize(); in getJumpTableEntrySize()
373 JumpTable *getJumpTableContainingAddress(uint64_t Address) { in getJumpTableContainingAddress()
481 JumpTable::JumpTableType Type);
494 const JumpTable::JumpTableType Type, BinaryFunction &BF,
496 JumpTable::AddressesType *EntriesAsAddress = nullptr);
507 duplicateJumpTable(BinaryFunction &Function, JumpTable *JT,
517 JumpTable &JT = *JTI.second; in clearJumpTableTempData()
518 JumpTable::AddressesType Temp; in clearJumpTableTempData()
H A DBinaryFunction.h539 std::map<uint64_t, JumpTable *> JumpTables;
798 iterator_range<std::map<uint64_t, JumpTable *>::const_iterator>
930 JumpTable *getJumpTableContainingAddress(uint64_t Address) { in getJumpTableContainingAddress()
942 const JumpTable *getJumpTableContainingAddress(uint64_t Address) const { in getJumpTableContainingAddress()
1412 const JumpTable *getJumpTable(const MCInst &Inst) const { in getJumpTable()
1417 JumpTable *getJumpTable(const MCInst &Inst) { in getJumpTable()
/llvm-project-15.0.7/bolt/lib/Core/
H A DJumpTable.cpp23 using JumpTable = bolt::JumpTable; typedef
30 bolt::JumpTable::JumpTable(MCSymbol &Symbol, uint64_t Address, size_t EntrySize, in JumpTable() function in bolt::JumpTable
37 bolt::JumpTable::getEntriesForAddress(const uint64_t Addr) const { in getEntriesForAddress()
68 bool bolt::JumpTable::replaceDestination(uint64_t JTAddress, in replaceDestination()
84 void bolt::JumpTable::updateOriginal() { in updateOriginal()
102 void bolt::JumpTable::print(raw_ostream &OS) const { in print()
H A DBinaryContext.cpp108 for (std::pair<const uint64_t, JumpTable *> JTI : JumpTables) in ~BinaryContext()
428 getOrCreateJumpTable(BF, Address, JumpTable::JTT_PIC); in handleAddressRef()
472 if (analyzeJumpTable(Address, JumpTable::JTT_PIC, BF)) in analyzeMemoryAt()
475 if (analyzeJumpTable(Address, JumpTable::JTT_NORMAL, BF)) in analyzeMemoryAt()
496 JumpTable::AddressesType *EntriesAsAddress) { in analyzeJumpTable()
550 if (Type == JumpTable::JTT_PIC && in analyzeJumpTable()
565 (Type == JumpTable::JTT_PIC) in analyzeJumpTable()
627 JumpTable *JT = JTI->second; in populateJumpTables()
678 if (opts::StrictMode && JT->Type == JumpTable::JTT_PIC) { in populateJumpTables()
823 JumpTable *JT = new JumpTable(*JTLabel, Address, EntrySize, Type, in getOrCreateJumpTable()
[all …]
H A DCMakeLists.txt22 JumpTable.cpp
H A DBinaryBasicBlock.cpp42 const JumpTable *BinaryBasicBlock::getJumpTable() const { in getJumpTable()
44 const JumpTable *JT = Inst ? Function->getJumpTable(*Inst) : nullptr; in getJumpTable()
75 const JumpTable *JT = Inst ? Function->getJumpTable(*Inst) : nullptr; in validateSuccessorInvariants()
356 const JumpTable *JT = getJumpTable(); in updateJumpTableSuccessors()
H A DBinaryEmitter.cpp112 using JumpTable = bolt::JumpTable; typedef
150 void emitJumpTable(const JumpTable &JT, MCSection *HotSection,
719 JumpTable &JT = *JTI.second; in emitJumpTables()
753 void BinaryEmitter::emitJumpTable(const JumpTable &JT, MCSection *HotSection, in emitJumpTable()
798 if (JT.Type == JumpTable::JTT_NORMAL) { in emitJumpTable()
H A DBinaryFunctionProfile.cpp159 JumpTable *JT = getJumpTableContainingAddress(JTAddress); in postProcessProfile()
262 for (const JumpTable::JumpInfo &JI : JTEntry.second->Counts) { in mergeProfileDataInto()
H A DBinaryFunction.cpp901 case JumpTable::JTT_NORMAL: in processIndirectBranch()
904 case JumpTable::JTT_PIC: in processIndirectBranch()
913 JumpTable::JumpTableType JTType; in processIndirectBranch()
917 JTType = JumpTable::JTT_PIC; in processIndirectBranch()
926 JTType = JumpTable::JTT_NORMAL; in processIndirectBranch()
1639 JumpTable &JT = *JTI.second; in postProcessJumpTables()
1696 const JumpTable *JT = getJumpTableContainingAddress(JTAddress); in postProcessJumpTables()
1802 if (JT->Type == JumpTable::JTT_NORMAL) { in postProcessIndirectBranches()
3720 SmallPtrSet<JumpTable *, 4> JumpTables; in disambiguateJumpTables()
3725 JumpTable *JT = getJumpTable(Inst); in disambiguateJumpTables()
[all …]
/llvm-project-15.0.7/bolt/include/bolt/Passes/
H A DJTFootprintReduction.h36 DenseSet<JumpTable *> BlacklistedJTs;
51 JumpTable *JumpTable, DataflowInfoManager &Info);
57 JumpTable *JumpTable, DataflowInfoManager &Info);
H A DIndirectCallPromotion.h192 const JumpTable *JT) const;
/llvm-project-15.0.7/llvm/include/llvm/CodeGen/
H A DPseudoSourceValue.h40 JumpTable, enumerator
71 bool isJumpTable() const { return Kind == JumpTable; } in isJumpTable()
H A DSwitchLoweringUtils.h165 struct JumpTable { struct
177 JumpTable(unsigned R, unsigned J, MachineBasicBlock *M, MachineBasicBlock *D) in JumpTable() argument
193 using JumpTableBlock = std::pair<JumpTableHeader, JumpTable>;
H A DISDOpcodes.h81 JumpTable, enumerator
/llvm-project-15.0.7/llvm/utils/
H A Dllvm.grm363 | switch IntType ValueRef ^ "," label ValueRef "[" JumpTable "]"
371 JumpTable ::= JumpTable IntType ConstValueRef ^ "," label ValueRef
/llvm-project-15.0.7/llvm/lib/CodeGen/
H A DPseudoSourceValue.cpp105 JumpTablePSV(PseudoSourceValue::JumpTable, TM), in PseudoSourceValueManager()
/llvm-project-15.0.7/llvm/include/llvm/Target/
H A DTargetOptions.h43 namespace JumpTable {
/llvm-project-15.0.7/llvm/lib/Target/DirectX/
H A DDXILPrepare.cpp43 Attribute::JumpTable, in isValidForDXIL()
/llvm-project-15.0.7/bolt/lib/Target/AArch64/
H A DAArch64MCPlusBuilder.cpp500 const MCExpr *&JumpTable, int64_t &Offset, int64_t &ScaleValue, in analyzeIndirectBranchFragment() argument
592 JumpTable = nullptr; in analyzeIndirectBranchFragment()
604 JumpTable = nullptr; in analyzeIndirectBranchFragment()
610 JumpTable = DefJTBasePage->getOperand(1).getExpr(); in analyzeIndirectBranchFragment()
/llvm-project-15.0.7/llvm/include/llvm/CodeGen/GlobalISel/
H A DIRTranslator.h337 bool emitJumpTableHeader(SwitchCG::JumpTable &JT,
340 void emitJumpTable(SwitchCG::JumpTable &JT, MachineBasicBlock *MBB);

123