From 27751bed60bcb0a05c5e85608ea03ff6f55cb14b Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Wed, 28 Dec 2022 12:03:09 -0800 Subject: [PATCH] [XRay] Fix Hexagon sled version D113638 emitted version 0 for XRaySledEntry, which will lead to an incorrect address computation in the runtime. While here, improve the test. --- llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp | 2 +- llvm/test/CodeGen/Hexagon/xray.ll | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp index 27bc4bf..688fe68 100644 --- a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp +++ b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp @@ -822,7 +822,7 @@ void HexagonAsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind) { emitNops(NoopsInSledCount); OutStreamer->emitLabel(PostSled); - recordSled(CurSled, MI, Kind, 0); + recordSled(CurSled, MI, Kind, 2); } void HexagonAsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI) { diff --git a/llvm/test/CodeGen/Hexagon/xray.ll b/llvm/test/CodeGen/Hexagon/xray.ll index b9b25b8..8f1d9b3 100644 --- a/llvm/test/CodeGen/Hexagon/xray.ll +++ b/llvm/test/CodeGen/Hexagon/xray.ll @@ -19,11 +19,16 @@ define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" ; CHECK-LABEL: .Ltmp1: ; CHECK: jumpr r31 } -; CHECK-LABEL: xray_instr_map -; CHECK-LABEL: .Lxray_sleds_start0: -; CHECK: .word {{.*}}Lxray_sled_0 -; CHECK: .word {{.*}}Lxray_sled_1 +; CHECK: .section xray_instr_map,"ao",@progbits,foo +; CHECK-NEXT: .Lxray_sleds_start0: +; CHECK-NEXT: .Ltmp2: +; CHECK-NEXT: .word .Lxray_sled_0-.Ltmp2 +; CHECK-NEXT: .word .Lfunc_begin0-(.Ltmp2+4) +; CHECK-NEXT: .byte 0x00 +; CHECK-NEXT: .byte 0x01 +; CHECK-NEXT: .byte 0x02 +; CHECK-NEXT: .space 5 ; CHECK-LABEL: .Lxray_sleds_end0: ; CHECK-LABEL: xray_fn_idx -; CHECK: .word {{.*}}Lxray_sleds_start0 -; CHECK-NEXT: .word {{.*}}Lxray_sleds_end0 +; CHECK: .word .Lxray_sleds_start0{{$}} +; CHECK-NEXT: .word .Lxray_sleds_end0{{$}} -- 2.7.4