Commit Graph
637 Commits
Author SHA1 Message Date
Chris Lattner 6765bfed31 add a new map
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22017 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-14 07:36:02 +00:00
Chris Lattner 4211e73c49 Add a way to construct an arbitrary node, cleanly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22008 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-14 06:20:08 +00:00
Chris Lattner 50f5a51f41 add accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22007 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-14 06:19:11 +00:00
Chris Lattner 38135af219 Print the symbolic register name in a register allocator debug dump.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22002 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-14 05:34:15 +00:00
Chris Lattner 4c1eae9fb3 add TAILCALL node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21956 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 18:40:17 +00:00
Chris Lattner cc13b76246 add a new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21929 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:23:03 +00:00
Chris Lattner 712ad0c36d allow a virtual register to be associated with live-in values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21927 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 07:08:07 +00:00
Chris Lattner 16cd04d26c rename the ADJCALLSTACKDOWN/ADJCALLSTACKUP nodes to be CALLSEQ_START/BEGIN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21915 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-12 23:24:06 +00:00
Chris Lattner 73b35371bf new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21869 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-11 18:56:45 +00:00
Chris Lattner 21074f43ed Add READPORT, WRITEPORT, READIO, WRITEIO nodes, wrap long lines
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21823 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-09 20:21:27 +00:00
Andrew Lenharth 691ef2ba06 Implement count leading zeros (ctlz), count trailing zeros (cttz), and count
population (ctpop).  Generic lowering is implemented, however only promotion
is implemented for SelectionDAG at the moment.

More coming soon.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21676 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-03 17:19:30 +00:00
Tanya Lattner 9d6b6280c7 Adding ModuloSched SB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21648 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-01 16:14:34 +00:00
Chris Lattner 7f64464ff1 Add FSQRT, FSIN, FCOS nodes, patch contributed by Morten Ofstad
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21605 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-28 21:44:03 +00:00
Andrew Lenharth 2d86ea21dd Implement Value* tracking for loads and stores in the selection DAG. This enables one to use alias analysis in the backends.
(TRUNK)Stores and (EXT|ZEXT|SEXT)Loads have an extra SDOperand which is a SrcValueSDNode which contains the Value*.  Note that if the operation is introduced by the backend, it will still have the operand, but the value* will be null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21599 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-27 20:10:01 +00:00
Misha Brukman 00876a2808 Convert tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21438 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-22 03:46:24 +00:00
Misha Brukman ea61c35872 Remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21409 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 20:39:54 +00:00
Chris Lattner 1ccae666f5 Add a new helper method which returns the and that is equivalent to what
ZERO_EXTEND_INREG was.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21264 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-13 02:37:19 +00:00
Chris Lattner ea57610689 Remove the ZERO_EXTEND_INREG node which is redundant with AND
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21263 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-13 02:36:41 +00:00
Duraid Madina 2d4c883118 rename addU64Imm() to addImm64()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21223 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-11 07:14:41 +00:00
Jeff Cohen 3bdfdfd10f Eliminate major source of VC++ "possible loss of data" warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21215 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-11 03:38:28 +00:00
Duraid Madina 9696a90ee6 * store immediate values as int64_t, not int. come on, we should be happy
when there are immediates, let's not worry about the memory overhead of
this :)

* add addU64Imm(uint64_t val) to machineinstrbuilder

(seriously: this seems required to support 64-bit immediates cleanly. if it
_really_ gets on your nerves, feel free to pull it out ;) )

