comparison gen/tollvm.cpp @ 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 cea8dcfa76df
children aca17e55b7a5
comparison
equal deleted inserted replaced
188:7949d3dd0341 189:3aed08fb64f4
232 ////////////////////////////////////////////////////////////////////////////////////////// 232 //////////////////////////////////////////////////////////////////////////////////////////
233 233
234 // llvm.memset.i32 234 // llvm.memset.i32
235 llvm::Function* LLVM_DeclareMemSet32() 235 llvm::Function* LLVM_DeclareMemSet32()
236 { 236 {
237 static llvm::Function* _func = 0; 237 if (gIR->llvm_DeclareMemSet32 == 0) {
238 if (_func == 0) { 238 gIR->llvm_DeclareMemSet32 = LLVM_DeclareMemIntrinsic("llvm.memset.i32", 32, true);
239 _func = LLVM_DeclareMemIntrinsic("llvm.memset.i32", 32, true); 239 }
240 } 240 return gIR->llvm_DeclareMemSet32;
241 return _func;
242 } 241 }
243 242
244 ////////////////////////////////////////////////////////////////////////////////////////// 243 //////////////////////////////////////////////////////////////////////////////////////////
245 244
246 llvm::Function* LLVM_DeclareMemSet64() 245 llvm::Function* LLVM_DeclareMemSet64()
247 { 246 {
248 static llvm::Function* _func = 0; 247 if (gIR->llvm_DeclareMemSet64 == 0) {
249 if (_func == 0) { 248 gIR->llvm_DeclareMemSet64 = LLVM_DeclareMemIntrinsic("llvm.memset.i64", 64, true);
250 _func = LLVM_DeclareMemIntrinsic("llvm.memset.i64", 64, true); 249 }
251 } 250 return gIR->llvm_DeclareMemSet64;
252 return _func;
253 } 251 }
254 252
255 ////////////////////////////////////////////////////////////////////////////////////////// 253 //////////////////////////////////////////////////////////////////////////////////////////
256 254
257 // llvm.memcpy.i32 255 // llvm.memcpy.i32
258 llvm::Function* LLVM_DeclareMemCpy32() 256 llvm::Function* LLVM_DeclareMemCpy32()
259 { 257 {
260 static llvm::Function* _func = 0; 258 if (gIR->llvm_DeclareMemCpy32 == 0) {
261 if (_func == 0) { 259 gIR->llvm_DeclareMemCpy32 = LLVM_DeclareMemIntrinsic("llvm.memcpy.i32", 32);
262 _func = LLVM_DeclareMemIntrinsic("llvm.memcpy.i32", 32); 260 }
263 } 261 return gIR->llvm_DeclareMemCpy32;
264 return _func;
265 } 262 }
266 263
267 ////////////////////////////////////////////////////////////////////////////////////////// 264 //////////////////////////////////////////////////////////////////////////////////////////
268 265
269 // llvm.memcpy.i64 266 // llvm.memcpy.i64
270 llvm::Function* LLVM_DeclareMemCpy64() 267 llvm::Function* LLVM_DeclareMemCpy64()
271 { 268 {
272 static llvm::Function* _func = 0; 269 if (gIR->llvm_DeclareMemCpy64 == 0) {
273 if (_func == 0) { 270 gIR->llvm_DeclareMemCpy64 = LLVM_DeclareMemIntrinsic("llvm.memcpy.i64", 64);
274 _func = LLVM_DeclareMemIntrinsic("llvm.memcpy.i64", 64); 271 }
275 } 272 return gIR->llvm_DeclareMemCpy64;
276 return _func;
277 } 273 }
278 274
279 ////////////////////////////////////////////////////////////////////////////////////////// 275 //////////////////////////////////////////////////////////////////////////////////////////
280 276
281 llvm::Value* DtoDelegateToNull(llvm::Value* v) 277 llvm::Value* DtoDelegateToNull(llvm::Value* v)