On 11/30/2018 7:47 AM, Osman Zakir via Boost-users wrote:
So can I pass that flag to b2 when building Boost and have it generate bitcode? How do I configure the Boost.Build to use LLVM/Clang as the compiler toolchain, though? On Windows, of course.
You should not top post. On Windows: If LLVM/clang is targeting vc++, use the clang-win toolchain; if LLVM/clang is targeting mingw(-w64)/gcc use the clang toolchain.
------------------------------------------------------------------------ *From:* degski
*Sent:* Friday, November 30, 2018 11:03 AM *To:* boost-users@lists.boost.org *Cc:* osmanzakir90@hotmail.com *Subject:* Re: [Boost-users] LLVM bitcode for Boost libraries? On Thu, 29 Nov 2018 at 18:09, Osman Zakir via Boost-users mailto:boost-users@lists.boost.org> wrote: And what about how to generate LLVM bitcode for Boost libraries? Can I do it with the bootstrapper tool that comes with the Boost distribution when we download Boost source files?
I'm cross-posting this from the cfe-dev list [I know nothing about this, just that the questions seem to be the same]
Date: Thu, 29 Nov 2018 09:48:58 +0100 From: Alex Denisov via cfe-dev
mailto:cfe-dev@lists.llvm.org> To: David Greene mailto:dag@cray.com> Cc: "cfe-dev@lists.llvm.org mailto:cfe-dev@lists.llvm.org" mailto:cfe-dev@lists.llvm.org> Subject: Re: [cfe-dev] Getting LLVM IR from clang Message-ID: <268D2CEC-AFC2-4F32-94FE-E445E882A00D@gmail.com mailto:268D2CEC-AFC2-4F32-94FE-E445E882A00D@gmail.com> Content-Type: text/plain; charset=us-ascii Hi David,
There are at least two robust ways to get the Bitcode/IR:
1. LTO. You can enable link-time optimization by adding -flto compiler flags, in the end all object files (*.o) will in fact be bitcode files. I.e.:
> file gmock.dir/gmock-gtest-all.cc.o gmock.dir/gmock-gtest-all.cc.o: LLVM bitcode, wrapper x86_6
2. Embedded bitcode. Clang 3.9 and higher has an option -fembed-bitcode. When enabled, the resulting executable will contain additional section containing bitcode. You can use this great tool[1] to extract the bitcode from an executable.
Both approaches produce bitcode (binary format), if you need IR (human-readable format), then you can post-process the bitcode by running llvm-dis against each bitcode file.
I hope it helps.
[1] https://github.com/JDevlieghere/LibEBC
On 28. Nov 2018, at 23:22, David Greene via cfe-dev
mailto:cfe-dev@lists.llvm.org> wrote: How do I get the LLVM IR produced by clang? I know that -emit-llvm produces IR but it seems to be after processing by LLVM (things are optimized out, for example). Is there an "official" way to get the IR coming right out of clang's codegen? I can do a hack with -mllvm -print-before-all but that's icky.
Thanks!
-David _______________________________________________ cfe-dev mailing list cfe-dev@lists.llvm.org mailto:cfe-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
degski -- /*/*“*/If something cannot go on forever, it will stop" - Herbert Stein*/
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users