[llvm] 27751be - [XRay] Fix Hexagon sled version

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 28 12:03:14 PST 2022


Author: Fangrui Song
Date: 2022-12-28T12:03:09-08:00
New Revision: 27751bed60bcb0a05c5e85608ea03ff6f55cb14b

URL: https://github.com/llvm/llvm-project/commit/27751bed60bcb0a05c5e85608ea03ff6f55cb14b
DIFF: https://github.com/llvm/llvm-project/commit/27751bed60bcb0a05c5e85608ea03ff6f55cb14b.diff

LOG: [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.

Added: 
    

Modified: 
    llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
    llvm/test/CodeGen/Hexagon/xray.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
index 27bc4bf9d08b5..688fe6861224a 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 b9b25b80ef00f..8f1d9b3c6da19 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", at 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{{$}}


        


More information about the llvm-commits mailing list