mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
[asan] Reduce binary size by using unnamed private aliases
Summary: --asan-use-private-alias increases binary sizes by 10% or more. Most of this space was long names of aliases and new symbols. These symbols are not needed for the ODC check at all. Reviewers: eugenis Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D55146 llvm-svn: 348221
This commit is contained in:
parent
387345645f
commit
9251659358
@ -746,7 +746,7 @@ public:
|
||||
ClRecover : Recover;
|
||||
this->CompileKernel = ClEnableKasan.getNumOccurrences() > 0 ?
|
||||
ClEnableKasan : CompileKernel;
|
||||
}
|
||||
}
|
||||
|
||||
bool runOnModule(Module &M) override;
|
||||
StringRef getPassName() const override { return "AddressSanitizerModule"; }
|
||||
@ -2176,8 +2176,8 @@ bool AddressSanitizerModule::InstrumentGlobals(IRBuilder<> &IRB, Module &M, bool
|
||||
if (CanUsePrivateAliases && ClUsePrivateAliasForGlobals) {
|
||||
// Create local alias for NewGlobal to avoid crash on ODR between
|
||||
// instrumented and non-instrumented libraries.
|
||||
auto *GA = GlobalAlias::create(GlobalValue::InternalLinkage,
|
||||
NameForGlobal + M.getName(), NewGlobal);
|
||||
auto *GA =
|
||||
GlobalAlias::create(GlobalValue::PrivateLinkage, "", NewGlobal);
|
||||
|
||||
// With local aliases, we need to provide another externally visible
|
||||
// symbol __odr_asan_XXX to detect ODR violation.
|
||||
|
@ -7,7 +7,7 @@ target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
; Check that we generate internal alias and odr indicator symbols for global to be protected.
|
||||
; CHECK: @__odr_asan_gen_a = internal global i8 0, align 1
|
||||
; CHECK: @"a<stdin>" = internal alias { [2 x i32], [56 x i8] }, { [2 x i32], [56 x i8] }* @a
|
||||
; CHECK: @0 = private alias { [2 x i32], [56 x i8] }, { [2 x i32], [56 x i8] }* @a
|
||||
|
||||
; Function Attrs: nounwind sanitize_address uwtable
|
||||
define i32 @foo(i32 %M) #0 {
|
||||
|
Loading…
Reference in New Issue
Block a user