| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
- {return-types,single-args}-{32,64} pass the first 1k ABI tests with
bit-fields enabled.
llvm-svn: 71272
|
| |
|
|
|
|
|
|
|
| |
to use a wide enough type. This might be wider than the "single
element"'s type in the presence of padding bit-fields.
- Darwin x86_32 now passes the first 1k ABI tests with bit-field
generation enabled.
llvm-svn: 71270
|
| |
|
|
|
|
| |
element" structures.
llvm-svn: 71266
|
| |
|
|
|
|
|
| |
- This turns out to be a no-op now that most of the handling for
everything else is in place.
llvm-svn: 71261
|
| |
|
|
|
|
|
| |
- This eliminates 5/1000 failures on return-types-32, on the current
ABITest config.
llvm-svn: 71250
|
| |
|
|
| |
llvm-svn: 70481
|
| |
|
|
|
|
|
|
| |
compatible with VC++ and GCC. The codegen/mangling angle hasn't
been fully ironed out yet. Note that we accept int128_t even in
32-bit mode, unlike gcc.
llvm-svn: 70464
|
| |
|
|
|
|
|
|
| |
member.
Also, spell bitfield more consistently as bit-field.
llvm-svn: 70220
|
| |
|
|
| |
llvm-svn: 70145
|
| |
|
|
| |
llvm-svn: 69668
|
| |
|
|
|
|
| |
"Type Info" parameter. The type info parameter knows how to iterate over its arguments.
llvm-svn: 69469
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 68987
|
| |
|
|
| |
llvm-svn: 68833
|
| |
|
|
|
|
| |
No functionality change (really).
llvm-svn: 68726
|
| |
|
|
| |
llvm-svn: 68639
|
| |
|
|
| |
llvm-svn: 68583
|
| |
|
|
| |
llvm-svn: 68452
|
| |
|
|
| |
llvm-svn: 68414
|
| |
|
|
| |
llvm-svn: 68411
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Small structures are returned in a register if:
1. They fit nicely in a register.
2. All fields fit nicely in a register.
(more or less)
- We now pass the first 5000 ABITests if unions are disabled.
- <rdar://problem/6497882> [irgen] x86-32 ABI compatibility with
small structs
llvm-svn: 68197
|
| |
|
|
|
|
|
|
|
|
| |
element structures", which have different ABI rules.
- Current return-arguments-32 status is: 1 out of 1000 failures (-7)
- Also, vectors inside "single element structs" require special
handling.
llvm-svn: 68196
|
| |
|
|
|
|
| |
- Current return-arguments-32 status is: 8 out of 1000 failures (-7)
llvm-svn: 68192
|
| |
|
|
|
|
| |
- Current return-arguments-32 status: 15/1000 failures
llvm-svn: 68132
|
| |
|
|
|
|
|
|
| |
really intending to take ownership of this; I wrote this mostly because
I was curious about how the ARM ABI works. It should be a decent start,
though.
llvm-svn: 67969
|
| |
|
|
| |
llvm-svn: 67577
|
| |
|
|
|
|
| |
build. This shaves another 3% off.
llvm-svn: 67460
|
| |
|
|
|
|
| |
readnone/readonly attributes.
llvm-svn: 67224
|
| |
|
|
|
|
|
|
|
|
| |
- This is an ABI incompatiblity, but this is not likely to be a huge
deal in practice. For now we at least generate self consistent code
instead of crashing.
- <rdar://problem/6657601> x86-32 ABI: Bitfields in small structures
are not passed correctly
llvm-svn: 66713
|
| |
|
|
| |
llvm-svn: 66555
|
| |
|
|
|
|
|
| |
in a lone X87 class.
- PR3735.
llvm-svn: 66277
|
| |
|
|
|
|
| |
- No intended functionality change.
llvm-svn: 65805
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
giving them rough classifications (normal types, never-canonical
types, always-dependent types, abstract type representations) and
making it far easier to make sure that we've hit all of the cases when
decoding types.
Switched some switch() statements on the type class over to using this
mechanism, and filtering out those things we don't care about. For
example, CodeGen should never see always-dependent or non-canonical
types, while debug info generation should never see always-dependent
types. More switch() statements on the type class need to be moved
over to using this approach, so that we'll get warnings when we add a
new type then fail to account for it somewhere in the compiler.
As part of this, some types have been renamed:
TypeOfExpr -> TypeOfExprType
FunctionTypeProto -> FunctionProtoType
FunctionTypeNoProto -> FunctionNoProtoType
There shouldn't be any functionality change...
llvm-svn: 65591
|
| |
|
|
|
|
|
|
|
| |
- For types whose native representation is a pointer.
- Use to replace ExprConstant.cpp:HasPointerEvalType,
CodeGenFunction::isObjCPointerType.
llvm-svn: 65569
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 65560
|
| |
|
|
| |
llvm-svn: 65533
|
| |
|
|
|
|
| |
- <rdar://problem/6622451> Bad x86_64 code gen for message call taking one argument.
llvm-svn: 65510
|
| |
|
|
|
|
|
| |
code) when calling noreturn functions; general expression emission
isn't ready to do the right thing in all cases.
llvm-svn: 65473
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 65325
|
| |
|
|
|
|
|
| |
memory using Indirect; this was a holdover from when CGCall wasn't as
robust.
llvm-svn: 65278
|
| |
|
|
|
|
|
|
|
| |
as byval. Otherwise LLVM will have its own opinion about where to put
things.
We now pass all gcc dg.compat tests on x86_64.
llvm-svn: 65266
|
| |
|
|
|
|
| |
about these much but <2 x i16> shows up in the gcc test suite.
llvm-svn: 65264
|
| |
|
|
|
|
|
| |
Also, make sure to pass <1 x i64> as i64 (not <1 x i64>, which doesn't
quite work yet in the backend).
llvm-svn: 65262
|
| |
|
|
|
|
|
| |
clear insertion point. The rest of IRgen should theoretically take
advantage of this to avoid emitting dead code. Theory != Practice.
llvm-svn: 65141
|
| |
|
|
|
|
| |
- Remove an unused variant of EmitCallExpr overload.
llvm-svn: 65130
|
| |
|
|
|
|
| |
ObjCList.
llvm-svn: 65114
|
| |
|
|
|
|
| |
We are down to only failing gcc.dg/compat/vector-[12] (8 tests total).
llvm-svn: 64967
|
| |
|
|
|
|
| |
Two more gcc/x86_64 failures down.
llvm-svn: 64963
|
| |
|
|
|
|
|
|
| |
things passed in mixed registers.
This knocks out 8 x86_64 failures.
llvm-svn: 64958
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Return of _Complex long double used wrong type.
2. va_arg of types passed in two SSE registers didn't account for
extra space in register save area.
Down to 18 failures on gcc/compat/x86_64. Combined 32/64 results are:
--
=== gcc Summary ===
# of expected passes 1292
# of unexpected failures 34
# of unsupported tests 2
--
llvm-svn: 64880
|
| |
|
|
| |
llvm-svn: 64756
|