1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
Commit Graph

276 Commits

Author SHA1 Message Date
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
Misha Brukman
772eedda42 close() requires "unistd.h" .
llvm-svn: 7695
2003-08-07 21:35:41 +00:00
Misha Brukman
8e86dd69ec Doxygen-ify the comments by using '///' instead of '//'.
llvm-svn: 7694
2003-08-07 21:34:25 +00:00
Misha Brukman
ca83e0d56b Remove references to `bugpoint' from the now-generic system utilities.
llvm-svn: 7693
2003-08-07 21:33:33 +00:00
Misha Brukman
1e83bc90b9 Moved removeFile() and getUniqueFilename() into FileUtilities.
llvm-svn: 7691
2003-08-07 21:28:50 +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
Chris Lattner
6a87b317a2 Initial support for an instruction selector emitter
llvm-svn: 7631
2003-08-06 05:42:05 +00:00
Chris Lattner
47f18bb3a1 All good classes with virtual functions should have virtual dtors...
llvm-svn: 7630
2003-08-06 05:39:03 +00:00
Chris Lattner
51baaaa269 Add an instruction selector emitter skeleton
llvm-svn: 7629
2003-08-06 04:47:56 +00:00
Chris Lattner
0e4fda4b71 convert over to using TableGen backends
llvm-svn: 7628
2003-08-06 04:36:35 +00:00
Chris Lattner
2e7568698e Switch code over to being a TableGenBackend
llvm-svn: 7627
2003-08-06 04:32:07 +00:00
Chris Lattner
81a4f321fb Add more helper methods
llvm-svn: 7626
2003-08-06 04:31:26 +00:00
Chris Lattner
a93ef47190 New common interface for backends to use
llvm-svn: 7625
2003-08-06 04:23:04 +00:00
Misha Brukman
7452a521b3 Stop special-casing annul and predict bits (which are Sparc-specific anyway)
since those bits are now hard-coded in Sparc*.td files.

llvm-svn: 7593
2003-08-05 14:35:35 +00:00
Chris Lattner
8f8fbd7106 No functional changes, comment the fix I just put in
llvm-svn: 7590
2003-08-05 03:59:01 +00:00
Chris Lattner
d8cbdc4c67 The CodeEmitterGenerator used to consider ANY uninitialized field as being an
operand (unless it's annul or predict).  Now we only consider fields to be
operands if they are uninitialized AND used in the "Inst" field.

llvm-svn: 7589
2003-08-05 03:53:04 +00:00
Chris Lattner
11ad73f47e Parse DAG patterns
llvm-svn: 7577
2003-08-04 20:44:43 +00:00
Chris Lattner
3aa9da1f7f add support for DagInit initializers, which represent DAG patterns
llvm-svn: 7576
2003-08-04 20:44:17 +00:00
Chris Lattner
2703e94187 Update file header comment
llvm-svn: 7574
2003-08-04 20:08:28 +00:00