I know, a lot of the optimizations are added piecemeal and ended up
like that. Soon we should clean them up or let the code quality gets
worse and worse
Sun

On Tue, Apr 19, 2011 at 11:50 AM, David Coakley <dcoak...@gmail.com> wrote:
> I agree with your statement in general.  In the case of ipo_icall.cxx,
> there is no obvious class to add the functions to -- using C-style
> static functions and exporting global functions from each source file
> seems to be the pattern in many of the files in ipa/main/optimize.
>
> -David Coakley / AMD Open Source Compiler Engineering
>
> On Mon, Apr 18, 2011 at 3:22 PM, Sun Chan <sun.c...@gmail.com> wrote:
>> if possible, I'd rather not see "static" functions. Why not use
>> classes and member functions, we are supposed to be writing C++, at
>> least, the most basic form of C++?
>> Sun
>>
>> On Tue, Apr 19, 2011 at 3:30 AM, Min Zhao <mzhao...@gmail.com> wrote:
>>>
>>> I looked at the patch. It looks fine with me.
>>>
>>> Thanks,
>>>
>>> Min
>>>
>>> On Fri, Apr 8, 2011 at 1:19 PM, David Coakley <dcoak...@gmail.com> wrote:
>>>>
>>>> Could a gatekeeper please review the attached patch from the AMD team?
>>>>
>>>> It improves some specific optimizations for C++ programs.  The code
>>>> changes are mostly in the area of IPA -- details below.
>>>>
>>>> -David Coakley / AMD Open Source Compiler Engineering
>>>>
>>>>
>>>> 1. Multi-target icall promotion
>>>>
>>>> The implementation has two parts.  The first part is in IPA summary
>>>> phase, which generates multiple dummy call sites for the indirect
>>>> call target based on the feedback info: if the number of times
>>>> of the callsite is called exceeds the IPA_Icall_Min_Freq, and the
>>>> rate of one callee among the total calls of the callsite exceeds
>>>> IPA_Icall_Target_Min_Rate, then a dummy callsite is added for the callee.
>>>> Up to ICALL_MAX_PROMOTE_PER_CALLSITE dummy callsites could be added.
>>>>
>>>> The second part is in IPA transformation phase, which generates code
>>>> based on the number of dummy callsites coming with the indirect call,
>>>> and the wn_icall is transformed to
>>>>
>>>>      if (*fptr == callee1)
>>>>         callee1(...);
>>>>      else {
>>>>         if (*fptr == callee2)
>>>>            callee2(...);
>>>>         else {
>>>>            ...
>>>>            fptr(...);
>>>>         }
>>>>      }
>>>>
>>>> When a new call is added, the feedback info is updated with corresponding
>>>> call frequency, and the callsite map is updated with newly created call
>>>> node.
>>>>
>>>> 2. Devirtualization with overridden map
>>>>
>>>> The current devirtualization mechanism doesn't build virtual function
>>>> overridden relationship and use it to direct devirtualization,
>>>> which causes a lot of devirtualization opportunities to be missed.
>>>> By building the overridden map, we can safely devirtualize the virtual
>>>> call unconditionally in whole program mode when there is only one
>>>> candidate available in the overridden map for the call.
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Xperia(TM) PLAY
>>>> It's a major breakthrough. An authentic gaming
>>>> smartphone on the nation's most reliable network.
>>>> And it wants your games.
>>>> http://p.sf.net/sfu/verizon-sfdev
>>>> _______________________________________________
>>>> Open64-devel mailing list
>>>> Open64-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Benefiting from Server Virtualization: Beyond Initial Workload
>>> Consolidation -- Increasing the use of server virtualization is a top
>>> priority.Virtualization can reduce costs, simplify management, and improve
>>> application availability and disaster protection. Learn more about boosting
>>> the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
>>> _______________________________________________
>>> Open64-devel mailing list
>>> Open64-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>>
>>>
>>
>

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to