This feature enables the fusion of such operations on Cortex A57 and Cortex A72, as recommended in their Software Optimisation Guides, sections 4.14 and 4.11, respectively.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Hi Evandro, looks great, short and simple!
Shouldn't you also add the option to the CPUs description?
@fhahn, if I remember correctly, you've worked on similar things not that long ago. Can you have a look?
LGTM, this is in line with the Cortex-A57 and Cortex-A72 opt guides. We have a similar feature for AArch64 already.
llvm/lib/Target/ARM/ARM.td | ||
---|---|---|
145 ↗ | (On Diff #156345) | FeatureFuseLiterals should be added to the cortex-a57 and cortex-a72 features according to the optimization guides. Can you also add a run lines with those CPUs to the test? |
llvm/lib/Target/ARM/ARM.td | ||
---|---|---|
145 ↗ | (On Diff #156345) | It's more complicated than that. I had to enable FeatureUseMISched as well for this to be effective. This is fine for Exynos, but it'd require more extensive testing on Cortex. |
llvm/lib/Target/ARM/ARM.td | ||
---|---|---|
145 ↗ | (On Diff #156345) | Ah right! No worries then |
llvm/lib/Target/ARM/ARM.td | ||
---|---|---|
145 ↗ | (On Diff #156345) | Of course, Exynos needs this feature because there's no pipeline model for it in the ARM target. |