Mercurial > projects > ldc
comparison gen/irstate.h @ 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 | 3aed08fb64f4 |
children | 7816aafeea3c |
comparison
equal
deleted
inserted
replaced
204:11fe364b9a3e | 205:9d44ec83acd1 |
---|---|
30 // represents a scope | 30 // represents a scope |
31 struct IRScope | 31 struct IRScope |
32 { | 32 { |
33 llvm::BasicBlock* begin; | 33 llvm::BasicBlock* begin; |
34 llvm::BasicBlock* end; | 34 llvm::BasicBlock* end; |
35 LLVMBuilder builder; | 35 IRBuilder builder; |
36 | 36 |
37 IRScope(); | 37 IRScope(); |
38 IRScope(llvm::BasicBlock* b, llvm::BasicBlock* e); | 38 IRScope(llvm::BasicBlock* b, llvm::BasicBlock* e); |
39 }; | 39 }; |
40 | 40 |
51 }; | 51 }; |
52 | 52 |
53 struct IRBuilderHelper | 53 struct IRBuilderHelper |
54 { | 54 { |
55 IRState* state; | 55 IRState* state; |
56 LLVMBuilder* operator->(); | 56 IRBuilder* operator->(); |
57 }; | 57 }; |
58 | 58 |
59 struct IRExp | 59 struct IRExp |
60 { | 60 { |
61 Expression* e1; | 61 Expression* e1; |
144 // intrinsics | 144 // intrinsics |
145 llvm::Function* llvm_DeclareMemSet32; | 145 llvm::Function* llvm_DeclareMemSet32; |
146 llvm::Function* llvm_DeclareMemSet64; | 146 llvm::Function* llvm_DeclareMemSet64; |
147 llvm::Function* llvm_DeclareMemCpy32; | 147 llvm::Function* llvm_DeclareMemCpy32; |
148 llvm::Function* llvm_DeclareMemCpy64; | 148 llvm::Function* llvm_DeclareMemCpy64; |
149 llvm::Function* llvm_DeclareMemBarrier; | |
149 }; | 150 }; |
150 | 151 |
151 #endif // LLVMDC_GEN_IRSTATE_H | 152 #endif // LLVMDC_GEN_IRSTATE_H |