John Criswell
96a14a8d3b
Added #include <cassert>. In GCC 3.3, we don't get assert() through the other
...
language header files like we did under 3.2.1, and we're not grabbing it
through the LLVM header files either. So just include it directly.
llvm-svn: 7996
2003-08-20 22:07:45 +00:00
Misha Brukman
45cd64978d
X86.td has been moved out of this directory; these are outdated targets.
...
llvm-svn: 7971
2003-08-19 16:11:38 +00:00
Misha Brukman
56f7db4178
Spell `necessary' correctly.
...
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
894af9f898
Ignore dummy register classes
...
llvm-svn: 7871
2003-08-15 04:36:19 +00:00
Chris Lattner
58c8999bca
Add support for nodes with void arguments, like chain nodes
...
llvm-svn: 7869
2003-08-15 04:28:04 +00:00
Misha Brukman
283afdd02b
Using std::remove' requires
cstdio.h'.
...
llvm-svn: 7843
2003-08-14 16:05:35 +00:00
Misha Brukman
5d61e0d79b
Using std::string requires `#include <string>', says gcc-2.95.3.
...
llvm-svn: 7833
2003-08-13 22:27:15 +00:00
Chris Lattner
4ae9a82af1
Fix emission of instructions that directly reference MBBs
...
llvm-svn: 7771
2003-08-12 05:19:49 +00:00
Chris Lattner
3dbc8d8eb2
Add support for the Any type. Minor fixes and enhancements for BasicBlock operands
...
llvm-svn: 7769
2003-08-12 04:56:42 +00:00
Chris Lattner
863477568d
Rename DNVT_bool to DNVT_i1 to be consistent with type system
...
llvm-svn: 7768
2003-08-12 04:28:21 +00:00
Chris Lattner
9bfaf9c74e
Add support for a bool argty
...
llvm-svn: 7766
2003-08-12 04:12:42 +00:00
Chris Lattner
f75f0fe692
It is not an error if a rule does not match, it's just a failed match!
...
llvm-svn: 7761
2003-08-11 22:30:51 +00:00
Chris Lattner
e91ffcf8bd
Add support for frameidx and literal immediates for instructions
...
llvm-svn: 7749
2003-08-11 21:28:59 +00:00
Chris Lattner
114ee856b4
Add support for naming the destination of a "set" in a pattern
...
llvm-svn: 7748
2003-08-11 20:32:02 +00:00
Chris Lattner
641eca6881
Add support for the Arg1 argument type
...
llvm-svn: 7747
2003-08-11 20:25:52 +00:00
Chris Lattner
8c7089a744
Don't forget to initializer result field to 0!
...
llvm-svn: 7729
2003-08-11 15:47:35 +00:00
Misha Brukman
8477eb70ee
Put printouts of acquired patterns under the DEBUG() guard, fixed spelling.
...
llvm-svn: 7723
2003-08-11 15:16:12 +00:00
Chris Lattner
6b5833f7f9
Add full support for code generating expanders!
...
This includes support for referencing named arguments.
llvm-svn: 7715
2003-08-10 23:51:52 +00:00
Chris Lattner
064a7ce4ab
Implement autopromotion of leaf trees from arguments to nodes of their own,
...
making it easier to write patterns without lots of extraneous parens
llvm-svn: 7714
2003-08-10 22:38:36 +00:00
Chris Lattner
b02ea334f3
Implement correct parsing, representation, and printing of DAG argument names
...
Implements testcase TableGen/TreeNames.td
llvm-svn: 7713
2003-08-10 22:14:13 +00:00
Chris Lattner
71108605d3
Recognize $foo as a variable
...
llvm-svn: 7712
2003-08-10 22:04:25 +00:00
Chris Lattner
328e935aa6
Implement real code emission, at least for Instruction patterns,
...
next up: support for expanders
llvm-svn: 7710
2003-08-10 21:54:43 +00:00
Chris Lattner
9392cd389e
First cut at emitting the reducer. This reducer just prints out the patterns
...
selected, but it seems to work great!
llvm-svn: 7709
2003-08-10 20:34:13 +00:00
Chris Lattner
ba61a16a15
Finish the matcher!
...
llvm-svn: 7707
2003-08-10 19:50:51 +00:00
Chris Lattner
d754461205
Add new function
...
llvm-svn: 7706
2003-08-10 19:50:32 +00:00
Chris Lattner
1f87681075
This implements a large amount of the matcher, in fact, all of it except for one bug
...
llvm-svn: 7702
2003-08-08 22:29:23 +00:00
Chris Lattner
f169468353
Emit the first half of the instruction selector.
...
llvm-svn: 7701
2003-08-08 16:30:10 +00:00
Chris Lattner
5f95cc5c26
Finish implementation of nonterminal instantiation.
...
Tree patterns are now, finally, ready to use!
llvm-svn: 7699
2003-08-07 23:16:20 +00:00
Chris Lattner
9226d186a5
Add new method to get a value type as a string
...
llvm-svn: 7698
2003-08-07 23:15:21 +00:00
Chris Lattner
d7279de40d
Implement type-inference/checking for non-terminal references
...
llvm-svn: 7686
2003-08-07 21:02:56 +00:00
Chris Lattner
578cd4425b
Rename all of the "Process" methods to be "read" methods, start the Instantiate method
...
llvm-svn: 7685
2003-08-07 20:42:23 +00:00
Chris Lattner
096a2cc522
Add support for "cast" nodes, which are required when there is not enough information
...
to infer type type of all nodes, e.g. (ret imm)
llvm-svn: 7684
2003-08-07 19:59:42 +00:00
Chris Lattner
6fc628b98f
Use the new version of isSubClassOf
...
llvm-svn: 7683
2003-08-07 19:42:14 +00:00
Chris Lattner
69b1d7c0d6
Add and use a new method
...
llvm-svn: 7682
2003-08-07 19:41:59 +00:00
Chris Lattner
4d0c647dec
Cleanup and reorganize code, no functional changes
...
llvm-svn: 7679
2003-08-07 19:28:55 +00:00
Chris Lattner
3b511f0c58
Read in expanders too
...
llvm-svn: 7678
2003-08-07 19:21:10 +00:00
Chris Lattner
31b26b9414
Continued evolution of the selector emitter: Represent instruction patterns
...
as first class objects
llvm-svn: 7677
2003-08-07 19:12:24 +00:00
Chris Lattner
2e7d8d61bb
Finish implementation of the type inference engine.
...
Start working on reading in nonterminals
llvm-svn: 7671
2003-08-07 06:02:15 +00:00
Chris Lattner
24cea97f79
Allow clients to get at the pointer type
...
llvm-svn: 7670
2003-08-07 06:01:44 +00:00
Chris Lattner
7f47b0d303
Add new method getVAlueAsDag
...
llvm-svn: 7669
2003-08-07 06:00:43 +00:00
Chris Lattner
8d5ace1eb5
Initial checkin of tree pattern parser and type inference engine (which still needs work).
...
llvm-svn: 7668
2003-08-07 05:40:14 +00:00
Chris Lattner
dc23074e6a
Eliminate now-dead method
...
llvm-svn: 7667
2003-08-07 05:39:37 +00:00
Chris Lattner
8a216b871d
Start using the CodeGeneratorWrappers
...
llvm-svn: 7666
2003-08-07 05:39:09 +00:00
Chris Lattner
26601ab6fa
Initial checkin of useful wrappers around the Target classes, for now, only ValueType and
...
Target are wrapped
llvm-svn: 7665
2003-08-07 05:38:11 +00:00
Chris Lattner
e0deb31fd5
Ick, add the RIGHT accessor
...
llvm-svn: 7656
2003-08-06 23:01:18 +00:00
Chris Lattner
799db97d3d
Add accessor
...
llvm-svn: 7655
2003-08-06 23:00:31 +00:00
Chris Lattner
e5001079d1
There is something wrong with code that looks like:
...
if (R == 0 || ...)
R->getName()
llvm-svn: 7654
2003-08-06 22:29:04 +00:00
Chris Lattner
919d5c465c
Export the register classes so that the instruction selector can get at them as needed
...
llvm-svn: 7651
2003-08-06 21:47:14 +00:00
Misha Brukman
ad7dda52c9
Added asserts to prevent negative shift amounts from being generated.
...
llvm-svn: 7640
2003-08-06 16:28:49 +00:00
Chris Lattner
4671977130
Add error checking code to the node type parser. Start the instruction pattern
...
reader
llvm-svn: 7632
2003-08-06 06:16:35 +00:00