Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Don't unroll loops whose header block's address is taken. | Chris Lattner | 2011-02-18 | 1 | -2/+10 |
| | | | | | | | | | | | | | | | | | This is part of a futile attempt to not "break" bizzaro code like this: l1: printf("l1: %p\n", &&l1); ++x; if( x < 3 ) goto l1; Previously we'd fold &&l1 to 1, which is fine per our semantics but not helpful to the user. llvm-svn: 125827 | ||||
* | Recognize monitor/mwait with explicit register arguments | Joerg Sonnenberger | 2011-02-18 | 1 | -0/+8 |
| | | | | llvm-svn: 125805 | ||||
* | Check the errorcode. | Argyrios Kyrtzidis | 2011-02-18 | 1 | -0/+1 |
| | | | | llvm-svn: 125804 | ||||
* | Trim debugging output. | Jakob Stoklund Olesen | 2011-02-18 | 2 | -29/+6 |
| | | | | llvm-svn: 125802 | ||||
* | Recognize leavel and leaveq aliases for leave. | Joerg Sonnenberger | 2011-02-17 | 1 | -0/+3 |
| | | | | | | Validate encoding of leave in 64bit mode. llvm-svn: 125795 | ||||
* | Do not lose debug info of an inlined function argument even if the argument ↵ | Devang Patel | 2011-02-17 | 4 | -13/+10 |
| | | | | | | is only used through GEPs. llvm-svn: 125794 | ||||
* | have instcombine preserve nsw/nuw/exact when sinking | Chris Lattner | 2011-02-17 | 1 | -11/+53 |
| | | | | | | common operations through a phi. llvm-svn: 125790 | ||||
* | Add basic register allocator statistics. | Jakob Stoklund Olesen | 2011-02-17 | 2 | -0/+18 |
| | | | | llvm-svn: 125789 | ||||
* | fix typo | Chris Lattner | 2011-02-17 | 1 | -1/+1 |
| | | | | llvm-svn: 125787 | ||||
* | fix instcombine merging GEPs through a PHI to only make the | Chris Lattner | 2011-02-17 | 1 | -3/+7 |
| | | | | | | result inbounds if all of the inputs are inbounds. llvm-svn: 125785 | ||||
* | Enhance constant folding of bitcast operations on vectors of floats. | Nadav Rotem | 2011-02-17 | 3 | -3/+14 |
| | | | | | | | Add getAllOnesValue of FP numbers to Constants and APFloat. Add more tests. llvm-svn: 125776 | ||||
* | add is always integer, thanks to Frits for noticing this. | Chris Lattner | 2011-02-17 | 1 | -1/+1 |
| | | | | llvm-svn: 125774 | ||||
* | [AVX] Recorganize X86ShuffleDecode into its own library | David Greene | 2011-02-17 | 7 | -33/+116 |
| | | | | | | | | | | | | (LLVMX86Utils.a) to break cyclic library dependencies between LLVMX86CodeGen.a and LLVMX86AsmParser.a. Previously this code was in a header file and marked static but AVX requires some additional functionality here that won't be used by all clients. Since including unused static functions causes a gcc compiler warning, keeping it as a header would break builds that use -Werror. Putting this in its own library solves both problems at once. llvm-svn: 125765 | ||||
* | Split local live ranges. | Jakob Stoklund Olesen | 2011-02-17 | 2 | -2/+280 |
| | | | | | | | | A local live range is live in a single basic block. If such a range fails to allocate, try to find a sub-range that would get a larger spill weight than its interference. llvm-svn: 125764 | ||||
* | The labyrinthine X86 backend no longer appears to require | Dan Gohman | 2011-02-17 | 1 | -37/+0 |
| | | | | | | these patterns. llvm-svn: 125759 | ||||
* | Fix wrong logic in promotion of signed mul-with-overflow (I pointed this out at | Duncan Sands | 2011-02-17 | 1 | -18/+12 |
| | | | | | | | | | the time but presumably my email got lost). Examples where the previous logic got it wrong: (1) a signed i8 multiply of 64 by 2 overflows, but the high part is zero; (2) a signed i8 multiple of -128 by 2 overflows, but the high part is all ones. llvm-svn: 125748 | ||||
* | Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally. | NAKAMURA Takumi | 2011-02-17 | 6 | -11/+2 |
| | | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way. llvm-svn: 125747 | ||||
* | Fix whitespace. | NAKAMURA Takumi | 2011-02-17 | 2 | -9/+9 |
| | | | | llvm-svn: 125746 | ||||
* | This has been implemented. | Duncan Sands | 2011-02-17 | 1 | -10/+0 |
| | | | | llvm-svn: 125738 | ||||
* | Transform "A + B >= A + C" into "B >= C" if the adds do not wrap. Likewise ↵ | Duncan Sands | 2011-02-17 | 1 | -93/+106 |
| | | | | | | | | | for some variations (some of these were already present so I unified the code). Spotted by my auto-simplifier as occurring a lot. llvm-svn: 125734 | ||||
* | Switch to SmallVector in SimpleRegisterCoalescing for a 3.5% speedup on 403.gcc. | Cameron Zwarich | 2011-02-17 | 1 | -3/+3 |
| | | | | llvm-svn: 125728 | ||||
* | Adjust indenting of arguments. | Cameron Zwarich | 2011-02-17 | 1 | -3/+3 |
| | | | | llvm-svn: 125727 | ||||
* | Return Changed from SplitPHIEdges rather than always returning true. | Cameron Zwarich | 2011-02-17 | 1 | -1/+1 |
| | | | | llvm-svn: 125726 | ||||
* | preserve NUW/NSW when transforming add x,x | Chris Lattner | 2011-02-17 | 1 | -2/+7 |
| | | | | llvm-svn: 125711 | ||||
* | add some notes on compares + binops. Remove redundant entries. | Chris Lattner | 2011-02-17 | 1 | -20/+47 |
| | | | | llvm-svn: 125702 | ||||
* | fix PR9215, preventing -reassociate from clearing nsw/nuw when | Chris Lattner | 2011-02-17 | 1 | -3/+4 |
| | | | | | | it swaps the LHS/RHS of a single binop. llvm-svn: 125700 | ||||
* | Add a few missed xforms from GCC PR14753 | Chris Lattner | 2011-02-16 | 1 | -0/+29 |
| | | | | llvm-svn: 125681 | ||||
* | Swap VT and DebugLoc operands of getExtLoad() for consistency with | Stuart Hastings | 2011-02-16 | 12 | -62/+61 |
| | | | | | | other getNode() methods. Radar 9002173. llvm-svn: 125665 | ||||
* | Remove outdated README entry. | Eli Friedman | 2011-02-16 | 1 | -12/+0 |
| | | | | llvm-svn: 125660 | ||||
* | Remove outdated README entry. | Eli Friedman | 2011-02-16 | 1 | -16/+0 |
| | | | | llvm-svn: 125659 | ||||
* | Update README entry. | Eli Friedman | 2011-02-16 | 1 | -13/+6 |
| | | | | llvm-svn: 125658 | ||||
* | Refactor zero folding slightly. Clean up todo. | Eric Christopher | 2011-02-16 | 1 | -22/+20 |
| | | | | llvm-svn: 125651 | ||||
* | Gas is very inconsistent about when a relaxation/relocation is needed. Do | Rafael Espindola | 2011-02-16 | 4 | -47/+16 |
| | | | | | | the right thing and stop trying to copy it. Fixes PR8944. llvm-svn: 125648 | ||||
* | The change for PR9190 wasn't quite right. We need to avoid making the | Eric Christopher | 2011-02-16 | 1 | -2/+12 |
| | | | | | | | | | transformation if we can't legally create a build vector of the correct type. Check that we can make the transformation first, and add a TODO to refactor this code with similar cases. Fixes: PR9223 and rdar://9000350 llvm-svn: 125631 | ||||
* | Add support for pushsection and popsection. Patch by Joerg Sonnenberger. | Rafael Espindola | 2011-02-16 | 10 | -54/+60 |
| | | | | llvm-svn: 125629 | ||||
* | Remove a duplicated check. | Evan Cheng | 2011-02-16 | 1 | -1/+1 |
| | | | | llvm-svn: 125625 | ||||
* | Some single precision VFP instructions may be executed on NEON pipeline, but ↵ | Evan Cheng | 2011-02-16 | 2 | -28/+160 |
| | | | | | | not double precision ones. llvm-svn: 125624 | ||||
* | Add support for parsing [expr]. | Roman Divacky | 2011-02-15 | 1 | -0/+18 |
| | | | | | | This is submitted by Joerg Sonnenberger and fixes his PR8685. llvm-svn: 125595 | ||||
* | Teach ARMLoadStoreOptimizer to remove kill flags from merged instructions as ↵ | Jakob Stoklund Olesen | 2011-02-15 | 1 | -21/+15 |
| | | | | | | | | | | | | | | | | | | | | | | | | | well. This is necessary to avoid a crash in certain tangled situations where a kill flag is first correctly moved to a merged instruction, and then needs to be moved again: STR %R0, a... STR %R0<kill>, b... First becomes: STR %R0, b... STM a, %R0<kill>, ... and then: STM a, %R0, ... STM b, %R0<kill>, ... We can now remove the kill flag from the merged STM when needed. 8960050. llvm-svn: 125591 | ||||
* | Ignore DBG_VALUE machine instructions while constructing instruction ranges ↵ | Devang Patel | 2011-02-15 | 1 | -0/+4 |
| | | | | | | | | based on location info. Machine instruction range consisting of only DBG_VALUE MIs only contributes consecutive labels in assembly output, which is harmless, and empty scope entry in DebugInfo, which confuses debugger tools. llvm-svn: 125577 | ||||
* | Implement a function from PathV2 whose definition is missing. | Argyrios Kyrtzidis | 2011-02-15 | 1 | -0/+6 |
| | | | | llvm-svn: 125574 | ||||
* | Move DbgInfoPrinter specific utlities inside DbgInfoPrinter.cpp | Devang Patel | 2011-02-15 | 2 | -111/+112 |
| | | | | llvm-svn: 125571 | ||||
* | Print function info. Patch by Minjang Kim. | Devang Patel | 2011-02-15 | 2 | -2/+34 |
| | | | | llvm-svn: 125567 | ||||
* | Spelling fix: consequtive -> consecutive. | Duncan Sands | 2011-02-15 | 5 | -5/+5 |
| | | | | llvm-svn: 125563 | ||||
* | Fix 9216 - Endless loop in InstCombine pass. | Nadav Rotem | 2011-02-15 | 1 | -1/+5 |
| | | | | | | | The pattern "A&(A^B) -> A & ~B" recreated itself because ~B is actually a xor -1. llvm-svn: 125557 | ||||
* | Fix thinko. Cmp can be the first instruction in a MBB. | Evan Cheng | 2011-02-15 | 1 | -2/+5 |
| | | | | llvm-svn: 125552 | ||||
* | Do not forget DebugLoc! | Devang Patel | 2011-02-15 | 1 | -0/+1 |
| | | | | llvm-svn: 125547 | ||||
* | tidy up a bit. | Chris Lattner | 2011-02-15 | 1 | -7/+9 |
| | | | | llvm-svn: 125546 | ||||
* | convert ConstantVector::get to use ArrayRef. | Chris Lattner | 2011-02-15 | 11 | -173/+94 |
| | | | | llvm-svn: 125537 | ||||
* | Remove unused bitvectors that record ARM callee-saved registers. | Bob Wilson | 2011-02-14 | 2 | -23/+0 |
| | | | | llvm-svn: 125534 |