diff options
| author | David Majnemer <david.majnemer@gmail.com> | 2016-02-22 22:23:11 +0000 |
|---|---|---|
| committer | David Majnemer <david.majnemer@gmail.com> | 2016-02-22 22:23:11 +0000 |
| commit | 964b70d559fad083744ea2791def82c564087388 (patch) | |
| tree | 7c9b53c866f77f720f425fbc81f5cfb7cb0227b5 /llvm/lib/Target | |
| parent | 157a5d5312bda0ed8da6a434ebcecfe6e646c63e (diff) | |
| download | bcm5719-llvm-964b70d559fad083744ea2791def82c564087388.tar.gz bcm5719-llvm-964b70d559fad083744ea2791def82c564087388.zip | |
[X86] Create mergeable constant pool entries for AVX
We supported creating mergeable constant pool entries for smaller
constants but not for 32-byte AVX constants.
llvm-svn: 261584
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/TargetLoweringObjectFile.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86TargetObjectFile.cpp | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/TargetLoweringObjectFile.cpp b/llvm/lib/Target/TargetLoweringObjectFile.cpp index 3c04a214fad..4169237aa30 100644 --- a/llvm/lib/Target/TargetLoweringObjectFile.cpp +++ b/llvm/lib/Target/TargetLoweringObjectFile.cpp @@ -202,6 +202,7 @@ SectionKind TargetLoweringObjectFile::getKindForGlobal(const GlobalValue *GV, case 4: return SectionKind::getMergeableConst4(); case 8: return SectionKind::getMergeableConst8(); case 16: return SectionKind::getMergeableConst16(); + case 32: return SectionKind::getMergeableConst32(); default: return SectionKind::getReadOnly(); } diff --git a/llvm/lib/Target/X86/X86TargetObjectFile.cpp b/llvm/lib/Target/X86/X86TargetObjectFile.cpp index 0d37fcd1b43..e72f3a7a2e8 100644 --- a/llvm/lib/Target/X86/X86TargetObjectFile.cpp +++ b/llvm/lib/Target/X86/X86TargetObjectFile.cpp @@ -176,6 +176,11 @@ MCSection *X86WindowsTargetObjectFile::getSectionForConstant( COMDATSymName = "__xmm@" + scalarConstantToHexString(C); Align = 16; } + } else if (Kind.isMergeableConst32()) { + if (Align <= 32) { + COMDATSymName = "__ymm@" + scalarConstantToHexString(C); + Align = 32; + } } if (!COMDATSymName.empty()) |

