[PATCH] gold, libLTO: Add new flags to support bit set lowering.

Peter Collingbourne peter at pcc.me.uk
Tue Mar 17 17:23:20 PDT 2015

On Tue, Mar 17, 2015 at 05:03:09PM -0700, Manman Ren wrote:
> Hi Peter,
> This will change the default behavior of LTO API.
> We used to run LowerBitSetsPass when OptLevel is not zero. But now it is controlled by the flag “lowerbitsets” in tools/lto/lto.cpp, where the default value is false.
> Also with the patch, we run CFGSimplificationPass one more time when OptLevel is not zero and LowerBitSets is true.

I don't think this should be a problem; there is no user-visible behaviour
change when using the supported way of enabling control flow integrity.

The only supported way to enable CFI for the user to supply -fsanitize=cfi*
at link time as well as at compile time. (Admittedly this should be
documented better.) The LowerBitSets pass only has an effect on the module
if -fsanitize=cfi* was passed as compile time. And the related change
http://reviews.llvm.org/D8402 modifies the Clang driver to supply the
lowerbitsets flag if -fsanitize=cfi* is supplied at link time.


More information about the llvm-commits mailing list