[flang-dev] Cannot build Flang with latest LLVM

Mehdi AMINI via flang-dev flang-dev at lists.llvm.org
Mon Apr 13 11:03:14 PDT 2020


On Mon, Apr 13, 2020 at 10:54 AM Johannes Doerfert via flang-dev <
flang-dev at lists.llvm.org> wrote:

> I stripped some text so the list accepts the message:
>
>
> On 4/13/20 12:42 PM, Johannes Doerfert wrote:
> > 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".
>

Can you provide the git hash so that we ensure we are building the same
revision?
The problem you mention seems like related to a patch I reverted on Friday.

-- 
Mehdi



> >>
> >> 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); }
> _______________________________________________
> 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/22870f8d/attachment-0001.html>


More information about the flang-dev mailing list