The movprfx is a vector copy, so it doesn't access memory. Set the
value of hasSideEffects 0 to avoid return true for the hasUnmodeledSideEffects(),
which will block the machine scheduler which load/store instructions.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Patch looks good to me but it looks like we're missing this information for all SVE instructions. Not sure if it used to default to 0 and we missed the switch to ? but the information is missing regardless. @Allen Is this something you plan to follow up on? or should I add it to my list?
llvm/test/CodeGen/AArch64/sched-movprfx.ll | ||
---|---|---|
11–12 | Not sure you need this test given the llvm-mca explicitly emits this bit and based on my general comment do we really want tests like this for every instruction? |
Thanks, If you have time to complete, I am very welcome, I am not skilled in the function of instructions, need to query documents one by one, so it may be too slow to finish that.
llvm/test/CodeGen/AArch64/sched-movprfx.ll | ||
---|---|---|
11–12 | Thanks, I think this case can be saved as demo for the improvement of schedule. |
llvm/test/tools/llvm-mca/AArch64/Neoverse/N2-sve-instructions.s | ||
---|---|---|
5039 | I think this place also needs to be corrected. I'm going to put up a patch to fix |
Not sure you need this test given the llvm-mca explicitly emits this bit and based on my general comment do we really want tests like this for every instruction?