search for: blockfrequencyinfowrapperpass

Displaying 6 results from an estimated 6 matches for "blockfrequencyinfowrapperpass".

2019 Jan 13
2
Problem using BlockFrequencyInfo's getBlockProfileCount
Hey, I am trying to use the BlockFrequencyInfoWrapperPass to obtain hotness information in my LLVM pass. Attached is a minimal example of code which creates a SIGSEGV. The pass calls AU.addRequired<BlockFrequencyInfoWrapperPass>(); in getAnalysisUsage(..). The problem exists with changed and unchanged IR. The binary is instrumented like this: c...
2018 Jan 24
0
Memory leaks in LegacyPassManager depending on order of addRequired passes
...ass="socmaildefaultfont" dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:10.5pt" ><div dir="ltr" ><div>Hello,<br><br>I notice some strange behavior with the LegacyPassManager. I’ve added a new pass requirement of BlockFrequencyInfoWrapperPass to lib/Transforms/IPO/GlobalOpt.cpp.<br>However, depending on the order of where I add it, I see memory leak errors with LeakSanitizer.</div> <div>Having the following order shows the leak:</div> <div>void getAnalysisUsage(AnalysisUsage &AU) const override {<br&...
2018 Aug 15
2
Queries Regarding Usage of PGOInstrumentation Passes instead of Deprecated ProfileInfo
...sing the new tools. In order to do that, I'm first generating edge count profile by the PGOInstrumentationGen pass and then interpreting the edge count profile with PGOInstrumentationUse. In the original code, where I had au.addRequired< ProfileInfo >(), I now have *au.addRequired< BlockFrequencyInfoWrapperPass >();au.addRequired< BranchProbabilityInfoWrapperPass >();* Now, I have the following queries. - How do I use the edge count and branch weights data obtained using PGOInstrumentationUse in my pass and replace the *getEdgeWeight()* from ProfileInfo? - If I call *getBlockProfileC...
2018 Aug 15
3
Queries Regarding Usage of PGOInstrumentation Passes instead of Deprecated ProfileInfo
...ge count profile by the >> PGOInstrumentationGen pass and then interpreting the edge count profile >> with PGOInstrumentationUse. >> >> In the original code, where I had >> au.addRequired< ProfileInfo >(), I now have >> >> >> *au.addRequired< BlockFrequencyInfoWrapperPass >();au.addRequired< >> BranchProbabilityInfoWrapperPass >();* >> Now, I have the following queries. >> >> - How do I use the edge count and branch weights data obtained using >> PGOInstrumentationUse in my pass and replace the *getEdgeWeight()* >>...
2018 Aug 15
2
Queries Regarding Usage of PGOInstrumentation Passes instead of Deprecated ProfileInfo
...ass and then interpreting the edge count profile >>>> with PGOInstrumentationUse. >>>> >>>> In the original code, where I had >>>> au.addRequired< ProfileInfo >(), I now have >>>> >>>> >>>> *au.addRequired< BlockFrequencyInfoWrapperPass >();au.addRequired< >>>> BranchProbabilityInfoWrapperPass >();* >>>> Now, I have the following queries. >>>> >>>> - How do I use the edge count and branch weights data obtained >>>> using PGOInstrumentationUse in my pass and...
2017 Jun 15
7
[RFC] Profile guided section layout
...izeCFGProfilePassPass( + *PassRegistry::getPassRegistry()); + } + + StringRef getPassName() const override { return "CFGProfilePass"; } + +private: + bool runOnModule(Module &M) override; + + void getAnalysisUsage(AnalysisUsage &AU) const override { + AU.addRequired<BlockFrequencyInfoWrapperPass>(); + AU.addRequired<BranchProbabilityInfoWrapperPass>(); + } +}; + +bool CFGProfilePass::runOnModule(Module &M) { + if (skipModule(M)) + return false; + + llvm::DenseMap<std::pair<StringRef, StringRef>, uint64_t> Counts; + + for (auto &F : M) { + if (F.isD...