[LLVMdev] Ideas for making llvm-config --cxxflags more useful

Chris Bieneman beanz at apple.com
Mon Aug 3 11:06:31 PDT 2015


To add a few data points. I did a quick scan of the headers and here are the ABI incompatibilities I came up with:

/Users/cbieneman/dev/open-source/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:86-88
/Users/cbieneman/dev/open-source/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:114-117
/Users/cbieneman/dev/open-source/llvm/include/llvm/CodeGen/MachineScheduler.h:244-248,623-627
/Users/cbieneman/dev/open-source/llvm/include/llvm/CodeGen/RegAllocPBQP.h:323-325
/Users/cbieneman/dev/open-source/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h:260-262
/Users/cbieneman/dev/open-source/llvm/include/llvm/CodeGen/SelectionDAG.h:295-297
/Users/cbieneman/dev/open-source/llvm/include/llvm/IR/ValueHandle.h:188-190,194-201
/Users/cbieneman/dev/open-source/llvm/include/llvm/MC/MCSchedule.h:27-29,105-107

-Chris

> On Aug 3, 2015, at 11:02 AM, Justin Bogner <mail at justinbogner.com> wrote:
> 
> Mehdi Amini <mehdi.amini at apple.com <mailto:mehdi.amini at apple.com>> writes:
>>> On Aug 3, 2015, at 10:24 AM, Chris Bieneman <beanz at apple.com> wrote:
>>> 
>>> Hey Tom,
>>> 
>>> I’m not a regular user of llvm-config, but this sounds completely
>>> right to me, and it would be a significant improvement over what we
>>> have now.
>>> 
>>> The only question I want to raise is, what about NDEBUG? There are
>>> headers that conditionalize on NDEBUG, which could lead to ABI
>>> incompatibility in the C++ API.
>> 
>> Is it something that can be fixed or would it be too complicated to handle? 
>> It would be nice in general to be able to link a “Non assert” build of
>> Clang with an “Assert" version of LLVM (and vice-versa).
>> 
>> And on the original topic: +1 for Tom proposal/goal, it makes sense to me.
> 
> It's probably possible, but I think it's quite a bit of work from where
> we are now. A lot of our headers are not ABI compatible between NDEBUG
> and !NDEBUG.
> 
> llvm-config does already provide --assertion-mode to check NDEBUG in
> particular. I'm not sure if that's sufficient though, since it's easy to
> do the wrong thing when you need to use two different calls to get the
> right set of flags to be able to grok llvm headers.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150803/4764828a/attachment.html>


More information about the llvm-dev mailing list