[PATCH] D66210: [RFC/WIP][RISCV] Enable the machine outliner for RISC-V

Ana Pazos via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 26 08:06:59 PDT 2019


apazos added a comment.

I have run a couple of standard workloads like SPEC. 
There is no correctness issue when enabling the MO feature (except for spec2000/twolf  which fails with/without MO).
The MO code size gains without compression are up to 7%. With compression enabled, most of the code size gain  is gone, and I see more code size increase.
It is possible it has to do with the SequenceSize we are estimating.
The reason we enable compression late is to have all paths - coming from codegen (LLVM IR), parsing, assembling .s or inline asm - go through the same mechanism for compression.
This is similar/compatible with GCC behavior, which relies on the external assembler to implement compression.
We can better estimate SequenceSize by checking if an instruction is compressable. We can modify the tablegen backend for compression emitter to generate a function that does the isCompressable check, but instead of using MCInst and MCOperands for the checks, we need to use MachineInstr and MachineOperand types.  I will try this solution. Another alternative is to compress LLVM IR code before running the machine outliner.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66210





More information about the llvm-commits mailing list