summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Don't unroll loops whose header block's address is taken.Chris Lattner2011-02-181-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 argumentsJoerg Sonnenberger2011-02-181-0/+8
| | | | llvm-svn: 125805
* Check the errorcode.Argyrios Kyrtzidis2011-02-181-0/+1
| | | | llvm-svn: 125804
* Trim debugging output.Jakob Stoklund Olesen2011-02-182-29/+6
| | | | llvm-svn: 125802
* Recognize leavel and leaveq aliases for leave.Joerg Sonnenberger2011-02-171-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 Patel2011-02-174-13/+10
| | | | | | is only used through GEPs. llvm-svn: 125794
* have instcombine preserve nsw/nuw/exact when sinkingChris Lattner2011-02-171-11/+53
| | | | | | common operations through a phi. llvm-svn: 125790
* Add basic register allocator statistics.Jakob Stoklund Olesen2011-02-172-0/+18
| | | | llvm-svn: 125789
* fix typoChris Lattner2011-02-171-1/+1
| | | | llvm-svn: 125787
* fix instcombine merging GEPs through a PHI to only make theChris Lattner2011-02-171-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 Rotem2011-02-173-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 Lattner2011-02-171-1/+1
| | | | llvm-svn: 125774
* [AVX] Recorganize X86ShuffleDecode into its own libraryDavid Greene2011-02-177-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 Olesen2011-02-172-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 requireDan Gohman2011-02-171-37/+0
| | | | | | these patterns. llvm-svn: 125759
* Fix wrong logic in promotion of signed mul-with-overflow (I pointed this out atDuncan Sands2011-02-171-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 Takumi2011-02-176-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 Takumi2011-02-172-9/+9
| | | | llvm-svn: 125746
* This has been implemented.Duncan Sands2011-02-171-10/+0
| | | | llvm-svn: 125738
* Transform "A + B >= A + C" into "B >= C" if the adds do not wrap. Likewise ↵Duncan Sands2011-02-171-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 Zwarich2011-02-171-3/+3
| | | | llvm-svn: 125728
* Adjust indenting of arguments.Cameron Zwarich2011-02-171-3/+3
| | | | llvm-svn: 125727
* Return Changed from SplitPHIEdges rather than always returning true.Cameron Zwarich2011-02-171-1/+1
| | | | llvm-svn: 125726
* preserve NUW/NSW when transforming add x,xChris Lattner2011-02-171-2/+7
| | | | llvm-svn: 125711
* add some notes on compares + binops. Remove redundant entries.Chris Lattner2011-02-171-20/+47
| | | | llvm-svn: 125702
* fix PR9215, preventing -reassociate from clearing nsw/nuw whenChris Lattner2011-02-171-3/+4
| | | | | | it swaps the LHS/RHS of a single binop. llvm-svn: 125700
* Add a few missed xforms from GCC PR14753Chris Lattner2011-02-161-0/+29
| | | | llvm-svn: 125681
* Swap VT and DebugLoc operands of getExtLoad() for consistency withStuart Hastings2011-02-1612-62/+61
| | | | | | other getNode() methods. Radar 9002173. llvm-svn: 125665
* Remove outdated README entry.Eli Friedman2011-02-161-12/+0
| | | | llvm-svn: 125660
* Remove outdated README entry.Eli Friedman2011-02-161-16/+0
| | | | llvm-svn: 125659
* Update README entry.Eli Friedman2011-02-161-13/+6
| | | | llvm-svn: 125658
* Refactor zero folding slightly. Clean up todo.Eric Christopher2011-02-161-22/+20
| | | | llvm-svn: 125651
* Gas is very inconsistent about when a relaxation/relocation is needed. DoRafael Espindola2011-02-164-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 theEric Christopher2011-02-161-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 Espindola2011-02-1610-54/+60
| | | | llvm-svn: 125629
* Remove a duplicated check.Evan Cheng2011-02-161-1/+1
| | | | llvm-svn: 125625
* Some single precision VFP instructions may be executed on NEON pipeline, but ↵Evan Cheng2011-02-162-28/+160
| | | | | | not double precision ones. llvm-svn: 125624
* Add support for parsing [expr].Roman Divacky2011-02-151-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 Olesen2011-02-151-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 Patel2011-02-151-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 Kyrtzidis2011-02-151-0/+6
| | | | llvm-svn: 125574
* Move DbgInfoPrinter specific utlities inside DbgInfoPrinter.cppDevang Patel2011-02-152-111/+112
| | | | llvm-svn: 125571
* Print function info. Patch by Minjang Kim.Devang Patel2011-02-152-2/+34
| | | | llvm-svn: 125567
* Spelling fix: consequtive -> consecutive.Duncan Sands2011-02-155-5/+5
| | | | llvm-svn: 125563
* Fix 9216 - Endless loop in InstCombine pass.Nadav Rotem2011-02-151-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 Cheng2011-02-151-2/+5
| | | | llvm-svn: 125552
* Do not forget DebugLoc!Devang Patel2011-02-151-0/+1
| | | | llvm-svn: 125547
* tidy up a bit.Chris Lattner2011-02-151-7/+9
| | | | llvm-svn: 125546
* convert ConstantVector::get to use ArrayRef.Chris Lattner2011-02-1511-173/+94
| | | | llvm-svn: 125537
* Remove unused bitvectors that record ARM callee-saved registers.Bob Wilson2011-02-142-23/+0
| | | | llvm-svn: 125534
OpenPOWER on IntegriCloud