| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
track whether the referenced declaration comes from an enclosing
local context. I'm amenable to suggestions about the exact meaning
of this bit.
llvm-svn: 152491
|
|
|
|
|
|
|
|
|
|
| |
a common collection of methods on Value, and share their implementation.
We had two variations in two different places already, and I need the
third variation for inline cost estimation.
Reviewed by Duncan Sands on IRC, but further comments here welcome.
llvm-svn: 152490
|
|
|
|
|
|
|
|
| |
enum is scoped or not, which is not relevant here. Instead, phrase the loop in
the same terms that the standard uses, instead of this awkward set of
conditions that is *nearly* equal.
llvm-svn: 152489
|
|
|
|
|
|
|
| |
please annotate it with a note explaining why this wrong-seeming behaviour is
correct.
llvm-svn: 152488
|
|
|
|
|
|
| |
Patch by Kay Tiong Khoo!
llvm-svn: 152487
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old way of determine when and where to spill a value that was used inside of
a landing pad resulted in spilling that value everywhere and not just at the
invoke edge.
This algorithm determines which values are used within a landing pad. It then
spills those values before the invoke and reloads them before the uses. This
should prevent excessive spilling in many cases, e.g. inside of loops.
<rdar://problem/10609139>
llvm-svn: 152486
|
|
|
|
|
|
| |
doing a copy. Fixes PR12139.
llvm-svn: 152485
|
|
|
|
| |
llvm-svn: 152483
|
|
|
|
|
|
|
| |
It is now possible to load object files and scan over sections, symbols,
and relocations! Includes test code with partial coverage.
llvm-svn: 152482
|
|
|
|
|
|
|
|
| |
should not impede creating a proper TypeLoc info for the decl-spec.
This improves our semantic error recovery.
llvm-svn: 152481
|
|
|
|
|
|
|
|
|
|
|
| |
Before r151307 this part worked without compiler errors but now it only verifies
that our handling of irregular pragmas is broken compared to gcc, it has no
practical usefulness; it creates invalid structs that cannot be used for 'offsetof' testing.
If we later decide to handle irregular pragmas without compiler errors we can
put back this part.
llvm-svn: 152480
|
|
|
|
|
|
|
|
| |
we correctly emit loads of BlockDeclRefExprs even when they
don't qualify as ODR-uses. I think I'm adequately convinced
that BlockDeclRefExpr can die.
llvm-svn: 152479
|
|
|
|
| |
llvm-svn: 152478
|
|
|
|
|
|
| |
on behalf of a DWARF expression.
llvm-svn: 152477
|
|
|
|
| |
llvm-svn: 152476
|
|
|
|
| |
llvm-svn: 152475
|
|
|
|
| |
llvm-svn: 152474
|
|
|
|
|
|
| |
<rdar://problem/11021925>
llvm-svn: 152473
|
|
|
|
| |
llvm-svn: 152472
|
|
|
|
| |
llvm-svn: 152471
|
|
|
|
|
|
| |
constructors. Fixes PR12219.
llvm-svn: 152470
|
|
|
|
| |
llvm-svn: 152469
|
|
|
|
|
|
|
|
|
|
|
| |
doesn't understand. We registered
as aborted, but didn't treat such cases as sinks in the ExplodedGraph.
Along the way, add basic support for CXXCatchStmt, expanding the set of code we actually analyze (hopefully correctly).
Fixes: <rdar://problem/10892489>
llvm-svn: 152468
|
|
|
|
| |
llvm-svn: 152467
|
|
|
|
| |
llvm-svn: 152465
|
|
|
|
| |
llvm-svn: 152464
|
|
|
|
|
|
|
|
|
|
| |
for ios.
Greg disabled this back in 2012-01-10 r147886 but we still need to use it.
<rdar://problem/11016745>
llvm-svn: 152463
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- We do this when it is easy to determine that the backend will pass them on
the stack properly by itself.
Currently LLVM codegen is really bad in some cases with byval, for example, on
the test case here (which is derived from Sema code, which likes to pass
SourceLocations around)::
struct s47 { unsigned a; };
void f47(int,int,int,int,int,int,struct s47);
void test47(int a, struct s47 b) { f47(a, a, a, a, a, a, b); }
we used to emit code like this::
...
movl %esi, -8(%rbp)
movl -8(%rbp), %ecx
movl %ecx, (%rsp)
...
to handle moving the struct onto the stack, which is just appalling.
Now we generate::
movl %esi, (%rsp)
which seems better, no?
llvm-svn: 152462
|
|
|
|
| |
llvm-svn: 152461
|
|
|
|
| |
llvm-svn: 152460
|
|
|
|
|
|
| |
// rdar://11023563
llvm-svn: 152459
|
|
|
|
|
|
| |
Somehow we never verified SSA dominance before.
llvm-svn: 152458
|
|
|
|
| |
llvm-svn: 152457
|
|
|
|
|
|
| |
innermost type. Fixes PR12142.
llvm-svn: 152456
|
|
|
|
|
|
|
|
| |
copy-construction, which Daniel Dunbar reports as giving a 0.75% speedup on
403.gcc/combine.c. The performance differences on my constexpr torture tests
are below the noise floor.
llvm-svn: 152455
|
|
|
|
| |
llvm-svn: 152454
|
|
|
|
|
|
|
|
|
| |
the process of handling the
load notification for the first load) then we will set it the runtime to NULL and won't re-search for it.
Added a way for the dynamic loader to force a re-search, since it knows the world has changed.
llvm-svn: 152453
|
|
|
|
|
|
| |
operation action of nodes.
llvm-svn: 152452
|
|
|
|
|
|
| |
ivars in the modern rewriter.
llvm-svn: 152451
|
|
|
|
|
|
| |
combine pass.
llvm-svn: 152450
|
|
|
|
|
|
| |
All uses of a virtual register must be dominated by its def.
llvm-svn: 152449
|
|
|
|
|
|
| |
annotations. Fixes <rdar://problem/10824732>.
llvm-svn: 152448
|
|
|
|
| |
llvm-svn: 152447
|
|
|
|
|
|
| |
in Objective-C++.
llvm-svn: 152446
|
|
|
|
|
|
| |
And add comments, since this is obviously confusing.
llvm-svn: 152445
|
|
|
|
|
|
|
|
|
|
| |
basic source character set in C++98. Add -Wc++98-compat diagnostics for same in
literals in C++11. Extend such support to cover string literals as well as
character literals, and mark N2170 as done.
This seems too minor to warrant a release note to me. Let me know if you disagree.
llvm-svn: 152444
|
|
|
|
| |
llvm-svn: 152443
|
|
|
|
|
|
| |
actually happened.
llvm-svn: 152442
|
|
|
|
| |
llvm-svn: 152441
|
|
|
|
|
|
|
|
|
|
|
| |
We do not reanalyze a function, which has already been analyzed as an
inlined callee. As per PRELIMINARY testing, this gives over
50% run time reduction on some benchmarks without decreasing of the
number of bugs found.
Turning the mode on by default.
llvm-svn: 152440
|