[llvm-commits] [llvm] r79938 - in /llvm/trunk/include/llvm: ADT/ilist.h ADT/ilist_node.h BasicBlock.h CodeGen/MachineBasicBlock.h CodeGen/MachineFunction.h CodeGen/SelectionDAG.h Function.h
Bill Wendling
wendling at apple.com
Mon Aug 24 17:06:58 PDT 2009
Hi Gabor,
I had to revert this patch. It was causing build failures during an
"Apple-style build". (It does a full build and also cross-compiling.)
Here are the errors I'm seeing. Could you take a look please?
g++ -m32 -c -g -O2 -mdynamic-no-pic -DIN_GCC -W -Wall -Wwrite-strings -
pedantic -Wno-long-long -Wno-variadic-macros -Wmissing-format-
attribute -Werror -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -
DTARGET_NAME=\"i686-apple-darwin10\" -frandom-seed=0 -DNDEBUG -I. -I. -
I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-
selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc -I/Volumes/Sandbox/
Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/
llvmgcc42~obj/src/gcc/. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-
gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../
include -I./../intl -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../
libcpp/include -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-
darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../
libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/
build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/
Developer/usr/local/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/
llvm/build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/
llvmCore~dst/Developer/usr/local/include -D_DEBUG -D_GNU_SOURCE -
D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -
DLLVM_VERSION_INFO='"9999"' -DBUILD_LLVM_APPLE_STYLE -I. -I. -I/
Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/
llvmgcc42.roots/llvmgcc42~obj/src/gcc -I/Volumes/Sandbox/Buildbot/llvm/
build.llvm-gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/
src/gcc/. -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-
darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../include -
I./../intl -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-
darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../libcpp/
include -I/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-
darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../
libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/
build.llvm-gcc-x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/
Developer/usr/local/include /Volumes/Sandbox/Buildbot/llvm/build.llvm-
gcc-x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/
llvm-backend.cpp -o llvm-backend.o
In file included from ./config.h:9,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/llvm-
backend.cpp:58:
./auto-host.h:1004:1: error: "HAVE_MMAP_FILE" redefined
In file included from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/
local/include/llvm/ADT/ilist.h:42,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/
local/include/llvm/SymbolTableListTraits.h:28,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/
local/include/llvm/BasicBlock.h:18,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/
local/include/llvm/Instructions.h:22,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmCore.roots/llvmCore~dst/Developer/usr/
local/include/llvm/Support/IRBuilder.h:19,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/llvm-
internal.h:41,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/llvm-
backend.cpp:23:
/Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-x86_64-darwin10-selfhost/
llvmCore.roots/llvmCore~dst/Developer/usr/local/include/llvm/Config/
config.h:248:1: error: this is the location of the previous definition
In file included from ./config.h:9,
from /Volumes/Sandbox/Buildbot/llvm/build.llvm-gcc-
x86_64-darwin10-selfhost/llvmgcc42.roots/llvmgcc42~obj/src/gcc/llvm-
backend.cpp:58:
./auto-host.h:1245:1: error: "PACKAGE_BUGREPORT" redefined
...
-bw
On Aug 24, 2009, at 2:34 PM, Gabor Greif wrote:
> Author: ggreif
> Date: Mon Aug 24 16:34:17 2009
> New Revision: 79938
>
> URL: http://llvm.org/viewvc/llvm-project?rev=79938&view=rev
> Log:
> Resubmit an earlier patch of mine:
> reduce the size of relevant "ghostly" sentinels
> by a pointer.
>
> This attempt now makes the compactification dependent
> on the configure variable LLVM_COMPACT_SENTINELS
> and should not cause any bootstrap failures for
> llvm-gcc any more.
>
> Please note that this is not yet the final version,
> and (as settled with Chris) I shall take out the
> autofoo/cmake portions in the next days.
>
> This will also lose the assertability on sentinel
> dereferencing and operator++, but that seems
> an acceptable price to pay for the simplified
> build logic.
>
> Modified:
> llvm/trunk/include/llvm/ADT/ilist.h
> llvm/trunk/include/llvm/ADT/ilist_node.h
> llvm/trunk/include/llvm/BasicBlock.h
> llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h
> llvm/trunk/include/llvm/CodeGen/MachineFunction.h
> llvm/trunk/include/llvm/CodeGen/SelectionDAG.h
> llvm/trunk/include/llvm/Function.h
>
> Modified: llvm/trunk/include/llvm/ADT/ilist.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ilist.h?rev=79938&r1=79937&r2=79938&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/ADT/ilist.h (original)
> +++ llvm/trunk/include/llvm/ADT/ilist.h Mon Aug 24 16:34:17 2009
> @@ -39,8 +39,15 @@
> #define LLVM_ADT_ILIST_H
>
> #include "llvm/ADT/iterator.h"
> +#include "llvm/Config/config.h"
> #include <cassert>
>
> +#if defined(LLVM_COMPACT_SENTINELS) && LLVM_COMPACT_SENTINELS
> +# define sentinel_tail_assert(COND)
> +#else
> +# define sentinel_tail_assert(COND) assert(COND)
> +#endif
> +
> namespace llvm {
>
> template<typename NodeTy, typename Traits> class iplist;
> @@ -189,12 +196,12 @@
>
> // Accessors...
> operator pointer() const {
> - assert(Traits::getNext(NodePtr) != 0 && "Dereferencing end()!");
> + sentinel_tail_assert(Traits::getNext(NodePtr) != 0 &&
> "Dereferencing end()!");
> return NodePtr;
> }
>
> reference operator*() const {
> - assert(Traits::getNext(NodePtr) != 0 && "Dereferencing end()!");
> + sentinel_tail_assert(Traits::getNext(NodePtr) != 0 &&
> "Dereferencing end()!");
> return *NodePtr;
> }
> pointer operator->() const { return &operator*(); }
> @@ -215,7 +222,7 @@
> }
> ilist_iterator &operator++() { // preincrement - Advance
> NodePtr = Traits::getNext(NodePtr);
> - assert(NodePtr && "++'d off the end of an ilist!");
> + sentinel_tail_assert(NodePtr && "++'d off the end of an ilist!");
> return *this;
> }
> ilist_iterator operator--(int) { // postdecrement operators...
>
> Modified: llvm/trunk/include/llvm/ADT/ilist_node.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ilist_node.h?rev=79938&r1=79937&r2=79938&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/ADT/ilist_node.h (original)
> +++ llvm/trunk/include/llvm/ADT/ilist_node.h Mon Aug 24 16:34:17 2009
> @@ -15,33 +15,56 @@
> #ifndef LLVM_ADT_ILIST_NODE_H
> #define LLVM_ADT_ILIST_NODE_H
>
> +#include "llvm/Config/config.h"
> +
> namespace llvm {
>
> template<typename NodeTy>
> -struct ilist_nextprev_traits;
> +struct ilist_traits;
>
> +/// ilist_half_node - Base class that provides prev services for
> sentinels.
> +///
> template<typename NodeTy>
> -struct ilist_traits;
> +class ilist_half_node {
> + friend struct ilist_traits<NodeTy>;
> + NodeTy *Prev;
> +protected:
> + NodeTy *getPrev() { return Prev; }
> + const NodeTy *getPrev() const { return Prev; }
> + void setPrev(NodeTy *P) { Prev = P; }
> + ilist_half_node() : Prev(0) {}
> +};
> +
> +template<typename NodeTy>
> +struct ilist_nextprev_traits;
>
> /// ilist_node - Base class that provides next/prev services for nodes
> /// that use ilist_nextprev_traits or ilist_default_traits.
> ///
> template<typename NodeTy>
> -class ilist_node {
> -private:
> +class ilist_node : ilist_half_node<NodeTy> {
> friend struct ilist_nextprev_traits<NodeTy>;
> friend struct ilist_traits<NodeTy>;
> - NodeTy *Prev, *Next;
> - NodeTy *getPrev() { return Prev; }
> + NodeTy *Next;
> NodeTy *getNext() { return Next; }
> - const NodeTy *getPrev() const { return Prev; }
> const NodeTy *getNext() const { return Next; }
> - void setPrev(NodeTy *N) { Prev = N; }
> void setNext(NodeTy *N) { Next = N; }
> protected:
> - ilist_node() : Prev(0), Next(0) {}
> + ilist_node() : Next(0) {}
> };
>
> +/// When assertions are off, the Next field of sentinels
> +/// will not be accessed. So it is not necessary to allocate
> +/// space for it. The following macro selects the most
> +/// efficient traits class. The LLVM_COMPACT_SENTINELS
> +/// configuration variable controls this.
> +///
> +#if defined(LLVM_COMPACT_SENTINELS) && LLVM_COMPACT_SENTINELS
> +# define ILIST_NODE ilist_half_node
> +#else
> +# define ILIST_NODE ilist_node
> +#endif
> +
> } // End llvm namespace
>
> #endif
>
> Modified: llvm/trunk/include/llvm/BasicBlock.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/BasicBlock.h?rev=79938&r1=79937&r2=79938&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/BasicBlock.h (original)
> +++ llvm/trunk/include/llvm/BasicBlock.h Mon Aug 24 16:34:17 2009
> @@ -47,7 +47,7 @@
> Instruction *ensureHead(Instruction*) const { return createSentinel
> (); }
> static void noteHead(Instruction*, Instruction*) {}
> private:
> - mutable ilist_node<Instruction> Sentinel;
> + mutable ILIST_NODE<Instruction> Sentinel;
> };
>
> /// This represents a single basic block in LLVM. A basic block is
> simply a
>
> Modified: llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h?rev=79938&r1=79937&r2=79938&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h Mon Aug 24
> 16:34:17 2009
> @@ -26,7 +26,7 @@
> template <>
> struct ilist_traits<MachineInstr> : public
> ilist_default_traits<MachineInstr> {
> private:
> - mutable ilist_node<MachineInstr> Sentinel;
> + mutable ILIST_NODE<MachineInstr> Sentinel;
>
> // this is only set by the MachineBasicBlock owning the LiveList
> friend class MachineBasicBlock;
>
> Modified: llvm/trunk/include/llvm/CodeGen/MachineFunction.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineFunction.h?rev=79938&r1=79937&r2=79938&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/CodeGen/MachineFunction.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/MachineFunction.h Mon Aug 24
> 16:34:17 2009
> @@ -38,7 +38,7 @@
> template <>
> struct ilist_traits<MachineBasicBlock>
> : public ilist_default_traits<MachineBasicBlock> {
> - mutable ilist_node<MachineBasicBlock> Sentinel;
> + mutable ILIST_NODE<MachineBasicBlock> Sentinel;
> public:
> MachineBasicBlock *createSentinel() const {
> return static_cast<MachineBasicBlock*>(&Sentinel);
>
> Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAG.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAG.h?rev=79938&r1=79937&r2=79938&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/CodeGen/SelectionDAG.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/SelectionDAG.h Mon Aug 24
> 16:34:17 2009
> @@ -37,7 +37,7 @@
>
> template<> struct ilist_traits<SDNode> : public
> ilist_default_traits<SDNode> {
> private:
> - mutable ilist_node<SDNode> Sentinel;
> + mutable ILIST_NODE<SDNode> Sentinel;
> public:
> SDNode *createSentinel() const {
> return static_cast<SDNode*>(&Sentinel);
>
> Modified: llvm/trunk/include/llvm/Function.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Function.h?rev=79938&r1=79937&r2=79938&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/Function.h (original)
> +++ llvm/trunk/include/llvm/Function.h Mon Aug 24 16:34:17 2009
> @@ -45,7 +45,7 @@
>
> static ValueSymbolTable *getSymTab(Function *ItemParent);
> private:
> - mutable ilist_node<BasicBlock> Sentinel;
> + mutable ILIST_NODE<BasicBlock> Sentinel;
> };
>
> template<> struct ilist_traits<Argument>
> @@ -62,7 +62,7 @@
>
> static ValueSymbolTable *getSymTab(Function *ItemParent);
> private:
> - mutable ilist_node<Argument> Sentinel;
> + mutable ILIST_NODE<Argument> Sentinel;
> };
>
> class Function : public GlobalValue,
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20090824/60aad74d/attachment.html>
More information about the llvm-commits
mailing list