This feature enables the fusion of some arithmetic and logic instructions together.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Would it be possible to have a MIR test here, which just runs the scheduler?
llvm/lib/Target/AArch64/AArch64Subtarget.h | ||
---|---|---|
324 ↗ | (On Diff #181199) | Not related to this patch directly, but is there a reason hasFuseCryptoEOR() is missing here? |
I tried to keep the existing pattern, but I could add one too. Should it be done now or later?
llvm/lib/Target/AArch64/AArch64Subtarget.h | ||
---|---|---|
324 ↗ | (On Diff #181199) | Since Cyclone is the only target using it, I guess that it doesn't care about running the MachineScheduler. At least not in the public repository. Though in the associated test case it is enabled in the command line. |
I think it would be good to get a MIR test in from the start as it is easier to see what's going, similar to https://github.com/llvm-mirror/llvm/blob/master/test/CodeGen/AArch64/misched-fusion-crypto-eor.mir .
I'm afraid that I'll need more time to craft the MIR file. Then, I might as well do the same for the other fusion tests.
LGTM, thanks! It would be great if you could extend the test cases a bit more before committing, covering cases with shifted regs and cases where some SUs have multiple successors and not all of them should be fused.
llvm/lib/Target/AArch64/AArch64MacroFusion.cpp | ||
---|---|---|
342 ↗ | (On Diff #181372) | This indent is off by one level I think. |