[LLVMdev] PassManager again...

Andreas Neustifter astifter-llvm at gmx.at
Thu Nov 19 05:58:25 PST 2009


Hi,

On 17/11/09 20:16, Andreas Neustifter wrote:
> Devang Patel wrote:
>> On Tue, Nov 17, 2009 at 9:03 AM, Andreas Neustifter
>> <astifter-llvm at gmx.at>  wrote:
>>
>>> Okay, so the ProfileInfoLoader is working, but when I examine the executions more closely I see that the ProfileInfo generated by the ProfileInfoLoader is immediately discarded, when the SelectionDAGISel kicks in the "No Profile Info"-Implementation is used:
>>>
>>>   >  0x1c1a740   Executing Pass 'Profiling information loader' on Module 'main.c-O0.ll.bc'...
>>>   >   -*- 'Profiling information loader' is the last user of following pass instances. Free these instances
>>>   >  0x1c1a740    Freeing Pass 'Profiling information loader' on Module 'main.c-O0.ll.bc'...
>>>   >  0x1c1a740   Executing Pass 'Function Pass Manager' on Module 'main.c-O0.ll.bc'...
>>>   >  0x1c301a0     Executing Pass 'Preliminary module verification' on Function 'main'...
>>>   >  0x1c301a0     Executing Pass 'Dominator Tree Construction' on Function 'main'...
>> ...
>>
>> Did you update all these function passes to preserve profile info ?
>
> Ja, they are all either PreserveAll or I have updated them to
> AU.setPreserved<ProfileInfo>().

I still have not found a solution for this, any other ideas? Whats the 
best way to debug why the passmanager is prefering a certain instance of 
analysis information over another instance? whats the rules in that case?

Andi



More information about the llvm-dev mailing list