| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
instead of before. The wrong order had no effect since Deallocate()
does nothing right now, but we may replace allocator in the future.
llvm-svn: 209567
|
|
|
|
| |
llvm-svn: 208517
|
|
|
|
|
|
|
|
|
| |
This patch refactors microsoft record layout to be more "natural". The
most dominant change is that vbptrs and vfptrs are injected after the
fact. This simplifies the implementation and the math for the offest
for the first base/field after the vbptr.
llvm-svn: 198818
|
|
|
|
|
|
|
|
|
|
|
| |
Adds padding between bases or virtual bases in an attempt to avoid
aliasing of zero-sized sub-objects. The approach used by the ABI adds
two more bits of state. Detailed comments are in the code. Test cases
included.
Differential Revision: http://llvm-reviews.chandlerc.com/D2258
llvm-svn: 196602
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__declspec(align())
This patch implements required alignment in a way that makes
__declspec(align()) and #pragma pack play correctly together. In the
MS-ABI, __declspec(align()) is a hard rule and cannot be overridden by
#pragma pack. This cases each record to have two interesting alignments
"preferred alignment" (which matches Itanium's concept of alignment) and
"required alignment" which is an alignment that must never be violated,
even in the case of #pragma pack. This patch introduces the concept of
Required Alignment to the record builder and tracks/uses it
appropriately. Test cases are included.
Differential Revision: http://llvm-reviews.chandlerc.com/D2283
llvm-svn: 196549
|
|
|
|
|
|
|
|
| |
improving comments to make documentation more accurate.
Differential Revision:http://llvm-reviews.chandlerc.com/D2172
llvm-svn: 194609
|
|
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D2120
llvm-svn: 194256
|
|
|
|
| |
llvm-svn: 192494
|
|
|
|
| |
llvm-svn: 173514
|
|
|
|
|
|
|
|
| |
instead.
No functionality change.
llvm-svn: 159719
|
|
|
|
|
|
|
| |
working knowledge of the Microsoft ABI. Based on a patch by
Dmitry Sokolov.
llvm-svn: 155905
|
|
|
|
| |
llvm-svn: 142694
|
|
|
|
|
|
| |
Patch from r4start at gmail.com (with some minor modifications by me).
llvm-svn: 140623
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 125549
|
|
|
|
|
|
|
| |
unnecessary calls to RoundUpToAlignment. No changes to functionality
intended.
llvm-svn: 125356
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 125156
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 125069
|
|
|
|
| |
llvm-svn: 124646
|
|
|
|
|
|
|
| |
and mark the fields they use as mutable. This allows us to remove a few
const_casts.
llvm-svn: 123314
|
|
|
|
| |
llvm-svn: 120134
|
|
|
|
| |
llvm-svn: 120133
|
|
|
|
|
|
| |
getVBaseClassOffset instead.
llvm-svn: 117882
|
|
|
|
|
|
| |
getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.
llvm-svn: 117881
|
|
|
|
| |
llvm-svn: 117877
|
|
|
|
| |
llvm-svn: 112006
|
|
|
|
| |
llvm-svn: 104681
|
|
|
|
|
|
| |
this will hold the largest empty subobject or 0 if the class doesn't have any empty subobjects.
llvm-svn: 103359
|
|
|
|
|
|
| |
we'll have faster lookup and so we can detect duplicates.
llvm-svn: 98231
|
|
|
|
| |
llvm-svn: 98223
|
|
|
|
| |
llvm-svn: 98055
|
|
This allows them to be allocated using a BumpPtrAllocated
in the common case.
llvm-svn: 97978
|