1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 14:33:02 +02:00
Commit Graph

412 Commits

Author SHA1 Message Date
Brian Gaeke
d25f86d683 Put all LLVM code into the llvm namespace, as per bug 109.
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Chris Lattner
59ee30fa40 Actually share constants local to a function!
llvm-svn: 9417
2003-10-23 16:29:12 +00:00
Chris Lattner
a227bfeff3 Add a new map
llvm-svn: 9311
2003-10-20 20:55:13 +00:00
John Criswell
16c6cda9d5 Added LLVM copyright header (for lack of a better term).
llvm-svn: 9304
2003-10-20 20:19:47 +00:00
Brian Gaeke
2a7cedb657 This file has funny include guards and funny extra whitespace.
Make this file less funny.

llvm-svn: 9186
2003-10-16 23:43:35 +00:00
Chris Lattner
9db0d011b4 We'll need this soon as well
llvm-svn: 9145
2003-10-15 22:09:46 +00:00
Alkis Evlogimenos
33a498f90c Forward declare class Type since it is used in this class and Type.h is not included
llvm-svn: 8958
2003-10-08 04:45:45 +00:00
Alkis Evlogimenos
a37b58ce09 Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller.
llvm-svn: 8819
2003-10-02 16:57:49 +00:00
Alkis Evlogimenos
42a09316bb Change llc command line for register allocators
llvm-svn: 8815
2003-10-02 06:13:19 +00:00
Chris Lattner
c3767eab12 Forward declare a class
llvm-svn: 8797
2003-09-30 20:15:40 +00:00
Chris Lattner
d63bd276f0 This got merged into Passes.h
llvm-svn: 8796
2003-09-30 20:15:32 +00:00
Chris Lattner
08d6f140ab Include the sparc register in this file
llvm-svn: 8794
2003-09-30 20:14:43 +00:00
Chris Lattner
4e4c763dfc Standardize header file comments
llvm-svn: 8782
2003-09-30 18:37:50 +00:00
Chris Lattner
0c15a20712 Fix header comment
llvm-svn: 8779
2003-09-30 18:12:25 +00:00
Chris Lattner
1ea5d5a0c0 Fix header, remove dead decl
llvm-svn: 8777
2003-09-30 18:06:51 +00:00
Chris Lattner
7d059b8c3d Fix header file comment
llvm-svn: 8776
2003-09-30 18:05:30 +00:00
Chris Lattner
87d223c70e Remove header files that were privatized
llvm-svn: 8307
2003-09-01 20:33:38 +00:00
Chris Lattner
aeb98733eb This file is never #included
llvm-svn: 8300
2003-09-01 20:19:31 +00:00
Tanya Lattner
ff06e1a796 Moved index in BB to common graph class.
llvm-svn: 8175
2003-08-28 15:31:28 +00:00
Tanya Lattner
68f651356f *** empty log message ***
llvm-svn: 8161
2003-08-27 15:52:23 +00:00
Tanya Lattner
93162e16d6 Cleaned up the code (spacing, not needed headers) and changed ostream function. Also made some functions inline.
llvm-svn: 8154
2003-08-27 02:45:08 +00:00
Tanya Lattner
9353c099ac SchedGraphCommon header file. Contains class definition for SchedGraphCommon which is used by SchedGraph and ModuloSchedGraph (coming soon).
llvm-svn: 8149
2003-08-25 23:12:23 +00:00
Chris Lattner
8e9740071f Add missing #include
llvm-svn: 8063
2003-08-22 23:08:55 +00:00
Misha Brukman
cda7f97dbb The word dependent' has no a'.
llvm-svn: 8030
2003-08-21 22:14:26 +00:00
Chris Lattner
d929db2450 Add support for basic blocks, unary/binary unspecs, conditional branches, ...
llvm-svn: 7874
2003-08-15 04:52:51 +00:00
Brian Gaeke
4651096037 Factory methods for function passes now return type FunctionPass *.
llvm-svn: 7839
2003-08-14 06:09:32 +00:00
Brian Gaeke
77c65be59e Factory methods for FunctionPasses now return type FunctionPass *.
llvm-svn: 7823
2003-08-13 18:18:15 +00:00
Vikram S. Adve
1e41dd39ae Make MInst2LVSetBI and MInst2LVSetAI be hash_maps instead of maps.
Add some comments and non-const methods to fix constness problems.

