changeset 189:3aed08fb64f4 trunk

[svn r205] moved some local static variables used for memset and memcpy intrinsics to IrState
author ChristianK
date Sat, 10 May 2008 19:00:11 +0200
parents 7949d3dd0341
children 36044016709a
files gen/irstate.cpp gen/irstate.h gen/tollvm.cpp
diffstat 3 files changed, 22 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/gen/irstate.cpp	Sat May 10 06:44:57 2008 +0200
+++ b/gen/irstate.cpp	Sat May 10 19:00:11 2008 +0200
@@ -53,6 +53,10 @@
     emitMain = false;
     mainFunc = 0;
     ir.state = this;
+    llvm_DeclareMemSet32 = NULL;
+    llvm_DeclareMemSet64 = NULL;
+    llvm_DeclareMemCpy32 = NULL;
+    llvm_DeclareMemCpy64 = NULL;
 }
 
 IrFunction* IRState::func()
--- a/gen/irstate.h	Sat May 10 06:44:57 2008 +0200
+++ b/gen/irstate.h	Sat May 10 19:00:11 2008 +0200
@@ -140,6 +140,12 @@
     FuncDeclVector ctors;
     FuncDeclVector dtors;
     FuncDeclVector unitTests;
+
+    // intrinsics
+    llvm::Function* llvm_DeclareMemSet32;
+    llvm::Function* llvm_DeclareMemSet64;
+    llvm::Function* llvm_DeclareMemCpy32;
+    llvm::Function* llvm_DeclareMemCpy64;
 };
 
 #endif // LLVMDC_GEN_IRSTATE_H
--- a/gen/tollvm.cpp	Sat May 10 06:44:57 2008 +0200
+++ b/gen/tollvm.cpp	Sat May 10 19:00:11 2008 +0200
@@ -234,22 +234,20 @@
 // llvm.memset.i32
 llvm::Function* LLVM_DeclareMemSet32()
 {
-    static llvm::Function* _func = 0;
-    if (_func == 0) {
-        _func = LLVM_DeclareMemIntrinsic("llvm.memset.i32", 32, true);
+    if (gIR->llvm_DeclareMemSet32 == 0) {
+        gIR->llvm_DeclareMemSet32 = LLVM_DeclareMemIntrinsic("llvm.memset.i32", 32, true);
     }
-    return _func;
+    return gIR->llvm_DeclareMemSet32;
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////
 
 llvm::Function* LLVM_DeclareMemSet64()
 {
-    static llvm::Function* _func = 0;
-    if (_func == 0) {
-        _func = LLVM_DeclareMemIntrinsic("llvm.memset.i64", 64, true);
+    if (gIR->llvm_DeclareMemSet64 == 0) {
+        gIR->llvm_DeclareMemSet64 = LLVM_DeclareMemIntrinsic("llvm.memset.i64", 64, true);
     }
-    return _func;
+    return gIR->llvm_DeclareMemSet64;
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////
@@ -257,11 +255,10 @@
 // llvm.memcpy.i32
 llvm::Function* LLVM_DeclareMemCpy32()
 {
-    static llvm::Function* _func = 0;
-    if (_func == 0) {
-        _func = LLVM_DeclareMemIntrinsic("llvm.memcpy.i32", 32);
+    if (gIR->llvm_DeclareMemCpy32 == 0) {
+        gIR->llvm_DeclareMemCpy32 = LLVM_DeclareMemIntrinsic("llvm.memcpy.i32", 32);
     }
-    return _func;
+    return gIR->llvm_DeclareMemCpy32;
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////
@@ -269,11 +266,10 @@
 // llvm.memcpy.i64
 llvm::Function* LLVM_DeclareMemCpy64()
 {
-    static llvm::Function* _func = 0;
-    if (_func == 0) {
-        _func = LLVM_DeclareMemIntrinsic("llvm.memcpy.i64", 64);
+    if (gIR->llvm_DeclareMemCpy64 == 0) {
+        gIR->llvm_DeclareMemCpy64 = LLVM_DeclareMemIntrinsic("llvm.memcpy.i64", 64);
     }
-    return _func;
+    return gIR->llvm_DeclareMemCpy64;
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////