aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fish kill flag annotations in PUSH instructions.Dan Gohman2008-11-262-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60095 91177308-0d34-0410-b5e6-96231b3b80d8
* LiveRanges are represented as half-open ranges. Fix the findLiveInMBBs codeDan Gohman2008-11-262-2/+2
| | | | | | | | and the LiveInterval.h top-level comment and accordingly. This fixes blocks having spurious live-in registers in boundary cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60092 91177308-0d34-0410-b5e6-96231b3b80d8
* teach the new heuristic how to handle inline asm.Chris Lattner2008-11-261-7/+52
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60088 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable -loop-index-split for now.Devang Patel2008-11-261-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60087 91177308-0d34-0410-b5e6-96231b3b80d8
* Add 'tell' method to raw_fd_ostream that clients can use to query the ↵Ted Kremenek2008-11-262-1/+12
| | | | | | current location in the file the stream is writing to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60085 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve ValueAlreadyLiveAtInst with a cheap and dirty, but effectiveChris Lattner2008-11-261-12/+32
| | | | | | | | | | | | | | | | | heuristic: the value is already live at the new memory operation if it is used by some other instruction in the memop's block. This is cheap and simple to compute (moreso than full liveness). This improves the new heuristic even more. For example, it cuts two out of three new instructions out of 255.vortex:DbmFileInGrpHdr, which is one of the functions that the heuristic regressed. This overall eliminates another 40 instructions from 403.gcc and visibly reduces register pressure in 255.vortex (though this only actually ends up saving the 2 instructions from the whole program). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60084 91177308-0d34-0410-b5e6-96231b3b80d8
* __fastcall and __stdcall are mingw extensions to gcc for windows. Use theNick Lewycky2008-11-261-2/+2
| | | | | | | __attribute__ notation which is supported on more platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60083 91177308-0d34-0410-b5e6-96231b3b80d8
* Start rewroking a subpiece of the profitability heuristic to beChris Lattner2008-11-261-11/+56
| | | | | | | | | | | phrased in terms of liveness instead of as a horrible hack. :) In pratice, this doesn't change the generated code for either 255.vortex or 403.gcc, but it could cause minor code changes in theory. This is framework for coming changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60082 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust indent.Zhongxing Xu2008-11-261-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60081 91177308-0d34-0410-b5e6-96231b3b80d8
* add a long-overdue AllocaInst::isStaticAlloca method.Chris Lattner2008-11-262-0/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60080 91177308-0d34-0410-b5e6-96231b3b80d8
* Add test for rdar://6394879.Bill Wendling2008-11-261-0/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60079 91177308-0d34-0410-b5e6-96231b3b80d8
* add a comment, make save/restore logic more obvious.Chris Lattner2008-11-261-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60076 91177308-0d34-0410-b5e6-96231b3b80d8
* This adds in some code (currently disabled unless you pass Chris Lattner2008-11-262-10/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | -enable-smarter-addr-folding to llc) that gives CGP a better cost model for when to sink computations into addressing modes. The basic observation is that sinking increases register pressure when part of the addr computation has to be available for other reasons, such as having a use that is a non-memory operation. In cases where it works, it can substantially reduce register pressure. This code is currently an overall win on 403.gcc and 255.vortex (the two things I've been looking at), but there are several things I want to do before enabling it by default: 1. This isn't doing any caching of results, so it is much slower than it could be. It currently slows down release-asserts llc by 1.7% on 176.gcc: 27.12s -> 27.60s. 2. This doesn't think about inline asm memory operands yet. 3. The cost model botches the case when the needed value is live across the computation for other reasons. I'll continue poking at this, and eventually turn it on as llcbeta. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60074 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble ↵Evan Cheng2008-11-262-7/+3
| | | | | | first before trying to convert it to an integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60072 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach CodeGenPrepare to look through Bitcast instructions when attempting toChris Lattner2008-11-263-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | optimize addressing modes. This allows us to optimize things like isel-sink2.ll into: movl 4(%esp), %eax cmpb $0, 4(%eax) jne LBB1_2 ## F LBB1_1: ## TB movl $4, %eax ret LBB1_2: ## F movzbl 7(%eax), %eax ret instead of: _test: movl 4(%esp), %eax cmpb $0, 4(%eax) leal 4(%eax), %eax jne LBB1_2 ## F LBB1_1: ## TB movl $4, %eax ret LBB1_2: ## F movzbl 3(%eax), %eax ret This shrinks (e.g.) 403.gcc from 1133510 to 1128345 lines of .s. Note that the 2008-10-16-SpillerBug.ll testcase is dubious at best, I doubt it is really testing what it thinks it is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60068 91177308-0d34-0410-b5e6-96231b3b80d8
* fix an over-reduced test.Chris Lattner2008-11-261-7/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60067 91177308-0d34-0410-b5e6-96231b3b80d8
* this doesn't need EHChris Lattner2008-11-261-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60066 91177308-0d34-0410-b5e6-96231b3b80d8
* ignore tests outputNuno Lopes2008-11-260-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60065 91177308-0d34-0410-b5e6-96231b3b80d8
* change AnnotationManager to use 'const char*' instead of std::string. this ↵Nuno Lopes2008-11-262-8/+7
| | | | | | fixes the leakage of those strings and avoids the creation of such strings in static cosntructors (should result in a little improvement of startup time) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60064 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Removed tools/llvmc2 directory hierarchy.Oscar Fuentes2008-11-250-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60054 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: llvmc2 is now known as llvmc.Oscar Fuentes2008-11-252-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60052 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a man page for llvmc. Really basic for now, will be updated later.Mikhail Glushenkov2008-11-252-9/+82
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60049 91177308-0d34-0410-b5e6-96231b3b80d8
* Since the old llvmc was removed, rename llvmc2 to llvmc.Mikhail Glushenkov2008-11-2539-52/+55
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60048 91177308-0d34-0410-b5e6-96231b3b80d8
* Make -fsyntax-only, -include and -emit-llvm work for C++ and Objective-C/C++.Mikhail Glushenkov2008-11-251-1/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60047 91177308-0d34-0410-b5e6-96231b3b80d8
* docs: Add author info + fix incorrect code example.Mikhail Glushenkov2008-11-252-5/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60046 91177308-0d34-0410-b5e6-96231b3b80d8
* Small documentation update.Mikhail Glushenkov2008-11-252-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60045 91177308-0d34-0410-b5e6-96231b3b80d8
* Document the plugin priority feature.Mikhail Glushenkov2008-11-251-12/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60044 91177308-0d34-0410-b5e6-96231b3b80d8
* A simplification for checking whether the signs of the operands and sum ↵Bill Wendling2008-11-251-15/+14
| | | | | | differ. Thanks, Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60043 91177308-0d34-0410-b5e6-96231b3b80d8
* convertToSignExtendedInteger should return opInvalidOp instead of asserting ↵Evan Cheng2008-11-252-1/+18
| | | | | | if sematics of float does not allow arithmetics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60042 91177308-0d34-0410-b5e6-96231b3b80d8
* Suppress warnings.Dan Gohman2008-11-251-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60041 91177308-0d34-0410-b5e6-96231b3b80d8
* This method got renamed, thanks to Mattias Holm for pointing this out.Chris Lattner2008-11-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60039 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU:Scott Michel2008-11-252-28/+75
| | | | | | | | | | (a) Remove conditionally removed code in SelectXAddr. Basically, hope for the best that the A-form and D-form address predicates catch everything before the code decides to emit a X-form address. (b) Expand vector store test cases to include the usual suspects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60034 91177308-0d34-0410-b5e6-96231b3b80d8
* add info about how to run the tests with valgrindNuno Lopes2008-11-251-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60030 91177308-0d34-0410-b5e6-96231b3b80d8
* Now with the correct type for the 0.Bill Wendling2008-11-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60016 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of unused variable.Bill Wendling2008-11-251-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60015 91177308-0d34-0410-b5e6-96231b3b80d8
* Hacker's Delight says, "Signed integer overflow of addition occurs if and onlyBill Wendling2008-11-251-4/+48
| | | | | | | | if the operands have the same sign and the sum has sign opposite to that of the operands." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60014 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach MatchScaledValue to handle Scales by 1 with MatchAddr (whichChris Lattner2008-11-251-5/+15
| | | | | | | | | can recursively match things) and scales by 0 by ignoring them. This triggers once in 403.gcc, saving 1 (!!!!) instruction in the whole huge app. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60013 91177308-0d34-0410-b5e6-96231b3b80d8
* significantly refactor all the addressing mode matching logicChris Lattner2008-11-251-139/+138
| | | | | | | | | into a new AddressingModeMatcher class. This makes it easier to reason about and reduces passing around of stuff, but has no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60012 91177308-0d34-0410-b5e6-96231b3b80d8
* refactor all the constantexpr/instruction handling code out into a Chris Lattner2008-11-251-65/+68
| | | | | | | new FindMaximalLegalAddressingModeForOperation helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60011 91177308-0d34-0410-b5e6-96231b3b80d8
* another minor tweakChris Lattner2008-11-251-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60010 91177308-0d34-0410-b5e6-96231b3b80d8
* minor cleanups no functionality change.Chris Lattner2008-11-251-32/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60009 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Documented two cmake variables.Oscar Fuentes2008-11-251-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60008 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU: Relax constraints on when to generate a X-form address, evidentlyScott Michel2008-11-251-0/+7
| | | | | | | | | they were too tight according to bug 3126. Fix bug 3126. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60006 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU: test should use shlqby, not shlqbyiScott Michel2008-11-251-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60001 91177308-0d34-0410-b5e6-96231b3b80d8
* XFAIL this test. A recent CellSPU check-in broke it.Bill Wendling2008-11-251-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60000 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for anti-dependence breaking. Currently this code does notDan Gohman2008-11-255-263/+751
| | | | | | | | | | introduce any new spilling; it just uses unused registers. Refactor the SUnit topological sort code out of the RRList scheduler and make use of it to help with the post-pass scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59999 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU: Fix mnemonic typo in pattern; "shlqbyi" -> "shlqby".Scott Michel2008-11-252-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59998 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase for constant CFStrings.Bill Wendling2008-11-241-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59992 91177308-0d34-0410-b5e6-96231b3b80d8
* rearrange and tidy some code, no functionality change.Chris Lattner2008-11-241-53/+52
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59990 91177308-0d34-0410-b5e6-96231b3b80d8
* minor cleanups to debug code, no functionality change.Chris Lattner2008-11-241-24/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59989 91177308-0d34-0410-b5e6-96231b3b80d8