[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