summaryrefslogtreecommitdiffstats
path: root/llvm
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
* Make -disable-simplify-libcalls work with -std-compile-optsPeter Collingbourne2011-02-181-1/+1
| | | | llvm-svn: 125824
* Recognize monitor/mwait with explicit register argumentsJoerg Sonnenberger2011-02-183-0/+26
| | | | 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-173-0/+17
| | | | | | 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-176-17/+96
| | | | | | is only used through GEPs. llvm-svn: 125794
* Check that MnemonicAlias doesn't map back to the same string.Joerg Sonnenberger2011-02-171-0/+2
| | | | llvm-svn: 125792
* have instcombine preserve nsw/nuw/exact when sinkingChris Lattner2011-02-172-11/+71
| | | | | | 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
* New library: LLVMX86Utils.Oscar Fuentes2011-02-172-2/+6
| | | | llvm-svn: 125786
* fix instcombine merging GEPs through a PHI to only make theChris Lattner2011-02-172-5/+10
| | | | | | 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-175-4/+62
| | | | | | | 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-179-15/+5
| | | | | | 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-172-93/+125
| | | | | | | | | 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
* lit/TestingConfig.py: Add the environment variable PRINTF_EXPONENT_DIGITS as ↵NAKAMURA Takumi2011-02-171-0/+1
| | | | | | | | | | workaround [PR6745] for mingw's tests. Danil Malyshev suggested this. FIXME: It does not improve MSVC's issue. [Danil Malyshev] Defining PRINTF_EXPONENT_DIGITS env is the suggested way to make MinGW ANSI/POSIX compatible. This is not only about the case we are discussing, but in general, I'd like to have explicitly defined compatibility mode for all the tests running on MinGW. llvm-svn: 125725
* Add serialization for Expr* arguments for attributes to clang tablegen files.Alexis Hunt2011-02-171-0/+2
| | | | | | Patch thanks to Zach Anderson. llvm-svn: 125721
* preserve NUW/NSW when transforming add x,xChris Lattner2011-02-172-2/+15
| | | | llvm-svn: 125711
* filecheckizeChris Lattner2011-02-171-3/+14
| | | | llvm-svn: 125710
* Fix thinko, basic blocks are SESE. The exits may have many edges though.Nick Lewycky2011-02-171-1/+1
| | | | llvm-svn: 125709
* 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-172-3/+11
| | | | | | 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-1613-63/+62
| | | | | | other getNode() methods. Radar 9002173. llvm-svn: 125665
* Add a debug obj-path option to make it easy to keep the .o produce by LTO.Rafael Espindola2011-02-161-14/+24
| | | | llvm-svn: 125663
* 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-166-65/+20
| | | | | | 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-162-2/+53
| | | | | | | | | 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 testcase for PR9190.Eric Christopher2011-02-161-0/+35
| | | | llvm-svn: 125630
* Add support for pushsection and popsection. Patch by Joerg Sonnenberger.Rafael Espindola2011-02-1613-66/+226
| | | | 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
* Teach PatternMatch that splat vectors could be floating point as well asNick Lewycky2011-02-152-3/+32
| | | | | | integer. Fixes PR9228! llvm-svn: 125613
* Add support for parsing [expr].Roman Divacky2011-02-153-0/+28
| | | | | | 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-152-2/+6
| | | | | | | | 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
OpenPOWER on IntegriCloud