| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 149328
|
|
|
|
| |
llvm-svn: 149323
|
|
|
|
| |
llvm-svn: 149322
|
|
|
|
| |
llvm-svn: 149318
|
|
|
|
| |
llvm-svn: 149317
|
|
|
|
| |
llvm-svn: 149316
|
|
|
|
|
|
|
| |
The eh.selector and eh.resume intrinsics aren't used anymore. Get rid of some
calls to them.
llvm-svn: 149314
|
|
|
|
| |
llvm-svn: 149312
|
|
|
|
| |
llvm-svn: 149307
|
|
|
|
| |
llvm-svn: 148946
|
|
|
|
| |
llvm-svn: 148487
|
|
|
|
|
|
| |
necessary)
llvm-svn: 148284
|
|
|
|
|
|
|
|
|
|
|
|
| |
present in the bottom of the CFG triangle, as the transformation isn't
ever valuable if the branch can't be eliminated.
Also, unify some heuristics between SimplifyCFG's multiple
if-converters, for consistency.
This fixes rdar://10627242.
llvm-svn: 147630
|
|
|
|
|
|
|
|
| |
code can incorrectly move the load across a store. This never
happens in practice today, but only because the current
heuristics accidentally preclude it.
llvm-svn: 147623
|
|
|
|
| |
llvm-svn: 147307
|
|
|
|
| |
llvm-svn: 147292
|
|
|
|
|
|
|
| |
to discard weights when appropriate. Still more to do (and a new TODO), but
it's a start!
llvm-svn: 147286
|
|
|
|
| |
llvm-svn: 147280
|
|
|
|
| |
llvm-svn: 147279
|
|
|
|
|
|
|
|
| |
support
to CloneFunctionInto to allow remapping for this case.
llvm-svn: 147217
|
|
|
|
| |
llvm-svn: 147036
|
|
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146960
|
|
|
|
|
|
| |
- Remove trailing spaces.
llvm-svn: 146854
|
|
|
|
|
|
| |
Hope I did this correctly :)
llvm-svn: 146834
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
depending on previous branch on same comparison operands.
For example,
if (a == b) {
if (a > b) // this is false
Fixes some of the issues on <rdar://problem/10554090>
llvm-svn: 146822
|
|
|
|
|
|
| |
This will be used by SimplifyCfg in a later commit.
llvm-svn: 146803
|
|
|
|
|
|
| |
No need for an explicit test case for an unsupported combination of options.
llvm-svn: 146721
|
|
|
|
|
|
| |
false positive. compiler part.
llvm-svn: 146688
|
|
|
|
|
|
| |
header is a landing pad correctly (by splitting the landingpad out of the loop header). Make some adjustments to the rest of LoopSimplify to make it clear that the rest of LoopSimplify isn't making bad assumptions about the presence of landing pads. PR11575.
llvm-svn: 146621
|
|
|
|
|
|
|
|
|
| |
into Analysis as a standalone function, since there's no need for
it to be in VMCore. Also, update it to use isKnownNonZero and
other goodies available in Analysis, making it more precise,
enabling more aggressive optimization.
llvm-svn: 146610
|
|
|
|
| |
llvm-svn: 146409
|
|
|
|
| |
llvm-svn: 146277
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Brendon Cahoon!
This extends the existing LoopUnroll and LoopUnrollPass. Brendon
measured no regressions in the llvm test suite with -unroll-runtime
enabled. This implementation works by using the existing loop
unrolling code to unroll the loop by a power-of-two (default 8). It
generates an if-then-else sequence of code prior to the loop to
execute the extra iterations before entering the unrolled loop.
llvm-svn: 146245
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Walking over pred_begin/pred_end is an expensive operation.
- PHINodes contain a value for each predecessor anyway.
- While it may look like we used to save a few iterations with the set,
be aware that getIncomingValueForBlock does a linear search on
the values of the phi node.
- Another -5% on ARMDisassembler.cpp (Release build). This was the last
entry in the profile that was obviously wasting time.
llvm-svn: 145937
|
|
|
|
|
|
|
|
|
|
| |
basic blocks.
- Calling getUser in a loop is much more expensive than iterating over a few instructions.
- Use it instead of the open-coded loop in AddrModeMatcher.
- 5% speedup on ARMDisassembler.cpp Release builds.
llvm-svn: 145810
|
|
|
|
|
|
|
|
|
|
| |
function of the callee once and not for every invoke in the caller.
The callee is usually smaller than the caller, too. This reduces the compile
time of ARMDisassembler.cpp by 32% (Release build). It still takes ages to
compile though.
llvm-svn: 145690
|
|
|
|
|
|
|
| |
InstructionSimplify.cpp. Other fixups as needed.
Part of rdar://10500969
llvm-svn: 145559
|
|
|
|
| |
llvm-svn: 145420
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
weak variable are compiled by different compilers, such as GCC and LLVM, while
LLVM may increase the alignment to the preferred alignment there is no reason to
think that GCC will use anything more than the ABI alignment. Since it is the
GCC version that might end up in the final program (as the linkage is weak), it
is wrong to increase the alignment of loads from the global up to the preferred
alignment as the alignment might only be the ABI alignment.
Increasing alignment up to the ABI alignment might be OK, but I'm not totally
convinced that it is. It seems better to just leave the alignment of weak
globals alone.
llvm-svn: 145413
|
|
|
|
|
|
|
|
| |
Suggested in code review by Eli.
That code in InstCombine looks kinda suspicious.
llvm-svn: 145013
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The right way to check for a binary operation is
cast<BinaryOperator>. The original check: cast<Instruction> &&
numOperands() == 2 would match phi "instructions", leading to an
infinite loop in extreme corner case: a useless phi with operands
[self, constant] that prior optimization passes failed to remove,
being used in the loop by another useless phi, in turn being used by an
lshr or udiv.
Fixes PR11350: runaway iteration assertion.
llvm-svn: 144935
|
|
|
|
|
|
|
|
|
|
| |
Add a custom name for fwrite and fputs on x86-32 OSX. Make SimplifyLibCalls honor the custom
names for fwrite and fputs.
Fixes <rdar://problem/9815881>.
llvm-svn: 144876
|
|
|
|
| |
llvm-svn: 144748
|
|
|
|
| |
llvm-svn: 144675
|
|
|
|
| |
llvm-svn: 144536
|
|
|
|
| |
llvm-svn: 144416
|
|
|
|
|
|
| |
<rdar://problem/10405911>
llvm-svn: 144000
|
|
|
|
| |
llvm-svn: 143634
|
|
|
|
|
|
| |
Patch by Kostya Serebryany.
llvm-svn: 143405
|
|
|
|
|
|
|
|
|
|
| |
instructions.
This doesn't introduce any optimizations we weren't doing before (except
potentially due to pass ordering issues), now passes will eliminate them sooner
as part of their own cleanups.
llvm-svn: 142787
|