Evan Cheng
aea20f50e5
Added x86 integer vector types: 64-bit packed byte integer (v16i8), 64-bit
...
packed word integer (v8i16), and 64-bit packed doubleword integer (v2i32).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26294 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-20 22:34:53 +00:00
Evan Cheng
19c9550744
Subtarget feature can now set any variable to any value
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25678 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 08:09:42 +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
Evan Cheng
6da8d99f70
New DAG node properties SNDPInFlag, SNDPOutFlag, and SNDPOptInFlag to replace
...
hasInFlag, hasOutFlag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25155 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-09 18:28:21 +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
Evan Cheng
171049d10f
* Removed the use of FLAG. Now use hasFlagIn and hasFlagOut instead.
...
* Added a pseudo instruction (for each target) that represent "return void".
This is a workaround for lack of optional flag operand (return void is not
lowered so it does not have a flag operand.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24997 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-23 22:14:32 +00:00
Evan Cheng
58e84a69f5
Added support to specify predicates.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24715 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-14 22:02:59 +00:00
Evan Cheng
f8ac814957
* Added instruction property hasCtrlDep for those which r/w control-flow
...
chains.
* Added DAG node property SDNPHasChain for nodes which r/w control-flow
chains.
* Renamed SDTVT to SDTOther.
* Added several new SDTypeProfiles for BR, BRCOND, RET, and WRITEPORT.
* Added SDNode definitions for BR, BRCOND, RET, and WRITEPORT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24586 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-04 08:13:17 +00:00
Nate Begeman
6510b22cec
Support multiple ValueTypes per RegisterClass, needed for upcoming vector
...
work. This change has no effect on generated code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24563 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-01 04:51:06 +00:00
Nate Begeman
6a648614e8
Add the majority of the vector machien value types we expect to support,
...
and make a few changes to the legalization machinery to support more than
16 types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24511 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-29 05:45:29 +00:00
Chris Lattner
eedf3b57cb
refix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24505 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-29 00:42:30 +00:00
Chris Lattner
46ec78646b
revert my change for the time being, which broke the build
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24503 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-29 00:24:08 +00:00
Chris Lattner
0ba7d71213
fix a typo :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24501 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-28 22:42:15 +00:00
Chris Lattner
be7a2ff2dd
Capture more operand info, patch by Evan Cheng
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24422 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-19 07:00:10 +00:00
Nate Begeman
69a2cf421b
Also add the new vector value type here, for completeness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24405 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-18 00:53:32 +00:00
Jim Laskey
f0c2be4d2b
Add attribute name and type to SubtargetFeatures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24012 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-26 17:28:23 +00:00
Jim Laskey
f5fc2cbd6b
Plugin new subtarget backend into the build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23870 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-21 19:05:19 +00:00
Jim Laskey
538421411a
Added InstrSchedClass to each of the PowerPC Instructions.
...
Note that when adding new instructions that you should refer to the table at the
bottom of PPCSchedule.td.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23830 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-19 19:51:16 +00:00
Jim Laskey
0de8796e68
Push processor descriptions to the top of target and add command line info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23820 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-19 13:34:52 +00:00
Chris Lattner
17f2cf05b3
Pull DAG ISel generation nodes out of the PowerPC backend to where they
...
can be used by other targets. For those targets that want to use it,
have at. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23680 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-10 06:00:30 +00:00
Chris Lattner
ccc8ed7bb5
Add a forward def
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23621 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-04 05:09:20 +00:00
Chris Lattner
ef242b1ccc
Now that self referential classes are supported, get rid of a work-around.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23544 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-30 04:13:23 +00:00
Chris Lattner
e3cbf823f0
spell this right
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23099 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26 20:55:40 +00:00
Chris Lattner
0efa0f9ee9
Add a flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23092 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26 20:29:01 +00:00
Chris Lattner
a64d4cddf5
add an enum value
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23048 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25 17:07:09 +00:00
Chris Lattner
ecbce617ca
Split RegisterClass 'Methods' into MethodProtos and MethodBodies
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22929 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19 19:13:20 +00:00
Chris Lattner
1ff9540c17
Require that targets specify a namespace for their register classes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22921 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-19 18:48:48 +00:00
Chris Lattner
329cdc3801
Add a new flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22881 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-18 23:17:07 +00:00
Chris Lattner
273f2280f2
Add some bits that can be set for instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19241 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-02 02:27:48 +00:00
Misha Brukman
99ee67ab19
Add isLittleEndianEncoding to InstrInfo class, defaults to `off'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16976 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-14 05:53:40 +00:00
Chris Lattner
0fa206615a
Add initial support for variants
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16635 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-03 19:34:18 +00:00
Nate Begeman
8d5c50329b
Add support for the isLoad and isStore flags, needed by the instruction scheduler
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16555 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 21:29:00 +00:00
Chris Lattner
7baaf09f9f
Capture delay slot info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16551 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 18:34:14 +00:00
Chris Lattner
b228657acc
Revamp the Register class, and allow the use of the RegisterGroup class to
...
specify aliases directly in register definitions.
Patch contributed by Jason Eckhardt!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16330 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 04:17:02 +00:00
Chris Lattner
b4d83c1f2c
Add two values
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15959 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-21 02:17:39 +00:00
Chris Lattner
dd43e3493a
isdummyclass goes away
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15790 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:04:35 +00:00
Chris Lattner
9222cdeca0
disable all of the pattern isel stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15788 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 23:02:34 +00:00
Chris Lattner
fa14683381
Add i1imm
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15753 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 05:37:00 +00:00
Chris Lattner
175580c0f3
Make the AsmWriter a first-class tblgen object. Allow targets to specify
...
name of the generated asmwriter class, and the name of the format string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15747 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-14 22:50:53 +00:00
Chris Lattner
52d2f14b3e
Fill out immediate operand classes, add a new Operand class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15642 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-11 01:53:34 +00:00
Misha Brukman
8124020192
Remove ClassPrefix variable as it's no longer used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15586 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-09 19:13:29 +00:00
Misha Brukman
665235b9df
Classes need to have a prefix name, so that they can be tacked on to the pieces
...
that TableGen creates for them, e.g. CodeEmitter, AsmPrinter, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15579 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-09 17:46:06 +00:00
Chris Lattner
33c23ddf8a
Add some immediate forms, make name optional
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15401 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-01 09:36:44 +00:00
Chris Lattner
c139203f04
Add the 'ops' marker, add an AsmString initializer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15383 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-01 04:40:43 +00:00
Chris Lattner
bbe664c8fb
Move the 'Expander' node to later in the file, with the other experimental
...
stuff. The pattern becomes a list, add some stuff, add some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15378 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-01 03:23:34 +00:00
Chris Lattner
2a809f6567
New flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15354 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-31 02:07:07 +00:00
Chris Lattner
6565043120
Expose the "Other" value type to tablegen targets
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11304 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-11 03:08:45 +00:00
John Criswell
856ba76200
Added LLVM copyright header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9321 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-21 15:17:13 +00:00
Chris Lattner
b6ef5c860c
Add a bunch of new node types, including a new Void dummy register class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7870 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 04:35:14 +00:00
Chris Lattner
c12a61463a
Rename DNVT_bool to DNVT_i1 to be consistent with type system
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7768 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-12 04:28:21 +00:00
Chris Lattner
c8477960b0
Add support for basicblocks, setCC instructions, and branches
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7767 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-12 04:17:29 +00:00
Chris Lattner
c0bb13dc82
add frameidx support
...
Make load work
Make type inference infer from Arg1 to arg0 as well as from arg0 to arg1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7754 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 21:29:40 +00:00
Chris Lattner
7c2af6e93a
Remove dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7726 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 15:24:02 +00:00
Chris Lattner
622003fd74
add support for more nodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7724 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 15:23:05 +00:00
Chris Lattner
f8dfa6ff9b
Make imm be a leaf instead of a nonterminal
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7708 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-10 19:51:16 +00:00
Chris Lattner
ec4f523178
Update tablegen interfaces
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7672 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 13:52:22 +00:00
Chris Lattner
3e77d6e44c
Start adding usefulness to the DAG node definitions, add a new Expander
...
class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7634 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-06 15:31:02 +00:00
Chris Lattner
244883e4af
Allow instructions to have a DAG pattern associated with them.
...
Define a few preliminary node types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7579 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 21:07:37 +00:00
Chris Lattner
17d4d147dd
There is nothing special about noops now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7567 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 05:11:19 +00:00
Chris Lattner
60e81db31c
Transition to using let instead of set
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7563 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04 04:58:12 +00:00
Chris Lattner
76bf868ff3
Allow specifying custom names for registers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7546 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-03 22:12:37 +00:00
Chris Lattner
34a2068cb2
Rearrange fields yet again: Don't instantiate these lists ONCE PER INSTRUCTION.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7535 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-03 21:52:28 +00:00
Chris Lattner
a5100d91ef
Remove the RegisterInfo class in favor of a general Target class. Add instrinfo stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7521 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-03 18:18:31 +00:00
Chris Lattner
be84e3c87e
Rename fields
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7498 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 22:21:49 +00:00
Chris Lattner
de04dd746f
encode size information into each ValueType
...
Add new RegisterInfo class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7469 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 05:18:03 +00:00
Chris Lattner
0ad1361837
Add comments
...
Make the register classes optionally take code fragments for allocation_order_*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7441 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 22:16:41 +00:00
Chris Lattner
7c28952e7a
Add all of the necessary classes to describe the contents of the MRegister.h implementation
...
for a target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7415 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 05:50:12 +00:00
Chris Lattner
ee6b5f69bd
No this file is not actually Sparc.td :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7405 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 23:07:13 +00:00
Chris Lattner
84c40c1dce
Add namespace specifier, add flags used by the X86 BE
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7403 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 23:02:49 +00:00
Chris Lattner
b3aa319401
Instead of specifying the SIZE of the register, go so far as to specify
...
what value type it is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7356 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 04:24:59 +00:00
Misha Brukman
01c1638123
Added the target-independent part of TableGen data.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6403 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-29 18:48:17 +00:00