llvm-svn: 7797
2003-08-12 23:39:08 +00:00
Chris Lattner
49f6244b56 Initial checkin of SelectionDAG header file
llvm-svn: 7716
2003-08-11 14:56:26 +00:00
Chris Lattner
142e03de74 There was no reason for these to be bit-fields, they just need to be unique.
Also, add an isVoid item

llvm-svn: 7659
2003-08-07 00:17:00 +00:00
Chris Lattner
138a3fc9ab 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%

llvm-svn: 7622
2003-08-05 22:39:13 +00:00
Chris Lattner
a826c8d485 Do not insert physical regsiters into the regsUsed set
llvm-svn: 7617
2003-08-05 21:55:20 +00:00
Chris Lattner
8da1b00db6 Remove unused method
llvm-svn: 7608
2003-08-05 17:09:08 +00:00
Chris Lattner
b047a0d449 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!

llvm-svn: 7602
2003-08-05 16:58:46 +00:00
Vikram S. Adve
37047489b7 Don't require a BB to look-up live variables, unless they may need to
be recomputed.

llvm-svn: 7384
2003-07-29 19:32:04 +00:00
Chris Lattner
9b62a24451 Fix copy and paste-o
llvm-svn: 7378
2003-07-29 05:15:44 +00:00
Chris Lattner
337787e85b Define target value types in a form usable by target-independent code
llvm-svn: 7375
2003-07-29 05:13:09 +00:00
Chris Lattner
a522d0ebf9 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

llvm-svn: 7351
2003-07-26 23:30:37 +00:00
Chris Lattner
e99fa3f42e Whoops, this one was needed
llvm-svn: 7346
2003-07-26 23:18:11 +00:00
Chris Lattner
9224631d6b Remove extraneous #includes
llvm-svn: 7341
2003-07-26 23:00:29 +00:00
Vikram S. Adve
19309fca4b Add an assertion.
llvm-svn: 7326
2003-07-25 20:58:57 +00:00
Misha Brukman
5de3e14206 The word separate' only has one e'.
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
Vikram S. Adve
d8b600cb85 Values stored in CallArgsDescriptor cannot be const.
llvm-svn: 7156
2003-07-10 19:46:15 +00:00
Vikram S. Adve
6aa3abf7fa Change interface to MachineInstr::substituteValue to specify more precisely
which args can be substituted: defsOnly, defsAndUses or usesOnly.

llvm-svn: 7154
2003-07-10 19:45:07 +00:00
Vikram S. Adve
e133e7d852 Leak fix: delete old objects before reallocation in an assignment operator!
llvm-svn: 7055
2003-07-02 01:25:44 +00:00
John Criswell
258dfc0319 Merged in autoconf branch. This provides configuration via the autoconf
system.

llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Chris Lattner
6c12776232 Remove a ton of extraneous #includes
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
John Criswell
4781723de6 Included assert.h so that the code compiles under newer versions of GCC.
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
Chris Lattner
7aaea42f1e Minor cleanups:
* Document the MOTy namespace correctly for doxygen
  * Eliminate usage of the MachineOpCode typedef, which should eventually
    be eliminated entirely.

llvm-svn: 6584
2003-06-03 15:42:53 +00:00
Chris Lattner
846c593142 Remove use of enum
llvm-svn: 6582
2003-06-03 15:41:45 +00:00
Chris Lattner
b1c22980b1 Remove noncopyable base class as it was making the doxygen docs harder to read
llvm-svn: 6576
2003-06-03 15:29:12 +00:00
Chris Lattner
68f1b02a60 Remove NonCopyable base class to clean up doxygen output
llvm-svn: 6551
2003-06-02 22:07:37 +00:00
Chris Lattner
d94534c537 Hack up MachineCodeEmitter to actually be target independent.
llvm-svn: 6514
2003-06-01 23:20:02 +00:00
Vikram S. Adve
2c9fc5ded3 Renamed a variable.
llvm-svn: 6472
2003-05-31 07:43:41 +00:00
Vikram S. Adve
c40874054e Support for annul/pred and other future flags on op codes.
Support for recording the physical register for implcit references.

