[PATCH] D41949: [RISCV] implement li pseudo instruction

Mario Werner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 13 06:03:04 PDT 2018


niosHD updated this revision to Diff 142385.
niosHD added a comment.

Rebased on master as Mandeep requested  via email .

Currently there are two open "problems" with this patch:

1. The `doPeepholeLoadStoreADDI` peephole optimisation can currently not deal with the PseudoLI instruction which results in the codegen regression that Alex already detected (see `test/CodeGen/RISCV/mem.ll`, `test/CodeGen/RISCV/fload-mem.ll`, `test/CodeGen/RISCV/double-mem.ll`). I am not sure yet if it is better to extend the current optimisation or to introduce a new one given that it requires to update the memory instruction as well as the PseudoLI instruction.
2. The compression support, that was in the meantime landed, is not yet integrated into the `RISCVMCPseudoExpansion`. I did a quick experiment and it seems to be easy though. Should I add it to this patch or post a new one?

Best,
Mario


https://reviews.llvm.org/D41949

Files:
  lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
  lib/Target/RISCV/MCTargetDesc/CMakeLists.txt
  lib/Target/RISCV/MCTargetDesc/RISCVMCPseudoExpansion.cpp
  lib/Target/RISCV/MCTargetDesc/RISCVMCPseudoExpansion.h
  lib/Target/RISCV/RISCVAsmPrinter.cpp
  lib/Target/RISCV/RISCVInstrFormats.td
  lib/Target/RISCV/RISCVInstrInfo.cpp
  lib/Target/RISCV/RISCVInstrInfo.td
  test/CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll
  test/CodeGen/RISCV/calling-conv.ll
  test/CodeGen/RISCV/double-mem.ll
  test/CodeGen/RISCV/float-arith.ll
  test/CodeGen/RISCV/float-mem.ll
  test/CodeGen/RISCV/mem.ll
  test/CodeGen/RISCV/vararg.ll
  test/MC/RISCV/rv32i-aliases-invalid.s
  test/MC/RISCV/rv32i-aliases-valid.s
  test/MC/RISCV/rv64i-aliases-invalid.s
  test/MC/RISCV/rv64i-aliases-valid.s
  test/MC/RISCV/rvi-aliases-valid.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41949.142385.patch
Type: text/x-patch
Size: 50626 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180413/41b868b7/attachment.bin>


More information about the llvm-commits mailing list