[llvm-bugs] Cannot build with latest LLVM

inderjeet kalra via llvm-bugs llvm-bugs at lists.llvm.org
Sun Apr 12 23:34:40 PDT 2020


Hi,

I just did an llvm build from source and here's what I hit. I am trying to
build  projects "mlir;clang;openmp;flang".

Steps Followed:
- git clone https://github.com/llvm/llvm-project.git
- cmake -DLLVM_ENABLE_PROJECTS="mlir;clang;openmp;flang"
 -DCMAKE_C_COMPILER=/usr/local/bin/gcc
-DCMAKE_CXX_COMPILER=/usr/local/bin/g++ -G "Unix Makefiles"
-DLLVM_USE_LINKER=gold -DCMAKE_BUILD_TYPE=Debug ../llvm/
- make

[root at localhost build]# /usr/local/bin/g++ -v
Using built-in specs.
COLLECT_GCC=/usr/local/bin/g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --disable-multilib
--enable-languages=c,c++,fortran
Thread model: posix
gcc version 7.3.0 (GCC)
[root at localhost build]# /usr/local/bin/gcc -v
Using built-in specs.
COLLECT_GCC=/usr/local/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ./configure --disable-multilib
--enable-languages=c,c++,fortran
Thread model: posix
gcc version 7.3.0 (GCC)
[root at localhost build]#


Scanning dependencies of target MLIRAnalysis
[ 71%] Building CXX object
tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/CallGraph.cpp.o
[ 71%] Building CXX object
tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/Liveness.cpp.o
[ 71%] Building CXX object
tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/SliceAnalysis.cpp.o
[ 71%] Building CXX object
tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/Dominance.cpp.o
In file included from
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:20:0,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h:
In instantiation of ‘NodeRef& llvm::WrappedPairNodeDataIterator<ItType,
NodeRef, DataRef>::operator*() const [with ItType =
mlir::PredecessorIterator; NodeRef = std::pair<const
llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>; DataRef = const
llvm::GraphDiff<mlir::Block*, true>*]’:
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:315:36:
  required from ‘void llvm::filter_iterator_base<WrappedIteratorT,
PredicateT, IterTag>::findNextValid() [with WrappedIteratorT =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, true>*>; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= true; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
IterTag = std::forward_iterator_tag]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:325:18:
  required from ‘llvm::filter_iterator_base<WrappedIteratorT, PredicateT,
IterTag>::filter_iterator_base(WrappedIteratorT, WrappedIteratorT,
PredicateT) [with WrappedIteratorT =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, true>*>; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= true; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
IterTag = std::forward_iterator_tag]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:348:31:
  required from ‘llvm::filter_iterator_impl<WrappedIteratorT, PredicateT,
IterTag>::filter_iterator_impl(WrappedIteratorT, WrappedIteratorT,
PredicateT) [with WrappedIteratorT =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, true>*>; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= true; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
IterTag = std::forward_iterator_tag]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:419:7:
  required from ‘llvm::iterator_range<llvm::filter_iterator_impl<decltype
(std::begin(declval<RangeT&>())), PredicateT, typename
llvm::detail::fwd_or_bidi_tag<decltype
(std::begin(declval<RangeT&>()))>::type> >
llvm::make_filter_range(RangeT&&, PredicateT) [with RangeT =
llvm::iterator_range<llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, true>*> >; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= true; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
true, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
typename llvm::detail::fwd_or_bidi_tag<decltype
(std::begin(declval<RangeT&>()))>::type = std::forward_iterator_tag;
decltype (std::begin(declval<RangeT&>())) =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, true>*>]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:234:35:
  required from ‘static auto llvm::CFGViewChildren<GraphT, InverseGraph,
InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph,
InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool
InverseGraph = true; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, true>*, mlir::Block*>;
typename GT::NodeRef = mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:255:20:
  [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to
disable ]
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:885:59:
  required from