llvm-svn: 6471
2003-05-31 07:43:01 +00:00
Vikram S. Adve
d43c10b583 Added MachineCodeForInstruction object as an argument to
TmpInstruction constructors because every TmpInstruction object has
to be registered with a MachineCodeForInstruction to prevent leaks.
This simplifies the user's code.

llvm-svn: 6469
2003-05-31 07:41:24 +00:00
Misha Brukman
c5a1e94883 Added saveBBreferences() for BasicBlock resolution.
llvm-svn: 6451
2003-05-30 20:32:45 +00:00
Misha Brukman
6e0ae68c05 Defines a pass-through debugging emitter -- it writes to a file for inspection
and to memory to test execution (using a passed-in code emitter).

llvm-svn: 6365
2003-05-27 21:46:56 +00:00
Vikram S. Adve
ab50c0aee5 Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
and related functions and flags.  Fixed several bugs where only
"isDef" was being checked, not "isDefAndUse".

llvm-svn: 6342
2003-05-27 00:06:48 +00:00
Chris Lattner
afc685b278 Beef up interface, move getVarInfo out-of-line.
llvm-svn: 6114
2003-05-12 14:23:04 +00:00
Chris Lattner
d06c47110a Expand API for updating live var info.
Expose iterators, not const-iterators.
Rename method that was VERY misleading

llvm-svn: 6108
2003-05-12 03:51:30 +00:00
Chris Lattner
3160b1235e Allow const functions
llvm-svn: 6056
2003-05-09 03:27:41 +00:00
Chris Lattner
836e8c1f2a Fix bug in last checkin
llvm-svn: 6055
2003-05-08 22:00:52 +00:00
Chris Lattner
7c8bf633a5 Add new methods for stub generation
llvm-svn: 6053
2003-05-08 21:53:57 +00:00
Chris Lattner
d2fae9f27c Add comments, add a vector to keep track of which registers are allocatable
llvm-svn: 6014
2003-05-07 20:07:58 +00:00
Chris Lattner
1d35ac61ce Print machine frame objects with the frame offset intrinsic to the machine
llvm-svn: 5329
2003-01-16 18:35:57 +00:00
Chris Lattner
301e1307d2 Move sparc specific code into the Sparc backend
llvm-svn: 5317
2003-01-15 21:36:50 +00:00
Chris Lattner
30fbd2d1fe Move private headers into private regalloc directory
llvm-svn: 5308
2003-01-15 20:26:32 +00:00
Chris Lattner
7f85810349 Move private header to private dir
llvm-svn: 5304
2003-01-15 19:50:32 +00:00
Chris Lattner
cfa7a8f9a2 Remove obsolete ctor
llvm-svn: 5301
2003-01-15 19:47:02 +00:00
Chris Lattner
7a5291a0c9 Remove internal helper fn
llvm-svn: 5300
2003-01-15 19:46:39 +00:00
Chris Lattner
d06cd53a81 ADd support for CC registers for Sparc BE
llvm-svn: 5297
2003-01-15 19:22:23 +00:00
Chris Lattner
f254db43cd Add support for the CC registers for Sparc BE
llvm-svn: 5296
2003-01-15 19:22:06 +00:00
Chris Lattner
8c56dc23a5 Remove more unused methods
llvm-svn: 5295
2003-01-15 19:21:50 +00:00
Chris Lattner
e6fb373c01 Remove a ton of functions that are no longer used, instead using BuildMI
llvm-svn: 5290
2003-01-15 17:35:44 +00:00
Chris Lattner
856c3ad41c Add new helper method addRegDef
llvm-svn: 5289
2003-01-15 17:18:22 +00:00
Chris Lattner
14021140c0 * Eliminate a bunch of inline functions.
* Convert callers to use BuildMI instead

