[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