| /llvm-project-15.0.7/bolt/include/bolt/Passes/ |
| H A D | Instrumentation.h | 38 void instrumentFunction(BinaryFunction &Function, 46 uint32_t getFunctionNameIndex(const BinaryFunction &Function); 49 void createIndCallDescription(const BinaryFunction &FromFunction, 51 void createIndCallTargetDescription(const BinaryFunction &ToFunction, 54 const BinaryFunction &FromFunction, uint32_t From, 56 const BinaryFunction &ToFunction, uint32_t To, 61 const BinaryFunction &ToFunction, uint32_t To, 86 BinaryFunction &FromFunction, 110 std::unordered_map<const BinaryFunction *, uint32_t> FuncToStringIdx; 124 BinaryFunction *IndCallHandlerExitBBFunction; [all …]
|
| H A D | BinaryFunctionCallGraph.h | 20 class BinaryFunction; variable 25 NodeId maybeGetNodeId(const BinaryFunction *BF) const { in maybeGetNodeId() 29 NodeId getNodeId(const BinaryFunction *BF) const { in getNodeId() 34 BinaryFunction *nodeIdToFunc(NodeId Id) { in nodeIdToFunc() 38 const BinaryFunction *nodeIdToFunc(NodeId Id) const { in nodeIdToFunc() 42 NodeId addNode(BinaryFunction *BF, uint32_t Size, uint64_t Samples = 0); 45 std::deque<BinaryFunction *> buildTraversalOrder(); 48 std::unordered_map<const BinaryFunction *, NodeId> FuncToNodeId; 49 std::vector<BinaryFunction *> Funcs; 52 using CgFilterFunction = std::function<bool(const BinaryFunction &BF)>; [all …]
|
| H A D | ReorderAlgorithm.h | 88 const BinaryFunction &BF) = 0; 101 void clusterBasicBlocks(const BinaryFunction &BF, 112 const BinaryFunction &BF) override; 139 const BinaryFunction &BF) override; 188 void reorderBasicBlocks(const BinaryFunction &BF, 199 void reorderBasicBlocks(const BinaryFunction &BF, 212 void reorderBasicBlocks(const BinaryFunction &BF, 225 void reorderBasicBlocks(const BinaryFunction &BF, 232 void reorderBasicBlocks(const BinaryFunction &BF, 239 void reorderBasicBlocks(const BinaryFunction &BF, [all …]
|
| H A D | BinaryPasses.h | 38 virtual bool shouldOptimize(const BinaryFunction &BF) const; 51 virtual bool shouldPrint(const BinaryFunction &BF) const; 95 void runOnFunction(BinaryFunction &BF); 109 std::unordered_set<const BinaryFunction *> Modified; 112 void runOnFunction(BinaryFunction &Function); 264 std::unordered_set<const BinaryFunction *> Modified; 271 uint64_t fixTailCalls(BinaryFunction &BF); 318 void addTailcallTraps(BinaryFunction &Function); 349 std::unordered_set<const BinaryFunction *> Modified; 351 bool simplifyRODataLoads(BinaryFunction &BF); [all …]
|
| H A D | FrameAnalysis.h | 119 DenseSet<const BinaryFunction *> AnalyzedFunctions; 122 DenseSet<const BinaryFunction *> FunctionsRequireAlignment; 126 DenseSet<const BinaryFunction *> FunctionsWithStackArithmetic; 153 bool updateArgsTouchedFor(const BinaryFunction &BF, MCInst &Inst, 160 bool computeArgsAccessed(BinaryFunction &BF); 166 bool restoreFrameIndex(BinaryFunction &BF); 169 std::unordered_map<const BinaryFunction *, 181 bool hasFrameInfo(const BinaryFunction &Func) const { in hasFrameInfo() 186 bool requiresAlignment(const BinaryFunction &Func) const { in requiresAlignment() 192 bool hasStackArithmetic(const BinaryFunction &Func) const { in hasStackArithmetic() [all …]
|
| H A D | RegReAssign.h | 32 DenseSet<const BinaryFunction *> FuncsChanged; 36 void swap(BinaryFunction &Function, MCPhysReg A, MCPhysReg B); 37 void rankRegisters(BinaryFunction &Function); 38 void aggressivePassOverFunction(BinaryFunction &Function); 39 bool conservativePassOverFunction(BinaryFunction &Function); 41 std::map<uint64_t, BinaryFunction> &BFs); 43 std::map<uint64_t, BinaryFunction> &BFs); 53 bool shouldPrint(const BinaryFunction &BF) const override { in shouldPrint()
|
| H A D | LongJmp.h | 44 using StubMapTy = DenseMap<const BinaryFunction *, StubGroupsTy>; 50 DenseMap<const BinaryFunction *, std::set<const BinaryBasicBlock *>> Stubs; 52 using FuncAddressesMapTy = DenseMap<const BinaryFunction *, uint64_t>; 72 std::vector<BinaryFunction *> &SortedFunctions); 75 std::vector<BinaryFunction *> &SortedFunctions, 79 std::vector<BinaryFunction *> &SortedFunctions, 81 void tentativeBBLayout(const BinaryFunction &Func); 110 const BinaryFunction &Func, 127 bool usesStub(const BinaryFunction &Func, const MCInst &Inst) const; 141 bool relax(BinaryFunction &BF);
|
| H A D | RegAnalysis.h | 21 class BinaryFunction; variable 31 BitVector getFunctionUsedRegsList(const BinaryFunction *Func); 37 BitVector getFunctionClobberList(const BinaryFunction *Func); 39 RegAnalysis(BinaryContext &BC, std::map<uint64_t, BinaryFunction> *BFs, 69 std::map<const BinaryFunction *, BitVector> RegsKilledMap; 72 std::map<const BinaryFunction *, BitVector> RegsGenMap;
|
| H A D | Inliner.h | 36 InliningInfo getInliningInfo(const BinaryFunction &BF); 39 std::unordered_map<const BinaryFunction *, InliningInfo> InliningCandidates; 59 std::unordered_set<const BinaryFunction *> Modified; 69 bool inlineCallsInFunction(BinaryFunction &Function); 77 const BinaryFunction &Callee); 85 bool shouldPrint(const BinaryFunction &BF) const override { in shouldPrint()
|
| H A D | ValidateInternalCalls.h | 64 void fixCFGForPIC(BinaryFunction &Function) const; 69 bool fixCFGForIC(BinaryFunction &Function) const; 75 bool hasTailCallsInRange(BinaryFunction &Function) const; 79 bool analyzeFunction(BinaryFunction &Function) const; 85 void clearAnnotations(BinaryFunction &Function) const { in clearAnnotations()
|
| H A D | SplitFunctions.h | 24 void splitFunction(BinaryFunction &Function, SplitStrategy Strategy = {}); 29 using BasicBlockOrderType = BinaryFunction::BasicBlockOrderType; 36 TrampolineSetType createEHTrampolines(BinaryFunction &Function) const; 42 mergeEHTrampolines(BinaryFunction &BF, BasicBlockOrderType &Layout, 52 bool shouldOptimize(const BinaryFunction &BF) const override;
|
| /llvm-project-15.0.7/bolt/lib/Passes/ |
| H A D | CacheMetrics.cpp | 40 const std::vector<BinaryFunction *> &BinaryFunctions, in extractBasicBlockInfo() 44 for (BinaryFunction *BF : BinaryFunctions) { in extractBasicBlockInfo() 68 for (BinaryFunction *BF : BinaryFunctions) { in calcTSPScore() 93 for (BinaryFunction *BF : BinaryFunctions) { in calcExtTSPScore() 114 std::unordered_map<const BinaryFunction *, Predecessors> 118 for (BinaryFunction *SrcFunction : BinaryFunctions) { in extractFunctionCalls() 171 for (BinaryFunction *BF : BinaryFunctions) { in expectedCacheHitRatio() 182 for (BinaryFunction *BF : BinaryFunctions) { in expectedCacheHitRatio() 191 for (BinaryFunction *BF : BinaryFunctions) { in expectedCacheHitRatio() 202 BinaryFunction *SrcFunction = Pair.first; in expectedCacheHitRatio() [all …]
|
| H A D | IdenticalCodeFolding.cpp | 149 bool isIdenticalWith(const BinaryFunction &A, const BinaryFunction &B, in isIdenticalWith() 220 const BinaryFunction *FunctionA = in isIdenticalWith() 222 const BinaryFunction *FunctionB = in isIdenticalWith() 314 bool operator()(const BinaryFunction *A, const BinaryFunction *B) const { in operator ()() 322 bool operator()(const BinaryFunction *A, const BinaryFunction *B) const { in operator ()() 329 typedef std::unordered_map<BinaryFunction *, std::set<BinaryFunction *>, 333 typedef std::unordered_map<BinaryFunction *, std::vector<BinaryFunction *>, 449 BinaryFunction &BF = BFI.second; in runOnFunctions() 476 for (BinaryFunction *BF : Candidates) { in runOnFunctions() 489 Twins, [](const BinaryFunction *A, const BinaryFunction *B) { in runOnFunctions() [all …]
|
| H A D | BinaryPasses.cpp | 365 BinaryFunction &Function = It.second; in runOnFunctions() 508 BinaryFunction &Function = It.second; in runOnFunctions() 578 BinaryFunction &BF = It.second; in runOnFunctions() 971 BinaryFunction &Function = It.second; in runOnFunctions() 1082 BinaryFunction &Function = It.second; in runOnFunctions() 1185 BinaryFunction &Function = It.second; in runOnFunctions() 1211 BinaryFunction &Function = BFI.second; in runOnFunctions() 1425 [](const BinaryFunction *A, const BinaryFunction *B) { in runOnFunctions() 1566 [](const BinaryFunction *A, const BinaryFunction *B) { in runOnFunctions() 1686 const BinaryFunction &Function) const { in getCallSitesToOptimize() [all …]
|
| H A D | LongJmp.cpp | 78 BinaryFunction &Func = *SourceBB.getFunction(); in createNewStub() 185 const BinaryFunction &Func = *BB.getFunction(); in replaceTargetWithStub() 293 for (BinaryFunction *Func : SortedFunctions) { in tentativeLayoutRelocColdPart() 319 for (BinaryFunction *BF : SortedFunctions) { in tentativeLayoutRelocMode() 328 for (BinaryFunction *BF : SortedFunctions) { in tentativeLayoutRelocMode() 341 for (BinaryFunction *Func : SortedFunctions) { in tentativeLayoutRelocMode() 373 for (BinaryFunction *Func : SortedFunctions) in tentativeLayoutRelocMode() 384 for (BinaryFunction *Func : SortedFunctions) { in tentativeLayout() 504 const BinaryFunction &Func = *BB.getFunction(); in needsStub() 527 bool LongJmpPass::relax(BinaryFunction &Func) { in relax() [all …]
|
| H A D | CallGraphWalker.cpp | 30 std::queue<BinaryFunction *> Queue; in traverseCG() 31 std::set<BinaryFunction *> InQueue; in traverseCG() 33 for (BinaryFunction *Func : TopologicalCGOrder) { in traverseCG() 39 BinaryFunction *Func = Queue.front(); in traverseCG() 51 BinaryFunction *CallerFunc = CG.nodeIdToFunc(CallerID); in traverseCG()
|
| H A D | ReorderFunctions.cpp | 28 extern size_t padFunction(const bolt::BinaryFunction &Function); 117 std::map<uint64_t, BinaryFunction> &BFs) { in reorder() 133 BinaryFunction &BF = It.second; in reorder() 270 [](const BinaryFunction &BF) { in runOnFunctions() 293 std::vector<BinaryFunction *> SortedFunctions(BFs.size()); in runOnFunctions() 299 llvm::stable_sort(SortedFunctions, [&](const BinaryFunction *A, in runOnFunctions() 300 const BinaryFunction *B) { in runOnFunctions() 315 for (BinaryFunction *BF : SortedFunctions) in runOnFunctions() 409 std::vector<BinaryFunction *> SortedFunctions(BFs.size()); in runOnFunctions() 417 [](const BinaryFunction *A, const BinaryFunction *B) { in runOnFunctions() [all …]
|
| /llvm-project-15.0.7/bolt/lib/Rewrite/ |
| H A D | BoltDiff.cpp | 131 std::map<const BinaryFunction *, const BinaryFunction *> FuncMap; 144 std::set<const BinaryFunction *> Bin1MappedFuncs; 145 std::set<const BinaryFunction *> Bin2MappedFuncs; 149 StringMap<const BinaryFunction *> NameLookup; 151 StringMap<const BinaryFunction *> LTONameLookup1; 160 std::map<const BinaryFunction *, const BinaryFunction *> LTOMap1; 161 std::map<const BinaryFunction *, const BinaryFunction *> LTOMap2; 201 const BinaryFunction &Function = BFI.second; in buildLookupMaps() 221 const BinaryFunction &Function = BFI.second; in buildLookupMaps() 306 [&](const BinaryFunction *A, const BinaryFunction *B) { in matchFunctions() [all …]
|
| /llvm-project-15.0.7/bolt/include/bolt/Core/ |
| H A D | BinaryFunction.h | 118 class BinaryFunction { 370 SmallPtrSet<BinaryFunction *, 1> Fragments; 647 void addFragment(BinaryFunction &BF) { in addFragment() 665 BinaryFunction &operator=(const BinaryFunction &) = delete; 666 BinaryFunction(const BinaryFunction &) = delete; 747 BinaryFunction(BinaryFunction &&) = default; 829 BinaryFunction &updateState(BinaryFunction::State State) { in updateState() 1704 BinaryFunction &setSize(uint64_t S) { in setSize() 1724 BinaryFunction &setSimple(bool Simple) { in setSimple() 2287 virtual ~BinaryFunction(); [all …]
|
| H A D | BinaryContext.h | 60 class BinaryFunction; variable 183 std::map<uint64_t, BinaryFunction> BinaryFunctions; 189 std::vector<BinaryFunction *> InjectedBinaryFunctions; 203 std::unordered_set<BinaryFunction *> FragmentsToSkip; 245 void addFragmentsToSkip(BinaryFunction *Function) { in addFragmentsToSkip() 472 std::vector<BinaryFunction *> getAllBinaryFunctions(); 523 bool hasValidCodePadding(const BinaryFunction &BF); 648 std::vector<const BinaryFunction *> TrappedFunctions; 1105 void foldFunction(BinaryFunction &ChildBF, BinaryFunction &ParentBF); 1142 const BinaryFunction * [all …]
|
| /llvm-project-15.0.7/bolt/include/bolt/Profile/ |
| H A D | YAMLProfileReader.h | 38 virtual bool mayHaveProfileData(const BinaryFunction &BF) override; 52 std::vector<BinaryFunction *> YamlProfileToFunction; 56 std::unordered_set<const BinaryFunction *> ProfiledFunctions; 63 StringMap<std::unordered_set<const BinaryFunction *>> 70 bool parseFunctionProfile(BinaryFunction &Function, 74 void buildNameMaps(std::map<uint64_t, BinaryFunction> &Functions); 78 BinaryFunction &BF) { in matchProfileToFunction()
|
| H A D | DataAggregator.h | 26 class BinaryFunction; variable 70 bool mayHaveProfileData(const BinaryFunction &BF) override; 203 BinaryFunction &BF, const LBREntry &First, const LBREntry &Second, 210 getFallthroughsInTrace(BinaryFunction &BF, const LBREntry &First, 216 bool recordEntry(BinaryFunction &BF, uint64_t To, bool Mispred, 222 bool recordExit(BinaryFunction &BF, uint64_t From, bool Mispred, 246 BinaryFunction *getBinaryFunctionContainingAddress(uint64_t Address) const; 255 StringRef getLocationName(BinaryFunction &Func, uint64_t Count); 259 bool doSample(BinaryFunction &Func, const uint64_t Address, uint64_t Count); 262 bool doIntraBranch(BinaryFunction &Func, uint64_t From, uint64_t To, [all …]
|
| H A D | DataReader.h | 32 class BinaryFunction; variable 286 void readProfile(BinaryFunction &BF); 291 bool fetchProfileForOtherEntryPoints(BinaryFunction &BF); 295 void matchProfileData(BinaryFunction &BF); 299 void matchProfileMemData(BinaryFunction &BF); 303 float evaluateProfileData(BinaryFunction &BF, 313 void readSampleData(BinaryFunction &BF); 316 void convertBranchData(BinaryFunction &BF) const; 417 FuncMemData *getMemData(const BinaryFunction &BF) const { in getMemData() 425 void setMemData(const BinaryFunction &BF, FuncMemData *FMD) { in setMemData() [all …]
|
| /llvm-project-15.0.7/libcxx/test/std/utilities/function.objects/refwrap/ |
| H A D | binder_typedefs.compile.pass.cpp | 28 struct BinaryFunction struct 38 static_assert(std::is_same<std::reference_wrapper<int(BinaryFunction::*)(char)>::result_type, int>:… argument 39 …sert(std::is_same<std::reference_wrapper<int(BinaryFunction::*)(char)>::first_argument_type, Binar… 40 static_assert(std::is_same<std::reference_wrapper<int(BinaryFunction::*)(char)>::second_argument_ty…
|
| /llvm-project-15.0.7/bolt/lib/Core/ |
| H A D | ParallelUtilities.cpp | 54 unsigned computeCostFor(const BinaryFunction &BF, in computeCostFor() 87 const BinaryFunction &BF = BFI.second; in estimateTotalCost() 120 auto runBlock = [&](std::map<uint64_t, BinaryFunction>::iterator BlockBegin, in runOnEachFunction() 121 std::map<uint64_t, BinaryFunction>::iterator BlockEnd) { in runOnEachFunction() 126 BinaryFunction &BF = It->second; in runOnEachFunction() 153 BinaryFunction &BF = It->second; in runOnEachFunction() 174 auto runBlock = [&](std::map<uint64_t, BinaryFunction>::iterator BlockBegin, in runOnEachFunctionWithUniqueAllocId() 175 std::map<uint64_t, BinaryFunction>::iterator BlockEnd, in runOnEachFunctionWithUniqueAllocId() 181 BinaryFunction &BF = It->second; in runOnEachFunctionWithUniqueAllocId() 210 BinaryFunction &BF = It->second; in runOnEachFunctionWithUniqueAllocId()
|