[flang-dev] Cannot build Flang with latest LLVM

Johannes Doerfert via flang-dev flang-dev at lists.llvm.org
Mon Apr 13 10:42:27 PDT 2020


TBH, this looks like a MLIR problem to me as all the errors seem to 
originate from the MLIR subfolder.

Did you try building without flang? If the error persists we need to 
notify MLIR folks, if not it might

be our cmake.


Cheers,

   Johannes


On 4/13/20 1:36 AM, inderjeet kalra via flang-dev wrote:
> 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
>
>
> _______________________________________________
> flang-dev mailing list
> flang-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/flang-dev/attachments/20200413/96745c70/attachment-0001.html>


More information about the flang-dev mailing list