| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
be sure to delete the complete object pointer, not the original
pointer. This is necessary if the base being deleted is at a
non-zero offset in the complete object. This is only required
for objects with virtual destructors because deleting an object
via a base-class subobject when the base does not have a virtual
destructor is undefined behavior.
Noticed while reviewing the last four years of cxx-abi-dev
activity.
llvm-svn: 164597
|
| |
|
|
| |
llvm-svn: 164592
|
| |
|
|
|
|
|
|
|
|
|
|
| |
into the enclosing scope; this is a more accurate model but is
(I believe) unnecessary in my test case due to other flaws.
However, one of those flaws is now intentional: blocks which
appear in return statements can be trivially observed to not
extend in lifetime past the return, and so we can allow a jump
past them. Do the necessary magic in IR-generation to make
this work.
llvm-svn: 164589
|
| |
|
|
|
|
|
|
|
| |
that the backend can mark it as the representative pointer for
the block.
rdar://12001329
llvm-svn: 164418
|
| |
|
|
|
|
|
| |
attributes like uwtable. Without uwtable a stack unwinder would be unable
to go past the thunks.
llvm-svn: 164411
|
| |
|
|
| |
llvm-svn: 164374
|
| |
|
|
|
|
|
|
|
|
|
| |
The expression based expansion too often results in IR level optimizations
splitting the intermediate values into separate basic blocks, preventing
the formation of the VBSL instruction as the code author intended. In
particular, LICM would often hoist part of the computation out of a loop.
rdar://11011471
llvm-svn: 164342
|
| |
|
|
| |
llvm-svn: 164341
|
| |
|
|
| |
llvm-svn: 164260
|
| |
|
|
| |
llvm-svn: 164254
|
| |
|
|
| |
llvm-svn: 164253
|
| |
|
|
| |
llvm-svn: 164252
|
| |
|
|
| |
llvm-svn: 164218
|
| |
|
|
| |
llvm-svn: 163983
|
| |
|
|
| |
llvm-svn: 163980
|
| |
|
|
|
|
| |
both a virtual and a non-virtual offset. PR13832.
llvm-svn: 163866
|
| |
|
|
| |
llvm-svn: 163865
|
| |
|
|
|
|
|
|
|
|
|
| |
Make clang emit a flag for DW_AT_object_pointer for the artificial
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.
rdar://9797999
llvm-svn: 163755
|
| |
|
|
|
|
| |
this should be done on the subprogram, not the variable.
llvm-svn: 163733
|
| |
|
|
|
|
|
|
|
|
| |
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.
rdar://9797999
llvm-svn: 163668
|
| |
|
|
|
|
| |
change.
llvm-svn: 163595
|
| |
|
|
| |
llvm-svn: 163586
|
| |
|
|
|
|
|
|
|
| |
that the types aren't artificial the args are, but this is currently
represented by an artificial type.)
Found by inspection.
llvm-svn: 163585
|
| |
|
|
| |
llvm-svn: 163546
|
| |
|
|
|
|
|
| |
string literal, produce a diagnostic pointing at the erroneous character
range, not at the start of the literal.
llvm-svn: 163459
|
| |
|
|
|
|
|
|
|
| |
the trap BB out of the individual checks and into a common function, to prepare
for making this code call into a runtime library. Rename the existing EmitCheck
to EmitTypeCheck to clarify it and to move it out of the way of the new
EmitCheck.
llvm-svn: 163451
|
| |
|
|
|
|
|
|
|
| |
objc_retainAutoreleasedReturnValue, we need to also be killing
them during return peepholing. Make sure we recognize an
intervening bitcast, but more importantly, assert if we can't
find the asm marker at all. rdar://problem/12133032
llvm-svn: 163431
|
| |
|
|
|
|
|
|
|
| |
This patch uses a new ABIInfo implementation specific to the le32
target, rather than falling back to DefaultABIInfo. Its behavior is
basically the same, but it also allows the regparm argument attribute.
It also includes basic tests for argument codegen and attributes.
llvm-svn: 163333
|
| |
|
|
|
|
| |
Patch thanks to Joe Ranieri!
llvm-svn: 163330
|
| |
|
|
| |
llvm-svn: 163325
|
| |
|
|
| |
llvm-svn: 163232
|
| |
|
|
|
|
| |
- UnionType is checked eariler than RecordType.
llvm-svn: 163202
|
| |
|
|
| |
llvm-svn: 163178
|
| |
|
|
|
|
|
| |
implementation does not co-exist well with how the sideeffect and alignstack
attributes are handled.
llvm-svn: 163173
|
| |
|
|
| |
llvm-svn: 163161
|
| |
|
|
| |
llvm-svn: 163149
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the code guarded with ANDROIDEABI are not
ARM-specific, and having no relation with arm-eabi.
Thus, it will be more natural to call this
environment "Android" instead of "ANDROIDEABI".
Note: We are not using ANDROID because several projects
are using "-DANDROID" as the conditional compilation
flag.
llvm-svn: 163088
|
| |
|
|
|
|
| |
Also a minor fix to __except printing in StmtPrinter.cpp. Thanks to Aaron Ballman for review.
llvm-svn: 163083
|
| |
|
|
| |
llvm-svn: 163032
|
| |
|
|
|
|
| |
instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins.
llvm-svn: 163013
|
| |
|
|
|
|
|
|
|
| |
(__builtin_* etc.) so that it isn't possible to take their address.
Specifically, introduce a new type to represent a reference to a builtin
function, and a new cast kind to convert it to a function pointer in the
operand of a call. Fixes PR13195.
llvm-svn: 162962
|
| |
|
|
|
|
| |
non-pointer types with a pointer representation correctly. PR13660.
llvm-svn: 162862
|
| |
|
|
| |
llvm-svn: 162796
|
| |
|
|
| |
llvm-svn: 162787
|
| |
|
|
|
|
|
|
| |
AsmStmts. This function is only used by GCCAsmStmts, however. Constraints need
to be properly computed before MSAsmStmts can use EmitAsmStmt. No functional
change intended.
llvm-svn: 162776
|
| |
|
|
|
|
|
| |
- The increment needs to be signed value to preserve the original value when
its data type is larger than 64-bit integer.
llvm-svn: 162766
|
| |
|
|
|
|
| |
More work towards unifying asm stmt codegen.
llvm-svn: 162712
|
| |
|
|
|
|
| |
change intended.
llvm-svn: 162710
|
| |
|
|
|
|
| |
Suggested by Roman Divacky.
llvm-svn: 162702
|
| |
|
|
|
|
|
|
| |
really need the store.
This avoids emitting many dead GEPs for large zero-initialized arrays.
llvm-svn: 162701
|