[llvm-dev] Adding a clang commandline option to change backend behaviour

Oskar Szakinnis via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 6 12:19:50 PST 2020

Hello everyone,

I'm currently working on a project that required me to fundamentally modify certain mechanisms of the x86 backend, as well as certain functions within PrologEpilogInserter (so my changes are not confined to a single pass - e.g. they include changes to the x86RegisterInfo constructor).
In my current solution, I have added an option within llvm/include/llvm/CodeGen/CommandFlags.inc to enable my modifications (the modifications are placed within if-conditions in multiple segments of the code).
This requires me to compile test code in two steps (first run clang with -emit-llvm, then run llc with my option enabled in the command line).

Now I would like to be able to enable my modification through a clang command line option. What would be the canonical way to do so and which steps do I have to take? I already looked into the dev guide, but perhaps I missed something.

I already tried using -mllvm as a workaround, but for some reason my option is not being recognized. Ultimately, I'd prefer not to rely on -mllvm anyway.

To sum up my question: I want to be able to pass a boolean command line parameter to clang and use it within certain conditional statements within multiple files of the backend.

Thank you for your help and let me know if my intent is unclear.

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

More information about the llvm-dev mailing list