Fixes createInstrument to return instrument when LMUL data is valid, and
return nullptr when LMUL data is not valid for RISCV target.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
LGTM
Though I'm a little surprised it doesn't print a warning or even error for invalid instruments. Is there any reason behind this?
Also I'm curious if there is any need to update existing LMUL tests as the instrument didn't even kick in previously? It will be great if you can add a test that checks against invalid LMUL instruments as well.
Though I'm a little surprised it doesn't print a warning or even error for invalid instruments. Is there any reason behind this?
Debug warning is printed on line 85 of RISCVCustomBehaviour.cpp. We print an actual error and exit from MCA here
It would be better if all this custom behaviour logic was properly tested. If I remember it correctly, the plan was to contribute a generic scheduling model as a follow-up to test all of this. Is that still a plan?
It's not clear how to define a "generic" scheduling model. An in order CPU and an out of order CPU might have very different implementations for the RISC-V vector extension. Creating "generic" scheduler starts becoming equivalent to architecting a CPU.
We're hoping to upstream a scheduler based on a real hardware implementation soon.