- User Since
- Apr 13 2015, 9:48 AM (149 w, 2 d)
Tue, Feb 20
Thu, Feb 15
Wed, Feb 14
Please add a few new test cases first.
Fri, Feb 9
Thu, Feb 8
The branch probability depends on other factors which is not considered here.
Tue, Feb 6
LGTM + incorporating Ben's suggestion to use 'ult' if it can simplify the condition.
Mon, Feb 5
Wed, Jan 31
looks like the naming follows the node iteration interfaces. lgtm.
Tue, Jan 30
Thu, Jan 25
Jan 22 2018
Jan 18 2018
I actually mean the former.
Jan 11 2018
Jan 10 2018
Jan 8 2018
Add a minimal option test (new heat-color option) in test/Other/2007-06-05-PassID.ll ?
I think 'tryToPromote' method should be moved to the indirect call promotion pass so that the callback to inline cost/benefit is exposed there (a more general cost/benefit model needs to be developed for indirect call promotion). Initially, I think we can limit the use of the getInlineCost callback to cases where profile data is not available, this will achieve what this patch is doing without affecting existing promotion heuristics.
Jan 4 2018
Jan 3 2018
Dec 21 2017
Perhaps change the new interface documentation slightly to reflect that it is for real profile data.
Dec 20 2017
I prefer hasProfileData to be hasRealProfileData -- unless we want to make hasProfileData to mean has real profile data and ignores synthetic entry count later.
Dec 18 2017
Dec 15 2017
The instrumentation point will be before the no-return call, so there is probably no issue with instrumenting direct successor of the entry.
address comment: remove unnecessary early return check.
Dec 14 2017
there are two small suggestions. otherwise LGTM
I suggest making this a multiple stage change.
Dec 12 2017
Is it enough to simply replace StringMap with std::map<std::string, ..> for small maps? Do you have memory data with that?
Dec 11 2017
Dec 10 2017
Dec 9 2017
Dec 8 2017
Dec 7 2017
Dec 6 2017
What happens is that the call of getAnalysis<LoopInfoWrapperPass>() is invoked after getAnalysis<BlockFrequencyInfoWrapperPass>(). The legacy pass manager in this case will do the analysis run to compute LoopInfo on the fly. Before running the analysis, it will also invoke the 'release' memory method of the analysis passes contained in, in this case is BPI and BFI. After that we basically have use-after free problem. The leaking is probably just a side effect.
Dec 5 2017
This can be done in the PGO pass itself before the MST is formed. BFI has update interface such as setBlockFreq. The update can use simple heuristic to distribute the frequency.
Dec 4 2017
Dec 1 2017
- As Eli pointed out, findIBRpredecessor may return null when there are multiple such predecessors, so perhaps create a new interface to return all such predecessors?
Nov 30 2017
Can you make this patch a pure NFC one and split out the enhancement part into another patch?
Nov 28 2017
Nov 27 2017
Yes, I think it is good to do the necessary refactoring work first.
A high level comment: I think the right direction is to share the implementation with the existing IndirectCallPromotion.cpp pass. The analyzer can synthesize the MD_prof profile data for the indirect targets, though the actual target count can be synthesized with some heuristics.
Nov 22 2017
Using heuristic like this for inline order decision is like tossing a coin. It is very likely that doing this can hurt some cases where inlining of inner edges are important but gets blocked.
Nov 20 2017
Nov 15 2017
Nov 14 2017