aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CodeGenTypes.cpp
AgeCommit message (Collapse)Author
2007-12-29Don't attribute in file headers anymore. See llvmdev for theChris Lattner
discussion of this change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45410 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-21Convert opaque type when struct definition is seen.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45287 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-21Keep track of llvm struct size while adding fields.Devang Patel
Update addPaddingFields() interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45284 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17Patch to implemented objective-c's dynamic object pointer qualified withFariborz Jahanian
the protocol list (id<P,...> types). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45121 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-17Update to use new PointerType::getUnqual() api.Christopher Lamb
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45081 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-13Add assert to detect incomplete implementation work.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44974 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Refactor bit-field handling code into a separate method.Devang Patel
No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Separate access field number is not required.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44833 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Beautify comment.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44831 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Add support to share llvm fields for bit-fields.Devang Patel
For example, struct { char a; short b:2; }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44830 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10Use getABITypeSizeInBits() instead of getTypeSizeInBits() during struct layout.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44799 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-10Use getABITypeSizeInBits() instead of getTypeSizeInBits() during struct layout.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44798 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-06More struct bitfields layout work. Now handle,Devang Patel
struct STestB1 {char a; char b:2; } stb1; struct STestB2 {char a; char b:5; char c:4} stb2; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44664 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05fix some bogus code noticed by Kevin AndreChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44615 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01Better match llvm-gcc's behavior for CodeGen naming of anonymous structs and ↵Christopher Lamb
unions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44490 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-01When generating the CodeGen type name of a struct, union, enum use the typedef Christopher Lamb
name if a tag type name is not available for the type. This matches how llvm-gcc chooses CodeGen type names. This means that "typedef struct {...} foo" now results in a CodeGen name of "struct.foo" rather than "struct." git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44489 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27update to match change in mainline llvm.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-08Add assert for the case that is not handled.Devang Patel
struct { char a; short b:2; }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43859 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-08Keep track of beginning offset for the bit field that does not start at byte ↵Devang Patel
boundry. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43857 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-07Stay within 80 columns.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43843 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-07Start struct bit field laout work. Devang Patel
This is far from complete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01Rename classes and collections that maintain record layout information.Devang Patel
Now, at AST level record info is maintained by ASTRecordLayout class. Now, at code gen level record info is maintained by CGRecordLayout class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01Remove unnecessary method.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43591 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-01start adding pading fields.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43590 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Refactor code into a separate method.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43587 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Check whether next slot meets field type's alignment requirements.Devang Patel
If it does not then assert at the moment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43576 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Keep track of field offsets during structure layout.Devang Patel
Take 2. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43573 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Take 2.Devang Patel
Make target info available to clang code generator. This is far from complete but this helps clang codegen module make progress. At the moment target triplet and target description strings are hard coded in clang::TargetInfo git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31temporarily revert devang's patch to link in the llvm codegen etc.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Keep track of field offsets during structure layout.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43539 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-31Make target info available to clang code generator.Devang Patel
This is far from complete but this helps clang codegen module make progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43536 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-30Avoid unnecessary PATypeHolder copy.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43530 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-30Fix 80 col violations.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43516 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-30UseDevang Patel
+ llvm::DenseMap<Type *, llvm::PATypeHolder> TypeHolderMap; instead of - llvm::DenseMap<Type *, llvm::PATypeHolder *> TypeHolderMap; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43514 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-29Add RecordOrganizer::layoutUnionFields()Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26Codegen union member references.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43390 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25Cache llvm::Type through PATypeHolder.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43355 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24Move RecordOrganizer into CodeGenTypes.cppDevang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43310 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24Constify methods and reuse RecordOrganizer object.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43284 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24Add notes.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43282 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24untabifyDevang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43280 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24Fixed a strange construct, please review.Hartmut Kaiser
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43278 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23Handle nested structs.Devang Patel
typdef struct A { int i; struct A *next; } A git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43268 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23Begin struct layout work.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43236 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08Added a new class for Interfaces qualified by protocol list.Fariborz Jahanian
Protocols are now sorted and made unique in the list. Enhanced pretty printer for @interface (So, I can see the protocol list). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42776 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-16fix some warnings, patch by Justin HandvilleChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42010 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-04eliminate some VC++ warnings, patch contributed by Hartmut KaiserChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41692 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-30Fix the following redefinition errors submitted by Keith Bauer...Steve Naroff
[dylan:~/llvm/tools/clang] admin% cat tentative_decls.c // incorrectly generates redefinition error extern int array[3]; int array[3]; // incorrectly generates a redefinition error extern void nup(int a[3]); void nup(int a[3]) {} It turns out that this exposed a fairly major flaw in the type system, array types were never getting uniqued! This is because all array types contained an expression, which aren't unique. To solve this, we now have 2 array types, ConstantArrayType and VariableArrayType. ConstantArrayType's are unique, VAT's aren't. This is a fairly extensive set of fundamental changes. Fortunately, all the tests pass. Nevertheless, there may be some collateral damage:-) If so, let me know! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-28Change EnumDecl to store its corresponding integer type Chris Lattner
directly in it. Remove TargetInfo::getEnumPolicy, as there is only one policy that we support right now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41548 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-27teach codegen to lay out enum types.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41501 91177308-0d34-0410-b5e6-96231b3b80d8