Commit Graph

111 Commits

Author SHA1 Message Date
Chris Lattner
c7e1852d63 cmovle != cmovlt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25761 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-29 03:47:30 +00:00
Chris Lattner
cedc6f4b30 PHI and INLINEASM are now built-in instructions provided by Target.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25674 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 01:46:15 +00:00
Andrew Lenharth
9e234856fe minor renaming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25640 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 03:24:15 +00:00
Andrew Lenharth
cd1544eede allow R28 to be used for frame calculations without entirely removing it from circulation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25639 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 03:22:07 +00:00
Andrew Lenharth
66e495820a added stores to lsmark
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25552 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 21:51:33 +00:00
Andrew Lenharth
87076054e6 fix up more lsmark stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25550 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 21:23:26 +00:00
Andrew Lenharth
167bc6ee7a yea, lowering this stuff will basically work
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25549 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 20:59:50 +00:00
Andrew Lenharth
394244717a typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-19 21:10:38 +00:00
Andrew Lenharth
c6a335b72a nasty nasty patterns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25463 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-19 20:49:37 +00:00
Andrew Lenharth
6e707fb39c fix short immediate loads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25371 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-16 21:41:39 +00:00
Andrew Lenharth
3b628f8388 this pattern was bogus
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25197 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-11 03:33:06 +00:00
Andrew Lenharth
29418a862c Int immediate loading fix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25182 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-10 19:12:47 +00:00
Andrew Lenharth
f7c4bd65c0 proper branch not equal sequence
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25159 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-09 19:49:58 +00:00
Chris Lattner
bfc89d3876 unbreak the build, these are now in TargetSelectionDAG.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25109 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-05 04:48:15 +00:00
Andrew Lenharth
feab2f837c Move brcond over and fix some imm patterns. This may be the last change before changing the default alpha isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25057 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-01 22:16:14 +00:00
Andrew Lenharth
dcbaf8a072 improve constant loading. Still sucks, but oh well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25047 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-30 02:30:02 +00:00
Andrew Lenharth
a117b187f7 let us get some do what I meant not what I said stuff checked in. You would think the alpha backend would be 64bit clean
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25040 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-29 01:06:12 +00:00
Andrew Lenharth
aa6ed8c7cc Fix up immediate handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25039 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-29 00:50:08 +00:00
Andrew Lenharth
713b0b59fc Restore some happiness to the JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25026 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-27 06:25:50 +00:00
Andrew Lenharth
424ba780dc Fix alpha regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25025 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-27 03:53:58 +00:00
Evan Cheng
2b4ea795a2 Added field noResults to Instruction.
Currently tblgen cannot tell which operands in the operand list are results so
it assumes the first one is a result. This is bad. Ideally we would fix this
by separating results from inputs, e.g. (res R32:$dst),
(ops R32:$src1, R32:$src2). But that's a more distruptive change. Adding
'let noResults = 1' is the workaround to tell tblgen that the instruction does
not produces a result. It works for now since tblgen does not support
instructions which produce multiple results.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25017 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-26 09:11:45 +00:00
Andrew Lenharth
eececbab32 add br pattern, unify JSR and BSR ISel instrs, and add BSR support for DAG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25011 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-25 17:36:48 +00:00
Andrew Lenharth
53d8970625 All that just to lower div and rem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25008 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-25 01:34:27 +00:00
Andrew Lenharth
c687b48741 All addressing modes are now exposed. The only remaining relocated forms
are for function prologue.

TODO: move external symbols over to using RelLit.
    : have a pattern that matches constpool|globaladdr
    : have a pattern that matches (add x imm) -> x, imm or (...) -> ..., 0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25003 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-24 08:29:32 +00:00
