summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-02-22 22:23:11 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-02-22 22:23:11 +0000
commit964b70d559fad083744ea2791def82c564087388 (patch)
tree7c9b53c866f77f720f425fbc81f5cfb7cb0227b5 /llvm/lib/Target
parent157a5d5312bda0ed8da6a434ebcecfe6e646c63e (diff)
downloadbcm5719-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.cpp1
-rw-r--r--llvm/lib/Target/X86/X86TargetObjectFile.cpp5
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())
OpenPOWER on IntegriCloud