|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| | Suggested in code review by Eli.
That code in InstCombine looks kinda suspicious.
llvm-svn: 145013 | 
| | 
| 
| 
| 
| 
| | large chunks of inline assembler
llvm-svn: 144962 | 
| | 
| 
| 
| 
| 
| | r144933. For some reason this compiles on linux
llvm-svn: 144936 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | asan; add a test check that asan does not touch linkonce_odr
llvm-svn: 144933 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | looking at the size of the pointee. Fixes PR11390!
llvm-svn: 144773 | 
| | 
| 
| 
| | llvm-svn: 144758 | 
| | 
| 
| 
| | llvm-svn: 144748 | 
| | 
| 
| 
| | llvm-svn: 144721 | 
| | 
| 
| 
| | llvm-svn: 144675 | 
| | 
| 
| 
| | llvm-svn: 144648 | 
| | 
| 
| 
| | llvm-svn: 144536 | 
| | 
| 
| 
| 
| 
| 
| 
| | versions of explicit dependencies.
 - The hope is that we have a tool/test to verify these are accurate (and tight) soon.
llvm-svn: 144444 | 
| | 
| 
| 
| 
| 
| | Fixes PR11353.
llvm-svn: 144442 | 
| | 
| 
| 
| | llvm-svn: 144416 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Specifically, it doesn't handle many cases involving undef correctly, and it is missing other checks which
lead to it trying to re-mark a value marked as a constant with a different value.  It also appears to trigger very rarely.
Fixes PR11357.
llvm-svn: 144352 | 
| | 
| 
| 
| 
| 
| 
| 
| | Size of data being pointed to wasn't always being checked so some small writes were killing big writes
Fixes <rdar://problem/10426753>
llvm-svn: 144312 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | store is dead.
Currently checks alignment and killing stores on a power of 2 boundary as this is likely
to trim the size of the earlier store without breaking large vector stores into scalar ones.
Fixes <rdar://problem/10140300>
llvm-svn: 144239 | 
| | 
| 
| 
| 
| 
| | yet so it will currently never get used in real tests
llvm-svn: 144107 | 
| | 
| 
| 
| 
| 
| | Fixes r8429
llvm-svn: 144036 | 
| | 
| 
| 
| 
| 
| | <rdar://problem/10405911>
llvm-svn: 144000 | 
| | 
| 
| 
| | llvm-svn: 143808 | 
| | 
| 
| 
| 
| 
| | the end of it is dead.", which appears to break bootstrapping LLVM.
llvm-svn: 143668 | 
| | 
| 
| 
| | llvm-svn: 143634 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Only currently done if the later store is writing to a power of 2 address or 
has the same alignment as the earlier store as then its likely to not break up
large stores into smaller ones
Fixes <rdar://problem/10140300>
llvm-svn: 143630 | 
| | 
| 
| 
| 
| 
| 
| 
| | We've been hitting asserts in this code due to the many supported
combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This
second rewrite of the code attempts to deal with these cases systematically.
llvm-svn: 143546 | 
| | 
| 
| 
| 
| 
| | silence -Wparentheses.
llvm-svn: 143534 | 
| | 
| 
| 
| 
| 
| | Narrowest possible fix for PR11279.
llvm-svn: 143522 | 
| | 
| 
| 
| 
| 
| | with another instruction.  (Specifically, don't insert an arbitrary instruction before a PHI.)  Fixes PR11275.
llvm-svn: 143437 | 
| | 
| 
| 
| 
| 
| | Patch by Kostya Serebryany.
llvm-svn: 143405 | 
| | 
| 
| 
| 
| 
| 
| 
| | for printf->puts, which correctly sets the unnamed_addr bit on the resulting GlobalVariable.
Fixes PR11264.
llvm-svn: 143289 | 
| | 
| 
| 
| 
| 
| | Fixes rdar://10359193 Indvar LinearFunctionTestReplace assertion
llvm-svn: 143183 | 
| | 
| 
| 
| 
| 
| | don't do that. <rdar://problem/10352360>
llvm-svn: 143093 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| 
| | element types, even though the element extraction code does. It is surprising
that this bug has been here for so long. Fixes <rdar://problem/10318778>.
llvm-svn: 142740 | 
| | 
| 
| 
| 
| 
| | elimination on them too.
llvm-svn: 142735 | 
| | 
| 
| 
| | llvm-svn: 142684 | 
| | 
| 
| 
| 
| 
| | expensive helper.
llvm-svn: 142672 | 
| | 
| 
| 
| 
| 
| | the input and output vectors have different sizes.  Patch by Xiaoyi Guo.
llvm-svn: 142671 | 
| | 
| 
| 
| 
| 
| | definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead.  This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress.  (GlobalDCE can also handle the given tescase, but we only run that at -O3.)  Found while looking at PR11180.
llvm-svn: 142572 | 
| | 
| 
| 
| 
| 
| | Patch by Pranav Bhandarkar!
llvm-svn: 142556 | 
| | 
| 
| 
| 
| 
| 
| | tag on objc_retainBlock calls, which indicates that they may be
optimized away. rdar://10211286.
llvm-svn: 142298 | 
| | 
| 
| 
| 
| 
| 
| 
| | combining of the landingpad instruction. The ObjC personality function acts
almost identically to the C++ personality function. In particular, it uses
"null" as a "catch-all" value.
llvm-svn: 142256 | 
| | 
| 
| 
| 
| 
| 
| | possibility that it will span multiple CFG diamonds/triangles which
could have different controlling predicates.  rdar://10282956
llvm-svn: 142222 | 
| | 
| 
| 
| 
| 
| 
| | Some code want to check that *any* call within a function has the 'returns
twice' attribute, not just that the current function has one.
llvm-svn: 142221 | 
| | 
| 
| 
| 
| 
| 
| | obsolete. Check the attribute instead.
<rdar://problem/8031714>
llvm-svn: 142212 | 
| | 
| 
| 
| | llvm-svn: 142204 | 
| | 
| 
| 
| 
| 
| | There is no reason to have simple IR level pass in lib/Target.
llvm-svn: 142200 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | profile metadata at the same time. Use it to preserve metadata attached
to a branch when re-writing it in InstCombine.
Add metadata to the canonicalize_branch InstCombine test, and check that
it is tranformed correctly.
Reviewed by Nick Lewycky!
llvm-svn: 142168 |