[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