‘llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr)::<lambda(llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr)> [with DomTreeT =
llvm::DominatorTreeBase<mlir::Block, true>;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr = mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:882:25:
  required from ‘struct
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr) [with DomTreeT =
llvm::DominatorTreeBase<mlir::Block, true>;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr =
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block,
true> >::BatchUpdateInfo*;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr =
mlir::Block*]::<lambda(using NodePtr = using NodePtr = class mlir::Block*,
using NodePtr = using NodePtr = class mlir::Block*)>’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:882:10:
  required from ‘static void
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr) [with DomTreeT =
llvm::DominatorTreeBase<mlir::Block, true>;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr =
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block,
true> >::BatchUpdateInfo*;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr = mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1540:36:
  required from ‘void llvm::DomTreeBuilder::DeleteEdge(DomTreeT&, typename
DomTreeT::NodePtr, typename DomTreeT::NodePtr) [with DomTreeT =
llvm::DominatorTreeBase<mlir::Block, true>; typename DomTreeT::NodePtr =
mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:561:31:
  required from ‘void llvm::DominatorTreeBase<NodeT,
IsPostDom>::deleteEdge(NodeT*, NodeT*) [with NodeT = mlir::Block; bool
IsPostDom = true]’
/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:23:22:
  required from here
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h:366:17:
error: passing ‘const mlir::PredecessorIterator’ as ‘this’ argument
discards qualifiers [-fpermissive]
     NR.second = *this->I;
                 ^~~~~~~~
In file included from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18:0,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:217:16:
note:   in call to ‘FuncReturnTy llvm::mapped_iterator<ItTy, FuncTy,
FuncReturnTy>::operator*() [with ItTy =
mlir::ValueUseIterator<mlir::BlockOperand>; FuncTy = mlir::Block*
(*)(mlir::BlockOperand&); FuncReturnTy = mlir::Block*]’
   FuncReturnTy operator*() { return F(*this->I); }
                ^~~~~~~~
In file included from
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:20:0,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h:
In instantiation of ‘NodeRef& llvm::WrappedPairNodeDataIterator<ItType,
NodeRef, DataRef>::operator*() const [with ItType =
mlir::PredecessorIterator; NodeRef = std::pair<const
llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>; DataRef = const
llvm::GraphDiff<mlir::Block*, false>*]’:
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:315:36:
  required from ‘void llvm::filter_iterator_base<WrappedIteratorT,
PredicateT, IterTag>::findNextValid() [with WrappedIteratorT =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, false>*>; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= false; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
IterTag = std::forward_iterator_tag]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:325:18:
  required from ‘llvm::filter_iterator_base<WrappedIteratorT, PredicateT,
IterTag>::filter_iterator_base(WrappedIteratorT, WrappedIteratorT,
PredicateT) [with WrappedIteratorT =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, false>*>; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= false; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
IterTag = std::forward_iterator_tag]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:348:31:
  required from ‘llvm::filter_iterator_impl<WrappedIteratorT, PredicateT,
IterTag>::filter_iterator_impl(WrappedIteratorT, WrappedIteratorT,
PredicateT) [with WrappedIteratorT =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, false>*>; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= false; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
IterTag = std::forward_iterator_tag]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:419:7:
  required from ‘llvm::iterator_range<llvm::filter_iterator_impl<decltype
(std::begin(declval<RangeT&>())), PredicateT, typename
llvm::detail::fwd_or_bidi_tag<decltype
(std::begin(declval<RangeT&>()))>::type> >
llvm::make_filter_range(RangeT&&, PredicateT) [with RangeT =
llvm::iterator_range<llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, false>*> >; PredicateT =
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge,
GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool InverseGraph
= false; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>;
typename GT::NodeRef =
mlir::Block*]::<lambda(llvm::CFGViewChildren<llvm::Inverse<mlir::Block*>,
false, true, llvm::GraphTraits<llvm::Inverse<mlir::Block*> > >::NodeRef)>;
typename llvm::detail::fwd_or_bidi_tag<decltype
(std::begin(declval<RangeT&>()))>::type = std::forward_iterator_tag;
decltype (std::begin(declval<RangeT&>())) =
llvm::WrappedPairNodeDataIterator<mlir::PredecessorIterator,
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>, const
llvm::GraphDiff<mlir::Block*, false>*>]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:234:35:
  required from ‘static auto llvm::CFGViewChildren<GraphT, InverseGraph,
InverseEdge, GT>::children(llvm::CFGViewChildren<GraphT, InverseGraph,
InverseEdge, GT>::NodeRef) [with GraphT = llvm::Inverse<mlir::Block*>; bool
InverseGraph = false; bool InverseEdge = true; GT =
llvm::GraphTraits<llvm::Inverse<mlir::Block*> >;
llvm::CFGViewChildren<GraphT, InverseGraph, InverseEdge, GT>::NodeRef =
std::pair<const llvm::GraphDiff<mlir::Block*, false>*, mlir::Block*>;
typename GT::NodeRef = mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/IR/CFGDiff.h:255:20:
  [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to
disable ]
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/GraphTraits.h:121:1:
  required by substitution of ‘template<class GraphType>
llvm::iterator_range<typename
llvm::GraphTraits<GraphType>::ChildIteratorType> llvm::children(const
typename llvm::GraphTraits<T>::NodeRef&) [with GraphType = std::pair<const
llvm::GraphDiff<mlir::Block*, false>*, llvm::Inverse<mlir::Block*> >]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:977:56:
  required from ‘static bool
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::HasProperSupport(DomTreeT&,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::TreeNodePtr) [with DomTreeT =
llvm::DominatorTreeBase<mlir::Block, false>;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr =
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block,
false> >::BatchUpdateInfo*;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::TreeNodePtr =
llvm::DomTreeNodeBase<mlir::Block>*; typename DomTreeT::NodeType =
mlir::Block]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:919:47:
  required from ‘static void
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::DeleteEdge(DomTreeT&,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr,
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr) [with DomTreeT =
llvm::DominatorTreeBase<mlir::Block, false>;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::BatchUpdatePtr =
llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block,
false> >::BatchUpdateInfo*;
llvm::DomTreeBuilder::SemiNCAInfo<DomTreeT>::NodePtr = mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:1540:36:
  required from ‘void llvm::DomTreeBuilder::DeleteEdge(DomTreeT&, typename
DomTreeT::NodePtr, typename DomTreeT::NodePtr) [with DomTreeT =
llvm::DominatorTreeBase<mlir::Block, false>; typename DomTreeT::NodePtr =
mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:561:31:
  required from ‘void llvm::DominatorTreeBase<NodeT,
IsPostDom>::deleteEdge(NodeT*, NodeT*) [with NodeT = mlir::Block; bool
IsPostDom = false]’
/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:22:22:
  required from here
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/iterator.h:366:17:
error: passing ‘const mlir::PredecessorIterator’ as ‘this’ argument
discards qualifiers [-fpermissive]
     NR.second = *this->I;
                 ^~~~~~~~
In file included from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Support/STLExtras.h:18:0,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/StorageUniquerSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/TypeSupport.h:17,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Types.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Value.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/BlockSupport.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Block.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/Region.h:16,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/IR/RegionGraphTraits.h:18,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/include/mlir/Analysis/Dominance.h:12,
                 from
/root/LLVM/llvm-project-new/llvm-project/mlir/lib/Analysis/Dominance.cpp:14:
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/ADT/STLExtras.h:217:16:
note:   in call to ‘FuncReturnTy llvm::mapped_iterator<ItTy, FuncTy,
FuncReturnTy>::operator*() [with ItTy =
mlir::ValueUseIterator<mlir::BlockOperand>; FuncTy = mlir::Block*
(*)(mlir::BlockOperand&); FuncReturnTy = mlir::Block*]’
   FuncReturnTy operator*() { return F(*this->I); }
                ^~~~~~~~
make[2]: ***
[tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/Dominance.cpp.o] Error
1
make[1]: *** [tools/mlir/lib/Analysis/CMakeFiles/MLIRAnalysis.dir/all]
Error 2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200413/e38b96a4/attachment-0001.html>


More information about the llvm-bugs mailing list