| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 104237
|
| |
|
|
| |
llvm-svn: 104236
|
| |
|
|
|
|
| |
be turned into a setter call (fixes radar 8008649).
llvm-svn: 104235
|
| |
|
|
| |
llvm-svn: 104234
|
| |
|
|
|
|
| |
frame index, or DBG_VALUE instruction, or collection of DBG_VALUE instructions. Plus each DbgVariable may not need a label.
llvm-svn: 104233
|
| |
|
|
| |
llvm-svn: 104232
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 104231
|
| |
|
|
| |
llvm-svn: 104230
|
| |
|
|
| |
llvm-svn: 104229
|
| |
|
|
|
|
| |
16-bit and 32-bit pushf and popf.
llvm-svn: 104228
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
particular issue was the cause of the Boost.Interprocess failures, and
in general will lead to horrendous, hard-to-diagnose miscompiles. The
assertion itself has survives self-host and a full Boost build, so we
are close to eradicating this problem in C++.
Note that the assertion is *not* turned on for Objective-C++, where we
still have problems with introducing memcpy's of non-POD class
types. That part of the assertion will go away as soon as we fix the
known issues in Objective-C++.
llvm-svn: 104227
|
| |
|
|
| |
llvm-svn: 104226
|
| |
|
|
|
|
|
| |
and fix a bug that valgrind noticed where the code would std::swap an
element with itself.
llvm-svn: 104225
|
| |
|
|
|
|
| |
distributions
llvm-svn: 104224
|
| |
|
|
| |
llvm-svn: 104223
|
| |
|
|
|
|
| |
returning non-pointer-sized things were generating invalid IR inside @try blocks.
llvm-svn: 104222
|
| |
|
|
|
|
| |
getFullSourceRange -> getSourceRange for TypeLoc.
llvm-svn: 104220
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
subobject. Previously, we could only properly bind to a base class
subobject while extending the lifetime of the complete object (of a
derived type); for non-static data member subobjects, we could memcpy
(!) the result and bind to that, which is rather broken.
Now, we pull apart the expression that we're binding to, to figure out
which subobject we're accessing, then construct the temporary object
(adding a destruction if needed) and, finally, dig out the subobject
we actually meant to access.
This fixes yet another instance where we were memcpy'ing rather than
doing the right thing. However, note the FIXME in references.cpp:
there's more work to be done for binding to subobjects, since the AST
is incorrectly modeling some member accesses in base classes as
lvalues when they are really rvalues.
llvm-svn: 104219
|
| |
|
|
| |
llvm-svn: 104218
|
| |
|
|
|
|
| |
<rdar://problem/7995494>.
llvm-svn: 104217
|
| |
|
|
|
|
|
|
|
| |
pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot
of long latency instructions so a strict register pressure reduction
scheduler does not work well.
Early experiments show this speeds up some NEON loops by over 30%.
llvm-svn: 104216
|
| |
|
|
|
|
|
|
|
| |
class type (that uses a return slot), pass the return slot to the
callee directly rather than allocating new storage and trying to copy
the object. This appears to have been the cause of the remaining two
Boost.Interprocess failures.
llvm-svn: 104215
|
| |
|
|
| |
llvm-svn: 104209
|
| |
|
|
|
|
| |
SourceManager::isFromMainFile()).
llvm-svn: 104208
|
| |
|
|
| |
llvm-svn: 104207
|
| |
|
|
|
|
|
|
|
|
| |
instance variables:
- Use isRecordType() rather than isa<RecordType>(), so that we see
through typedefs in ivar types.
- Mark the destructor as referenced
- Perform C++ access control on the destructor
llvm-svn: 104206
|
| |
|
|
|
|
| |
<rdar://problem/8007063>.
llvm-svn: 104205
|
| |
|
|
| |
llvm-svn: 104204
|
| |
|
|
|
|
|
| |
doesn't have a register operand. Also, use I instead of PSI, for
consistency with mfence and lfence.
llvm-svn: 104203
|
| |
|
|
|
|
| |
(the codegen works here, too, but that's annoying to test without execution)
llvm-svn: 104202
|
| |
|
|
| |
llvm-svn: 104201
|
| |
|
|
| |
llvm-svn: 104197
|
| |
|
|
| |
llvm-svn: 104196
|
| |
|
|
|
|
| |
c++'03 code and variadic support "needs work".
llvm-svn: 104195
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
smallvector
instead of new[]'d. This greatly reduces the number of new[]'s, and guess what,
they were all leaked.
This adds a fixme in this hunk:
unsigned NumPackArgs = NumFlatArgs - PackBeginIndex;
+ // FIXME: NumPackArgs shouldn't be negative here???
if (NumPackArgs)
- PackArgs = &FlatArgs[PackBeginIndex];
+ PackArgs = FlatArgs.data()+PackBeginIndex;
where test/SemaTemplate/variadic-class-template-2.cpp is accessing the vector
out of range and NumPackArgs is negative. I assume variadic template args are
completely hosed.
llvm-svn: 104194
|
| |
|
|
|
|
|
| |
be a copy constructor (since it isn't one semantically)
and fix the ownership bits it sets to be correct!
llvm-svn: 104192
|
| |
|
|
|
|
|
| |
"structure" arg lists, the first step to fixing some massive
memory leaks.
llvm-svn: 104191
|
| |
|
|
| |
llvm-svn: 104190
|
| |
|
|
| |
llvm-svn: 104189
|
| |
|
|
|
|
| |
suggested modification.
llvm-svn: 104188
|
| |
|
|
|
|
|
|
| |
the addressing modes don't make this trivially easy. This allows
it to avoid falling into the less precise heuristics in more
cases.
llvm-svn: 104186
|
| |
|
|
|
|
|
| |
test/Codegen/ARM/reg_sequence.ll but it doesn't affect the generated code
because the coalescer cleans it up. Radar 7998853.
llvm-svn: 104185
|
| |
|
|
|
|
|
|
|
|
| |
create a temporary copy of both the "true" and "false" results. Fixes
the Boost.Interprocess failures.
Daniel did all the hard work of tracking down the issue, I get to type
up the trivial fix for this horrible miscompile.
llvm-svn: 104184
|
| |
|
|
| |
llvm-svn: 104183
|
| |
|
|
| |
llvm-svn: 104182
|
| |
|
|
| |
llvm-svn: 104176
|
| |
|
|
| |
llvm-svn: 104175
|
| |
|
|
|
|
| |
more than one dbg_value instruction. rdar://7759363
llvm-svn: 104174
|
| |
|
|
| |
llvm-svn: 104173
|
| |
|
|
| |
llvm-svn: 104172
|