- Jul 23, 2012
-
-
Dan Gohman authored
rdar://11931823. llvm-svn: 160637
-
Nadav Rotem authored
llvm-svn: 160629
-
Sylvestre Ledru authored
llvm-svn: 160621
-
- Jul 22, 2012
-
-
Chandler Carruth authored
moved earlier. This fixes some layering issues. llvm-svn: 160611
-
- Jul 21, 2012
-
-
Nuno Lopes authored
move the bounds checking pass to the instrumentation folder, where it belongs. I dunno why in the world I dropped it in the Scalar folder in the first place. No functionality change. llvm-svn: 160587
-
- Jul 20, 2012
-
-
Richard Osborne authored
GetBestDestForJumpOnUndef() assumes there is at least 1 successor, which isn't true if the block ends in an indirect branch with no successors. Fix this by bailing out earlier in this case. llvm-svn: 160546
-
- Jul 18, 2012
-
-
Andrew Trick authored
Minor oversight noticed by inspection. Sorry no unit test. llvm-svn: 160422
-
Andrew Trick authored
Fixes PR13371: indvars pass incorrectly substitutes 'undef' values. I do not like this fix. It's needed until/unless the meaning of undef changes. It attempts to be complete according to the IR spec, but I don't have much confidence in the implementation given the difficulty testing undefined behavior. Worse, this invalidates some of my hard-fought work on indvars and LSR to optimize pointer induction variables. It results benchmark regressions, which I'll track internally. On x86_64 no LTO I see: -3% huffbench -3% 400.perlbench -8% fhourstones My only suggestion for recovering is to change the meaning of undef. If we could trust an arbitrary instruction to produce a some real value that can be manipulated (e.g. incremented) according to non-undef rules, then this case could be easily handled with SCEV. llvm-svn: 160421
-
- Jul 17, 2012
-
-
Andrew Trick authored
Speculatively fix crashes by code inspection. Can't reproduce them yet. llvm-svn: 160344
-
Andrew Trick authored
Some units tests crashed on a different platform. llvm-svn: 160341
-
Andrew Trick authored
This places limits on CollectSubexprs to constrains the number of reassociation possibilities. It limits the recursion depth and skips over chains of nested recurrences outside the current loop. Fixes PR13361. Although underlying SCEV behavior is still potentially bad. llvm-svn: 160340
-
Nuno Lopes authored
llvm-svn: 160325
-
- Jul 14, 2012
-
-
Andrew Trick authored
All SCEV expressions used by LSR formulae must be safe to expand. i.e. they may not contain UDiv unless we can prove nonzero denominator. Fixes PR11356: LSR hoists UDiv. llvm-svn: 160205
-
- Jul 03, 2012
-
-
Nuno Lopes authored
(LLVM optimizers cannot do this optimization by themselves) llvm-svn: 159668
-
- Jul 02, 2012
-
-
Nuno Lopes authored
llvm-svn: 159534
-
- Jun 29, 2012
-
-
Benjamin Kramer authored
This happens when codegenprepare is invoked via opt. llvm-svn: 159457
-
Duncan Sands authored
really happening. No intended functionality change. llvm-svn: 159451
-
Duncan Sands authored
the optimizers producing a multiply expression with more multiplications than the original (!). llvm-svn: 159426
-
Chandler Carruth authored
This was always part of the VMCore library out of necessity -- it deals entirely in the IR. The .cpp file in fact was already part of the VMCore library. This is just a mechanical move. I've tried to go through and re-apply the coding standard's preferred header sort, but at 40-ish files, I may have gotten some wrong. Please let me know if so. I'll be committing the corresponding updates to Clang and Polly, and Duncan has DragonEgg. Thanks to Bill and Eric for giving the green light for this bit of cleanup. llvm-svn: 159421
-
Bill Wendling authored
(a.k.a. MDNodes). The module doesn't belong in Analysis. Move it to the VMCore instead. llvm-svn: 159414
-
Nuno Lopes authored
llvm-svn: 159385
-
- Jun 28, 2012
-
-
Bill Wendling authored
include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. llvm-svn: 159312
-
- Jun 27, 2012
-
-
Duncan Sands authored
before the expression root. Any existing operators that are changed to use one of them needs to be moved between it and the expression root, and recursively for the operators using that one. When I rewrote RewriteExprTree I accidentally inverted the logic, resulting in the compacting going down from operators to operands rather than up from operands to the operators using them, oops. Fix this, resolving PR12963. llvm-svn: 159265
-
- Jun 26, 2012
-
-
Nuno Lopes authored
revert my previous commit (r159173), since as Eli pointed out, it's perfectly ok to mark realloc as noalias llvm-svn: 159175
-
Nuno Lopes authored
do not set realloc() as NotAlias, since it can return the same pointer. This whole thing should be upgraded to use the MemoryBuiltin interface anyway.. llvm-svn: 159173
-
- Jun 25, 2012
-
-
Dan Gohman authored
the call correctly even in the case where it is an invoke. This fixes rdar://11714057. llvm-svn: 159157
-
Nuno Lopes authored
- simplifycfg: invoke undef/null -> unreachable - instcombine: invoke new -> invoke expect(0, 0) (an arbitrary NOOP intrinsic; only done if the allocated memory is unused, of course) - verifier: allow invoke of intrinsics (to make the previous step work) llvm-svn: 159146
-
- Jun 24, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 159112
-
Nick Lewycky authored
llvm-svn: 159096
-
- Jun 23, 2012
-
-
Nuno Lopes authored
llvm-svn: 159055
-
- Jun 21, 2012
-
-
Nuno Lopes authored
port the BoundsChecking patch to the new MemoryBuiltin API (i.e., remove most of the code from here). Remove the alloc_size.ll test until we settle on a metadata format that makes everyone happy.. llvm-svn: 158920
-
Nuno Lopes authored
- provide more extensive set of functions to detect library allocation functions (e.g., malloc, calloc, strdup, etc) - provide an API to compute the size and offset of an object pointed by Move a few clients (GVN, AA, instcombine, ...) to the new API. This implementation is a lot more aggressive than each of the custom implementations being replaced. Patch reviewed by Nick Lewycky and Chandler Carruth, thanks. llvm-svn: 158919
-
Nadav Rotem authored
A patch by Tom Stellard with minor changes. llvm-svn: 158918
-
- Jun 17, 2012
-
-
Pete Cooper authored
Now that SROA can form alloca's for dynamic vector accesses, further improve it to be able to replace operations on these vector alloca's with insert/extract element insts llvm-svn: 158623
-
- Jun 16, 2012
-
-
Hal Finkel authored
There are other passes, BBVectorize specifically, that also need some of this functionality. llvm-svn: 158605
-
Evan Cheng authored
It's not deterministic to iterate over SmallPtrSet. Replace it with SmallSetVector. Patch by Daniel Reynaud. rdar://11671029 llvm-svn: 158594
-
Pete Cooper authored
Dynamic GEPs created by SROA needed to insert extra "i32 0" operands to index through structs and arrays to get to the vector being indexed. llvm-svn: 158590
-
- Jun 15, 2012
-
-
Andrew Trick authored
For non-address users, Base and Scaled registers are not specially associated to fit an address mode, so SCEVExpander should apply normal expansion rules. Otherwise we may sink computation into inner loops that have already been optimized. llvm-svn: 158537
-
Andrew Trick authored
llvm-svn: 158536
-
Pete Cooper authored
Allow SROA to split up an array of vectors into multiple vectors, even when the vectors are dynamically indexed llvm-svn: 158529
-