Jeremy Huddleston Sequoia
2013-Nov-26 08:03 UTC
[LLVMdev] R600/SI build failure on Leopard (Use of C++11)
Hi Christian, Ryan just reported to me that llvm-3.4 is no longer building on OS X Leopard (https://trac.macports.org/ticket/41548). It seems the issue is with a commit that you made back in April (referenced below) which added this to SIISelLowering.cpp: // Adjust the writemask in the node std::vector<SDValue> Ops; Ops.push_back(DAG.getTargetConstant(NewDmask, MVT::i32)); for (unsigned i = 1, e = Node->getNumOperands(); i != e; ++i) Ops.push_back(Node->getOperand(i)); Node = (MachineSDNode*)DAG.UpdateNodeOperands(Node, Ops.data(), Ops.size()); That fails with Leopard's libstdc++ STL which does not a data method for std::vector. This method was added in C++11: http://www.cplusplus.com/reference/vector/vector/ Is llvm-3.4 now requiring a C++11 runtime? If not, can we solve this a different way? Thanks, Jeremy commit 84a775d8e3d5a3765e01db4b454f849ed8be99be Author: Christian Konig <christian.koenig at amd.com> Date: Wed Apr 10 08:39:08 2013 +0000 R600/SI: adjust writemask to only the used components Signed-off-by: Christian König <christian.koenig at amd.com> Reviewed-by: Michel Dänzer <michel.daenzer at amd.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk at 179165 91177308-0d34-0410-b5e6-96231b3b80d8 -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4136 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131126/021b2404/attachment.bin>
Anton Korobeynikov
2013-Nov-26 09:41 UTC
[LLVMdev] R600/SI build failure on Leopard (Use of C++11)
Can't you just use &Ops[0] ? On Tue, Nov 26, 2013 at 12:03 PM, Jeremy Huddleston Sequoia <jeremyhu at apple.com> wrote:> Hi Christian, > > Ryan just reported to me that llvm-3.4 is no longer building on OS X Leopard (https://trac.macports.org/ticket/41548). It seems the issue is with a commit that you made back in April (referenced below) which added this to SIISelLowering.cpp: > > // Adjust the writemask in the node > std::vector<SDValue> Ops; > Ops.push_back(DAG.getTargetConstant(NewDmask, MVT::i32)); > for (unsigned i = 1, e = Node->getNumOperands(); i != e; ++i) > Ops.push_back(Node->getOperand(i)); > Node = (MachineSDNode*)DAG.UpdateNodeOperands(Node, Ops.data(), Ops.size()); > > That fails with Leopard's libstdc++ STL which does not a data method for std::vector. This method was added in C++11: > http://www.cplusplus.com/reference/vector/vector/ > > Is llvm-3.4 now requiring a C++11 runtime? If not, can we solve this a different way? > > Thanks, > Jeremy > > > > commit 84a775d8e3d5a3765e01db4b454f849ed8be99be > Author: Christian Konig <christian.koenig at amd.com> > Date: Wed Apr 10 08:39:08 2013 +0000 > > R600/SI: adjust writemask to only the used components > > Signed-off-by: Christian König <christian.koenig at amd.com> > Reviewed-by: Michel Dänzer <michel.daenzer at amd.com> > > git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk at 179165 91177308-0d34-0410-b5e6-96231b3b80d8 > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
Jeremy Huddleston Sequoia
2013-Nov-26 09:56 UTC
[LLVMdev] R600/SI build failure on Leopard (Use of C++11)
On Nov 26, 2013, at 1:41, Anton Korobeynikov <anton at korobeynikov.info> wrote:> Can't you just use &Ops[0] ?Is that safely portable? ie is it required that pre-C++11 std:vector be implemented such that the data is stored contiguously in a realloc'd array? While I'm not sure anyone would do this (so perhaps the point is moot), it seems that one could use non-contiguous blocks as an implementation detail if allowed by the standard.> > On Tue, Nov 26, 2013 at 12:03 PM, Jeremy Huddleston Sequoia > <jeremyhu at apple.com> wrote: >> Hi Christian, >> >> Ryan just reported to me that llvm-3.4 is no longer building on OS X Leopard (https://trac.macports.org/ticket/41548). It seems the issue is with a commit that you made back in April (referenced below) which added this to SIISelLowering.cpp: >> >> // Adjust the writemask in the node >> std::vector<SDValue> Ops; >> Ops.push_back(DAG.getTargetConstant(NewDmask, MVT::i32)); >> for (unsigned i = 1, e = Node->getNumOperands(); i != e; ++i) >> Ops.push_back(Node->getOperand(i)); >> Node = (MachineSDNode*)DAG.UpdateNodeOperands(Node, Ops.data(), Ops.size()); >> >> That fails with Leopard's libstdc++ STL which does not a data method for std::vector. This method was added in C++11: >> http://www.cplusplus.com/reference/vector/vector/ >> >> Is llvm-3.4 now requiring a C++11 runtime? If not, can we solve this a different way? >> >> Thanks, >> Jeremy >> >> >> >> commit 84a775d8e3d5a3765e01db4b454f849ed8be99be >> Author: Christian Konig <christian.koenig at amd.com> >> Date: Wed Apr 10 08:39:08 2013 +0000 >> >> R600/SI: adjust writemask to only the used components >> >> Signed-off-by: Christian König <christian.koenig at amd.com> >> Reviewed-by: Michel Dänzer <michel.daenzer at amd.com> >> >> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk at 179165 91177308-0d34-0410-b5e6-96231b3b80d8 >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> > > > > -- > With best regards, Anton Korobeynikov > Faculty of Mathematics and Mechanics, Saint Petersburg State University-------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 4136 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131126/dbc040eb/attachment.bin>
Reasonably Related Threads
- [LLVMdev] R600/SI build failure on Leopard (Use of C++11)
- [LLVMdev] R600/SI build failure on Leopard (Use of C++11)
- [LLVMdev] R600/SI build failure on Leopard (Use of C++11)
- [LLVMdev] [PATCH] R600/SI: Embed disassembly in ELF object
- [LLVMdev] [PATCH] R600/SI: Embed disassembly in ELF object