[PATCH] D53850: Declares __cpu_model as dso local
Haibo Huang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 12 14:08:47 PST 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL348978: Declares __cpu_model as dso local (authored by hhb, committed by ).
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D53850?vs=171789&id=177915#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D53850/new/
https://reviews.llvm.org/D53850
Files:
cfe/trunk/lib/CodeGen/CGBuiltin.cpp
cfe/trunk/test/CodeGen/builtin-cpu-is.c
cfe/trunk/test/CodeGen/builtin-cpu-supports.c
Index: cfe/trunk/test/CodeGen/builtin-cpu-is.c
===================================================================
--- cfe/trunk/test/CodeGen/builtin-cpu-is.c
+++ cfe/trunk/test/CodeGen/builtin-cpu-is.c
@@ -4,6 +4,8 @@
// global, the bit grab, and the icmp correct.
extern void a(const char *);
+// CHECK: @__cpu_model = external dso_local global { i32, i32, i32, [1 x i32] }
+
void intel() {
if (__builtin_cpu_is("intel"))
a("intel");
Index: cfe/trunk/test/CodeGen/builtin-cpu-supports.c
===================================================================
--- cfe/trunk/test/CodeGen/builtin-cpu-supports.c
+++ cfe/trunk/test/CodeGen/builtin-cpu-supports.c
@@ -4,6 +4,9 @@
// global, the bit grab, and the icmp correct.
extern void a(const char *);
+// CHECK: @__cpu_model = external dso_local global { i32, i32, i32, [1 x i32] }
+// CHECK: @__cpu_features2 = external dso_local global i32
+
int main() {
__builtin_cpu_init();
@@ -25,3 +28,5 @@
return 0;
}
+
+// CHECK: declare dso_local void @__cpu_indicator_init()
Index: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
===================================================================
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp
@@ -9465,6 +9465,7 @@
// Grab the global __cpu_model.
llvm::Constant *CpuModel = CGM.CreateRuntimeVariable(STy, "__cpu_model");
+ cast<llvm::GlobalValue>(CpuModel)->setDSOLocal(true);
// Calculate the index needed to access the correct field based on the
// range. Also adjust the expected value.
@@ -9537,6 +9538,7 @@
// Grab the global __cpu_model.
llvm::Constant *CpuModel = CGM.CreateRuntimeVariable(STy, "__cpu_model");
+ cast<llvm::GlobalValue>(CpuModel)->setDSOLocal(true);
// Grab the first (0th) element from the field __cpu_features off of the
// global in the struct STy.
@@ -9556,6 +9558,8 @@
if (Features2 != 0) {
llvm::Constant *CpuFeatures2 = CGM.CreateRuntimeVariable(Int32Ty,
"__cpu_features2");
+ cast<llvm::GlobalValue>(CpuFeatures2)->setDSOLocal(true);
+
Value *Features =
Builder.CreateAlignedLoad(CpuFeatures2, CharUnits::fromQuantity(4));
@@ -9573,6 +9577,7 @@
llvm::FunctionType *FTy = llvm::FunctionType::get(VoidTy,
/*Variadic*/ false);
llvm::Constant *Func = CGM.CreateRuntimeFunction(FTy, "__cpu_indicator_init");
+ cast<llvm::GlobalValue>(Func)->setDSOLocal(true);
return Builder.CreateCall(Func);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53850.177915.patch
Type: text/x-patch
Size: 2565 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181212/6e32751e/attachment.bin>
More information about the llvm-commits
mailing list