[PATCH] D56391: Limit COFF 'common' emission to <=32 alignment types.
Erich Keane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 8 10:48:12 PST 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rC350643: Limit COFF 'common' emission to <=32 alignment types. (authored by erichkeane, committed by ).
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D56391/new/
https://reviews.llvm.org/D56391
Files:
lib/CodeGen/CodeGenModule.cpp
test/CodeGen/microsoft-no-common-align.c
Index: test/CodeGen/microsoft-no-common-align.c
===================================================================
--- test/CodeGen/microsoft-no-common-align.c
+++ test/CodeGen/microsoft-no-common-align.c
@@ -0,0 +1,8 @@
+// RUN: %clang_cc1 -triple x86_64-windows-msvc -emit-llvm -o - %s | FileCheck %s
+typedef float TooLargeAlignment __attribute__((__vector_size__(64)));
+typedef float NormalAlignment __attribute__((__vector_size__(4)));
+
+TooLargeAlignment TooBig;
+// CHECK: @TooBig = dso_local global <16 x float> zeroinitializer, align 64
+NormalAlignment JustRight;
+// CHECK: @JustRight = common dso_local global <1 x float> zeroinitializer, align 4
Index: lib/CodeGen/CodeGenModule.cpp
===================================================================
--- lib/CodeGen/CodeGenModule.cpp
+++ lib/CodeGen/CodeGenModule.cpp
@@ -3761,6 +3761,11 @@
}
}
}
+ // COFF doesn't support alignments greater than 32, so these cannot be
+ // in common.
+ if (Context.getTargetInfo().getTriple().isKnownWindowsMSVCEnvironment() &&
+ Context.getTypeAlignIfKnown(D->getType()) > 32)
+ return true;
return false;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56391.180698.patch
Type: text/x-patch
Size: 1145 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190108/35b5d3c2/attachment.bin>
More information about the cfe-commits
mailing list