[lldb-dev] Heads up: LLDB is broken with LLVM at ToT

Zachary Turner zturner at google.com
Tue Dec 9 14:20:06 PST 2014


Testing now.   I notice a few of the changes aren't actually required in
order to fix compiler errors.  For example, this line:

-    ConstantInt *constant_int =
dyn_cast<ConstantInt>(alloc_md->getOperand(0));
+    ConstantInt *constant_int =
mdconst::dyn_extract<ConstantInt>(alloc_md->getOperand(0));

wasn't actually failing.  Not sure if that's important, but I'm using your
fixed version anyway.

On Tue Dec 09 2014 at 2:11:08 PM Duncan P. N. Exon Smith <
dexonsmith at apple.com> wrote:

> Attaching a patch that should fix it.  Can you try compiling?
>
>
>
>
> > On 2014 Dec 9, at 14:03, Zachary Turner <zturner at google.com> wrote:
> >
> > Here's the 3 errors.
> >
> > ..\..\tools\lldb\source\Expression\IRForTarget.cpp(413) : error C2678:
> binary '!=' : no operator found which takes a left-hand operand of type
> 'const llvm::MDOperand' (or there is no acceptable conversion)
> >         d:\src\llvm\include\llvm/ADT/APSInt.h(291): could be 'bool
> llvm::operator !=(int64_t,const llvm::APSInt &)'
> >         d:\src\llvm\include\llvm/ADT/APInt.h(1724): or       'bool
> llvm::operator !=(uint64_t,const llvm::APInt &)'
> >         d:\src\llvm\include\llvm/ADT/StringRef.h(527): or       'bool
> llvm::operator !=(llvm::StringRef,llvm::StringRef)'
> >         while trying to match the argument list '(const llvm::MDOperand,
> const llvm::GlobalValue *)'
> >
> >
> >
> > ..\..\tools\lldb\source\Expression\IRForTarget.cpp(647) : error C2664:
> 'llvm::MDNode *llvm::MDNode::get(llvm::LLVMContext &,llvm::ArrayRef<llvm::
> Metadata *>)' : cannot convert argument 2 from
> 'llvm::ArrayRef<llvm::Value *>' to 'llvm::ArrayRef<llvm::Metadata *>'
> >         No user-defined-conversion operator available that can perform
> this conversion, or the operator cannot be called
> >
> >
> > ..\..\tools\lldb\source\Expression\IRForTarget.cpp(1254) : error C2664:
> 'llvm::MDNode *llvm::MDNode::get(llvm::LLVMContext &,llvm::ArrayRef<llvm::
> Metadata *>)' : cannot convert argument 2 from
> 'llvm::ArrayRef<llvm::Value *>' to 'llvm::ArrayRef<llvm::Metadata *>'
> >         No user-defined-conversion operator available that can perform
> this conversion, or the operator cannot be called
> >
> >
> > On Tue Dec 09 2014 at 1:56:03 PM Zachary Turner <zturner at google.com>
> wrote:
> > I'm not sure what the status of building LLDB with CMake is, but the
> normal way apple people build LLDB is to structure the directory like this:
> >
> > lldb
> > --llvm
> > ----tools
> > ------clang
> >
> > Then open the xcode workspace and build the lldb-tool target.
> >
> > I'll sync to ToT again though so that I can get you a dump of the
> compiler errors I'm seeing.
> >
> > On Tue Dec 09 2014 at 1:52:40 PM Duncan P. N. Exon Smith <
> dexonsmith at apple.com> wrote:
> > I'm trying to build lldb now, but it's hung trying to build LLVM and
> > clang... but I already built these?  I don't really understand.
> >
> > Is there any way to make lldb point to my LLVM checkout?  I just want to
> > see the compiler errors so I can fix them :(.
> >
> > Alternatively, if some can email me a compile log with all the errors
> > (can you do a `make -k` or something?) I can send you a patch... this is
> > mechanical to update, but I need the compiler to tell me what's wrong.
> >
> > I expect the fixes to all be along these lines:
> >
> >  - Value *Ops[] => Metadata *Ops[]
> >
> >  - cast<ConstantInt>(N->getOperand(0)) =>
> >    mdconst::extract<ConstantInt>(N->getOperand(0))
> >
> >  - Value *Op = ConstantInt::get(...) =>
> >    Metadata *Op = ConstantAsMetadata::get(ConstantInt::get(...))
> >
> > Sorry for the breakage :(.
> >
> > > On 2014 Dec 9, at 13:41, Zachary Turner <zturner at google.com> wrote:
> > >
> > > If you sync llvm past git revision db7b69e3a634c5fdff0eceeee2a41ee49c3270a2
> (svn r223802), your LLDB build will be broken.
> > >
> > > I was able to fix one of the errors, but this isn't really my area of
> expertise, so I stopped when I realized I didn't know what I was doing.
> > >
> > > Just a warning not to sync LLVM until this is fixed.  I've CC'ed Sean
> and Duncan as they are probably the best people to fix this, but if anyone
> else knows how to fix it, feel free.
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20141209/0237eed9/attachment.html>


More information about the lldb-dev mailing list