# HG changeset patch # User ChristianK # Date 1210438811 -7200 # Node ID 3aed08fb64f4fb24567b110c719fd151ac0537ce # Parent 7949d3dd03414f4decf56caf90dd1070020445f8 [svn r205] moved some local static variables used for memset and memcpy intrinsics to IrState diff -r 7949d3dd0341 -r 3aed08fb64f4 gen/irstate.cpp --- 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() diff -r 7949d3dd0341 -r 3aed08fb64f4 gen/irstate.h --- 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 diff -r 7949d3dd0341 -r 3aed08fb64f4 gen/tollvm.cpp --- 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; } //////////////////////////////////////////////////////////////////////////////////////////