Index: lib/Target/ARM/ARMAsmPrinter.cpp =================================================================== --- lib/Target/ARM/ARMAsmPrinter.cpp +++ lib/Target/ARM/ARMAsmPrinter.cpp @@ -164,6 +164,9 @@ // 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. Index: test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll =================================================================== --- test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll +++ test/CodeGen/ARM/xray-armv6-attribute-instrumentation.ll @@ -23,3 +23,9 @@ ; 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 Index: test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll =================================================================== --- test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll +++ test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll @@ -23,3 +23,9 @@ ; 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