[PATCH] D92097: [RISCV] Basic jump table lowering

Nandor Licker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 26 07:14:10 PST 2020


nand marked an inline comment as not done.
nand added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVISelLowering.cpp:265
-  // Effectively disable jump table generation.
-  setMinimumJumpTableEntries(INT_MAX);
-
----------------
nand wrote:
> lenary wrote:
> > Let's make sure this doesn't have a major code size impact. I'm not sure the threshold GCC uses, something like 3 IIRC? 
> > 
> > The problem for code size is that the sequence to hold the jump table and the calculate the jump index is longer than a chain of ifs, if there aren't too many entries.
> I am using this backend to compile OCaml in a weird way. I could try to build a bunch of OCaml binaries with various thresholds, report the results and maybe we can make a decision for a reasonable default?
I now realised that I cannot change this threshold in my code generator, so I cannot provide any measurements.

Based on my understanding of the code,  unless the target explicitly overwrites it, the `-min-jump-table-entries` 
argument is used, which defaults to 4. If that is reasonable, maybe there is no point in hardcoding a default value?



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D92097



More information about the llvm-commits mailing list