I am new to studying compilers, and one of the things I am trying to do is to implement an algorithm for Global Value Numbering.
For this, I would like to have a good set of cases against which to verify my implementation.
Is there such a thing?
Or in general for other optimizations?
Thanks for the link.
Although I read *.ll is a human readable assembly language code representation for LLVM IR, I wonder if there is a way I can consume this file and re-generate the source file (let’s say in C) which produced a .ll
If I’m wrong I’d appreciate to have a pointer to understand better those .ll, especially for someone who’s not used to write assembly.
There is no way to do this that I know of, I think there use to be a C backend but that does not make it really more readable.
The language is specified here: LLVM Language Reference Manual — LLVM 17.0.0git documentation
I don’t know if there are good tutorials but this maybe A Journey to understand LLVM-IR! - /undevs ?
Seems like a good tutorial / getting started doc that could be added!