llvm-svn: 5286
2003-01-15 00:02:41 +00:00
Chris Lattner
57b5e8891e Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h
llvm-svn: 5282
2003-01-14 22:56:37 +00:00
Chris Lattner
ab69d9da2f Move annotation to support library
llvm-svn: 5268
2003-01-14 21:29:58 +00:00
Chris Lattner
fb1bfc8cde Add new files
llvm-svn: 5259
2003-01-13 01:01:31 +00:00
Chris Lattner
2edf53b7c0 Simplify interface to creating a register
llvm-svn: 5211
2003-01-13 00:19:18 +00:00
Chris Lattner
9d9b72a2c2 * Add support for new types of operands
llvm-svn: 5210
2003-01-13 00:18:44 +00:00
Chris Lattner
1f29ca49c7 * Add 3 new types of MachineOperand: ConstantPoolIndex ExternalSymbol and GlobalAddress's
* Add new isPCRelative modifier flag which should be used in place of MO_PCRelativeDisp type.
* Fix a bug in isPhysicalRegister
* Add new setOpcode and RemoveOperand methods

llvm-svn: 5209
2003-01-13 00:18:17 +00:00
Chris Lattner
abdcdcb67c * Add a constant pool to hold per-function constants which must be spilled to memory
llvm-svn: 5208
2003-01-13 00:16:10 +00:00
Chris Lattner
4eda5395e8 * Add utility methods which make common cases easier
llvm-svn: 5207
2003-01-13 00:15:24 +00:00
Chris Lattner
a17e5baf63 * Add support for values in the constant pool
* Add support for functions referenced by name

llvm-svn: 5206
2003-01-13 00:14:55 +00:00
Chris Lattner
dfa3c21f1c More renamings of Target/Machine*Info to Target/Target*Info
llvm-svn: 5204
2002-12-29 03:13:05 +00:00
Chris Lattner
ea33ca1e96 Rename FunctionFrameInfo to MachineFrameInfo
llvm-svn: 5201
2002-12-28 21:08:28 +00:00
Chris Lattner
e1f68f8e08 Descriptor object used to manage abstract frame references
llvm-svn: 5166
2002-12-28 20:07:47 +00:00
Chris Lattner
6c1ee16321 State for frame and constant pool information pulled out of MachineFunction
llvm-svn: 5165
2002-12-28 20:07:33 +00:00
Chris Lattner
84cb1f5dbc * Frame indices are signed
* Cluster modification methods together

llvm-svn: 5164
2002-12-28 20:05:44 +00:00
Chris Lattner
59c301a15a * Pull a bunch of frame and constant pool state out into a new
MachineFunctionInfo class
* Add a new FunctionFrameInfo object

llvm-svn: 5163
2002-12-28 20:04:31 +00:00
Chris Lattner
db5cd8b071 Initial check in of MachineFunctionPass.h
llvm-svn: 5162
2002-12-28 20:03:01 +00:00
Chris Lattner
47e342f4bf Add abstract frame index capability
llvm-svn: 5140
2002-12-25 05:01:18 +00:00
Chris Lattner
b898c53b42 Remove default ctor
llvm-svn: 5139
2002-12-25 05:01:05 +00:00
Chris Lattner
aea2f8e9da *** empty log message ***
llvm-svn: 5138
2002-12-25 05:00:49 +00:00
Chris Lattner
a5ba3d9b3d Remove dependency on SSARegMap.h
llvm-svn: 5137
2002-12-25 05:00:16 +00:00
Chris Lattner
7ac77c761c Add new opIsUse method
llvm-svn: 5062
2002-12-15 22:05:02 +00:00
Chris Lattner
026fa9948b Add capability to have a MachineBasicBlock as an operand to a MachineInstr
Add a bunch of methods to MachineOperand is* to reduce usage of MO_foo

llvm-svn: 5032
2002-12-15 08:01:02 +00:00
Chris Lattner
74e9df0627 Final version of BuildMI for symmetry and because I want to use it
llvm-svn: 5000
2002-12-13 09:33:06 +00:00