| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing.
- This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome!
PR6240.
llvm-svn: 95648
|
|
|
|
| |
llvm-svn: 95512
|
|
|
|
| |
llvm-svn: 95416
|
|
|
|
|
|
| |
BeginConditionalBranch/EndConditionalBranch.
llvm-svn: 95308
|
|
|
|
|
|
| |
for the reference binding bug that is preventing self-hosting.
llvm-svn: 95223
|
|
|
|
|
|
| |
CGExprConstant. Fixes PR5674.
llvm-svn: 95063
|
|
|
|
|
|
| |
references.
llvm-svn: 94964
|
|
|
|
| |
llvm-svn: 94938
|
|
|
|
|
|
| |
initializing fields (and reference type fields in particular).
llvm-svn: 94799
|
|
|
|
|
|
| |
union or not from the FieldDecl (through its DeclContext).
llvm-svn: 94798
|
|
|
|
| |
llvm-svn: 94571
|
|
|
|
|
|
| |
some cases.
llvm-svn: 94341
|
|
|
|
|
|
|
|
|
|
| |
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate.
Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType,
fromQuantity(), and getQuantity() for clarity.
llvm-svn: 93153
|
|
|
|
|
|
| |
lvalue to poke, no functionality change.
llvm-svn: 93075
|
|
|
|
|
|
|
| |
run-time initialization, and emit run-time initializers aggresively to avoid
ordering issues with deferred globals.
llvm-svn: 92976
|
|
|
|
| |
llvm-svn: 92439
|
|
|
|
| |
llvm-svn: 92420
|
|
|
|
|
|
| |
aren't yet used in the ctors/dtors, but that will follow.
llvm-svn: 92409
|
|
|
|
| |
llvm-svn: 92145
|
|
|
|
|
|
| |
halfway towards fixing PR5824.
llvm-svn: 92142
|
|
|
|
| |
llvm-svn: 92138
|
|
|
|
|
|
| |
the other overload better.
llvm-svn: 92136
|
|
|
|
|
|
|
| |
the constructor. This doesn't handle cases requiring the VTT at the moment,
and generates unnecessary stores, but I think it's essentially correct.
llvm-svn: 91731
|
|
|
|
| |
llvm-svn: 91498
|
|
|
|
|
|
| |
instead of abort to improve codesize and codegen.
llvm-svn: 91374
|
|
|
|
| |
llvm-svn: 91341
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements a new flag -fcatch-undefined-behavior. The flag turns
on additional runtime checks for:
T a[I];
a[i] abort when i < 0 or i >= I.
Future stuff includes shifts by >= bitwidth amounts.
llvm-svn: 91198
|
|
|
|
| |
llvm-svn: 91041
|
|
|
|
| |
llvm-svn: 90998
|
|
|
|
| |
llvm-svn: 90996
|
|
|
|
|
|
| |
(fixes radar 7457534).
llvm-svn: 90995
|
|
|
|
| |
llvm-svn: 90991
|
|
|
|
| |
llvm-svn: 90940
|
|
|
|
|
|
| |
pointer.
llvm-svn: 90840
|
|
|
|
| |
llvm-svn: 90817
|
|
|
|
|
|
| |
to a memset or a memcpy from a global when possible.
llvm-svn: 90658
|
|
|
|
| |
llvm-svn: 90622
|
|
|
|
|
|
|
| |
directly into the sret pointer. This is an optimization in C, but is required
for correctness in C++ for classes with a non-trivial copy constructor.
llvm-svn: 90526
|
|
|
|
| |
llvm-svn: 90411
|
|
|
|
| |
llvm-svn: 90409
|
|
|
|
|
|
|
|
|
|
|
| |
Highlights include:
Add a helper to generate __cxa_free_exception and _ZSt9terminatev.
Add a region to handle EH object deallocation for ctor failures for throw.
Add a terminate handler for __cxa_end_catch.
A framework for adding cleanup actions for the exceptional edges only.
llvm-svn: 90305
|
|
|
|
| |
llvm-svn: 90152
|
|
|
|
|
|
| |
for a covariant thunk.
llvm-svn: 89933
|
|
|
|
|
|
| |
adjustment offset. Start using it. General cleanup in Mangle.cpp.
llvm-svn: 89925
|
|
|
|
|
|
| |
yet).
llvm-svn: 89835
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All statements that involve conditions can now hold on to a separate
condition declaration (a VarDecl), and will use a DeclRefExpr
referring to that VarDecl for the condition expression. ForStmts now
have such a VarDecl (I'd missed those in previous commits).
Also, since this change reworks the Action interface for
if/while/switch/for, use FullExprArg for the full expressions in those
expressions, to ensure that we're emitting
Note that we are (still) not generating the right cleanups for
condition variables in for statements. That will be a follow-on
commit.
llvm-svn: 89817
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cleanups for while loops:
1) Make sure that we destroy the condition variable of a while statement each time through the loop for, e.g.,
while (shared_ptr<WorkInt> p = getWorkItem()) {
// ...
}
2) Make sure that we always enter a new cleanup scope for the body of the while loop, even when there is no compound expression, e.g.,
while (blah)
RAIIObject raii(blah+1);
llvm-svn: 89800
|
|
|
|
|
|
| |
constructor has default arguments.
llvm-svn: 89783
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Outside the "if", to ensure that we destroy the condition variable
at the end of the "if" statement rather than at the end of the
block containing the "if" statement.
- Inside the "then" and "else" branches, so that we emit then- or
else-local cleanups at the end of the corresponding block when the
block is not a compound statement.
To make adding these new cleanup scopes easier (and since
switch/do/while will all need the same treatment), added the
CleanupScope RAII object to introduce a new cleanup scope and make
sure it gets cleaned up.
llvm-svn: 89773
|
|
|
|
| |
llvm-svn: 89769
|