summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Remove minimal CFG sanity checks from verifier.Jakob Stoklund Olesen2009-12-221-18/+0
| | | | | | | | | These checks would often trigger on unreachable statements inserted by bugpoint, leading it astray. It would be nice if we could distinguish unreachable blocks from errors. llvm-svn: 91923
* Allow explicit %reg0 operands beyond what the .td file describes.Jakob Stoklund Olesen2009-12-221-1/+2
| | | | | | ARM uses these to indicate predicates. llvm-svn: 91922
* Allow 0 as an order number. Don't assign an order to formal arguments.Bill Wendling2009-12-222-21/+11
| | | | llvm-svn: 91920
* Fixes to the X86 disassembler:Sean Callanan2009-12-222-5/+17
| | | | | | | | Made LEA memory operands emit only 4 MCInst operands. Made the scale operand equal 1 for instructions that have no SIB byte. llvm-svn: 91919
* Fix the Convert to scalar to not insert dead loads in the store case. TheChris Lattner2009-12-221-2/+12
| | | | | | | | | | | | | | load is needed when we have a small store into a large alloca (at which point we get a load/insert/store sequence), but when you do a full-sized store, this load ends up being dead. This dead load is bad in really large nasty testcases where the load ends up causing mem2reg to insert large chains of dependent phi nodes which only ADCE can delete. Instead of doing this, just don't insert the dead load. This fixes rdar://6864035 llvm-svn: 91917
* fix some fixme's by using twinesChris Lattner2009-12-221-6/+2
| | | | llvm-svn: 91916
* Use proper move instructions. Make the verifier happy.Jakob Stoklund Olesen2009-12-221-1/+1
| | | | llvm-svn: 91914
* Report an error for bad inline assembly, where the value passed for anBob Wilson2009-12-221-2/+6
| | | | | | "indirect" operand is not a pointer. llvm-svn: 91913
* Remove target attribute break-sse-dep. Instead, do not fold load into sse ↵Evan Cheng2009-12-226-42/+18
| | | | | | partial update instructions unless optimizing for size. llvm-svn: 91910
* Include based on the current path, since we already -I the X86 target's ↵Douglas Gregor2009-12-221-1/+1
| | | | | | path. Fixes CMake build llvm-svn: 91908
* While converting one of the operands to a memory operand, we need to check ↵Sanjiv Gupta2009-12-223-10/+45
| | | | | | if it is Legal and does not result into a cyclic dep. llvm-svn: 91904
* Generalize SROA to allow the first index of a GEP to be non-zero. Add aBob Wilson2009-12-221-23/+4
| | | | | | | | missing check that an array reference doesn't go past the end of the array, and remove some redundant checks for in-bound array and vector references that are no longer needed. llvm-svn: 91897
* Implement PR5795 by merging duplicated return blocks. This could go furtherChris Lattner2009-12-221-0/+72
| | | | | | | by merging all returns in a function into a single one, but simplifycfg currently likes to duplicate the return (an unfortunate choice!) llvm-svn: 91890
* The phi translated pointer can be computed when returning a partially cached ↵Chris Lattner2009-12-222-20/+22
| | | | | | | | | | result instead of stored. This reduces memdep memory usage, and also eliminates a bunch of weakvh's. This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x) on a different machine than earlier. llvm-svn: 91885
* Add more plumbing. This time in the LowerArguments and "get" functions whichBill Wendling2009-12-2211-57/+158
| | | | | | | | return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. llvm-svn: 91880
* Changed REG_* to MODRM_REG_* to avoid conflictsSean Callanan2009-12-222-17/+21
| | | | | | with symbols in AuroraUX's global namespace. llvm-svn: 91879
* Fix some may-be-uninitialized var warnings.Daniel Dunbar2009-12-221-3/+3
| | | | llvm-svn: 91878
* Add SDNode ordering to inlined asm and VA functions.Bill Wendling2009-12-221-28/+78
| | | | llvm-svn: 91876
* Whitespace fixes.Eric Christopher2009-12-221-4/+4
| | | | llvm-svn: 91875
* Adding more assignment of ordering to SDNodes. This time in the "call" andBill Wendling2009-12-221-32/+66
| | | | | | generic copy functions. llvm-svn: 91872
* Fixed library dependencies between the X86 disassembler andSean Callanan2009-12-223-18/+5
| | | | | | X86 codegen that were causing circular symbol dependencies. llvm-svn: 91871
* avoid calling extractMallocCall when it's obvious we don't haveChris Lattner2009-12-221-1/+2
| | | | | | a call. This speeds up memdep ~1.5% llvm-svn: 91869
* Add ordering of SDNodes to LowerCallTo.Bill Wendling2009-12-221-19/+44
| | | | llvm-svn: 91866
* print pcrel immediates as signed values instead of unsigned so that weChris Lattner2009-12-221-3/+5
| | | | | | | | | | | | | | get things like this out of the disassembler: 0x100000ecb: callq -96 instead of: 0x100000ecb: callq 4294967200 rdar://7491123 llvm-svn: 91864
* Now add ordering to SDNodes created by the massive intrinsic lowering function.Bill Wendling2009-12-221-100/+183
| | | | llvm-svn: 91863
* To make things interesting, I added MORE code to set the ordering ofBill Wendling2009-12-221-32/+387
| | | | | | SDNodes. This time in the load/store and limited-precision code. llvm-svn: 91860
* Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint.Lang Hames2009-12-226-33/+28
| | | | | | This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals. llvm-svn: 91859
* Add more plumbing to assign ordering to SDNodes. Have the "getValue" methodBill Wendling2009-12-211-59/+133
| | | | | | | assign the ordering when called. Combine some of the ordering assignments to keep things simple. llvm-svn: 91857
* Add suggested parentheses.Daniel Dunbar2009-12-211-4/+4
| | | | llvm-svn: 91853
* Add a fastpath to Load GVN to special case when we have exactly one dominatingChris Lattner2009-12-211-2/+10
| | | | | | | | | | | load to avoid even messing around with SSAUpdate at all. In this case (which is very common, we can just use the input value directly). This speeds up GVN time on gcc.c-torture/20001226-1.c from 36.4s to 16.3s, which still isn't great, but substantially better and this is a simple speedup that applies to lots of different cases. llvm-svn: 91851
* More ordering plumbing. This time for GEP. I need to remember to assignBill Wendling2009-12-211-4/+32
| | | | | | orderings to values returned by getValue(). llvm-svn: 91850
* refactor some code out to a new helper method.Chris Lattner2009-12-211-22/+27
| | | | llvm-svn: 91849
* improve indentation avoid a pointless conversion from weakvh to trackingvh,Chris Lattner2009-12-211-3/+3
| | | | | | no functionality change. llvm-svn: 91848
* Another incremental check-in for assigning ordering to SDNodes. This time forBill Wendling2009-12-211-25/+75
| | | | | | shuffle and insert vector. llvm-svn: 91847
* Assign ordering to more instructions. Incremental check-in.Bill Wendling2009-12-211-57/+156
| | | | llvm-svn: 91846
* - Add a bit more plumbing assigning an order to SDNodes.Bill Wendling2009-12-212-9/+32
| | | | | | - Modify the "dump" method to emit the order of an SDNode. llvm-svn: 91845
* Mark FPW as allocable when frame address is taken.Anton Korobeynikov2009-12-211-5/+43
| | | | llvm-svn: 91841
* First wave of plumbing for assigning an ordering to SDNodes. This takes care ofBill Wendling2009-12-211-28/+43
| | | | | | a lot of the branching instructions. llvm-svn: 91838
* Delete the instruction just before the function terminates for consistency sake.Evan Cheng2009-12-211-2/+3
| | | | llvm-svn: 91836
* Place SDNodeOrdering.h in the directory it's used.Bill Wendling2009-12-212-1/+59
| | | | llvm-svn: 91834
* Remove special-case SROA optimization of variable indexes to one-element andBob Wilson2009-12-211-141/+30
| | | | | | | | two-element arrays. After restructuring the SROA code, it was not safe to do this without adding more checking. It is not clear that this special-case has really been useful, and removing this simplifies the code quite a bit. llvm-svn: 91828
* Fix setting and default setting of code model for jit. Do thisEric Christopher2009-12-214-16/+51
| | | | | | | | | | by allowing backends to override routines that will default the JIT and Static code generation to an appropriate code model for the architecture. Should fix PR 5773. llvm-svn: 91824
* A couple minor README updates.Eli Friedman2009-12-211-14/+5
| | | | llvm-svn: 91823
* revert r89298, which was committed without a testcase. I thinkChris Lattner2009-12-211-6/+0
| | | | | | the underlying PHI node insertion issue in SSAUpdate is fixed. llvm-svn: 91821
* fix PR5837 by having SSAUpdate reuse phi nodes for theChris Lattner2009-12-211-1/+23
| | | | | | | | | | 'GetValueInMiddleOfBlock' case, instead of inserting duplicates. A similar fix is almost certainly needed by the machine-level SSAUpdate implementation. llvm-svn: 91820
* give instcombine some helper functions for matching MIN and MAX, andChris Lattner2009-12-211-10/+118
| | | | | | | | | implement some optimizations for MIN(MIN()) and MAX(MAX()) and MIN(MAX()) etc. This substantially improves the code in PR5822 but doesn't kick in much elsewhere. 2 max's were optimized in pairlocalalign and one in smg2000. llvm-svn: 91814
* enhance x-(-A) -> x+A to preserve NUW/NSW.Chris Lattner2009-12-211-11/+47
| | | | | | | | | | | Use the presence of NSW/NUW to fold "icmp (x+cst), x" to a constant in cases where it would otherwise be undefined behavior. Surprisingly (to me at least), this triggers hundreds of the times in a few benchmarks: lencode, ldecode, and 466.h264ref seem to *really* like this. llvm-svn: 91812
* Optimize all cases of "icmp (X+Cst), X" to something simpler. This triggersChris Lattner2009-12-211-3/+74
| | | | | | | a bunch in lencode, ldecod, spass, 176.gcc, 252.eon, among others. It is also the first part of PR5822 llvm-svn: 91811
* fix an overly conservative caching issue that caused memdep toChris Lattner2009-12-191-32/+8
| | | | | | | | cache a pointer as being unavailable due to phi trans in the wrong place. This would cause later queries to fail even when they didn't involve phi trans. llvm-svn: 91787
* Remove unused variable (noticed by clang++).Daniel Dunbar2009-12-191-1/+0
| | | | llvm-svn: 91780
OpenPOWER on IntegriCloud