Commit Graph

361 Commits

Author SHA1 Message Date
Chris Lattner
d97487d1e0 Actually share constants local to a function!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9417 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-23 16:29:12 +00:00
Chris Lattner
5f7e61d226 Add a new map
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9311 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:55:13 +00:00
John Criswell
6fbcc26f14 Added LLVM copyright header (for lack of a better term).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:19:47 +00:00
Brian Gaeke
661ab811d8 This file has funny include guards and funny extra whitespace.
Make this file less funny.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9186 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-16 23:43:35 +00:00
Chris Lattner
ea2c1dcb7c We'll need this soon as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9145 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-15 22:09:46 +00:00
Alkis Evlogimenos
185a7ab2ed Forward declare class Type since it is used in this class and Type.h is not included
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8958 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-08 04:45:45 +00:00
Alkis Evlogimenos
7237ecef13 Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8819 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-02 16:57:49 +00:00
Alkis Evlogimenos
eed462b685 Change llc command line for register allocators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8815 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-02 06:13:19 +00:00
Chris Lattner
e5d1a22ef2 Forward declare a class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8797 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 20:15:40 +00:00
Chris Lattner
799e0802b2 This got merged into Passes.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8796 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 20:15:32 +00:00
Chris Lattner
086610926f Include the sparc register in this file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8794 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 20:14:43 +00:00
Chris Lattner
48486893f4 Standardize header file comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 18:37:50 +00:00
Chris Lattner
c36e4f465c Fix header comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8779 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 18:12:25 +00:00
Chris Lattner
697ebcadbf Fix header, remove dead decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8777 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 18:06:51 +00:00
Chris Lattner
5259f8d030 Fix header file comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8776 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 18:05:30 +00:00
Chris Lattner
5ab12b579e Remove header files that were privatized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8307 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:33:38 +00:00
Chris Lattner
1a3350d6cd This file is never #included
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8300 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:19:31 +00:00
Tanya Lattner
f68b8a2dee Moved index in BB to common graph class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8175 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 15:31:28 +00:00
Tanya Lattner
d04087cce6 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8161 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-27 15:52:23 +00:00
Tanya Lattner
1796cb7fbc Cleaned up the code (spacing, not needed headers) and changed ostream function. Also made some functions inline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8154 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-27 02:45:08 +00:00
Tanya Lattner
0320b1406e SchedGraphCommon header file. Contains class definition for SchedGraphCommon which is used by SchedGraph and ModuloSchedGraph (coming soon).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8149 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-25 23:12:23 +00:00
Chris Lattner
b274d4a38b Add missing #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8063 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 23:08:55 +00:00
Misha Brukman
ef6a6a69ff The word dependent' has no a'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 22:14:26 +00:00
Chris Lattner
f4f5f8bcaa Add support for basic blocks, unary/binary unspecs, conditional branches, ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7874 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-15 04:52:51 +00:00
Brian Gaeke
bf3c4cfaad Factory methods for function passes now return type FunctionPass *.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7839 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-14 06:09:32 +00:00
Brian Gaeke
19df3876e6 Factory methods for FunctionPasses now return type FunctionPass *.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-13 18:18:15 +00:00
Vikram S. Adve
906cd975df Make MInst2LVSetBI and MInst2LVSetAI be hash_maps instead of maps.
Add some comments and non-const methods to fix constness problems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7797 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-12 23:39:08 +00:00
Chris Lattner
cacf462915 Initial checkin of SelectionDAG header file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7716 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 14:56:26 +00:00
Chris Lattner
3314d8d656 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
2003-08-07 00:17:00 +00:00
Chris Lattner
5e8b77e375 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
2003-08-05 22:39:13 +00:00
Chris Lattner
610234d5c9 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
2003-08-05 21:55:20 +00:00
Chris Lattner
e057ca61b1 Remove unused method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7608 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 17:09:08 +00:00
Chris Lattner
a2dd745613 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
2003-08-05 16:58:46 +00:00
Vikram S. Adve
0eb7f745ed Don't require a BB to look-up live variables, unless they may need to
be recomputed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7384 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 19:32:04 +00:00
Chris Lattner
38dbde19cc Fix copy and paste-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7378 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 05:15:44 +00:00
Chris Lattner
ad5e1f8153 Define target value types in a form usable by target-independent code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7375 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-29 05:13:09 +00:00
Chris Lattner
1194e95019 Code generation phases are not allowed to modify the LLVM representation.
Because of this, we'll make the MBB->BB mapping const as it should be


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7351 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-26 23:30:37 +00:00
Chris Lattner
70534ee581 Whoops, this one was needed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7346 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-26 23:18:11 +00:00
Chris Lattner
bae47e5691 Remove extraneous #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7341 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-26 23:00:29 +00:00
Vikram S. Adve
b1e6f05110 Add an assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7326 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25 20:58:57 +00:00
Misha Brukman
bc0e998c49 The word separate' only has one e'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7173 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-14 17:20:40 +00:00
Vikram S. Adve
4d2faf6307 Values stored in CallArgsDescriptor cannot be const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7156 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-10 19:46:15 +00:00
Vikram S. Adve
627eb31cd7 Change interface to MachineInstr::substituteValue to specify more precisely
which args can be substituted: defsOnly, defsAndUses or usesOnly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7154 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-10 19:45:07 +00:00
Vikram S. Adve
daee2b492f Leak fix: delete old objects before reallocation in an assignment operator!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7055 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02 01:25:44 +00:00
John Criswell
7a73b80b90 Merged in autoconf branch. This provides configuration via the autoconf
system.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-30 21:59:07 +00:00
Chris Lattner
3889a2cb05 Remove a ton of extraneous #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6842 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-22 03:08:05 +00:00
John Criswell
be583b914d Included assert.h so that the code compiles under newer versions of GCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6682 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-11 14:01:36 +00:00
Chris Lattner
b05497e0ca Minor cleanups:
* Document the MOTy namespace correctly for doxygen
  * Eliminate usage of the MachineOpCode typedef, which should eventually
    be eliminated entirely.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6584 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-03 15:42:53 +00:00
Chris Lattner
4052cf998f Remove use of enum
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6582 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-03 15:41:45 +00:00
Chris Lattner
4ade9ed40f Remove noncopyable base class as it was making the doxygen docs harder to read
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6576 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-03 15:29:12 +00:00