summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Small eye-candy: use asciz directive everywhere, where possible.Anton Korobeynikov2007-03-061-3/+10
| | | | llvm-svn: 34981
* If target decides to create an emergency spill slot, make sure it's closest ↵Evan Cheng2007-03-061-7/+56
| | | | | | to SP or frame pointer. llvm-svn: 34965
* Register scavenger is now capable of scavenging. It spills a register whose ↵Evan Cheng2007-03-061-2/+90
| | | | | | use of furthest away to make it available. llvm-svn: 34964
* Enumerate SDISel formal parameter attributes. Make use of newAnton Korobeynikov2007-03-061-22/+24
| | | | | | enumeration. llvm-svn: 34960
* Unbreak VC++ build.Jeff Cohen2007-03-051-1/+1
| | | | llvm-svn: 34917
* fold away addc nodes when we know there cannot be a carry-out.Chris Lattner2007-03-042-8/+28
| | | | llvm-svn: 34913
* generalizeChris Lattner2007-03-041-5/+9
| | | | llvm-svn: 34910
* canonicalize constants to the RHS of addc/adde. If nothing uses the carry ↵Chris Lattner2007-03-041-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | out of addc, turn it into add. This allows us to compile: long long test(long long A, unsigned B) { return (A + ((long long)B << 32)) & 123; } into: _test: movl $123, %eax andl 4(%esp), %eax xorl %edx, %edx ret instead of: _test: xorl %edx, %edx movl %edx, %eax addl 4(%esp), %eax ;; add of zero andl $123, %eax ret llvm-svn: 34909
* eliminate some ops if they have an undef RHSChris Lattner2007-03-041-0/+2
| | | | llvm-svn: 34908
* Remove unneeded header file.Reid Spencer2007-03-041-1/+0
| | | | llvm-svn: 34903
* Fix CodeGen/Generic/fpowi-promote.ll and PR1239Chris Lattner2007-03-031-0/+12
| | | | llvm-svn: 34893
* Add an expand action for ISD label which just deletes the label.Chris Lattner2007-03-031-0/+3
| | | | | | This "fixes" PR1238. llvm-svn: 34890
* Only propagate IsKill if the last use is a kill.Evan Cheng2007-03-031-8/+22
| | | | llvm-svn: 34878
* http://llvm.org/bugs/show_bug.cgi?id=1237Nate Begeman2007-03-031-5/+10
| | | | llvm-svn: 34875
* Watch out for cases like this:Evan Cheng2007-03-031-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | entry (0x8b056f0, LLVM BB @0x8b01b30, ID#0): Live Ins: %r0 %r1 %r2 %r3 %reg1032 = tMOVrr %r3<kill> %reg1033 = tMOVri8 1 %reg1034 = tMOVri8 0 tCMPi8 %reg1029<kill>, 0 tBcc mbb<entry,0x8b06a10>, 0 Successors according to CFG: 0x8b06980 0x8b06a10 entry (0x8b06980, LLVM BB @0x8b01b30, ID#12): Predecessors according to CFG: 0x8b056f0 %reg1036 = tMOVrr %reg1034<kill> Successors according to CFG: 0x8b06a10 entry (0x8b06a10, LLVM BB @0x8b01b30, ID#13): Predecessors according to CFG: 0x8b056f0 0x8b06980 %reg1024<dead> = tMOVrr %reg1030<kill> ... reg1030 and r1 have already been joined. When reg1024 and reg1030 are joined, r1 live range from function entry to the tMOVrr instruction are dead. Eliminate r1 from the livein set of the entry BB, not the BB where the copy is. llvm-svn: 34866
* Mark dead def as unused.Evan Cheng2007-03-021-2/+6
| | | | llvm-svn: 34844
* Dead live-in detection bug.Evan Cheng2007-03-021-2/+2
| | | | llvm-svn: 34843
* - Keep track all def and uses of stack slot available in register.Evan Cheng2007-03-021-28/+51
| | | | | | - Available value use may be deleted (e.g. noop move). llvm-svn: 34841
* Invalidate last use of a reused register if the use is a deleted noop copy.Evan Cheng2007-03-021-0/+1
| | | | llvm-svn: 34839
* Emit eh filter info.Jim Laskey2007-03-011-18/+66
| | | | llvm-svn: 34805
* Collect eh filter info.Jim Laskey2007-03-011-12/+19
| | | | llvm-svn: 34804
* Lower eh filter intrinsic.Jim Laskey2007-03-012-1/+5
| | | | llvm-svn: 34802
* Delete register scavenger when done with it.Evan Cheng2007-03-011-0/+2
| | | | llvm-svn: 34786
* Add a version of FindUnusedReg that restrict search to a specific set of ↵Evan Cheng2007-03-011-0/+15
| | | | | | registers. llvm-svn: 34784
* A restore is promoted to copy (or deleted entirely), remove the kill from ↵Evan Cheng2007-03-011-3/+4
| | | | | | the last use of the targetted register. llvm-svn: 34773
* Interface clean up.Evan Cheng2007-03-011-1/+1
| | | | llvm-svn: 34772
* Interface clean up.Evan Cheng2007-03-011-13/+7
| | | | llvm-svn: 34770
* Oops.Evan Cheng2007-03-011-1/+0
| | | | llvm-svn: 34768
* Track all joined registers and eliminate unneeded kills after all joining ↵Evan Cheng2007-03-011-22/+42
| | | | | | are done. llvm-svn: 34767
* Chain is on second operand.Jim Laskey2007-02-281-4/+23
| | | | llvm-svn: 34759
* Handle mix of personalities.Jim Laskey2007-02-281-30/+37
| | | | llvm-svn: 34752
* Provide a more meaningful name.Jim Laskey2007-02-281-1/+1
| | | | llvm-svn: 34751
* MERGE_VALUES unnecessary.Jim Laskey2007-02-281-12/+4
| | | | llvm-svn: 34750
* Fix a typo, thanks Bill!Nate Begeman2007-02-281-1/+1
| | | | llvm-svn: 34741
* More Mach-O writer improvements.Nate Begeman2007-02-282-32/+61
| | | | llvm-svn: 34740
* add methods for analysis of call results and return nodes.Chris Lattner2007-02-281-12/+42
| | | | llvm-svn: 34738
* add methods to analyze calls and formals.Chris Lattner2007-02-281-0/+34
| | | | llvm-svn: 34736
* add a newline at end of fileChris Lattner2007-02-281-0/+1
| | | | llvm-svn: 34735
* Make requiresRegisterScavenging determination on a per MachineFunction basis.Evan Cheng2007-02-281-1/+1
| | | | llvm-svn: 34711
* MRegisterInfo disowns RegScavenger. It's immutable.Evan Cheng2007-02-281-2/+2
| | | | llvm-svn: 34706
* Some more code clean up.Evan Cheng2007-02-271-23/+29
| | | | llvm-svn: 34700
* Oops.Evan Cheng2007-02-271-1/+4
| | | | llvm-svn: 34698
* Let MRegisterInfo now owns RegScavenger.Evan Cheng2007-02-271-3/+3
| | | | llvm-svn: 34691
* RegScavenger interface change to make it more flexible.Evan Cheng2007-02-271-16/+18
| | | | llvm-svn: 34690
* Minor refactoring of CC Lowering interfacesChris Lattner2007-02-271-1/+4
| | | | llvm-svn: 34656
* move CC Lowering stuff to its own public interfaceChris Lattner2007-02-271-0/+34
| | | | llvm-svn: 34655
* forward() should not increment internal iterator. Its client may insert ↵Evan Cheng2007-02-272-5/+26
| | | | | | instruction between now and next forward() call. llvm-svn: 34649
* Joining an interval with a dead copy instruction. Shorten the live range to ↵Evan Cheng2007-02-261-20/+46
| | | | | | the last use. llvm-svn: 34645
* Fold (sext (truncate x)) more aggressively, by avoiding creation of aChris Lattner2007-02-261-10/+34
| | | | | | | | | sextinreg if not needed. This is useful in two cases: before legalize, it avoids creating a sextinreg that will be trivially removed. After legalize if the target doesn't support sextinreg, the trunc/sext would not have been removed before. llvm-svn: 34621
* track signedness of formal argument, though we have a fixme here.Chris Lattner2007-02-261-0/+8
| | | | llvm-svn: 34620
OpenPOWER on IntegriCloud