[cfe-commits] r111776 - in /cfe/trunk: lib/CodeGen/CGCXX.cpp lib/CodeGen/CGCXXABI.h lib/CodeGen/CGExpr.cpp lib/CodeGen/CGExprAgg.cpp lib/CodeGen/CGExprCXX.cpp lib/CodeGen/CGExprConstant.cpp lib/CodeGen/CGExprScalar.cpp lib/CodeGen/CodeGenFunction.cpp lib/CodeGen/ItaniumCXXABI.cpp lib/CodeGen/MicrosoftCXXABI.cpp lib/CodeGen/TargetInfo.cpp test/CodeGenCXX/member-function-pointers.cpp test/CodeGenCXX/x86_32-arguments.cpp

Chris Lattner clattner at apple.com
Sun Aug 22 10:54:53 PDT 2010


On Aug 22, 2010, at 3:59 AM, John McCall wrote:

> Author: rjmccall
> Date: Sun Aug 22 05:59:02 2010
> New Revision: 111776
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=111776&view=rev
> Log:
> Experiment with using first-class aggregates to represent member function
> pointers.  I find the resulting code to be substantially cleaner, and it
> makes it very easy to use the same APIs for data member pointers (which I have
> conscientiously avoided here), and it avoids a plethora of potential
> inefficiencies due to excessive memory copying, but we'll have to see if it
> actually works.

This sounds great to me.  One thing to be aware of is that FCA's aren't supported by fastisel, so using them will slow down -O0 compiles.  I think that member function pointers are sufficiently rare to not matter though!

-Chris



More information about the cfe-commits mailing list