Mercurial > projects > ldc
comparison gen/toobj.cpp @ 205:9d44ec83acd1 trunk
[svn r221] Update: Switched to the 2.3 LLVM svn branch, http://llvm.org/svn/llvm-project/llvm/branches/release_23 .
Fixed: Implemented volatile statements. Uses the LLVM memory barrier intrinsic, closes #21 .
author | lindquist |
---|---|
date | Tue, 13 May 2008 17:58:11 +0200 |
parents | f5ca6bbbf1d7 |
children | 7816aafeea3c |
comparison
equal
deleted
inserted
replaced
204:11fe364b9a3e | 205:9d44ec83acd1 |
---|---|
188 name.append("6__ctorZ"); | 188 name.append("6__ctorZ"); |
189 | 189 |
190 std::vector<const llvm::Type*> argsTy; | 190 std::vector<const llvm::Type*> argsTy; |
191 const llvm::FunctionType* fnTy = llvm::FunctionType::get(llvm::Type::VoidTy,argsTy,false); | 191 const llvm::FunctionType* fnTy = llvm::FunctionType::get(llvm::Type::VoidTy,argsTy,false); |
192 assert(gIR->module->getFunction(name) == NULL); | 192 assert(gIR->module->getFunction(name) == NULL); |
193 llvm::Function* fn = new llvm::Function(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); | 193 llvm::Function* fn = llvm::Function::Create(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); |
194 fn->setCallingConv(llvm::CallingConv::Fast); | 194 fn->setCallingConv(llvm::CallingConv::Fast); |
195 | 195 |
196 llvm::BasicBlock* bb = new llvm::BasicBlock("entry", fn); | 196 llvm::BasicBlock* bb = llvm::BasicBlock::Create("entry", fn); |
197 LLVMBuilder builder(bb); | 197 IRBuilder builder(bb); |
198 | 198 |
199 for (size_t i=0; i<n; i++) { | 199 for (size_t i=0; i<n; i++) { |
200 llvm::Function* f = gIR->ctors[i]->ir.irFunc->func; | 200 llvm::Function* f = gIR->ctors[i]->ir.irFunc->func; |
201 llvm::CallInst* call = builder.CreateCall(f,""); | 201 llvm::CallInst* call = builder.CreateCall(f,""); |
202 call->setCallingConv(llvm::CallingConv::Fast); | 202 call->setCallingConv(llvm::CallingConv::Fast); |
222 name.append("6__dtorZ"); | 222 name.append("6__dtorZ"); |
223 | 223 |
224 std::vector<const llvm::Type*> argsTy; | 224 std::vector<const llvm::Type*> argsTy; |
225 const llvm::FunctionType* fnTy = llvm::FunctionType::get(llvm::Type::VoidTy,argsTy,false); | 225 const llvm::FunctionType* fnTy = llvm::FunctionType::get(llvm::Type::VoidTy,argsTy,false); |
226 assert(gIR->module->getFunction(name) == NULL); | 226 assert(gIR->module->getFunction(name) == NULL); |
227 llvm::Function* fn = new llvm::Function(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); | 227 llvm::Function* fn = llvm::Function::Create(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); |
228 fn->setCallingConv(llvm::CallingConv::Fast); | 228 fn->setCallingConv(llvm::CallingConv::Fast); |
229 | 229 |
230 llvm::BasicBlock* bb = new llvm::BasicBlock("entry", fn); | 230 llvm::BasicBlock* bb = llvm::BasicBlock::Create("entry", fn); |
231 LLVMBuilder builder(bb); | 231 IRBuilder builder(bb); |
232 | 232 |
233 for (size_t i=0; i<n; i++) { | 233 for (size_t i=0; i<n; i++) { |
234 llvm::Function* f = gIR->dtors[i]->ir.irFunc->func; | 234 llvm::Function* f = gIR->dtors[i]->ir.irFunc->func; |
235 llvm::CallInst* call = builder.CreateCall(f,""); | 235 llvm::CallInst* call = builder.CreateCall(f,""); |
236 call->setCallingConv(llvm::CallingConv::Fast); | 236 call->setCallingConv(llvm::CallingConv::Fast); |
256 name.append("10__unittestZ"); | 256 name.append("10__unittestZ"); |
257 | 257 |
258 std::vector<const llvm::Type*> argsTy; | 258 std::vector<const llvm::Type*> argsTy; |
259 const llvm::FunctionType* fnTy = llvm::FunctionType::get(llvm::Type::VoidTy,argsTy,false); | 259 const llvm::FunctionType* fnTy = llvm::FunctionType::get(llvm::Type::VoidTy,argsTy,false); |
260 assert(gIR->module->getFunction(name) == NULL); | 260 assert(gIR->module->getFunction(name) == NULL); |
261 llvm::Function* fn = new llvm::Function(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); | 261 llvm::Function* fn = llvm::Function::Create(fnTy, llvm::GlobalValue::InternalLinkage, name, gIR->module); |
262 fn->setCallingConv(llvm::CallingConv::Fast); | 262 fn->setCallingConv(llvm::CallingConv::Fast); |
263 | 263 |
264 llvm::BasicBlock* bb = new llvm::BasicBlock("entry", fn); | 264 llvm::BasicBlock* bb = llvm::BasicBlock::Create("entry", fn); |
265 LLVMBuilder builder(bb); | 265 IRBuilder builder(bb); |
266 | 266 |
267 for (size_t i=0; i<n; i++) { | 267 for (size_t i=0; i<n; i++) { |
268 llvm::Function* f = gIR->unitTests[i]->ir.irFunc->func; | 268 llvm::Function* f = gIR->unitTests[i]->ir.irFunc->func; |
269 llvm::CallInst* call = builder.CreateCall(f,""); | 269 llvm::CallInst* call = builder.CreateCall(f,""); |
270 call->setCallingConv(llvm::CallingConv::Fast); | 270 call->setCallingConv(llvm::CallingConv::Fast); |