Mercurial > projects > ldc
comparison dmd/mtype.h @ 938:a904cc9bc064
Convert struct arg to integer when passing inreg to make sure LLVM doesn't
ignore the attribute!
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Wed, 04 Feb 2009 18:39:33 +0100 |
parents | 7985bb036db4 |
children | 9167d492cbc2 |
comparison
equal
deleted
inserted
replaced
931:b6647328d11e | 938:a904cc9bc064 |
---|---|
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; |
436 | 437 |
437 // LDC | 438 // LDC |
438 bool retInPtr; | 439 bool retInPtr; |
439 bool usesThis; | 440 bool usesThis; |
440 bool usesNest; | 441 bool usesNest; |
441 bool structInregArg; | 442 // when the last arg is a struct and passed in EAX, this holds its real type |
443 const llvm::Type* structInregArg; | |
442 unsigned retAttrs; | 444 unsigned retAttrs; |
443 unsigned thisAttrs; // also used for nest | 445 unsigned thisAttrs; // also used for nest |
444 // parameter index in the llvm function that contains the first not-implicit arg | 446 // parameter index in the llvm function that contains the first not-implicit arg |
445 size_t firstRealArg; | 447 size_t firstRealArg; |
446 | 448 |