Mercurial > projects > ldc
comparison dmd2/mtype.h @ 953:5fa3e0ea06e9
Merged a bunch recent dmd v1 frontend changes into the dmd v2 tree.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Fri, 13 Feb 2009 22:20:30 +0100 |
parents | 356e65836fb5 |
children | 964af20461a9 |
comparison
equal
deleted
inserted
replaced
952:29da57670853 | 953:5fa3e0ea06e9 |
---|---|
21 #include "arraytypes.h" | 21 #include "arraytypes.h" |
22 #include "expression.h" | 22 #include "expression.h" |
23 | 23 |
24 // llvm | 24 // llvm |
25 #include "../ir/irtype.h" | 25 #include "../ir/irtype.h" |
26 namespace llvm { class Type; } | |
26 | 27 |
27 struct Scope; | 28 struct Scope; |
28 struct Identifier; | 29 struct Identifier; |
29 struct Expression; | 30 struct Expression; |
30 struct StructDeclaration; | 31 struct StructDeclaration; |
502 | 503 |
503 // LDC | 504 // LDC |
504 bool retInPtr; | 505 bool retInPtr; |
505 bool usesThis; | 506 bool usesThis; |
506 bool usesNest; | 507 bool usesNest; |
508 // when the last arg is a struct and passed in EAX, this holds its real type | |
509 const llvm::Type* structInregArg; | |
507 unsigned retAttrs; | 510 unsigned retAttrs; |
508 unsigned thisAttrs; // also used for nest | 511 unsigned thisAttrs; // also used for nest |
512 // parameter index in the llvm function that contains the first not-implicit arg | |
513 size_t firstRealArg; | |
509 | 514 |
510 bool reverseParams; | 515 bool reverseParams; |
511 size_t reverseIndex; | |
512 }; | 516 }; |
513 | 517 |
514 struct TypeDelegate : TypeNext | 518 struct TypeDelegate : TypeNext |
515 { | 519 { |
516 // .next is a TypeFunction | 520 // .next is a TypeFunction |