Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# ecbe2e97 28-Jun-2012 Rafael Espindola <rafael.espindola@gmail.com>

Fix another issue with devirtualizing calls to final methods by passing them
the correct this pointer. There is some potential for sharing a bit more
code with canDevirtualizeMemberFunctionCalls, but

Fix another issue with devirtualizing calls to final methods by passing them
the correct this pointer. There is some potential for sharing a bit more
code with canDevirtualizeMemberFunctionCalls, but that can be done in an
independent patch.

llvm-svn: 159326

show more ...


# 49e860b2 26-Jun-2012 Rafael Espindola <rafael.espindola@gmail.com>

During codegen of a virtual call we would extract any casts in the expression
to see if we had an underlying final class or method, but we would then
use the cast type to do the call, resulting in a

During codegen of a virtual call we would extract any casts in the expression
to see if we had an underlying final class or method, but we would then
use the cast type to do the call, resulting in a direct call to the wrong
method.

llvm-svn: 159212

show more ...


Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1, llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1, llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1
# 6b3afd7d 29-Jan-2011 Anders Carlsson <andersca@mac.com>

When trying to get the most derived class, don't assume that we can ignore all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost.

llvm-svn: 124528


# 1ae64c5a 29-Jan-2011 Anders Carlsson <andersca@mac.com>

When calling a virtual member function on a base class and the most derived class is marked 'final', we can devirtualize the call.

llvm-svn: 124524


# 19588aa4 23-Jan-2011 Anders Carlsson <andersca@mac.com>

Get rid of the [[final]] C++0x attribute.

llvm-svn: 124083


12