TTI should report that it's not profitable to generate a hardware loop if it, or one of its child loops, has already been converted.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
I can't see what's being changed in ARMTargetTransformInfo.cpp. Can you upload the patch with more context?
lib/Target/ARM/ARMTargetTransformInfo.cpp | ||
---|---|---|
839 ↗ | (On Diff #204307) | We can nest hwloops, so it would be legal, but we think it will never be benecial because it involves spilling and reloading LR. Do we really need to set IsNestingLegal? Don't think this is important, but was just curious; I haven't looked and reminded myself how it is used. |
lib/Target/ARM/ARMTargetTransformInfo.cpp | ||
---|---|---|
839 ↗ | (On Diff #204307) | Yep, so 'Legal' is a bit of a misnomer, but it prevents the independent pass from trying to generate nested hardware loops. The default is false, but I wanted to make it explicit here too. |
lib/Target/ARM/ARMTargetTransformInfo.cpp | ||
---|---|---|
809 ↗ | (On Diff #204307) | IntrinsicInst has a getIntrinsicID directly, I believe. |