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