Andrew Lenharth
b6718607c5 Unify the patterns for loads and stores. Now offset addressing should be
supported.  This almost completes memory operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25002 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-24 07:34:33 +00:00
Andrew Lenharth
4e62951282 Let's see if we can break things.
Lower GOT relative addresses to Lo and HI.
Update both ISels to select them when they can.
Saves instructions here and there.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25001 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-24 05:36:33 +00:00
Andrew Lenharth
9fa4d4c7c4 move loads and stores over. Smart addr selection comming
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25000 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-24 03:41:56 +00:00
Andrew Lenharth
110f2243fc fix FP selects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24672 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-12 20:30:09 +00:00
Andrew Lenharth
e41419f51e FP select improvements (and likely breakage), oh and crazy people might want to *return* floating point values. Don't see why myself
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24658 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-11 03:54:31 +00:00
Andrew Lenharth
dd3ccde9ea it helps if your conditionals are not reversed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24641 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-09 00:45:42 +00:00
Andrew Lenharth
bbe1225bf4 fix divide and remainder
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24628 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-06 23:27:39 +00:00
Andrew Lenharth
eda80a0dec added instructions with inverted immediates
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24614 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-06 00:33:53 +00:00
Andrew Lenharth
8a3a5fc9ba yea, it helps to have your path set right when testing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24613 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-05 23:41:45 +00:00
Andrew Lenharth
5de36f95da These never trigger, but whatever
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24612 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-05 23:19:44 +00:00
Andrew Lenharth
7962065fdb move this over to the dag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24609 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-05 20:50:53 +00:00
Andrew Lenharth
b2156f91f5 Make typesafe that which isn't: FCMOVxx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24536 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-30 17:11:20 +00:00
Andrew Lenharth
cd80496ccc FPSelect and more custom lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24535 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-30 16:10:29 +00:00
Andrew Lenharth
7f0db91f86 All sorts of stuff.
Getting in on the custom lowering thing, yay
evilness with fp setcc, yuck
trivial int select, hmmm
in memory args for functions, yay
DIV and REM, always handy.  They should be custom lowered though.

Lots more stuff compiles now (go go single source!).  Of course, none of it
probably works, but that is what the nightly tester can find out :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24533 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-30 07:19:56 +00:00
Andrew Lenharth
50b37845ef massive DAGISel patch. lots and lots more stuff compiles now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24483 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-22 04:20:06 +00:00
Andrew Lenharth
51b8d54922 continued readcyclecounter support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24300 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-11 16:47:30 +00:00
Andrew Lenharth
5cefc5e64d whatever. Intermediate patch to see what breaks. Seems ok.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24260 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-09 19:17:08 +00:00
Andrew Lenharth
2012cc013c int comparison patterns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24020 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-26 18:44:45 +00:00
Andrew Lenharth
641b64aa4b Simplify instinfo, set random bits on more fp insts, and fix 1 opcode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24014 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-26 17:41:46 +00:00
Andrew Lenharth
8b7f14e970 Add several things.
loads
branches
setcc
working calls
Global address
External addresses

now I can manage malloc calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23887 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-23 03:43:48 +00:00
Andrew Lenharth
756fbeb905 Well, the Constant matching pattern works. Can't say much about calls or globals yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23884 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-22 22:06:58 +00:00
Andrew Lenharth
fe9234db9b byte zap not immediate goodness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23855 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-21 01:24:05 +00:00
Andrew Lenharth
1f347a318c Inst cleanup. As a bonus, operands are in the correct order for cmovs. Expect new stuff to pass in the JIT tonight
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23852 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-20 23:58:36 +00:00
Andrew Lenharth
964b6aacb4 added a few 1 operand form stuff. Seems to break regalloc on alpha. sigh
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23849 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-20 19:39:24 +00:00
Andrew Lenharth
892ade722a Sounds good, finish the intop conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23843 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-20 14:42:48 +00:00
Chris Lattner
ae4be981b1 Add some pattern fragments to simplify the repetitive parts of the patterns
for some common ops and use them for a few examples.  Andrew, if you like
this, feel free to convert the rest over, if you hate it, feel free to
revert.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23837 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-20 04:21:06 +00:00