[PATCH] D142572: [AArch64] fix bug #55005 handle DW_CFA_GNU_window_save

Sebastian Pop via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 26 09:02:49 PST 2023


sebpop added a comment.

Recommended check-bolt fails with:

  $ make check-bolt
  make: *** No rule to make target 'check-bolt'.  Stop.

If I execute the following sequence before the patch, the test will fail (also as described in the bug report https://github.com/llvm/llvm-project/issues/55005 )

  $ clang -O2 -Wl,-q -o a.out dw_cfa_gnu_window_save.cc
  $ llvm-bolt a.out -o a.bolt
  BOLT-INFO: Target architecture: aarch64
  BOLT-INFO: BOLT version: 5de6b94f856f696832ce7df167e1dbc096fbe598
  BOLT-INFO: first alloc address is 0x400000
  BOLT-INFO: creating new program header table at address 0x600000, offset 0x200000
  BOLT-INFO: enabling relocation mode
  BOLT-INFO: disabling -align-macro-fusion on non-x86 platform
  =======================================
  BOLT is unable to proceed because it couldn't properly understand this function.
  If you are running the most recent version of BOLT, you may want to report this and paste this dump.
  Please check that there is no sensitive contents being shared in this dump.
  
  Offending function: __do_global_dtors_aux/1(*2)
  
  Function contents (
    0000: 3F2303D5 FD7BBEA9 FD030091 F30B00F9  |?#...{..........|
    0010: 93010090 60824039 80000035 DEFFFF97  |....`. at 9...5....|
    0020: 20008052 60820039 F30B40F9 FD7BC2A8  | ..R`..9.. at ..{..|
    0030: BF2303D5 C0035FD6                    |.#...._.|
  )
  
  Binary Function "__do_global_dtors_aux/1(*2)"  {
    All names   : __do_global_dtors_aux/1
                  __do_global_dtors_aux/crtstuff.c/1
    Number      : 8
    State       : disassembled
    Address     : 0x41014c
    Size        : 0x38
    MaxSize     : 0x38
    Offset      : 0x1014c
    Section     : .text
    Orc Section : .local.text.__do_global_dtors_aux/1
    LSDA        : 0x0
    IsSimple    : 1
    IsMultiEntry: 0
    IsSplit     : 0
    BB Count    : 0
  }
  .LBB07:
      00000000: 	paciasp
      00000004: 	stp	x29, x30, [sp, #-0x20]!
      00000008: 	mov	x29, sp
      0000000c: 	str	x19, [sp, #0x10]
      00000010: 	adrp	x19, "__TMC_LIST__/1"
      00000014: 	ldrb	w0, [x19, :lo12:"__TMC_LIST__/1"]
      00000018: 	cbnz	w0, .Ltmp4 # Offset: 24
      0000001c: 	bl	"deregister_tm_clones/1" # Offset: 28
      00000020: 	mov	w0, #0x1
      00000024: 	strb	w0, [x19, :lo12:"__TMC_LIST__/1"]
  .Ltmp4:
      00000028: 	ldr	x19, [sp, #0x10]
      0000002c: 	ldp	x29, x30, [sp], #0x20
      00000030: 	autiasp
      00000034: 	ret	x30 # Offset: 52
  DWARF CFI Instructions:
      <empty>
  End of Function "__do_global_dtors_aux/1(*2)"
  
  ERROR: unable to fill CFI.
  =======================================


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142572/new/

https://reviews.llvm.org/D142572



More information about the llvm-commits mailing list