[PATCH] D20083: Add an c++ itanium demangler to llvm
Craig, Ben via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 24 11:24:47 PDT 2016
On 8/24/2016 1:20 PM, Rafael Espíndola wrote:
>
> We need a demangler in llvm, and that requires annoying tradeoffs:
>
> * llvm depends on libc++abi.
> * libc++abi depends on llvm.
> * both llvm and libc++abi dependent on a libdemangle.
> * we keep a file in both repositories.
> * we have two independent implementations.
>
> The first 3 introduce annoying dependencies. The last one means the
> llvm demangler can have a nice interface (stringref), but duplicates a
> lot of code.
>
> Having a file that is copied in both repositories is the least
> horrible option IMHO. Having said that, any solution where lld on
> windows can demangle itanium names would work for us.
>
I agree that duplication isn't ideal. I also agree that it's probably
the best option here. I think option 4 naturally turns into option 5
over time, and in this situation, I think that is also fine (though
annoying).
> Cheers,
> Rafael
>
>
> On Aug 24, 2016 1:16 PM, "Mehdi Amini" <mehdi.amini at apple.com
> <mailto:mehdi.amini at apple.com>> wrote:
>
>
> > On Aug 24, 2016, at 9:56 AM, Craig, Ben
> <ben.craig at codeaurora.org <mailto:ben.craig at codeaurora.org>> wrote:
> >
> > On 8/24/2016 11:31 AM, Rafael Espíndola wrote:
> >>> 1. I think there are already too many build time dependencies
> crossing the compiler / runtime boundary. I'm tired of my libcxx
> and libcxxabi builds failing because of unrelated cmake changes in
> LLVM. To avoid that, I could build a standalone version... but
> now that won't be easily possible because of this change.
> >> Not sure I follow. Note that this function is in an independent
> >> library with no dependencies.
> >>
> >>> Building libcxx and libcxxabi shouldn't require me to pull
> down llvm sources, or to have a "dev" install of llvm, and this
> change makes that problem even worse than it already is. Will
> this even work for the cross compilation cases?
> >> This should not change this case at all. This just adds a file
> to llvm
> >> itself. In a future change I will add a ifdef to it so that it can
> >> also be used with no changes in libcxxabi.
> > I guess I'm protesting the future change, rather than this
> change. libc++abi should not use source files, header files,
> static libraries, or shared objects that come from the llvm
> repository.
>
> That's bothering: it means that any functionality has to be
> reimplemented (can’t use simple StringRef or Twine helper, which
> is annoying when doing string processing like here).
>
> —
> Mehdi
>
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160824/13fac094/attachment.html>
More information about the llvm-commits
mailing list