[cfe-commits] [PATCH][Review Please] Devirtualize record type member object

Yin Ma yinma at codeaurora.org
Tue Jul 31 11:25:35 PDT 2012


Hi Richard,

Here is the test file. It is good to be put into 

Clang/test/CodeGenCXX directory

 

Thanks,

 

                   Yin 

 

From: metafoo at gmail.com [mailto:metafoo at gmail.com] On Behalf Of Richard
Smith
Sent: Monday, July 30, 2012 2:38 PM
To: Yin Ma
Cc: cfe-commits at cs.uiuc.edu
Subject: Re: [cfe-commits] [PATCH][Review Please] Devirtualize record type
member object

 

On Mon, Jul 30, 2012 at 2:33 PM, Yin Ma <yinma at codeaurora.org> wrote:

Hi Richard,

 

     What test cases you need? Do you mean that a test sits in clang test
folder

With a code that can be devirtualized?

 

Yes, add some cases to
test/CodeGenCXX/devirtualize-virtual-function-calls.cpp which check that the
right IR is produced for this case.

 

 

Thanks,

 

                          Yin 

 

From: metafoo at gmail.com [mailto:metafoo at gmail.com] On Behalf Of Richard
Smith
Sent: Monday, July 30, 2012 1:13 PM
To: Yin Ma
Cc: cfe-commits at cs.uiuc.edu
Subject: Re: [cfe-commits] [PATCH][Review Please] Devirtualize record type
member object

 

On Mon, Jul 30, 2012 at 10:54 AM, Yin Ma <yinma at codeaurora.org> wrote:

Hi,

Currently, the LLVM devirtualization forgets to handle a simple code pattern
where can be devirutalized. The code pattern is when a call is from the
record type member object. Currently, LLVM only supports devirtualizing a
call from the record type object defined in the same function. If object is
defined as member, it should be supported. The patch is to enable
devirtualization for this case.

In the attachment.
devir.diff is the code change
the rest of files are the results from validation tests

Please give a review.

The patch looks correct, but needs some test cases added before it can be
checked in.

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120731/5c893861/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: devirtualize-virtual-function-member.cpp
Type: application/octet-stream
Size: 473 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120731/5c893861/attachment.obj>


More information about the cfe-commits mailing list