This is an archive of the discontinued LLVM Phabricator instance.

[X86][AVX] 256-bit vector stack unaligned load/stores identification
ClosedPublic

Authored by RKSimon on Nov 13 2014, 9:13 AM.

Details

Summary

Under most circumstances the stack is not 32-byte aligned, resulting in the use of the vmovups/vmovupd/vmovdqu instructions when inserting ymm reloads/spills.

This minor patch adds these instructions to the isFrameLoadOpcode/isFrameStoreOpcode helpers so that these ops can be correctly identified and not be treated as folded reloads/spills.

This has also been noticed by http://llvm.org/bugs/show_bug.cgi?id=18846

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 16163.Nov 13 2014, 9:13 AM
RKSimon retitled this revision from to [X86][AVX] 256-bit vector stack unaligned load/stores identification.
RKSimon updated this object.
RKSimon edited the test plan for this revision. (Show Details)
RKSimon added reviewers: qcolombet, andreadb, spatel.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: Unknown Object (MLST).
qcolombet accepted this revision.Nov 13 2014, 11:41 AM
qcolombet edited edge metadata.

Hi Simon,

Could it be possible to add a (reduced) test case for PR18846 as well?

Other than that, LGTM.

Thanks,
-Quentin

This revision is now accepted and ready to land.Nov 13 2014, 11:41 AM
RKSimon closed this revision.Nov 18 2014, 3:38 PM
RKSimon updated this revision to Diff 16356.

Closed by commit rL222281 (authored by @RKSimon).