Displaying 3 results from an estimated 3 matches for "newpreheader".
2009 Dec 03
0
[LLVMdev] Preserving ProfileInfo in several Passes
...nfo passes as "CFGOnly?"
If so, that would let them be automatically preserved by passes
which don't modify the CFG (and that call AU.setPreservesCFG()).
> + if (ProfileInfo* PI = getAnalysisIfAvailable<ProfileInfo>()) {
> + PI->splitEdge(OrigPreHeader, NewHeader, NewPreHeader);
> + }
> +
> // Preserve canonical loop form, which means Exit block should
> // have only one predecessor.
> SplitEdge(L->getLoopLatch(), Exit, this);
Would it make sense to move the ProfileInfo updating code into
SplitEdge? That way all users of SplitEdge would autom...
2009 Dec 03
2
[LLVMdev] Preserving ProfileInfo in several Passes
Hi all,
this (altough a big patch) is actually pretty straight forward: It
(tries) to preserve ProfileInfo in all -std-compile-opts passes and all
X86-Backend passes.
There is still some passes that have corner cases where the ProfileInfo
is not correct after the pass. Some passes are still missing...
How shall I proceed with this?
Andi
-------------- next part --------------
A non-text
2009 Dec 07
1
[LLVMdev] Preserving ProfileInfo in several Passes
...let them be automatically preserved by passes
> which don't modify the CFG (and that call AU.setPreservesCFG()).
Yes, it would, how do I do this? :-)
>> + if (ProfileInfo* PI = getAnalysisIfAvailable<ProfileInfo>()) {
>> + PI->splitEdge(OrigPreHeader, NewHeader, NewPreHeader);
>> + }
>> +
>> // Preserve canonical loop form, which means Exit block should
>> // have only one predecessor.
>> SplitEdge(L->getLoopLatch(), Exit, this);
>
> Would it make sense to move the ProfileInfo updating code into
> SplitEdge...