| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).
llvm-svn: 138985
|
|
|
|
| |
llvm-svn: 137472
|
|
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
|
|
|
| |
llvm-svn: 135370
|
|
|
|
| |
llvm-svn: 134831
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Changes bit-field access policy to try to use (aligned) register sized accesses.
The idea here is that by using larger accesses we expose more coalescing
potential to the backend when we have situations like adjacent bit-fields in the
same structure (which is common), and that the backend should be smart enough to
narrow the accesses down when no coalescing is done or when it is shown not to
be profitable.
--
$ clang -m32 -O3 -S -o - t.c
_f0: ## @f0
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
movb (%eax), %cl
andb $-128, %cl
orb $1, %cl
movb %cl, (%eax)
movb 1(%eax), %cl
andb $-128, %cl
orb $1, %cl
movb %cl, 1(%eax)
movb 2(%eax), %cl
andb $-128, %cl
orb $1, %cl
movb %cl, 2(%eax)
movb 3(%eax), %cl
andb $-128, %cl
orb $1, %cl
movb %cl, 3(%eax)
popl %ebp
ret
$ clang -m32 -O3 -S -o - t.c -Xclang -fuse-register-sized-bitfield-access
_f0: ## @f0
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
movl $-2139062144, %ecx ## imm = 0xFFFFFFFF80808080
andl (%eax), %ecx
orl $16843009, %ecx ## imm = 0x1010101
movl %ecx, (%eax)
popl %ebp
ret
--
llvm-svn: 133532
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Type::isUnsignedIntegerOrEnumerationType(), which are like
Type::isSignedIntegerType() and Type::isUnsignedIntegerType() but also
consider the underlying type of a C++0x scoped enumeration type.
Audited all callers to the existing functions, switching those that
need to also handle scoped enumeration types (e.g., those that deal
with constant values) over to the new functions. Fixes PR9923 /
<rdar://problem/9447851>.
llvm-svn: 131735
|
|
|
|
|
|
| |
structs. // rdar://8823265
llvm-svn: 130783
|
|
|
|
| |
llvm-svn: 130696
|
|
|
|
|
|
| |
// rdar://8823265 related.
llvm-svn: 130311
|
|
|
|
|
|
| |
non-bitfield members are ignore. // rdar://8823265 wip
llvm-svn: 130257
|
|
|
|
|
|
| |
change in functionality intended.
llvm-svn: 130108
|
|
|
|
|
|
| |
CharUnits. No change in functionality intended.
llvm-svn: 130107
|
|
|
|
|
|
|
| |
CharUnits or replacing the 8s with char align. No change in functionality
intended.
llvm-svn: 130106
|
|
|
|
|
|
| |
intended.
llvm-svn: 130087
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 130085
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
turns out that a field or base needs to be laid out in the tail padding of
the base, CGRecordLayoutBuilder::ResizeLastBaseFieldIfNecessary will convert
it to an array of i8.
I've audited the new test results to make sure that they are still valid. I've
also verified that we pass a self-host with this change.
This (finally) fixes PR5589!
llvm-svn: 129673
|
|
|
|
|
|
| |
llvm::StructType::get takes an ArrayRef.
llvm-svn: 129667
|
|
|
|
| |
llvm-svn: 128088
|
|
|
|
|
|
| |
char-width agnostic.
llvm-svn: 126542
|
|
|
|
|
|
| |
by Heikki Kultala!
llvm-svn: 125784
|
|
|
|
| |
llvm-svn: 125605
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 125549
|
|
|
|
|
|
|
| |
CharUnits to sizes in bits, and use it to tidy up the places where the
conversion was done explicitly.
llvm-svn: 125332
|
|
|
|
|
|
| |
character units.
llvm-svn: 125281
|
|
|
|
|
|
| |
r125156.
llvm-svn: 125280
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 125156
|
|
|
|
|
|
| |
functionality intended.
llvm-svn: 125069
|
|
|
|
| |
llvm-svn: 124646
|
|
|
|
| |
llvm-svn: 121436
|
|
|
|
| |
llvm-svn: 120924
|
|
|
|
|
|
| |
appended are padding.
llvm-svn: 120922
|
|
|
|
| |
llvm-svn: 120489
|
|
|
|
| |
llvm-svn: 120268
|
|
|
|
| |
llvm-svn: 120257
|
|
|
|
| |
llvm-svn: 120140
|
|
|
|
| |
llvm-svn: 120133
|
|
|
|
| |
llvm-svn: 120129
|
|
|
|
| |
llvm-svn: 120109
|
|
|
|
| |
llvm-svn: 120106
|
|
|
|
| |
llvm-svn: 119957
|
|
|
|
| |
llvm-svn: 119956
|
|
|
|
| |
llvm-svn: 119955
|
|
|
|
|
|
| |
Fix linux build.
llvm-svn: 118497
|
|
|
|
|
|
| |
a first step towards fixing PR6995.
llvm-svn: 118491
|
|
|
|
|
|
| |
getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.
llvm-svn: 117881
|
|
|
|
|
|
| |
functions.
llvm-svn: 112913
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 104795
|