summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Eliminate remaining non-DebugLoc version of getTargetNode.Dale Johannesen2009-02-061-39/+0
| | | | llvm-svn: 63951
* Rename SelectionDAGISel::Schedule toDan Gohman2009-02-061-11/+8
| | | | | | | | | SelectionDAGISel::CreateScheduler, and make it just create the scheduler. Leave running the scheduler to the higher-level code. This makes the higher-level code a little more explicit and easier to follow, and will help enable some future refactoring. llvm-svn: 63944
* Delete an unused member function.Dan Gohman2009-02-061-2/+0
| | | | llvm-svn: 63941
* Move getPointerRegClass from TargetInstrInfo to TargetRegisterInfo.Evan Cheng2009-02-062-13/+10
| | | | llvm-svn: 63938
* Move ScheduleDAGSDNodes.h to be a private header. Front-endsDan Gohman2009-02-068-8/+169
| | | | | | | that previously included this header should include SchedulerRegistry.h instead. llvm-svn: 63937
* Add TargetInstrInfo::isSafeToMoveRegisterClassDefs. It returns true if it's ↵Evan Cheng2009-02-061-1/+4
| | | | | | safe to move an instruction which defines a value in the register class. Replace pre-splitting specific IgnoreRegisterClassBarriers with this new hook. llvm-svn: 63936
* Move ScheduleDAGInstrs.h to be a private header. Front-endsDan Gohman2009-02-063-2/+84
| | | | | | | | that used this header to select a scheduling policy should use SchedulerRegistry.h instead (llvm-gcc and clang were updated a while ago). llvm-svn: 63934
* get rid of some non-DebugLoc getTargetNode variants.Dale Johannesen2009-02-061-41/+0
| | | | llvm-svn: 63909
* Get rid of one more non-DebugLoc getNode andDale Johannesen2009-02-061-11/+5
| | | | | | | its corresponding getTargetNode. Lots of caller changes. llvm-svn: 63904
* isAsCheapAsMove instructions can have register src operands. Check if they ↵Evan Cheng2009-02-051-0/+3
| | | | | | | | are really re-materializable. This fixes sse.expandfft and sse.stepfft. llvm-svn: 63890
* Remove a non-DebugLoc version of getNode.Dale Johannesen2009-02-051-6/+0
| | | | llvm-svn: 63889
* Remove 3 non-DebugLoc variants of getNode.Dale Johannesen2009-02-051-14/+0
| | | | llvm-svn: 63886
* Machine LICM increases register pressure and it almost always increase code ↵Evan Cheng2009-02-051-0/+4
| | | | | | size. For now, disable it for optimizing for size. llvm-svn: 63856
* Turn on machine LICM in non-fast mode.Evan Cheng2009-02-051-5/+1
| | | | llvm-svn: 63855
* Teach machine licm to CSE hoisted instructions.Evan Cheng2009-02-051-23/+88
| | | | llvm-svn: 63854
* ReMaterializeTrivialDef need to trim the live interval to the last kill if ↵Evan Cheng2009-02-052-79/+108
| | | | | | the copy kills the source register. This fixes uint64tof64.ll after ARM::MOVi is marked as isAsCheapAsAMove. llvm-svn: 63853
* if we have a large GEP offset on a 32-bit or other target, makeChris Lattner2009-02-051-0/+6
| | | | | | | sure to print the value properly sext'd to the right pointer size. This fixes PR3481. llvm-svn: 63843
* Pre-alloc splitting needs to be more careful to avoid inserting spills/restoresOwen Anderson2009-02-051-22/+72
| | | | | | | between call frame setup/restore points. Unfortunately, this regresses code size a bit, but at least it's correct now! llvm-svn: 63837
* Fix a bug where we were not emitting a cvt rnd sat node for convertingMon P Wang2009-02-051-2/+4
| | | | | | between a unsigned integer and signed integer. llvm-svn: 63831
* Reapply 63765. Patches for clang and llvm-gcc to follow.Dale Johannesen2009-02-051-0/+9
| | | | llvm-svn: 63812
* Get rid of 3 non-DebugLoc getNode variants.Dale Johannesen2009-02-051-17/+0
| | | | llvm-svn: 63808
* Remove non-DebugLoc versions of getMergeValues, ZeroExtendInReg.Dale Johannesen2009-02-054-31/+17
| | | | llvm-svn: 63800
* Remove non-DebugLoc forms of CopyToReg and CopyFromReg.Dale Johannesen2009-02-041-1/+1
| | | | | | Adjust callers. llvm-svn: 63789
* Reverting 63765. This broke the build of both clangDale Johannesen2009-02-041-9/+0
| | | | | | and llvm-gcc. llvm-svn: 63786
* 80 column rule.Stuart Hastings2009-02-041-1/+2
| | | | llvm-svn: 63768
* Remove non-DebugLoc versions of getLoad and getStore.Dale Johannesen2009-02-042-87/+3
| | | | | | Adjust the many callers of those versions. llvm-svn: 63767
* New feature: add support for target intrinsics being defined in theNate Begeman2009-02-041-0/+9
| | | | | | | | | target directories themselves. This also means that VMCore no longer needs to know about every target's list of intrinsics. Future work will include converting the PowerPC target to this interface as an example implementation. llvm-svn: 63765
* Avoids generating a legalization assert for the case where a vector type is ↵Mon P Wang2009-02-041-2/+10
| | | | | | | | | | legal but when legalizing the operation, we split the vector type and generate a library call whose type needs to be promoted. For example, X86 with SSE on but MMX off, a divide v2i64 will be scalarized to 2 calls to a library using i64. llvm-svn: 63760
* Skip over zero registers.Evan Cheng2009-02-041-0/+2
| | | | llvm-svn: 63748
* Since I'm obliged to work with a development OS that currently doesn'tStuart Hastings2009-02-041-9/+56
| | | | | | | | | | support GraphViz, I've been using the foo->dump() facility. This patch is a minor rewrite to the SelectionDAG dump() stuff to make it a little more helpful. The existing foo->dump() functionality does not change; this patch adds foo->dumpr(). All of this is only useful when running LLVM under a debugger. llvm-svn: 63736
* Don't call isInvariantLoad twice.Evan Cheng2009-02-041-9/+2
| | | | llvm-svn: 63729
* Don't bother hoisting out a "cheap" instruction if all of its uses are PHIs. ↵Evan Cheng2009-02-041-10/+55
| | | | | | LICM "cheap" instructions are not particularly beneficial to start with. This will just end up making the copies harder to coalesce. llvm-svn: 63728
* For now, only hoist re-materilizable instructions. LICM will increase ↵Evan Cheng2009-02-041-2/+11
| | | | | | register pressure. We want to avoid spilling more instructions if it's possible. llvm-svn: 63725
* Remove non-DebugLoc forms of the exotic formsDale Johannesen2009-02-042-83/+2
| | | | | | of Lod and Sto; patch uses. llvm-svn: 63716
* Remove some more non-DebugLoc versions of constructionDale Johannesen2009-02-042-58/+22
| | | | | | functions, with callers adjusted to fit. llvm-svn: 63705
* Check in file I forgot.Dale Johannesen2009-02-041-3/+3
| | | | llvm-svn: 63704
* Remove a few non-DebugLoc versions of node creationDale Johannesen2009-02-042-143/+10
| | | | | | functions. llvm-svn: 63703
* Fill in more omissions in DebugLog propagation.Dale Johannesen2009-02-045-36/+44
| | | | | | I think that's it for this directory. llvm-svn: 63690
* Constify and don't return a reference.Bill Wendling2009-02-041-1/+1
| | | | llvm-svn: 63689
* DebugLoc propagation; adjustment to things omittedDale Johannesen2009-02-032-17/+41
| | | | | | from SelectionDagBuild. llvm-svn: 63680
* Erm. Would be nice to initialize this variable. . .Bill Wendling2009-02-031-1/+1
| | | | llvm-svn: 63677
* Add getDebugLocTuple to retrieve the DebugLocTuple for a given DebugLoc object.Bill Wendling2009-02-031-3/+11
| | | | llvm-svn: 63676
* Add some DL propagation to places that didn'tDale Johannesen2009-02-031-36/+44
| | | | | | have it yet. More coming. llvm-svn: 63673
* More whitespace fixin'.Bill Wendling2009-02-031-37/+36
| | | | llvm-svn: 63663
* Whitespace and comment changes. No functionality change.Bill Wendling2009-02-032-25/+12
| | | | llvm-svn: 63660
* Remove dead code.Devang Patel2009-02-031-1/+0
| | | | llvm-svn: 63653
* Change the post-RA scheduler to iterate through theDan Gohman2009-02-031-9/+11
| | | | | | | | basic-block segments bottom-up instead of top down. This is the first step in a general restructuring of the way register liveness is tracked in the post-RA scheduler. llvm-svn: 63643
* First initialize DAG otherwise dwarf writer is used uninitialized.Devang Patel2009-02-032-2/+2
| | | | | | Duncan spotted this. Thanks! llvm-svn: 63641
* Fix PR3411. When replacing values, nodes are analyzedDuncan Sands2009-02-031-5/+7
| | | | | | | | | in any old order. Since analyzing a node analyzes its operands also, this can mean that when we pop a node off the list of nodes to be analyzed, it may already have been analyzed. llvm-svn: 63632
* Explicitly pass in debug location information to BuildMI.Bill Wendling2009-02-034-4/+6
| | | | llvm-svn: 63599
OpenPOWER on IntegriCloud