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.
________________________________
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.orgmailto: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.commailto: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.orgmailto: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