[LLVMdev] Two questions about MergeFunctions pass
    Stepan Dyatkovskiy 
    stpworld at narod.ru
       
    Sun Oct 27 11:30:54 PDT 2013
    
    
  
Hi Nick.
Can you help me sort some things out in MergeFucntions pass. While I was 
working on MergeFunctions pass I got several questions. I hardly tried 
to find all the answers by myself, but there are still two questions 
without answer.
It is about merging functions itself (not comparing).
First question is:
Why sometimes we use RAUW and sometimes replaceDirectCallers. Would you 
help me with explanation how "overridability" and possibility to create 
aliases affects on our decision what to use RAUW or replaceDirectCallers?
And the second question.
There is a case when both "F" and "G" are overridable and target 
supports global aliases. We replace "G" with alias to "F". Its ok. But 
why we also replace "F" with alias to "F"? Suppose, for keeping callers 
equal when it is possible. Though aren't callers equal if caller "A" 
calls "F", and caller "B" calls "alias-to-F"? Perhaps there are more 
reasons?
Thanks you very much!
-Stepan
    
    
More information about the llvm-dev
mailing list