mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-17 16:31:02 +00:00
[sanitizer-coverage] remove some more stale code
llvm-svn: 300778
This commit is contained in:
parent
7c9b086ef5
commit
c5d3d49034
@ -59,7 +59,6 @@ using namespace llvm;
|
||||
static const char *const SanCovModuleInitName = "__sanitizer_cov_module_init";
|
||||
static const char *const SanCovName = "__sanitizer_cov";
|
||||
static const char *const SanCovWithCheckName = "__sanitizer_cov_with_check";
|
||||
static const char *const SanCovIndirCallName = "__sanitizer_cov_indir_call16";
|
||||
static const char *const SanCovTracePCIndirName =
|
||||
"__sanitizer_cov_trace_pc_indir";
|
||||
static const char *const SanCovTracePCName = "__sanitizer_cov_trace_pc";
|
||||
@ -82,8 +81,7 @@ static const char *const SanCovTracePCGuardInitName =
|
||||
static cl::opt<int> ClCoverageLevel(
|
||||
"sanitizer-coverage-level",
|
||||
cl::desc("Sanitizer Coverage. 0: none, 1: entry block, 2: all blocks, "
|
||||
"3: all blocks and critical edges, "
|
||||
"4: above plus indirect calls"),
|
||||
"3: all blocks and critical edges"),
|
||||
cl::Hidden, cl::init(0));
|
||||
|
||||
static cl::opt<unsigned> ClCoverageBlockThreshold(
|
||||
@ -197,7 +195,7 @@ private:
|
||||
StringRef getSanCovTracePCGuardSectionEnd() const;
|
||||
Function *SanCovFunction;
|
||||
Function *SanCovWithCheckFunction;
|
||||
Function *SanCovIndirCallFunction, *SanCovTracePCIndir;
|
||||
Function *SanCovTracePCIndir;
|
||||
Function *SanCovTracePC, *SanCovTracePCGuard;
|
||||
Function *SanCovTraceCmpFunction[4];
|
||||
Function *SanCovTraceDivFunction[2];
|
||||
@ -243,9 +241,6 @@ bool SanitizerCoverageModule::runOnModule(Module &M) {
|
||||
M.getOrInsertFunction(SanCovWithCheckName, VoidTy, Int32PtrTy));
|
||||
SanCovTracePCIndir = checkSanitizerInterfaceFunction(
|
||||
M.getOrInsertFunction(SanCovTracePCIndirName, VoidTy, IntptrTy));
|
||||
SanCovIndirCallFunction =
|
||||
checkSanitizerInterfaceFunction(M.getOrInsertFunction(
|
||||
SanCovIndirCallName, VoidTy, IntptrTy, IntptrTy));
|
||||
SanCovTraceCmpFunction[0] =
|
||||
checkSanitizerInterfaceFunction(M.getOrInsertFunction(
|
||||
SanCovTraceCmp1, VoidTy, IRB.getInt8Ty(), IRB.getInt8Ty()));
|
||||
@ -516,26 +511,15 @@ void SanitizerCoverageModule::InjectCoverageForIndirectCalls(
|
||||
Function &F, ArrayRef<Instruction *> IndirCalls) {
|
||||
if (IndirCalls.empty())
|
||||
return;
|
||||
const int CacheSize = 16;
|
||||
const int CacheAlignment = 64; // Align for better performance.
|
||||
Type *Ty = ArrayType::get(IntptrTy, CacheSize);
|
||||
if (!Options.TracePC && !Options.TracePCGuard)
|
||||
return;
|
||||
for (auto I : IndirCalls) {
|
||||
IRBuilder<> IRB(I);
|
||||
CallSite CS(I);
|
||||
Value *Callee = CS.getCalledValue();
|
||||
if (isa<InlineAsm>(Callee))
|
||||
continue;
|
||||
GlobalVariable *CalleeCache = new GlobalVariable(
|
||||
*F.getParent(), Ty, false, GlobalValue::PrivateLinkage,
|
||||
Constant::getNullValue(Ty), "__sancov_gen_callee_cache");
|
||||
CalleeCache->setAlignment(CacheAlignment);
|
||||
if (Options.TracePC || Options.TracePCGuard)
|
||||
IRB.CreateCall(SanCovTracePCIndir,
|
||||
IRB.CreatePointerCast(Callee, IntptrTy));
|
||||
else
|
||||
IRB.CreateCall(SanCovIndirCallFunction,
|
||||
{IRB.CreatePointerCast(Callee, IntptrTy),
|
||||
IRB.CreatePointerCast(CalleeCache, IntptrTy)});
|
||||
IRB.CreateCall(SanCovTracePCIndir, IRB.CreatePointerCast(Callee, IntptrTy));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,6 @@
|
||||
; RUN: opt < %s -sancov -sanitizer-coverage-level=2 -sanitizer-coverage-block-threshold=0 -S | FileCheck %s --check-prefix=CHECK_WITH_CHECK
|
||||
; RUN: opt < %s -sancov -sanitizer-coverage-level=2 -sanitizer-coverage-block-threshold=1 -S | FileCheck %s --check-prefix=CHECK_WITH_CHECK
|
||||
; RUN: opt < %s -sancov -sanitizer-coverage-level=3 -sanitizer-coverage-block-threshold=10 -S | FileCheck %s --check-prefix=CHECK3
|
||||
; RUN: opt < %s -sancov -sanitizer-coverage-level=4 -S | FileCheck %s --check-prefix=CHECK4
|
||||
; RUN: opt < %s -sancov -sanitizer-coverage-level=4 -sanitizer-coverage-trace-pc -S | FileCheck %s --check-prefix=CHECK_TRACE_PC
|
||||
|
||||
; RUN: opt < %s -sancov -sanitizer-coverage-level=2 -sanitizer-coverage-block-threshold=10 \
|
||||
@ -93,13 +92,6 @@ entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; We expect to see two calls to __sanitizer_cov_indir_call16
|
||||
; with different values of second argument.
|
||||
; CHECK4-LABEL: define void @CallViaVptr
|
||||
; CHECK4: call void @__sanitizer_cov_indir_call16({{.*}},[[CACHE:.*]])
|
||||
; CHECK4-NOT: call void @__sanitizer_cov_indir_call16({{.*}},[[CACHE]])
|
||||
; CHECK4: ret void
|
||||
|
||||
; CHECK_TRACE_PC-LABEL: define void @foo
|
||||
; CHECK_TRACE_PC: call void @__sanitizer_cov_trace_pc
|
||||
; CHECK_TRACE_PC: call void asm sideeffect "", ""()
|
||||
@ -115,10 +107,6 @@ entry:
|
||||
unreachable
|
||||
}
|
||||
|
||||
; CHECK4-LABEL: define void @call_unreachable
|
||||
; CHECK4-NOT: __sanitizer_cov
|
||||
; CHECK4: unreachable
|
||||
|
||||
; CHECKPRUNE-LABEL: define void @foo
|
||||
; CHECKPRUNE: call void @__sanitizer_cov
|
||||
; CHECKPRUNE: call void @__sanitizer_cov
|
||||
|
Loading…
x
Reference in New Issue
Block a user