[llvm-dev] Question about LLVM Building Error with "-DLLVM_ENABLE_DUMP" and "RelWithDebInfo"

Robinson, Paul via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 10 11:34:31 PDT 2017



> -----Original Message-----
> From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Mehdi
> Amini via llvm-dev
> Sent: Sunday, April 09, 2017 2:26 PM
> To: Matthias Braun
> Cc: llvm-dev at lists.llvm.org; jingu at codeplay.com
> Subject: Re: [llvm-dev] Question about LLVM Building Error with "-
> DLLVM_ENABLE_DUMP" and "RelWithDebInfo"
> 
> 
> > On Apr 7, 2017, at 4:45 PM, Matthias Braun via llvm-dev <llvm-
> dev at lists.llvm.org> wrote:
> >
> > I think the idea is to keep NDEBUG out of headers when possible. So I
> think this should better be something like:
> >
> > -#ifndef NDEBUG
> >   void dumpUses(unsigned RegNo) const;
> > -#endif
> >
> > to be inline with various other dumpers (like MachineInstr::dump(),
> Pass::dump(), …)
> 
> I’m fine with leaving methods there, but we need to be able to compile-out
> fields in structure.

Hmmm seems to me this has come up in the past, and somebody pointed out
that it prevents building a debug-mode front-end against a release-mode LLVM.
(Why is that a valid use-case?  If I have an out-of-tree front end, and
especially one with a different license, I might well prefer to download
only LLVM releases rather than keep up-to-date with a live tree that I
build myself.  IIRC we do not provide debug-mode downloads, therefore 
anything that affects struct size/layout will break this use-case.)
--paulr

> 
> We already have ABI_BREAKING_CHECKS for instance to this end, the naming
> isn’t completely in line with LLVM_ENABLE_DUMP but could be unified.
> 
>> Mehdi
> 
> 
> >
> > If that works for you please submit a patch to phabricator as described
> in http://llvm.org/docs/DeveloperPolicy.html#making-and-submitting-a-patch
> >
> > - Matthias
> >
> >> On Apr 6, 2017, at 7:38 AM, jingu at codeplay.com via llvm-dev <llvm-
> dev at lists.llvm.org> wrote:
> >>
> >> Hi All,
> >>
> >> I have tried to build llvm tip as following:
> >>
> >> cmake -DCMAKE_CXX_FLAGS:STRING="-DLLVM_ENABLE_DUMP" -
> DCMAKE_BUILD_TYPE=RelWithDebInfo ../llvm
> >>
> >> After running 'make', I have got error messages like below.
> >>
> >> llvm/lib/CodeGen/MachineRegisterInfo.cpp:462:67: error: no ‘void
> llvm::MachineRegisterInfo::dumpUses(unsigned int) const’ member function
> declared in class ‘llvm::MachineRegisterInfo’
> >>
> >> llvm/lib/CodeGen/MachineScheduler.cpp:2331:57: error: no ‘void
> llvm::SchedBoundary::dumpScheduledState()’ member function declared in
> class ‘llvm::SchedBoundary’
> >>
> >> ...
> >>
> >> It seems the "defined(LLVM_ENABLE_DUMP)" is needed on several
> locations. How do you think about it? I have attached the diff file about
> the locations for reference.  If I missed something, please let me know.
> >>
> >> Thanks,
> >>
> >> JinGu Kang
> >>
> >> <dump.diff>_______________________________________________
> >> LLVM Developers mailing list
> >> llvm-dev at lists.llvm.org
> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list