comparison gen/llvmhelpers.h @ 486:a34078905d01

Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in. Reimplemented support for nested functions/class using a new approach. Added error on taking address of intrinsic. Fixed problems with the ->syntaxCopy of TypeFunction delegate exp. Removed DtoDType and replaced all uses with ->toBasetype() instead. Removed unused inplace stuff. Fixed a bunch of issues in the runtime unittests, not complete yet. Added mini tests.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Sun, 10 Aug 2008 08:37:38 +0200
parents aa8c050dfd19
children f8c979770af3
comparison
equal deleted inserted replaced
485:50f6e2337a6b 486:a34078905d01
36 // enters a monitor lock 36 // enters a monitor lock
37 void DtoEnterMonitor(LLValue* v); 37 void DtoEnterMonitor(LLValue* v);
38 // leaves a monitor lock 38 // leaves a monitor lock
39 void DtoLeaveMonitor(LLValue* v); 39 void DtoLeaveMonitor(LLValue* v);
40 40
41 // nested variable/class helpers 41 // nested variable and context helpers
42 LLValue* DtoNestedContext(FuncDeclaration* func); 42
43 DValue* DtoNestedVariable(Type* astype, VarDeclaration* vd); 43 // gets the context value for a call to a nested function or newing a class, with arbitrary nesting
44 LLValue* DtoNestedContext(Loc loc, Dsymbol* sym);
45
46 // gets the dvalue of a nested variable with arbitrary nesting
47 DValue* DtoNestedVariable(Loc loc, Type* astype, VarDeclaration* vd);
48
49 // old nested stuff
50 // LLValue* DtoNestedContext(Loc loc, FuncDeclaration* func);
51 // LLValue* DtoNestedContext(Loc loc, ClassDeclaration* cd);
52 // DValue* DtoNestedVariable(Loc loc, Type* astype, VarDeclaration* vd);
44 53
45 // basic operations 54 // basic operations
46 void DtoAssign(Loc& loc, DValue* lhs, DValue* rhs); 55 void DtoAssign(Loc& loc, DValue* lhs, DValue* rhs);
47 56
48 // create a null dvalue 57 // create a null dvalue