Skip to content

Commit ebcc8e4

Browse files
committed
Put the interposer in llvm.compiler.used.
1 parent 6e86ae6 commit ebcc8e4

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/aotcompile.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <llvm/Transforms/InstCombine/InstCombine.h>
3434
#include <llvm/Transforms/Scalar/InstSimplifyPass.h>
3535
#include <llvm/Transforms/Utils/SimplifyCFGOptions.h>
36+
#include <llvm/Transforms/Utils/ModuleUtils.h>
3637
#include <llvm/Passes/PassBuilder.h>
3738
#include <llvm/Passes/PassPlugin.h>
3839
#if defined(USE_POLLY)
@@ -441,9 +442,8 @@ static void injectCRTAlias(Module &M, StringRef name, StringRef alias, FunctionT
441442
if (!target) {
442443
target = Function::Create(FT, Function::ExternalLinkage, alias, M);
443444
}
444-
// Weak so that this does not get discarded
445-
// maybe use llvm.compiler.used instead?
446445
Function *interposer = Function::Create(FT, Function::WeakAnyLinkage, name, M);
446+
appendToCompilerUsed(M, {interposer});
447447

448448
llvm::IRBuilder<> builder(BasicBlock::Create(M.getContext(), "top", interposer));
449449
SmallVector<Value *, 4> CallArgs;

0 commit comments

Comments
 (0)