Skip to content

Cannot build Flang with latest LLVM #1108

@kalrainder

Description

@kalrainder

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@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@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@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::Inversemlir::Block*; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, true, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, true, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, true, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, true, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = true; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr)::<lambda(llvm::DomTreeBuilder::SemiNCAInfo::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr)> [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, true>; llvm::DomTreeBuilder::SemiNCAInfo::NodePtr = mlir::Block*]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:882:25: required from ‘struct llvm::DomTreeBuilder::SemiNCAInfo::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, true>; llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, true> >::BatchUpdateInfo*; llvm::DomTreeBuilder::SemiNCAInfo::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::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, true>; llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, true> >::BatchUpdateInfo*; llvm::DomTreeBuilder::SemiNCAInfo::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::ValueUseIteratormlir::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::Inversemlir::Block*; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, false, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, false, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, false, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*, false, true, llvm::GraphTraits<llvm::Inversemlir::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::Inversemlir::Block*; bool InverseGraph = false; bool InverseEdge = true; GT = llvm::GraphTraits<llvm::Inversemlir::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 llvm::iterator_range<typename llvm::GraphTraits::ChildIteratorType> llvm::children(const typename llvm::GraphTraits::NodeRef&) [with GraphType = std::pair<const llvm::GraphDiff<mlir::Block*, false>, llvm::Inversemlir::Block* >]’
/root/LLVM/llvm-project-new/llvm-project/llvm/include/llvm/Support/GenericDomTreeConstruction.h:977:56: required from ‘static bool llvm::DomTreeBuilder::SemiNCAInfo::HasProperSupport(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo::TreeNodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, false>; llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false> >::BatchUpdateInfo
; llvm::DomTreeBuilder::SemiNCAInfo::TreeNodePtr = llvm::DomTreeNodeBasemlir::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::DeleteEdge(DomTreeT&, llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr, llvm::DomTreeBuilder::SemiNCAInfo::NodePtr) [with DomTreeT = llvm::DominatorTreeBase<mlir::Block, false>; llvm::DomTreeBuilder::SemiNCAInfo::BatchUpdatePtr = llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<mlir::Block, false> >::BatchUpdateInfo
; llvm::DomTreeBuilder::SemiNCAInfo::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::ValueUseIteratormlir::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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions