Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot build Flang with latest LLVM #1108

Open
kalrainder opened this issue Apr 13, 2020 · 0 comments
Open

Cannot build Flang with latest LLVM #1108

kalrainder opened this issue Apr 13, 2020 · 0 comments

Comments

@kalrainder
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant