oota-llvm.git
21 years agoFinish implementation of nonterminal instantiation.
Chris Lattner [Thu, 7 Aug 2003 23:16:20 +0000 (23:16 +0000)]
Finish implementation of nonterminal instantiation.
Tree patterns are now, finally, ready to use!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7699 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd new method to get a value type as a string
Chris Lattner [Thu, 7 Aug 2003 23:15:21 +0000 (23:15 +0000)]
Add new method to get a value type as a string

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7698 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Fix <>'s in code to be &lt;&gt;'s
Chris Lattner [Thu, 7 Aug 2003 21:45:47 +0000 (21:45 +0000)]
* Fix <>'s in code to be &lt;&gt;'s
* Add section describing how we prefer #includes to be ordered

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7697 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFile-related functions moved to FileUtilities.h .
Misha Brukman [Thu, 7 Aug 2003 21:42:28 +0000 (21:42 +0000)]
File-related functions moved to FileUtilities.h .

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7696 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoclose() requires "unistd.h" .
Misha Brukman [Thu, 7 Aug 2003 21:35:41 +0000 (21:35 +0000)]
close() requires "unistd.h" .

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7695 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDoxygen-ify the comments by using '///' instead of '//'.
Misha Brukman [Thu, 7 Aug 2003 21:34:25 +0000 (21:34 +0000)]
Doxygen-ify the comments by using '///' instead of '//'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7694 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove references to `bugpoint' from the now-generic system utilities.
Misha Brukman [Thu, 7 Aug 2003 21:33:33 +0000 (21:33 +0000)]
Remove references to `bugpoint' from the now-generic system utilities.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7693 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCompletely remove mention of the correlated branch elimination pass. It has
Chris Lattner [Thu, 7 Aug 2003 21:30:12 +0000 (21:30 +0000)]
Completely remove mention of the correlated branch elimination pass.  It has
bugs and needs to be reworked anyway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7692 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMoved removeFile() and getUniqueFilename() into FileUtilities.
Misha Brukman [Thu, 7 Aug 2003 21:28:50 +0000 (21:28 +0000)]
Moved removeFile() and getUniqueFilename() into FileUtilities.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7691 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* The possessive third-person singular has no apostrophe (its)
Misha Brukman [Thu, 7 Aug 2003 21:23:52 +0000 (21:23 +0000)]
* The possessive third-person singular has no apostrophe (its)
* Grouped header files to fit with the LLVM standard
* Fit code into 80 columns

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7690 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRe-grouped and alphabetized headers for easier reading and cleaner style.
Misha Brukman [Thu, 7 Aug 2003 21:19:30 +0000 (21:19 +0000)]
Re-grouped and alphabetized headers for easier reading and cleaner style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7689 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFixed path for SystemUtils.h and a few code cleanups.
Misha Brukman [Thu, 7 Aug 2003 21:05:13 +0000 (21:05 +0000)]
Fixed path for SystemUtils.h and a few code cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7688 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMoved SystemUtils.h to include/Support and SystemUtils.cpp to lib/Support.
Misha Brukman [Thu, 7 Aug 2003 21:04:42 +0000 (21:04 +0000)]
Moved SystemUtils.h to include/Support and SystemUtils.cpp to lib/Support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7687 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoImplement type-inference/checking for non-terminal references
Chris Lattner [Thu, 7 Aug 2003 21:02:56 +0000 (21:02 +0000)]
Implement type-inference/checking for non-terminal references

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7686 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRename all of the "Process" methods to be "read" methods, start the Instantiate method
Chris Lattner [Thu, 7 Aug 2003 20:42:23 +0000 (20:42 +0000)]
Rename all of the "Process" methods to be "read" methods, start the Instantiate method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7685 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd support for "cast" nodes, which are required when there is not enough information
Chris Lattner [Thu, 7 Aug 2003 19:59:42 +0000 (19:59 +0000)]
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)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7684 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse the new version of isSubClassOf
Chris Lattner [Thu, 7 Aug 2003 19:42:14 +0000 (19:42 +0000)]
Use the new version of isSubClassOf

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7683 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd and use a new method
Chris Lattner [Thu, 7 Aug 2003 19:41:59 +0000 (19:41 +0000)]
Add and use a new method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7682 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCleanup and reorganize code, no functional changes
Chris Lattner [Thu, 7 Aug 2003 19:28:55 +0000 (19:28 +0000)]
Cleanup and reorganize code, no functional changes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7679 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRead in expanders too
Chris Lattner [Thu, 7 Aug 2003 19:21:10 +0000 (19:21 +0000)]
Read in expanders too

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7678 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoContinued evolution of the selector emitter: Represent instruction patterns
Chris Lattner [Thu, 7 Aug 2003 19:12:24 +0000 (19:12 +0000)]
Continued evolution of the selector emitter: Represent instruction patterns
as first class objects

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7677 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoImplement LLVM intrinsics `llvm.setjmp' and `llvm.longjmp' as follows:
Misha Brukman [Thu, 7 Aug 2003 15:43:46 +0000 (15:43 +0000)]
Implement LLVM intrinsics `llvm.setjmp' and `llvm.longjmp' as follows:
* setjmp() simply returns 0
* longjmp() simply calls abort()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7676 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix assertion in MachineInstr::substituteValue().
Vikram S. Adve [Thu, 7 Aug 2003 15:01:48 +0000 (15:01 +0000)]
Fix assertion in MachineInstr::substituteValue().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7675 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix sanity-checking in 'maskUnsigned' code to be more precise:
Vikram S. Adve [Thu, 7 Aug 2003 15:01:26 +0000 (15:01 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7674 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFixed a segfault in gccld.
John Criswell [Thu, 7 Aug 2003 14:43:13 +0000 (14:43 +0000)]
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().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7673 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUpdate tablegen interfaces
Chris Lattner [Thu, 7 Aug 2003 13:52:22 +0000 (13:52 +0000)]
Update tablegen interfaces

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7672 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFinish implementation of the type inference engine.
Chris Lattner [Thu, 7 Aug 2003 06:02:15 +0000 (06:02 +0000)]
Finish implementation of the type inference engine.
Start working on reading in nonterminals

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7671 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAllow clients to get at the pointer type
Chris Lattner [Thu, 7 Aug 2003 06:01:44 +0000 (06:01 +0000)]
Allow clients to get at the pointer type

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7670 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd new method getVAlueAsDag
Chris Lattner [Thu, 7 Aug 2003 06:00:43 +0000 (06:00 +0000)]
Add new method getVAlueAsDag

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7669 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInitial checkin of tree pattern parser and type inference engine (which still needs...
Chris Lattner [Thu, 7 Aug 2003 05:40:14 +0000 (05:40 +0000)]
Initial checkin of tree pattern parser and type inference engine (which still needs work).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7668 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoEliminate now-dead method
Chris Lattner [Thu, 7 Aug 2003 05:39:37 +0000 (05:39 +0000)]
Eliminate now-dead method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7667 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoStart using the CodeGeneratorWrappers
Chris Lattner [Thu, 7 Aug 2003 05:39:09 +0000 (05:39 +0000)]
Start using the CodeGeneratorWrappers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7666 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInitial checkin of useful wrappers around the Target classes, for now, only ValueType and
Chris Lattner [Thu, 7 Aug 2003 05:38:11 +0000 (05:38 +0000)]
Initial checkin of useful wrappers around the Target classes, for now, only ValueType and
Target are wrapped

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7665 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemoved the support for pool allocation testing. This will be in a separate TEST...
Sumant Kowshik [Thu, 7 Aug 2003 05:36:53 +0000 (05:36 +0000)]
Removed the support for pool allocation testing. This will be in a separate TEST file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7664 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChange implementation so that variable sized slabs are used to allow arbitrary sized...
Sumant Kowshik [Thu, 7 Aug 2003 05:31:04 +0000 (05:31 +0000)]
Change implementation so that variable sized slabs are used to allow arbitrary sized array allocations

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7663 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded code for pool allocating only the pool-allocatable data structures in the prese...
Sumant Kowshik [Thu, 7 Aug 2003 05:29:28 +0000 (05:29 +0000)]
Added code for pool allocating only the pool-allocatable data structures in the presence of collapsed nodes + a couple of bug fixes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7662 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis register is never used, disable it.
Chris Lattner [Thu, 7 Aug 2003 04:49:16 +0000 (04:49 +0000)]
This register is never used, disable it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7661 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded a flag which is set when all data structures are not pool allocated
Sumant Kowshik [Thu, 7 Aug 2003 04:37:52 +0000 (04:37 +0000)]
Added a flag which is set when all data structures are not pool allocated

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7660 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThere was no reason for these to be bit-fields, they just need to be unique.
Chris Lattner [Thu, 7 Aug 2003 00:17:00 +0000 (00:17 +0000)]
There was no reason for  these to be bit-fields, they just need to be unique.
Also, add an isVoid item

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7659 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChanging command-line option formats to be more consistent with LLVM style.
Misha Brukman [Wed, 6 Aug 2003 23:25:25 +0000 (23:25 +0000)]
Changing command-line option formats to be more consistent with LLVM style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7658 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Renamed option from `nopreselect' to `nopreopt' since it disables more than
Misha Brukman [Wed, 6 Aug 2003 23:06:21 +0000 (23:06 +0000)]
* Renamed option from `nopreselect' to `nopreopt' since it disables more than
  just PreSelection
* Wrapped code at 80 columns
* Added the DecomposeMultiDimRefs Pass to the JIT compilation path

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7657 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoIck, add the RIGHT accessor
Chris Lattner [Wed, 6 Aug 2003 23:01:18 +0000 (23:01 +0000)]
Ick, add the RIGHT accessor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7656 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd accessor
Chris Lattner [Wed, 6 Aug 2003 23:00:31 +0000 (23:00 +0000)]
Add accessor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7655 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThere is something wrong with code that looks like:
Chris Lattner [Wed, 6 Aug 2003 22:29:04 +0000 (22:29 +0000)]
There is something wrong with code that looks like:
if (R == 0 || ...)
  R->getName()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7654 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse the registers g1 and g5 as temporaries for making far jumps and far calls,
Misha Brukman [Wed, 6 Aug 2003 22:19:18 +0000 (22:19 +0000)]
Use the registers g1 and g5 as temporaries for making far jumps and far calls,
because saving i1 and i2 to their ``designated'' stack slots corrupts unknown
memory in other functions, standard libraries, and worse.

In addition, this has the benefit of improving JIT performance because we
eliminate writing out 4 instructions in CompilationCallback() and 2 loads and 2
stores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7653 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemoved Makefile.common.
John Criswell [Wed, 6 Aug 2003 21:50:36 +0000 (21:50 +0000)]
Removed Makefile.common.
Since we are including Makefile.test, we automatically get Makefile.common.
Furthermore, the double inclusion of Makefile.common causes the test suite to
be executed twice per invocation of the top level make.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7652 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoExport the register classes so that the instruction selector can get at them as needed
Chris Lattner [Wed, 6 Aug 2003 21:47:14 +0000 (21:47 +0000)]
Export the register classes so that the instruction selector can get at them as needed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7651 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMakefile.common: Remove commented-out and duplicate rules.
Brian Gaeke [Wed, 6 Aug 2003 21:44:22 +0000 (21:44 +0000)]
Makefile.common: Remove commented-out and duplicate rules.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7650 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd a bunch of new Alpha Intrinsics for Rahul Joshi
Chris Lattner [Wed, 6 Aug 2003 20:08:25 +0000 (20:08 +0000)]
Add a bunch of new Alpha Intrinsics for Rahul Joshi

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7646 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago1. Bug fix: was using SLL instead of SLLX for ULongTy. Chump.
Vikram S. Adve [Wed, 6 Aug 2003 18:48:40 +0000 (18:48 +0000)]
1. Bug fix: was using SLL instead of SLLX for ULongTy.  Chump.
2. Handle fp-to-uint conversions directly here instead of relying on
   a pre-transformation to replace them with the 2-step conversion.
3. Use size rather than explicitly checking types when deciding what
   opcodes to use, wherever possible.  This is less error prone (the
   bug fix above was not the first time!).
4. Float-to-pointer casts shd now work though this hasn't been tested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7645 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove conversion of fp-to-uint cast into a multi-step cast:
Vikram S. Adve [Wed, 6 Aug 2003 18:42:49 +0000 (18:42 +0000)]
Remove conversion of fp-to-uint cast into a multi-step cast:
this is not an optional transformation on SPARC and is now handled
directly by instruction selection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7644 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoNew testcase
Chris Lattner [Wed, 6 Aug 2003 18:26:19 +0000 (18:26 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7643 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe HAVE_JUMP code is dead, these intrinsics should _never_ be expanded
Chris Lattner [Wed, 6 Aug 2003 18:04:40 +0000 (18:04 +0000)]
The HAVE_JUMP code is dead, these intrinsics should _never_ be expanded

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7642 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove unnecessary use of NonCopyable
Chris Lattner [Wed, 6 Aug 2003 17:16:24 +0000 (17:16 +0000)]
Remove unnecessary use of NonCopyable

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7641 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded asserts to prevent negative shift amounts from being generated.
Misha Brukman [Wed, 6 Aug 2003 16:28:49 +0000 (16:28 +0000)]
Added asserts to prevent negative shift amounts from being generated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7640 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSparcV9CodeEmitter.cpp:
Misha Brukman [Wed, 6 Aug 2003 16:20:22 +0000 (16:20 +0000)]
SparcV9CodeEmitter.cpp:
* Doxygen-ified comments
* Added capability to make far calls (i.e., beyond 30 bits in CALL instr)
  which implies that we need to delete function references that were added by
  the call to addFunctionReference() because the actual call instruction is 10
  instructions away (thanks to 64-bit address construction)
* Cleaned up code that generates far jumps by using an array+loop

SparcV9CodeEmitter.h:
* Explained more of the side-effects of emitFarCall()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7639 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSort the file lists
Chris Lattner [Wed, 6 Aug 2003 16:02:50 +0000 (16:02 +0000)]
Sort the file lists

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7638 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoLoop unroller doesn't necessarily need to be profile driven
Chris Lattner [Wed, 6 Aug 2003 15:40:37 +0000 (15:40 +0000)]
Loop unroller doesn't necessarily need to be profile driven

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7637 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCompletely eliminate the isVoid TSFlag, shifting over all other fields
Chris Lattner [Wed, 6 Aug 2003 15:32:20 +0000 (15:32 +0000)]
Completely eliminate the isVoid TSFlag, shifting over all other fields

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7636 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoadd a pattern for RET, immediates no longer need to be explicitly typed
Chris Lattner [Wed, 6 Aug 2003 15:31:35 +0000 (15:31 +0000)]
add a pattern for RET, immediates no longer need to be explicitly typed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7635 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoStart adding usefulness to the DAG node definitions, add a new Expander
Chris Lattner [Wed, 6 Aug 2003 15:31:02 +0000 (15:31 +0000)]
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

21 years agoAdd error checking code to the node type parser. Start the instruction pattern
Chris Lattner [Wed, 6 Aug 2003 06:16:35 +0000 (06:16 +0000)]
Add error checking code to the node type parser.  Start the instruction pattern
reader

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7632 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInitial support for an instruction selector emitter
Chris Lattner [Wed, 6 Aug 2003 05:42:05 +0000 (05:42 +0000)]
Initial support for an instruction selector emitter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7631 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAll good classes with virtual functions should have virtual dtors...
Chris Lattner [Wed, 6 Aug 2003 05:39:03 +0000 (05:39 +0000)]
All good classes with virtual functions should have virtual dtors...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7630 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd an instruction selector emitter skeleton
Chris Lattner [Wed, 6 Aug 2003 04:47:56 +0000 (04:47 +0000)]
Add an instruction selector emitter skeleton

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7629 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoconvert over to using TableGen backends
Chris Lattner [Wed, 6 Aug 2003 04:36:35 +0000 (04:36 +0000)]
convert over to using TableGen backends

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7628 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSwitch code over to being a TableGenBackend
Chris Lattner [Wed, 6 Aug 2003 04:32:07 +0000 (04:32 +0000)]
Switch code over to being a TableGenBackend

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7627 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd more helper methods
Chris Lattner [Wed, 6 Aug 2003 04:31:26 +0000 (04:31 +0000)]
Add more helper methods

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7626 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoNew common interface for backends to use
Chris Lattner [Wed, 6 Aug 2003 04:23:04 +0000 (04:23 +0000)]
New common interface for backends to use

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7625 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded POOLFLAGS option to run pool allocation
Sumant Kowshik [Wed, 6 Aug 2003 01:03:28 +0000 (01:03 +0000)]
Added POOLFLAGS option to run pool allocation

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7624 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago"fix" coding style stuff
Chris Lattner [Tue, 5 Aug 2003 22:54:23 +0000 (22:54 +0000)]
"fix" coding style stuff
Change some <>'s into &lt;&gt;'s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7623 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCompletely eliminate the per-machine-instruction regsUsed set.
Chris Lattner [Tue, 5 Aug 2003 22:39:13 +0000 (22:39 +0000)]
Completely eliminate the per-machine-instruction regsUsed set.

This substantially shrinks the size of each machine instruction, which should
make allocation faster and the cache footprint of the machine code lighter.

Here are some timings for code generation of the larger benchmarks we have.
This are timings of code generation phases of the X86 JIT, when compiled in
debug mode:

Before After Diff
164.gzip:
  InstSel 0.0878 0.0722 -21.6%
  RegAlloc 0.2031 0.1757 -15.6%
  TOTAL 0.5585 0.4999 -11.7%
Ptrdist-bc:
  InstSel 0.0878 0.0722 -21.6%
  RegAlloc 0.2070 0.1933 - 7.1%
  TOTAL 0.6972 0.6464 - 7.9%
197.parser:
  InstSel 0.2148 0.2148 - 0.0%
  RegAlloc 0.4941 0.4277 -15.5%
  TOTAL 1.3749 1.2851 - 7.0%
175.vpr:
  InstSel 0.2519 0.2109 -19.4%
  RegAlloc 0.5976 0.5663 - 5.5%
  TOTAL 1.6933 1.6347 - 3.5%
254.gap:
  InstSel 1.1328 0.9921 -14.2%
  RegAlloc 2.6933 2.4804 - 8.6%
  TOTAL 7.7871 7.2499 - 7.4%

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7622 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse a new local data structure instead of the MachineInstr::regsUsed set
Chris Lattner [Tue, 5 Aug 2003 22:11:13 +0000 (22:11 +0000)]
Use a new local data structure instead of the MachineInstr::regsUsed set

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7621 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd a map
Chris Lattner [Tue, 5 Aug 2003 22:09:31 +0000 (22:09 +0000)]
Add a map

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7620 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMinor cleanups
Chris Lattner [Tue, 5 Aug 2003 22:03:27 +0000 (22:03 +0000)]
Minor cleanups

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7619 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoPhysical registers no longer live in the regsUsed set for each machine instr
Chris Lattner [Tue, 5 Aug 2003 21:55:58 +0000 (21:55 +0000)]
Physical registers no longer live in the regsUsed set for each machine instr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7618 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDo not insert physical regsiters into the regsUsed set
Chris Lattner [Tue, 5 Aug 2003 21:55:20 +0000 (21:55 +0000)]
Do not insert physical regsiters into the regsUsed set

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7617 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoReverted back to using OR for cmp/mv operations for lex/yacc output.
John Criswell [Tue, 5 Aug 2003 21:38:28 +0000 (21:38 +0000)]
Reverted back to using OR for cmp/mv operations for lex/yacc output.
The shell AND/OR operators short-circuit on command success/failure, which is
the inverse of exit status (i.e. 0 means success, non-zero means failure).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7616 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSwitched from using diff to cmp for two reasons:
John Criswell [Tue, 5 Aug 2003 21:21:58 +0000 (21:21 +0000)]
Switched from using diff to cmp for two reasons:
o Not all versions of diff have the -q option
o The cmp program is probably faster than diff
Fixed the logic that only copies the file over if no differences are found.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7615 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFixed minor bug in SafeToHoist and made some changes suggested by Chris.
Tanya Lattner [Tue, 5 Aug 2003 20:39:02 +0000 (20:39 +0000)]
Fixed minor bug in SafeToHoist and made some changes suggested by Chris.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7614 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded LICM test cases to:
Tanya Lattner [Tue, 5 Aug 2003 18:52:42 +0000 (18:52 +0000)]
Added LICM test cases to:

1) Check that trapping instructionns that are not guaranteed to execute are not hoisted.
2) Check that trapping instructions that are guaranteed to execute are hoisted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7613 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFixed LICM bug that hoists trapping instructions that are not guaranteed to execute.
Tanya Lattner [Tue, 5 Aug 2003 18:45:46 +0000 (18:45 +0000)]
Fixed LICM bug that hoists trapping instructions that are not guaranteed to execute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7612 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMinor changes:
Chris Lattner [Tue, 5 Aug 2003 18:44:12 +0000 (18:44 +0000)]
Minor changes:
  * Expand most tabs into spaces
  * Move #define DEBUG_TYPE to top of file to avoid warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7611 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd more verbose comment
Chris Lattner [Tue, 5 Aug 2003 18:38:37 +0000 (18:38 +0000)]
Add more verbose comment

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7610 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd a comment to the method decl
Chris Lattner [Tue, 5 Aug 2003 18:38:16 +0000 (18:38 +0000)]
Add a comment to the method decl

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7609 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove unused method
Chris Lattner [Tue, 5 Aug 2003 17:09:08 +0000 (17:09 +0000)]
Remove unused method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7608 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded declaration of mergeInGlobalsGraph
Sumant Kowshik [Tue, 5 Aug 2003 17:06:18 +0000 (17:06 +0000)]
Added declaration of mergeInGlobalsGraph

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7607 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded function mergeInGlobalsGraph which merges in the entire globals graph with...
Sumant Kowshik [Tue, 5 Aug 2003 17:04:41 +0000 (17:04 +0000)]
Added function mergeInGlobalsGraph which merges in the entire globals graph with the graph of a function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7606 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMajor bug fixes including a memory leak and tracking some exceptional conditions...
Sumant Kowshik [Tue, 5 Aug 2003 17:01:54 +0000 (17:01 +0000)]
Major bug fixes including a memory leak and tracking some exceptional conditions. Also added support for including global and indirect call information in the DS graphs used by the pool allocation

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7605 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSpecify DEBUG_TYPE's for the JIT debug messages
Chris Lattner [Tue, 5 Aug 2003 17:00:32 +0000 (17:00 +0000)]
Specify DEBUG_TYPE's for the JIT debug messages

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7604 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis method has now been changed to preserve flags for us!
Chris Lattner [Tue, 5 Aug 2003 16:59:24 +0000 (16:59 +0000)]
This method has now been changed to preserve flags for us!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7603 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAll callers of these methods actually wanted them to preserve the flags,
Chris Lattner [Tue, 5 Aug 2003 16:58:46 +0000 (16:58 +0000)]
All callers of these methods actually wanted them to preserve the flags,
so get rid of the def/use parameters that were getting passed in.

**** This now changes the semantics of these methods to preserve the flags,
     not clobber them!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7602 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded the declaration of InlineIndirectCalls
Sumant Kowshik [Tue, 5 Aug 2003 16:56:59 +0000 (16:56 +0000)]
Added the declaration of InlineIndirectCalls

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7601 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFactor shared code
Chris Lattner [Tue, 5 Aug 2003 16:34:44 +0000 (16:34 +0000)]
Factor shared code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7600 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix bug: SimplifyCFG/2003-08-05-InvokeCrash.ll
Chris Lattner [Tue, 5 Aug 2003 16:27:44 +0000 (16:27 +0000)]
Fix bug: SimplifyCFG/2003-08-05-InvokeCrash.ll
Fix bug: SimplifyCFG/2003-08-05-MishandleInvoke.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7599 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agonew testcases that simplifycfg breaks
Chris Lattner [Tue, 5 Aug 2003 16:11:36 +0000 (16:11 +0000)]
new testcases that simplifycfg breaks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7598 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Removed `using' declaration, now use full namespace qualifier std::string
Misha Brukman [Tue, 5 Aug 2003 16:01:50 +0000 (16:01 +0000)]
* Removed `using' declaration, now use full namespace qualifier std::string
* Simplified code by using an inline function instead of copy-pasted code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7597 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoIf we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it for
Chris Lattner [Tue, 5 Aug 2003 15:51:05 +0000 (15:51 +0000)]
If we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it for
narrowing, no matter what.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7596 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoImplement TODO: print out short form of Invoke if possible
Chris Lattner [Tue, 5 Aug 2003 15:34:45 +0000 (15:34 +0000)]
Implement TODO: print out short form of Invoke if possible

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7595 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoOnly test the vector of functions if it is non-empty.
Misha Brukman [Tue, 5 Aug 2003 15:26:21 +0000 (15:26 +0000)]
Only test the vector of functions if it is non-empty.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7594 91177308-0d34-0410-b5e6-96231b3b80d8