| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 127494
|
|
|
|
|
|
| |
trivial to check this. Adjust for style.
llvm-svn: 127151
|
|
|
|
|
|
|
|
| |
allocation and therefore requires a null-check. We were doing that, but
we weren't treating the new-initializer as being conditionally executed,
which means it was possible to get ill-formed IR as in PR9298.
llvm-svn: 127147
|
|
|
|
|
|
| |
This reverts commit 126863.
llvm-svn: 126886
|
|
|
|
| |
llvm-svn: 126863
|
|
|
|
|
|
|
|
| |
Block{Function,Module} base class. Minor other refactorings.
Fixed a few address-space bugs while I was there.
llvm-svn: 125085
|
|
|
|
| |
llvm-svn: 124807
|
|
|
|
| |
llvm-svn: 124701
|
|
|
|
|
|
| |
all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost.
llvm-svn: 124528
|
|
|
|
|
|
| |
class is marked 'final', we can devirtualize the call.
llvm-svn: 124524
|
|
|
|
|
|
|
| |
indirect vf calls and addition of extra entry
at bottom of vtbls.
llvm-svn: 124507
|
|
|
|
|
|
| |
Pure motion.
llvm-svn: 124484
|
|
|
|
|
|
| |
for CodeGen's RValue type.
llvm-svn: 124483
|
|
|
|
|
|
|
|
|
| |
fixing a crash which probably nobody was ever going to see. In doing so,
fix a horrendous number of problems with the conditional-cleanups code.
Also, make conditional cleanups re-use the cleanup's activation variable,
which avoids some unfortunate repetitiveness.
llvm-svn: 124481
|
|
|
|
|
|
|
|
|
| |
deallocation function has a two-argument form. Store the result of this
check in new[] and delete[] nodes.
Fixes rdar://problem/8913519
llvm-svn: 124373
|
|
|
|
| |
llvm-svn: 124122
|
|
|
|
| |
llvm-svn: 124083
|
|
|
|
|
|
| |
Improve on test case. Per Doug's comment. wip.
llvm-svn: 123954
|
|
|
|
|
|
| |
vf calls, be made indirect. This patch is towards that goal.
llvm-svn: 123922
|
|
|
|
|
|
| |
counterparts where char units are needed.
llvm-svn: 123805
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example:
class A{
public:
A& operator=(const A& that) {
if (this != &that) {
this->A::~A();
this->A::A(that); // <=== explicit constructor call.
}
return *this;
}
};
More work will be needed to support an explicit call to a template constructor.
llvm-svn: 123735
|
|
|
|
| |
llvm-svn: 122634
|
|
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121121
|
|
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|
|
|
|
|
|
|
| |
be required, and then fix up some missing loads on overloaded-operator
paths which that exposed.
llvm-svn: 120896
|
|
|
|
|
|
| |
the l-value.
llvm-svn: 120884
|
|
|
|
|
|
|
|
| |
objects imported into blocks. //rdar://8594790.
Will have a test case coming (as well as one
sent to llvm test suite).
llvm-svn: 120713
|
|
|
|
|
|
| |
expression into the assert.
llvm-svn: 119143
|
|
|
|
|
|
|
|
| |
copy helper function and dtor of copied cxx objects
in dispose helper functions. __block variables
TBD next.
llvm-svn: 119011
|
|
|
|
|
|
| |
been marked final.
llvm-svn: 117445
|
|
|
|
|
|
| |
calls to it.
llvm-svn: 117444
|
|
|
|
|
|
| |
so that it's done in one place.
llvm-svn: 117386
|
|
|
|
|
|
| |
the patch.
llvm-svn: 117159
|
|
|
|
|
|
| |
statement expressions, //rdar: //8540501
llvm-svn: 117146
|
|
|
|
|
|
| |
member expression's base is call expr.
llvm-svn: 117127
|
|
|
|
| |
llvm-svn: 117106
|
|
|
|
|
|
| |
In this experimental mode try avoiding debug info emission for classes as much as possible. The goal is to reduce size of produced debuginfo without reducing quality of debug info in general. This is a work in progress.
llvm-svn: 115188
|
|
|
|
|
|
|
|
| |
already be determined by isCopyAssignmentOperator(), and was set too
late in the process for all clients to see the appropriate
value. Cleanup only; no functionality change.
llvm-svn: 114916
|
|
|
|
|
|
| |
helpful asserts behind.
llvm-svn: 114250
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the cleanup might not be dominated by the allocation code.
In this case, we have to store aside all the delete arguments
in case we need them later. There's room for optimization here
in cases where we end up not actually needing the cleanup in
different branches (or being able to pop it after the
initialization code).
Also make sure we only call this operator delete along the path
where we actually allocated something.
Fixes rdar://problem/8439196.
llvm-svn: 114145
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
slot. The easiest way to do that was to bundle up the information
we care about for aggregate slots into a new structure which demands
that its creators at least consider the question.
I could probably be convinced that the ObjC 'needs GC' bit should
be rolled into this structure.
Implement generalized copy elision. The main obstacle here is that
IR-generation must be much more careful about making sure that exactly
llvm-svn: 113962
|
|
|
|
| |
llvm-svn: 113863
|
|
|
|
|
|
| |
(but not if destructors associated with the full-expression throw).
llvm-svn: 113836
|
|
|
|
|
|
|
| |
reference object to a c++ member function.
fixes radar 8409336.
llvm-svn: 113602
|
|
|
|
|
|
| |
I've audited the remaining getFunctionInfo call sites.
llvm-svn: 112936
|
|
|
|
| |
llvm-svn: 112925
|
|
|
|
|
|
|
| |
to set up a destructor call, because ABIs can tweak these conventions.
Fixes rdar://problem/8386802.
llvm-svn: 112916
|
|
|
|
|
|
| |
two regressions in Boost.Config.
llvm-svn: 112908
|
|
|
|
|
|
|
| |
based on ConvertTypeForMem. Thanks to John for pointing out the right
solution.
llvm-svn: 112838
|
|
|
|
|
|
|
|
|
|
|
|
| |
complains when the element type of a C++ "delete" expression is
different from what we would expect from the pointer type. When
deleting a bool*, we end up with an i1 on one side (where we compute
the LLVM type from the Clang bool type) and i8 on the other (where we
grab the LLVM type from the LLVM pointer type). I've weakened the
assertion appropriately, and the Boost Parallel Graph Library now
passes its regression tests.
llvm-svn: 112821
|