diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2014-11-18 23:38:19 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2014-11-18 23:38:19 +0000 |
| commit | 9c1e4123f8ecb5747448b8311ed66d8d7a207e0b (patch) | |
| tree | 60a426d284d8bde6be593ab8a6e82902bd0577f8 /clang/lib | |
| parent | 49bfafb5108a463f3c46c11d91d92c5528770928 (diff) | |
| download | bcm5719-llvm-9c1e4123f8ecb5747448b8311ed66d8d7a207e0b.tar.gz bcm5719-llvm-9c1e4123f8ecb5747448b8311ed66d8d7a207e0b.zip | |
[X86][AVX] 256-bit vector stack unaligned load/stores identification
Under many 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 they 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 where it was causing redundant spills - I've added a reduced test case at test/CodeGen/X86/pr18846.ll
Differential Revision: http://reviews.llvm.org/D6252
llvm-svn: 222281
Diffstat (limited to 'clang/lib')
0 files changed, 0 insertions, 0 deletions

