summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* #if 0 out X86 disassembler for now, it is breaking the build in multiple places.Daniel Dunbar2009-12-192-0/+13
| | | | llvm-svn: 91778
* Emit direction operand in binary insns that stores in memory.Sanjiv Gupta2009-12-191-1/+1
| | | | llvm-svn: 91777
* rename dprintf to dbgpritnf, in order to fix build with glibc (which already ↵Nuno Lopes2009-12-191-29/+29
| | | | | | defines dprintf in stdio.h llvm-svn: 91775
* 1. In indirect load/store insns , the name of fsr should be emitted as INDF.Sanjiv Gupta2009-12-191-5/+13
| | | | | | 2. include standard asmbly headers in generated asmbly. llvm-svn: 91768
* Fix a bunch of little errors that Clang complains about when its being pedanticDouglas Gregor2009-12-199-23/+23
| | | | llvm-svn: 91764
* fix PR5827 by disabling the phi slicing transformation in a caseChris Lattner2009-12-191-1/+20
| | | | | | | | where instcombine would have to split a critical edge due to a phi node of an invoke. Since instcombine can't change the CFG, it has to bail out from doing the transformation. llvm-svn: 91763
* Update my SROA changes in response to review.Bob Wilson2009-12-191-33/+38
| | | | | | | | | | * change FindElementAndOffset to return a uint64_t instead of unsigned, and to identify the type to be used for that result in a GEP instruction. * move "isa<ConstantInt>" to be first in conditional. * replace some dyn_casts with casts. * add a comment about handling mem intrinsics. llvm-svn: 91762
* Use memset instead of bzero, its more portable.Daniel Dunbar2009-12-191-2/+2
| | | | llvm-svn: 91754
* Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit Sean Callanan2009-12-199-5/+2823
| | | | | | | | | | | | | | | | | | | | incarnations), integrated into the MC framework. The disassembler is table-driven, using a custom TableGen backend to generate hierarchical tables optimized for fast decode. The disassembler consumes MemoryObjects and produces arrays of MCInsts, adhering to the abstract base class MCDisassembler (llvm/MC/MCDisassembler.h). The disassembler is documented in detail in - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime) - utils/TableGen/DisassemblerEmitter.cpp (table emitter) You can test the disassembler by running llvm-mc -disassemble for i386 or x86_64 targets. Please let me know if you encounter any problems with it. llvm-svn: 91749
* Bump alignment requirements for windows targets to achieve compartibility ↵Anton Korobeynikov2009-12-191-0/+3
| | | | | | | | with vcpp. Based on patch by Michael Beck! llvm-svn: 91745
* Use 4-arg getVTList) variant instead of generic one, when possibleAnton Korobeynikov2009-12-191-0/+1
| | | | llvm-svn: 91744
* Fix a spello in a comment that Nick spotted.Dan Gohman2009-12-191-2/+2
| | | | llvm-svn: 91742
* Make some methods const. The only interesting change here is thatChris Lattner2009-12-192-15/+17
| | | | | | | | it changes raw_fd_ostream::preferred_buffer_size to return zero on a scary stat failure instead of setting the stream to an error state. This method really should not mutate the stream. llvm-svn: 91740
* Qualify a bunch of explicit template instantiations to satisfy clang++.John McCall2009-12-194-8/+8
| | | | llvm-svn: 91736
* Put TypesEqual and TypeHasCycleThroughItself in namespace llvm so ADL fromJohn McCall2009-12-191-3/+8
| | | | | | the templates in TypesContext.h can find them. Caught by clang++. llvm-svn: 91735
* Eliminate unnecessary LLVMContexts.Dan Gohman2009-12-181-2/+1
| | | | llvm-svn: 91729
* Changes from review:Bill Wendling2009-12-185-143/+73
| | | | | | | | | | | - Move DisableScheduling flag into TargetOption.h - Move SDNodeOrdering into its own header file. Give it a minimal interface that doesn't conflate construction with storage. - Move assigning the ordering into the SelectionDAGBuilder. This isn't used yet, so there should be no functional changes. llvm-svn: 91727
* Make this comment more precise.Dan Gohman2009-12-181-1/+1
| | | | llvm-svn: 91722
* Increase opportunities to optimize (brcond (srl (and c1), c2)).Evan Cheng2009-12-181-1/+28
| | | | llvm-svn: 91717
OpenPOWER on IntegriCloud