[llvm-commits] [llvm] r50782 - /llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h

Bill Wendling isanbard at gmail.com
Tue May 6 17:02:44 PDT 2008


The bug (for those who can't see it) is a problem with destructors and
inlining. Apparently, if GCC does deep inlining, this can cause a
mis-compilation when dealing with destructors. I don't know the
details, but this was the workaround given to us by the guy working on
it.

-bw

On Tue, May 6, 2008 at 4:30 PM, Bill Wendling <isanbard at gmail.com> wrote:
> Author: void
>  Date: Tue May  6 18:30:02 2008
>  New Revision: 50782
>
>  URL: http://llvm.org/viewvc/llvm-project?rev=50782&view=rev
>  Log:
>  Workaround for a compiler bug (see <rdar://problem/5852746>). Once that bug is
>  fixed, revert this patch.
>
>  Modified:
>     llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
>
>  Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
>  URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h?rev=50782&r1=50781&r2=50782&view=diff
>
>  ==============================================================================
>  --- llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h (original)
>  +++ llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Tue May  6 18:30:02 2008
>  @@ -1413,7 +1413,9 @@
>    virtual void ANCHOR();  // Out-of-line virtual method to give class a home.
>    SDUse Op;
>   public:
>  -  explicit HandleSDNode(SDOperand X)
>  +  // FIXME: Remove the "noinline" attribute once <rdar://problem/5852746> is
>  +  // fixed.
>  +  explicit __attribute__((__noinline__)) HandleSDNode(SDOperand X)
>      : SDNode(ISD::HANDLENODE, getSDVTList(MVT::Other)) {
>      Op = X;
>      InitOperands(&Op, 1);
>
>
>  _______________________________________________
>  llvm-commits mailing list
>  llvm-commits at cs.uiuc.edu
>  http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>



More information about the llvm-commits mailing list