This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi, As ARM supports unaligned vector accesses for almost no penalty, I'd like to disable loop peeling on ARM targets. I have ran benchmarks on cortex-A9 (hard-float) and noticed these significant improvements: * 1.5% improvement on a popular embedded benchmark (with peaks at +20% and +29%) * 2.1% on spec2k mesa * 9.2% on spec2k eon * up to 3.4% on some part of another embedded benchmark The largest regression I noticed is 1%. I have attached a preliminary patch to discuss how acceptable it would be, and to discuss the needed changes in the testsuite. Indeed; quite a few tests now fail because they count the number of "vectorizing an unaligned access" and "alignment of access forced using peeling" occurrences in the vectorizer traces. I could add a property to target-supports.exp, which would currently be only true on ARM to select whether to rely on peeling or not, and updated all the affected tests accordingly. As there are quite a few tests to update, I'd like opinions first. Thanks, Christophe.
Attachment:
disable-peeling.changelog.txt
Description: Text document
Attachment:
disable-peeling.patch.txt
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |