[PATCH] D123179: [RISCV] Pre-commit for fixing stack offset for RVV object

Roger Ferrer Ibanez via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 7 00:45:52 PDT 2022


rogfer01 added a comment.

Hi @kito-cheng

I'm ok with this once D123178 <https://reviews.llvm.org/D123178> lands.

Just to confirm the issue is the `vs1r` of `v8` before the loop. Is my understanding correct?

F22703795: Screenshot from 2022-04-07 09-42-55.png <https://reviews.llvm.org/F22703795>

I made this diagram based on the output of  `llc -o - -mtriple riscv64 -mattr=+m,+v t.ll  -riscv-v-vector-bits-min=512`

  asm_fprintf:                            # @asm_fprintf
  # %bb.0:                                # %entry
  	addi	sp, sp, -64
  	sd	ra, 40(sp)                      # 8-byte Folded Spill
  	sd	s0, 32(sp)                      # 8-byte Folded Spill
  	sd	s1, 24(sp)                      # 8-byte Folded Spill
  	csrr	a0, vlenb
  	sub	sp, sp, a0
  	mv	s0, a4
  	mv	s1, a1
  	csrr	a0, vlenb
  	add	a0, sp, a0
  	sd	a7, 56(a0)
  	csrr	a0, vlenb
  	add	a0, sp, a0
  	sd	a6, 48(a0)
  	vsetivli	zero, 2, e8, mf8, ta, mu
  	vmv.v.i	v8, 0
  	addi	a0, sp, 40
  	vs1r.v	v8, (a0)                        # Unknown-size Folded Spill
  .LBB0_1:                                # %while.cond
                                          # =>This Inner Loop Header: Depth=1
  	bnez	zero, .LBB0_1
  # %bb.2:                                # %sw.bb
                                          #   in Loop: Header=BB0_1 Depth=1
  	vsetivli	zero, 2, e8, mf8, ta, mu
  	addi	a0, sp, 40
  	vl1r.v	v8, (a0)                        # Unknown-size Folded Reload
  	vse8.v	v8, (s0)
  	mv	a0, s1
  	call	fprintf at plt
  	j	.LBB0_1


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D123179



More information about the llvm-commits mailing list