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.

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to