summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGRecordLayout.h
Commit message (Collapse)AuthorAgeFilesLines
* Perform zero-initialization of virtual base classes when emitting John McCall2011-02-151-21/+50
| | | | | | | | | | | | a zero constant for a complete class. rdar://problem/8424975 To make this happen, track the field indexes for virtual bases in the complete object. I'm curious whether we might be better off making CGRecordLayoutBuilder *much* more reliant on ASTRecordLayout; we're currently duplicating an awful lot of the ABI layout logic. llvm-svn: 125555
* A CGRecordLayout object persists. Since its contained types mayJohn McCall2010-11-301-4/+5
| | | | | | | refer to opaque types, they must be held via PATypeHolders. I'm not sure why this hasn't blown up before. llvm-svn: 120491
* CGRecordLayout types are always struct types.Anders Carlsson2010-11-241-7/+7
| | | | llvm-svn: 120106
* Rename BaseLLVMType to NonVirtualBaseLLVMType.Anders Carlsson2010-11-211-5/+6
| | | | llvm-svn: 119956
* Introduce the concept of a non-virtual base type to CGRecordLayoutBuilder as ↵Anders Carlsson2010-11-091-3/+13
| | | | | | a first step towards fixing PR6995. llvm-svn: 118491
* IRgen: Move CGBitFieldInfo strategy computation helpers to static memberDaniel Dunbar2010-09-021-0/+15
| | | | | | functions. llvm-svn: 112913
* Go back to asking CodeGenTypes whether a type is zero-initializable.John McCall2010-08-221-6/+7
| | | | | | | | | Make CGT defer to the ABI on all member pointer types. This requires giving CGT a handle to the ABI. It's way easier to make that work if we avoid lazily creating the ABI. Make it so. llvm-svn: 111786
* Keep track of the LLVM field numbers for non-virtual bases.Anders Carlsson2010-05-181-0/+9
| | | | llvm-svn: 104013
* Fix comments.Daniel Dunbar2010-04-271-3/+3
| | | | llvm-svn: 102429
* IRgen: Change CGBitFieldInfo to take the AccessInfo as constructor ↵Daniel Dunbar2010-04-151-10/+27
| | | | | | | | arguments, it is now an immutable object. Also, add some checking of various invariants that should hold on the CGBitFieldInfo access. llvm-svn: 101345
* IRgen: Eliminate now unused fields from CGBitFieldInfo.Daniel Dunbar2010-04-151-12/+9
| | | | llvm-svn: 101344
* IRgen: Tweak CGBitFieldInfo doxyments & add an accessor.Daniel Dunbar2010-04-141-0/+10
| | | | llvm-svn: 101221
* IRgen: Enhance CGBitFieldInfo with enough information to fully describe the ↵Daniel Dunbar2010-04-131-1/+83
| | | | | | | | | | "policy" with which a bit-field should be accessed. - For now, these policies are computed to match the current IRgen strategy, although the new information isn't being used yet (except in -fdump-record-layouts). - Design comments appreciated. llvm-svn: 101178
* IRgen: Add CGRecordLayout::dump, and dump (irgen) record layouts as part of ↵Daniel Dunbar2010-04-121-0/+9
| | | | | | -fdump-record-layouts. llvm-svn: 101051
* IRgen: Move the bit-field access type into CGBitFieldInfo, and change ↵Daniel Dunbar2010-04-081-3/+6
| | | | | | bit-field LValues to just store the base address of object containing the bit-field. llvm-svn: 100745
* IRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.Daniel Dunbar2010-04-061-2/+4
| | | | llvm-svn: 100513
* IRgen: Lift BitFieldInfo to CGBitFieldInfo at namespace level.Daniel Dunbar2010-04-051-15/+13
| | | | llvm-svn: 100433
* IRGen: Move the auxiliary data structures tracking AST -> LLVM mappings out ↵Daniel Dunbar2010-03-311-4/+47
| | | | | | | | of CodeGenTypes, to per-record CGRecordLayout structures. - I did a cursory check that this was perf neutral, FWIW. llvm-svn: 99978
* IRGen: Hide CGRecordLayoutBuilder class, because I can.Daniel Dunbar2010-03-311-0/+4
| | | | llvm-svn: 99967
* IRgen: Move CGRecordLayout to its own happy little file.Daniel Dunbar2010-03-301-0/+48
llvm-svn: 99945
OpenPOWER on IntegriCloud