| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
old value after the store but before it is released.
This fixes rdar:/11116986.
llvm-svn: 156442
|
|
|
|
|
|
| |
loop repeatedlt making the same change. This is for rdar://11256239.
llvm-svn: 155160
|
|
|
|
|
|
|
| |
their argument as "escape" points for objc_retainBlock optimization.
This fixes rdar://11229925.
llvm-svn: 154682
|
|
|
|
|
|
|
| |
library return value optimization for phi uses. Even when the
phi itself is not dominated, the specific use may be dominated.
llvm-svn: 154647
|
|
|
|
|
|
|
| |
optimizing autorelease calls on phi nodes with null operands.
This fixes rdar://11207070.
llvm-svn: 154642
|
|
|
|
|
|
| |
testcase slightly less trivial. This fixes rdar://11171718.
llvm-svn: 154118
|
|
|
|
|
|
| |
is retaining the return value of an invoke that it immediately follows.
llvm-svn: 153344
|
|
|
|
|
|
|
|
|
|
|
|
| |
same basic block, and it's not safe to insert code in the successor
blocks if the edges are critical edges. Splitting those edges is
possible, but undesirable, especially on the unwind side. Instead,
make the bottom-up code motion to consider invokes to be part of
their successor blocks, rather than part of their parent blocks, so
that it doesn't push code past them and onto the edges. This fixes
PR12307.
llvm-svn: 153343
|
|
|
|
|
|
|
| |
code.
While here, reduce indentation.
llvm-svn: 152803
|
|
|
|
|
|
|
| |
should be ignored by ARC optimization, don't insert new ARC runtime
calls in the unwind destination.
llvm-svn: 152748
|
|
|
|
|
|
|
|
|
| |
traversal, consider nodes for which the only successors are backedges
which the traversal is ignoring to be exit nodes. This fixes a problem
where the bottom-up traversal was failing to visit split blocks along
split loop backedges. This fixes rdar://10989035.
llvm-svn: 152421
|
|
|
|
|
|
|
|
| |
metadata may still unwind, but only in ways that the ARC
optimizer doesn't need to consider. This permits more
aggressive optimization.
llvm-svn: 150829
|
|
|
|
|
|
|
|
| |
run with LIT now and now Dejagnu. dg.exp is no longer needed.
Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches.
llvm-svn: 150664
|
|
|
|
|
|
|
| |
(but not of) a block pointer do not cause the block pointer to
escape. This fixes rdar://10803830.
llvm-svn: 150424
|
|
|
|
|
|
| |
rdar://10531041.
llvm-svn: 148490
|
|
|
|
|
|
| |
of recognizing them by name.
llvm-svn: 148416
|
|
|
|
|
|
| |
autorelease push+pop pairs.
llvm-svn: 148330
|
|
|
|
|
|
|
|
| |
the optimizer doesn't eliminate objc_retainBlock calls which are needed
for their side effect of copying blocks onto the heap.
This implements rdar://10361249.
llvm-svn: 148076
|
|
|
|
|
|
| |
point to ARC-managed pointers sometimes. This fixes rdar://10551239.
llvm-svn: 146577
|
|
|
|
|
|
| |
instead of 'volatile load', which is archaic.
llvm-svn: 145171
|
|
|
|
|
|
|
| |
tag on objc_retainBlock calls, which indicates that they may be
optimized away. rdar://10211286.
llvm-svn: 142298
|
|
|
|
|
|
|
| |
possibility that it will span multiple CFG diamonds/triangles which
could have different controlling predicates. rdar://10282956
llvm-svn: 142222
|
|
|
|
|
|
|
| |
handle the case where the retain is in a different basic block.
rdar://10210274.
llvm-svn: 140815
|
|
|
|
|
|
|
| |
objc_retainBlock call is potentially responsible for copying
the block to the heap to extend its lifetime. rdar://10209613.
llvm-svn: 140814
|
|
|
|
|
|
| |
in memory relevant to the optimizer. rdar://10050579.
llvm-svn: 139708
|
|
|
|
| |
llvm-svn: 138894
|
|
|
|
| |
llvm-svn: 138242
|
|
|
|
| |
llvm-svn: 138241
|
|
|
|
|
|
|
|
| |
known-incremented level, because the two concepts can be used
to prove the saftey of a retain+release removal in different
ways.
llvm-svn: 138016
|
|
|
|
|
|
|
|
|
|
| |
of the instruction.
Note that this change affects the existing non-atomic load and store
instructions; the parser now accepts both forms, and the change is noted
in the release notes.
llvm-svn: 137527
|
|
|
|
|
|
| |
is returned through a bitcast.
llvm-svn: 137402
|
|
|
|
|
|
|
|
|
| |
the retains and releases all use the same SSA pointer value.
Also, don't let CFG hazards disrupt nested retain+release pair
optimizations.
llvm-svn: 137399
|
|
|
|
| |
llvm-svn: 137085
|
|
|
|
|
|
|
| |
so that a declaration for objc_retain is created when needed if it doesn't
already exist. rdar://9825114.
llvm-svn: 135821
|
|
|
|
|
|
| |
than trying to insert them immediately after the invoke.
llvm-svn: 133188
|
|
llvm-svn: 133108
|