Questions regarding the RISCV native codegen & performance
Daniel Trujillo Viedma
danihacker.viedma at gmail.com
Tue Apr 15 16:40:03 UTC 2025
Hello, ghc-devs! My name is Daniel Trujillo, I'm a Haskell enthusiast
from Spain and I'm trying to make my Master's thesis about accelerating
Haskell programs with a custom ISA extension.
Right now, my focus is in executing software written in Haskell within
QEMU in order to get traces that tells me, basically, how many times
each block (not exactly basic blocks, but sort of) of assembly code has
been executed, with the hope of finding some patterns of RISCV
instructions that I could implement together into 1 instruction.
As you can see, my method is a bit crude, and I was wondering if the
people involved with any of the different internal representations (STG,
Cmm...) and/or native code generators (particularly RISCV) could provide
me hints about assembly instructions that would have made the work
easier, by removing the need of "massaging" the Cmm code to make CodeGen
easier, or the need of particular optimizations, or in general, dirty
tricks because of lacking of proper support of the standard RISCV ISA.
And of course, I would also appreciate very much other hints from people
involved in general performance (as oppossed to, for example, libraries
for SIMD and parallel execution, or Haskell wrappers to lower-level code
for performance reasons).
P.D. I'm sorry if I broke any netiquette rule, but I'm very new to the
email list, and haven't received yet any email from it.
Looking forward to hear from you!
Cheers,
Dani.
More information about the ghc-devs
mailing list