This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Compilation of object creation in C++
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: "Uday P. Khedker" <uday at cse dot iitb dot ac dot in>
- Cc: Andrew Pinski <pinskia at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, RATHI SWATI KAILASH <swatirathi at cse dot iitb dot ac dot in>
- Date: Wed, 19 Aug 2015 14:30:00 +0200
- Subject: Re: Compilation of object creation in C++
- Authentication-results: sourceware.org; auth=none
- References: <55D46192 dot 5090509 at cse dot iitb dot ac dot in> <55D4658B dot 4090405 at cse dot iitb dot ac dot in> <CA+=Sn1nhAKQcOzH5Y-2xMUEVzoRwhtNOMWc-Ar0VwS_+mdCcyg at mail dot gmail dot com> <55D47239 dot 7090804 at cse dot iitb dot ac dot in>
On Wed, Aug 19, 2015 at 2:10 PM, Uday P. Khedker <uday@cse.iitb.ac.in> wrote:
>
>
> Andrew Pinski wrote on Wednesday 19 August 2015 04:44 PM:
>>
>> On Wed, Aug 19, 2015 at 7:16 PM, Uday P. Khedker <uday@cse.iitb.ac.in>
>> wrote:
>>>
>>> We are working on an analysis for identifying the class of an object flow
>>> sensitively for
>>> flow sensitive de-virtualization (i.e. replacing a virtual function call
>>> by
>>> a call to the
>>> function of a known class in the hierarchy). This is a regular ipa pass.
>>> It
>>> find outs the
>>> class of an object at point of creation and then propagates it.
>>
>> Most of this is already in GCC 5 and above. Including the IPA pass.
>> Have you looked into that pass yet?
>
>
> From what I have read, it involves flow insensitive analysis whereas we are
> looking at flow sensitive analysis.
It also performs flow-sensitive analysis, exactly like you suggest by looking
for constructor calls or patterns that involve setting the vtable pointer
exposed through inlining.
Richard.
> Uday.