[llvm] r292210 - [XRay][Arm] Repair XRay table emission on Arm32 and add tests to identify such problem earlier
Serge Rogatch via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 17 03:52:11 PST 2017
Author: rserge
Date: Tue Jan 17 05:52:10 2017
New Revision: 292210
URL: http://llvm.org/viewvc/llvm-project?rev=292210&view=rev
Log:
[XRay][Arm] Repair XRay table emission on Arm32 and add tests to identify such problem earlier
Summary:
Emission of XRay table was occasionally disabled for Arm32, but this bug was not then detected because earlier (also by mistake) testing of XRay was occasionally disabled on 32-bit Arm targets. This patch should fix that problem and detect such problems in the future.
This patch is one of a series, see also
- https://reviews.llvm.org/D28623
Reviewers: rengolin, dberris
Reviewed By: dberris
Subscribers: llvm-commits, aemerson, rengolin, dberris, iid_iunknown
Differential Revision: https://reviews.llvm.org/D28624
Modified:
llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
llvm/trunk/test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll
llvm/trunk/test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll
Modified: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp?rev=292210&r1=292209&r2=292210&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp Tue Jan 17 05:52:10 2017
@@ -164,6 +164,9 @@ bool ARMAsmPrinter::runOnMachineFunction
// Emit the rest of the function body.
EmitFunctionBody();
+ // Emit the XRay table for this function.
+ emitXRayTable();
+
// If we need V4T thumb mode Register Indirect Jump pads, emit them.
// These are created per function, rather than per TU, since it's
// relatively easy to exceed the thumb branch range within a TU.
Modified: llvm/trunk/test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll?rev=292210&r1=292209&r2=292210&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll Tue Jan 17 05:52:10 2017
@@ -23,3 +23,9 @@ define i32 @foo() nounwind noinline uwta
; CHECK-LABEL: Ltmp1:
; CHECK-NEXT: bx lr
}
+; CHECK: .p2align 4
+; CHECK-NEXT: .long {{.*}}Lxray_synthetic_0
+; CHECK-NEXT: .section {{.*}}xray_instr_map{{.*}}
+; CHECK-LABEL: Lxray_synthetic_0:
+; CHECK: .long {{.*}}Lxray_sled_0
+; CHECK: .long {{.*}}Lxray_sled_1
Modified: llvm/trunk/test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll?rev=292210&r1=292209&r2=292210&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll Tue Jan 17 05:52:10 2017
@@ -23,3 +23,9 @@ define i32 @foo() nounwind noinline uwta
; CHECK-LABEL: Ltmp1:
; CHECK-NEXT: bx lr
}
+; CHECK: .p2align 4
+; CHECK-NEXT: .long {{.*}}Lxray_synthetic_0
+; CHECK-NEXT: .section {{.*}}xray_instr_map{{.*}}
+; CHECK-LABEL: Lxray_synthetic_0:
+; CHECK: .long {{.*}}Lxray_sled_0
+; CHECK: .long {{.*}}Lxray_sled_1
More information about the llvm-commits
mailing list