coming up next week: "all your floating point constants are belong to us"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21208 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-10 09:18:55 +00:00
Chris Lattner dde3a9abc3 add routines to track the livein/out set for a function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21179 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-09 15:22:53 +00:00
Chris Lattner 1df633821b Add a new node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21162 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-09 03:21:50 +00:00
Chris Lattner 2bffad3eeb fix this method for 64-bit constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21158 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-08 21:31:29 +00:00
Chris Lattner bede0b7dd7 document these nodes, as they are nonobvious
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21108 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06 04:21:29 +00:00
Nate Begeman 1867054643 Add MULHU and MULHS nodes for the high part of an (un)signed 32x32=64b
multiply.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21102 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05 22:36:56 +00:00
Duraid Madina 664044b2bd a wise man once said:
"!!!!!!!! IF YOU CHANGE SPACES TO TABS, YOU WILL BE KILLED!!!!!!"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21062 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-03 14:57:35 +00:00
Duraid Madina 855a519741 add support for prefix/suffix strings to go around GlobalValue(s)
(which may or be function pointers) in the asmprinter. For the moment,
this changes nothing, except the IA64 backend which can use this to write:

  data8.ua  @fptr(blah__blah__mangled_function_name)

  (by setting FunctionAddrPrefix/Suffix to "@fptr(" / ")")


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21024 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 12:21:51 +00:00
Chris Lattner 7366fd3972 Add two happy new nodes for FABS and FNEG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21007 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 04:58:28 +00:00
Chris Lattner 6b8f2d649c fix a comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21003 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 03:59:45 +00:00
Chris Lattner 14c5b53c03 add some new nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21000 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 03:30:33 +00:00
Nate Begeman fc1b1dad88 Add ISD::UNDEF node
Teach the SelectionDAG code how to expand and promote it
Have PPC32 LowerCallTo generate ISD::UNDEF for int arg regs used up by fp
  arguments, but not shadowing their value.  This allows us to do the right
  thing with both fixed and vararg floating point arguments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20988 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-01 22:34:39 +00:00
Misha Brukman e3f570c3f9 Fix spelling of `corresponds'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20966 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-31 21:30:35 +00:00
Andrew Lenharth 95762124a1 PCMarker support for DAG and Alpha
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20965 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-31 21:24:06 +00:00
Duraid Madina aff20c03fb dainty
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20653 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 18:23:22 +00:00
Chris Lattner f768bba43f Allow the live interval analysis pass to be a bit more aggressive about
numbering values in live ranges for physical registers.

The alpha backend currently generates code that looks like this:

  vreg = preg
...
  preg = vreg
  use preg
...
  preg = vreg
  use preg

etc.  Because vreg contains the value of preg coming in, each of the
copies back into preg contain that initial value as well.

In the case of the Alpha, this allows this testcase:

void "foo"(int %blah) {
        store int 5, int *%MyVar
        store int 12, int* %MyVar2
        ret void
}

to compile to:

foo:
        ldgp $29, 0($27)
        ldiq $0,5
        stl $0,MyVar
        ldiq $0,12
        stl $0,MyVar2
        ret $31,($26),1

instead of:

foo:
        ldgp $29, 0($27)
        bis $29,$29,$0
        ldiq $1,5
        bis $0,$0,$29
        stl $1,MyVar
        ldiq $1,12
        bis $0,$0,$29
        stl $1,MyVar2
        ret $31,($26),1

This does not seem to have any noticable effect on X86 code.

This fixes PR535.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20536 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-09 23:05:19 +00:00
Chris Lattner b29cb29364 Map doubles from integers, not the double itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20229 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-17 20:16:58 +00:00
Chris Lattner bbec41dbac Improve spelling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19931 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-30 00:13:34 +00:00
Chris Lattner 3cf8e6857e Adjust to ilist changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19923 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-29 18:41:12 +00:00
Chris Lattner 471f09090d Add an accessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19794 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-23 22:57:27 +00:00
Chris Lattner d6b210ca38 Expose more information from register allocation to passes that run after
it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19788 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-23 22:13:36 +00:00
Chris Lattner 063287a76b Give SelectionDAG a TargetLowering instance instead of TM instance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19778 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-23 04:36:06 +00:00
Chris Lattner 0442fbfadb Keep track of node depth for each node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19732 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-21 21:39:38 +00:00
Chris Lattner 5880b9fa3e Eliminate the unimplemented ADDC/SUBB operations, add ADD_PARTS/SUB_PARTS instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19713 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-20 18:50:39 +00:00
Chris Lattner 02b86f52ed Add an accessor for targets that pass args in regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19702 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-19 20:19:58 +00:00
Chris Lattner c7ba0eb5eb Keep track of the returned value type as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19669 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-18 19:26:18 +00:00
Chris Lattner 30c0fc23c5 Allow setcc operations to have non-bool types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19655 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-18 02:51:41 +00:00
Chris Lattner 80d8a93489 Make methods private, add a method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19634 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-17 17:14:43 +00:00
Chris Lattner 7ece380440 Add methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19627 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-17 02:24:59 +00:00
Chris Lattner 3e68b41872 Add some helper methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19570 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-15 06:52:18 +00:00