Home
last modified time | relevance | path

Searched refs:BinaryFunction (Results 1 – 25 of 130) sorted by relevance

123456

/llvm-project-15.0.7/bolt/include/bolt/Passes/
H A DInstrumentation.h38 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 DBinaryFunctionCallGraph.h20 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 DReorderAlgorithm.h88 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 DBinaryPasses.h38 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 DFrameAnalysis.h119 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 DRegReAssign.h32 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 DLongJmp.h44 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 DRegAnalysis.h21 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 DInliner.h36 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 DValidateInternalCalls.h64 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 DSplitFunctions.h24 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 DCacheMetrics.cpp40 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 DIdenticalCodeFolding.cpp149 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 DBinaryPasses.cpp365 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 DLongJmp.cpp78 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 DCallGraphWalker.cpp30 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 DReorderFunctions.cpp28 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 DBoltDiff.cpp131 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 DBinaryFunction.h118 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 DBinaryContext.h60 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 DYAMLProfileReader.h38 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 DDataAggregator.h26 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 DDataReader.h32 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 Dbinder_typedefs.compile.pass.cpp28 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 DParallelUtilities.cpp54 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()

123456