| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | One more coalescer fix wrt deadness propagation. | Evan Cheng | 2008-03-26 | 2 | -14/+50 | |
| | | | | | llvm-svn: 48837 | |||||
| * | Avoid commuting a def MI in order to coalesce a copy instruction away if any ↵ | Evan Cheng | 2008-03-26 | 3 | -2/+62 | |
| | | | | | | | use of the same val# is a copy instruction that has already been coalesced. llvm-svn: 48833 | |||||
| * | Use a linked data structure for the uses lists of an SDNode, just like | Roman Levenstein | 2008-03-26 | 11 | -178/+372 | |
| | | | | | | | | | | | | | | LLVM Value/Use does and MachineRegisterInfo/MachineOperand does. This allows constant time for all uses list maintenance operations. The idea was suggested by Chris. Reviewed by Evan and Dan. Patch is tested and approved by Dan. On normal use-cases compilation speed is not affected. On very big basic blocks there are compilation speedups in the range of 15-20% or even better. llvm-svn: 48822 | |||||
| * | Fixed some spelling errors. Thanks, Duncan! | Roman Levenstein | 2008-03-26 | 1 | -52/+54 | |
| | | | | | llvm-svn: 48819 | |||||
| * | Some improvements related to the computation of isReachable. | Roman Levenstein | 2008-03-26 | 1 | -54/+315 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes Bugzilla #1835 (http://llvm.org/bugs/show_bug.cgi?id=1835). This patched is reviewed by Tanya and Dan. Dan tested and approved it. The reason for the bad performance of the old algorithm is that it is very naive and scans every time all nodes of the DAG in the worst case. This patch introduces a new algorithm based on the paper "Online algorithms for maintaining the topological order of a directed acyclic graph" by David J.Pearce and Paul H.J.Kelly. This is the MNR algorithm. It has a linear time worst-case and performs much better in most situations. The paper can be found here: http://fano.ics.uci.edu/cites/Document/Online-algorithms-for-maintaining-the-topological-order-of-a-directed-acyclic-graph.html The main idea of the new algorithm is to compute the topological ordering of the SNodes in the DAG and to maintain it even after DAG modifications. The topological ordering allows for very fast node reachability checks. Tests on very big input files with tens of thousands of instructions in a BB indicate huge speed-ups (up to 10x compilation time improvement) compared to the old version. llvm-svn: 48817 | |||||
| * | Fix some SSE4.1 instruction encoding bugs. | Evan Cheng | 2008-03-26 | 1 | -4/+4 | |
| | | | | | llvm-svn: 48815 | |||||
| * | Dead PHI instructions need to be handled specially. | Owen Anderson | 2008-03-26 | 1 | -0/+22 | |
| | | | | | llvm-svn: 48811 | |||||
| * | Test commit (removed trailing whitespace) | Erick Tryzelaar | 2008-03-26 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48809 | |||||
| * | Use ## for comment delimiter on darwin x86-32, so | Dale Johannesen | 2008-03-25 | 3 | -12/+62 | |
| | | | | | | | | | llvm's output .s files will go through gcc -std=c99 without triggering preprocesser errors. Approach suggested by Daveed Vandevoorde. llvm-svn: 48808 | |||||
| * | Smaller function alignment when optimizing for size. | Evan Cheng | 2008-03-25 | 3 | -6/+8 | |
| | | | | | llvm-svn: 48805 | |||||
| * | Rename option -optimizefor-size to -optimize-size. | Evan Cheng | 2008-03-25 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48804 | |||||
| * | Remove some debugging code. | Owen Anderson | 2008-03-25 | 1 | -3/+0 | |
| | | | | | llvm-svn: 48803 | |||||
| * | StrongPHIElimination doesn't support swapping live intervals like the ↵ | Owen Anderson | 2008-03-25 | 1 | -9/+6 | |
| | | | | | | | coalescer does. llvm-svn: 48802 | |||||
| * | Add explicit keywords. | Dan Gohman | 2008-03-25 | 23 | -36/+39 | |
| | | | | | llvm-svn: 48801 | |||||
| * | A quick nm audit turned up several fixed tables and objects that were | Dan Gohman | 2008-03-25 | 13 | -27/+30 | |
| | | | | | | | | marked read-write. Use const so that they can be allocated in a read-only segment. llvm-svn: 48800 | |||||
| * | Avoid outputing spaces at the ends of lines. | Dan Gohman | 2008-03-25 | 1 | -4/+4 | |
| | | | | | llvm-svn: 48797 | |||||
| * | Do not align loops if optimizing for size. | Devang Patel | 2008-03-25 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48794 | |||||
| * | Add optimize-for-size knob. | Devang Patel | 2008-03-25 | 2 | -0/+10 | |
| | | | | | llvm-svn: 48793 | |||||
| * | Handle a special case xor undef, undef -> 0. Technically this should be ↵ | Evan Cheng | 2008-03-25 | 4 | -2/+26 | |
| | | | | | | | transformed to undef. But this is such a common idiom (misuse) we are going to handle it. llvm-svn: 48792 | |||||
| * | Handle a special case xor undef, undef -> 0. Technically this should be ↵ | Evan Cheng | 2008-03-25 | 2 | -1/+12 | |
| | | | | | | | transformed to undef. But this is such a common idiom (misuse) we are going to handle it. llvm-svn: 48791 | |||||
| * | Fix the Cygwin/Mingw-On-Cygwin build. Patch by Alain Frisch! | Anton Korobeynikov | 2008-03-25 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48786 | |||||
| * | De-constify the input to the "operator >>" method as it is modified. | Bill Wendling | 2008-03-25 | 1 | -1/+1 | |
| | | | | | | | Patch by dekruijf@cs.wisc.edu! llvm-svn: 48782 | |||||
| * | Fix typos. | Dan Gohman | 2008-03-25 | 1 | -3/+3 | |
| | | | | | llvm-svn: 48779 | |||||
| * | Add CMP32mr and friends to the load-unfolding table. Among | Dan Gohman | 2008-03-25 | 2 | -1/+5 | |
| | | | | | | | | | other things, this allows the scheduler to unfold a load operand in the 2008-01-08-SchedulerCrash.ll testcase, so it now successfully clones the comparison to avoid a pushf+popf. llvm-svn: 48777 | |||||
| * | Tests for the instruction iterator bindings. | Gordon Henriksen | 2008-03-25 | 1 | -0/+35 | |
| | | | | | llvm-svn: 48775 | |||||
| * | Extend the builder interface to use the new instruction positioning code. | Gordon Henriksen | 2008-03-25 | 3 | -36/+130 | |
| | | | | | | | | | | | This adds support for instruction iterators, as well as rewriting the builder code to use these new functions. This lets us eliminate the C bindings for moving around the builder. Patch by Erick Tryzelaar! llvm-svn: 48774 | |||||
| * | Fix PR2062: Don't build Intrinsics.gen in the source directory. Do it in the | Bill Wendling | 2008-03-25 | 1 | -2/+2 | |
| | | | | | | | object directory. llvm-svn: 48766 | |||||
| * | Disable building llvm-upgrade. | Tanya Lattner | 2008-03-25 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48764 | |||||
| * | Make a note of the fact that EmitOwnedPtr() has nothing to do with the | Sam Bishop | 2008-03-25 | 1 | -0/+2 | |
| | | | | | | | OwningPtr<> class. llvm-svn: 48763 | |||||
| * | Byebye llvm-upgrade! | Tanya Lattner | 2008-03-25 | 110 | -2138/+1823 | |
| | | | | | llvm-svn: 48762 | |||||
| * | lastRegisterUse() should ignore identity copies. Those will be erased. | Evan Cheng | 2008-03-25 | 2 | -7/+44 | |
| | | | | | llvm-svn: 48759 | |||||
| * | check struct layout | Devang Patel | 2008-03-25 | 1 | -0/+1 | |
| | | | | | llvm-svn: 48758 | |||||
| * | Remove an unneeded test. | Evan Cheng | 2008-03-24 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48755 | |||||
| * | Add \t after .set. Fix by Jay Freeman. | Evan Cheng | 2008-03-24 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48753 | |||||
| * | If the coalescer commuted a def MI to allow coalescing, it can changed a ↵ | Evan Cheng | 2008-03-24 | 1 | -1/+2 | |
| | | | | | | | previously coalesced copy into an non-identity copy. llvm-svn: 48752 | |||||
| * | Add an assertion to catch register of illegal class. | Evan Cheng | 2008-03-24 | 1 | -0/+1 | |
| | | | | | llvm-svn: 48751 | |||||
| * | Use the bit size of the operand instead of the hard-coded 32 to generate the | Bill Wendling | 2008-03-24 | 2 | -2/+30 | |
| | | | | | | | mask. llvm-svn: 48750 | |||||
| * | With debug info, there are nameless constant global values. do not crash ↵ | Andrew Lenharth | 2008-03-24 | 1 | -2/+3 | |
| | | | | | | | when we hit one llvm-svn: 48749 | |||||
| * | Add file to project. | Steve Naroff | 2008-03-24 | 1 | -0/+4 | |
| | | | | | llvm-svn: 48747 | |||||
| * | - SSE4.1 extractfps extracts a f32 into a gr32 register. Very useful! Not. ↵ | Evan Cheng | 2008-03-24 | 3 | -8/+57 | |
| | | | | | | | Fix the instruction specification and teaches lowering code to use it only when the only use is a store instruction. llvm-svn: 48746 | |||||
| * | Oops. I wanted the compile flags for C++, not the C preprocessor flags. | Owen Anderson | 2008-03-24 | 2 | -2/+2 | |
| | | | | | llvm-svn: 48744 | |||||
| * | Revert r48676. I had plans for using it, but now it's just dead code. | Owen Anderson | 2008-03-24 | 3 | -83/+0 | |
| | | | | | llvm-svn: 48743 | |||||
| * | void type is also a valid function return type. | Devang Patel | 2008-03-24 | 1 | -2/+2 | |
| | | | | | llvm-svn: 48740 | |||||
| * | Remove #include<iostream>, which I was using for debugging. | Owen Anderson | 2008-03-24 | 1 | -2/+0 | |
| | | | | | llvm-svn: 48739 | |||||
| * | Add incoming value from header only if phi node has any use inside the loop. | Devang Patel | 2008-03-24 | 2 | -2/+72 | |
| | | | | | llvm-svn: 48738 | |||||
| * | Added Passes.html to the documentation list. | Tanya Lattner | 2008-03-24 | 1 | -0/+3 | |
| | | | | | llvm-svn: 48736 | |||||
| * | Fix typo. Clarify underlying message. | Devang Patel | 2008-03-24 | 1 | -4/+4 | |
| | | | | | llvm-svn: 48734 | |||||
| * | Fix test name. | Devang Patel | 2008-03-24 | 1 | -0/+0 | |
| | | | | | llvm-svn: 48733 | |||||
| * | apparently tclsh doesn't lex like bash. Weird. | Chris Lattner | 2008-03-24 | 1 | -1/+1 | |
| | | | | | llvm-svn: 48732 | |||||
| * | pass the option so this test tests the right thing. | Chris Lattner | 2008-03-24 | 1 | -2/+2 | |
| | | | | | llvm-svn: 48731 | |||||

