Commit Graph

7262 Commits

Author SHA1 Message Date
Chris Lattner
3dc2860679 Add support for a pattern matching instruction selector. This is still in
the early implementation phases, so it is disabled by default

llvm-svn: 7719
2003-08-11 14:59:22 +00:00
Chris Lattner
f40b9fb6c2 Build the SelectionDAG library
llvm-svn: 7718
2003-08-11 14:57:48 +00:00
Chris Lattner
45414456b3 Initial checkin of SelectionDAG implementation. This is still rough and
unfinished

llvm-svn: 7717
2003-08-11 14:57:33 +00:00
Chris Lattner
49f6244b56 Initial checkin of SelectionDAG header file
llvm-svn: 7716
2003-08-11 14:56:26 +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
050e145557 New testcase
llvm-svn: 7711
2003-08-10 22:02:44 +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
7d1623b861 Make imm be a leaf instead of a nonterminal
llvm-svn: 7708
2003-08-10 19:51:16 +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
John Criswell
91352f7fdb Removed information on the Pool Allocator as it is no longer available.
Fixed a spelling error.

llvm-svn: 7705
2003-08-08 22:46:30 +00:00
John Criswell
5ee47e31c2 Added a FAQ about how to clean the directory if it fails to build after an
update.

llvm-svn: 7704
2003-08-08 22:43:39 +00:00
John Criswell
6a40dbb476 Updated for the 1.1 pre-release.
Attempted to explain how OBJ_ROOT=. and OBJ_ROOT=`pwd` are not the same thing.

llvm-svn: 7703
2003-08-08 22:36:30 +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
Misha Brukman
84acb273f9 Chomped spurious blank lines.
llvm-svn: 7700
2003-08-08 15:37:35 +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
78dffeebe0 * Fix <>'s in code to be &lt;&gt;'s
* Add section describing how we prefer #includes to be ordered

llvm-svn: 7697
2003-08-07 21:45:47 +00:00
Misha Brukman
de33e42aa9 File-related functions moved to FileUtilities.h .
llvm-svn: 7696
2003-08-07 21:42:28 +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
Chris Lattner
494b24e49f Completely remove mention of the correlated branch elimination pass. It has
bugs and needs to be reworked anyway.

llvm-svn: 7692
2003-08-07 21:30:12 +00:00
Misha Brukman
1e83bc90b9 Moved removeFile() and getUniqueFilename() into FileUtilities.
llvm-svn: 7691
2003-08-07 21:28:50 +00:00
Misha Brukman
5d7c46c4b3 * The possessive third-person singular has no apostrophe (its)
* Grouped header files to fit with the LLVM standard
* Fit code into 80 columns

llvm-svn: 7690
2003-08-07 21:23:52 +00:00
Misha Brukman
6cb08f34b6 Re-grouped and alphabetized headers for easier reading and cleaner style.
llvm-svn: 7689
2003-08-07 21:19:30 +00:00
Misha Brukman
461b7cdfc3 Fixed path for SystemUtils.h and a few code cleanups.
llvm-svn: 7688
2003-08-07 21:05:13 +00:00
Misha Brukman
43f3b68016 Moved SystemUtils.h to include/Support and SystemUtils.cpp to lib/Support.
llvm-svn: 7687
2003-08-07 21:04:42 +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
Misha Brukman
80ba72fe5c Implement LLVM intrinsics llvm.setjmp' and llvm.longjmp' as follows:
* setjmp() simply returns 0
* longjmp() simply calls abort()

llvm-svn: 7676
2003-08-07 15:43:46 +00:00
Vikram S. Adve
bc05294ada Fix assertion in MachineInstr::substituteValue().
llvm-svn: 7675
2003-08-07 15:01:48 +00:00
Vikram S. Adve
ba6f7167f0 Fix sanity-checking in 'maskUnsigned' code to be more precise:
use or def-and-use operands can be substituted after one def-only
operand has been substituted.

llvm-svn: 7674
2003-08-07 15:01:26 +00:00
John Criswell
e5d4f11e14 Fixed a segfault in gccld.
The original code does not work because the value from WorkList.end() is
invalidated once WorkList.erase() is called.  To ensure proper functionality,
we must ensure that WorkList.erase() is always called before WorkList.end().

llvm-svn: 7673
2003-08-07 14:43:13 +00:00
Chris Lattner
271dc1f51b Update tablegen interfaces
llvm-svn: 7672
2003-08-07 13:52:22 +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