[compiler-rt] aca1276 - [msan] Avoid unnecessary PC increment/decrement
Vitaly Buka via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 11 14:29:26 PDT 2022
Author: Vitaly Buka
Date: 2022-08-11T14:29:07-07:00
New Revision: aca12761605d4f8778f04e130a1db93aa283a285
URL: https://github.com/llvm/llvm-project/commit/aca12761605d4f8778f04e130a1db93aa283a285
DIFF: https://github.com/llvm/llvm-project/commit/aca12761605d4f8778f04e130a1db93aa283a285.diff
LOG: [msan] Avoid unnecessary PC increment/decrement
Reviewed By: kda
Differential Revision: https://reviews.llvm.org/D131692
Added:
Modified:
compiler-rt/lib/msan/msan.cpp
compiler-rt/lib/msan/msan_report.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/msan/msan.cpp b/compiler-rt/lib/msan/msan.cpp
index 380753bfddec4..9a777e243cd8f 100644
--- a/compiler-rt/lib/msan/msan.cpp
+++ b/compiler-rt/lib/msan/msan.cpp
@@ -607,16 +607,14 @@ void __msan_set_origin(const void *a, uptr size, u32 origin) {
}
void __msan_set_alloca_origin(void *a, uptr size, char *descr) {
- SetAllocaOrigin(a, size, descr,
- StackTrace::GetPreviousInstructionPc(GET_CALLER_PC()));
+ SetAllocaOrigin(a, size, descr, GET_CALLER_PC());
}
void __msan_set_alloca_origin4(void *a, uptr size, char *descr, uptr pc) {
// Intentionally ignore pc and use return address. This function is here for
// compatibility, in case program is linked with library instrumented by
// older clang.
- SetAllocaOrigin(a, size, descr,
- StackTrace::GetPreviousInstructionPc(GET_CALLER_PC()));
+ SetAllocaOrigin(a, size, descr, GET_CALLER_PC());
}
u32 __msan_chain_origin(u32 id) {
diff --git a/compiler-rt/lib/msan/msan_report.cpp b/compiler-rt/lib/msan/msan_report.cpp
index 5c60f3297fcf1..79723c51008cd 100644
--- a/compiler-rt/lib/msan/msan_report.cpp
+++ b/compiler-rt/lib/msan/msan_report.cpp
@@ -42,12 +42,8 @@ static void DescribeStackOrigin(const char *so, uptr pc) {
" in the stack frame%s\n",
d.Origin(), d.Name(), so, d.Origin(), d.Default());
- if (pc) {
- // For some reason function address in LLVM IR is 1 less then the address
- // of the first instruction.
- pc = StackTrace::GetNextInstructionPc(pc);
+ if (pc)
StackTrace(&pc, 1).Print();
- }
}
static void DescribeOrigin(u32 id) {
More information about the llvm-commits
mailing list