Mercurial > projects > ldc
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) |