1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
Commit Graph

1381 Commits

Author SHA1 Message Date
Chris Lattner
fade2f7d18 Bugfix for calling dump() after the links vector has been cleared
llvm-svn: 5533
2003-02-10 22:46:47 +00:00
Chris Lattner
723795113f Move getNode() out of line
llvm-svn: 5531
2003-02-10 18:19:41 +00:00
Chris Lattner
4528fd1e2a Implement a new method "viewGraph" which can be used to instantly view a graph from GDB.
llvm-svn: 5529
2003-02-10 18:17:38 +00:00
Chris Lattner
b86f27cc1f TD Pass now does not cause globals to mark nodes incomplete.
llvm-svn: 5512
2003-02-09 18:40:25 +00:00
Chris Lattner
5f3ef2f0e7 Implement optimization for direct function call case. This dramatically
reduces the number of function nodes created and speeds up analysis by
about 10% overall.

llvm-svn: 5495
2003-02-05 21:59:58 +00:00
Chris Lattner
93e9ec8bb1 Allow the addition of edge source labels
llvm-svn: 5493
2003-02-05 19:40:59 +00:00
Chris Lattner
e8381114ef Add sanity check
llvm-svn: 5489
2003-02-04 00:03:57 +00:00
Chris Lattner
102e619864 Hack to work around deficiency in pass infrastructure
llvm-svn: 5485
2003-02-03 22:51:28 +00:00
Chris Lattner
b58c9c95d0 Eliminate unused resolving caller stuff
llvm-svn: 5475
2003-02-03 19:11:04 +00:00
Chris Lattner
1c12ad543d * Add a bunch of stuff for checking the integrity of the graph
* remove the isNodeDead method

llvm-svn: 5474
2003-02-03 19:10:24 +00:00
Chris Lattner
4bb510896d Remove pool alloc accessor
llvm-svn: 5473
2003-02-03 19:08:33 +00:00
Chris Lattner
cfae77498b Expose information about pool allocation
llvm-svn: 5471
2003-02-03 19:07:46 +00:00
Chris Lattner
58fa654380 Allow modifying a global variables constness property
llvm-svn: 5468
2003-02-02 16:40:40 +00:00
Chris Lattner
7aec6c471b Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)
This change provides a small (3%) but consistent speedup

llvm-svn: 5460
2003-02-01 04:52:08 +00:00
Chris Lattner
d0a6d1c807 Add hash_multimap support
llvm-svn: 5457
2003-02-01 04:14:28 +00:00
Chris Lattner
d6b11d83a3 Add new composition mask
llvm-svn: 5454
2003-02-01 03:28:26 +00:00
Joel Stanley
b867c1f059 Added protos for two alternate, convenient CallInst constructors.
llvm-svn: 5453
2003-02-01 00:41:27 +00:00
Chris Lattner
14cc7b4231 Add new function to allow removal of typed named elements
llvm-svn: 5442
2003-01-30 20:54:03 +00:00
Chris Lattner
3acf20f0da New API for traversing graph
llvm-svn: 5430
2003-01-29 21:09:59 +00:00
Chris Lattner
36e25fbd8f Initial checking: defult the make_vector function
llvm-svn: 5424
2003-01-28 20:01:16 +00:00
Chris Lattner
37a2301f9e New helper header
llvm-svn: 5423
2003-01-27 22:08:52 +00:00
Chris Lattner
77e422543e * Eliminate boolean arguments in favor of using enums
llvm-svn: 5420
2003-01-23 22:06:33 +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
eac243c414 Simplify the interface
llvm-svn: 5313
2003-01-15 21:13:32 +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
bfd37d4da8 Move to include/llvm/CodeGen
llvm-svn: 5285
2003-01-14 23:05:31 +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
e70dc51f5c New header
llvm-svn: 5280
2003-01-14 22:37:41 +00:00
Chris Lattner
bdf60b4ad8 Move to Instrumentation.h
llvm-svn: 5279
2003-01-14 22:36:15 +00:00
Chris Lattner
1af4a99c43 REmove unused header file
llvm-svn: 5275
2003-01-14 22:29:57 +00:00
Chris Lattner
3fdec63d85 Remove unused header
llvm-svn: 5274
2003-01-14 22:28:22 +00:00
Chris Lattner
b27d60ccf1 Rename MachineInstrInfo -> TargetInstrInfo
llvm-svn: 5272
2003-01-14 22:00:31 +00:00
Chris Lattner
832d7f387d Move llvm/Annotation.h to Support/Annotation.h
llvm-svn: 5271
2003-01-14 21:39:04 +00:00
Chris Lattner
ab69d9da2f Move annotation to support library
llvm-svn: 5268
2003-01-14 21:29:58 +00:00
Chris Lattner
247a13f8d7 Must #include assert.h
llvm-svn: 5267
2003-01-14 21:29:52 +00:00
Chris Lattner
fb1bfc8cde Add new files
llvm-svn: 5259
2003-01-13 01:01:31 +00:00
Chris Lattner
8decb3e453 Rename MachineInstrInfo -> TargetInstrInfo
llvm-svn: 5214
2003-01-13 00:21:32 +00:00
Chris Lattner
5fd0d8f44b * Start renaming MachineInstrInfo -> TargetInstrInfo
* Add new M_TERMINATOR_FLAG

llvm-svn: 5213
2003-01-13 00:21:19 +00:00
Chris Lattner
2117077d8f Add new getName method
llvm-svn: 5212
2003-01-13 00:19:44 +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
bff4411f3a Rename MachineOptInfo to TargetoptInfo
Rename MachineCacheInfo to TargetCacheInfo

llvm-svn: 5203
2002-12-29 02:50:35 +00:00
Chris Lattner
ea33ca1e96 Rename FunctionFrameInfo to MachineFrameInfo
llvm-svn: 5201
2002-12-28 21:08:28 +00:00
Chris Lattner
c3dbf62971 * doxygenize comment
* rename MachineFrameInfo to TargetFrameInfo

llvm-svn: 5170
2002-12-28 20:13:29 +00:00
Chris Lattner
90d1ea29ab Sparc specific methods default to abort rather than being pure virtual
llvm-svn: 5169
2002-12-28 20:12:54 +00:00
Chris Lattner
51c7c172db Expose some very simple information about the frame, rather than in-depth
target specific information.  Rename MachineFrameInfo to TargetFrameInfo

llvm-svn: 5168
2002-12-28 20:12:10 +00:00
Chris Lattner
b525ce97cc * Keep track of register alignment as well as register size
* Add comments
* Add a new allocation_order iterator for register classes which targets may
  use to control the register order and available registers based on properties
  of the function being compiled.
* Remove access to FP and SP registers
* Add new callframe setup opcode support
* Eliminate moveImm2Reg method
* Revamp frame offset handling and prolog/epilog code generation

llvm-svn: 5167
2002-12-28 20:10:23 +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
881ffece47 Simplify spill interface methods
llvm-svn: 5142
2002-12-25 05:02:00 +00:00
Chris Lattner
b44ebe2588 Add comment
llvm-svn: 5141
2002-12-25 05:01:46 +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
bc5e71ef2f Allow the target machines to specify endianness and pointer size
llvm-svn: 5128
2002-12-24 00:02:17 +00:00
Chris Lattner
5fe4097f52 Initial checkin of new LLI with JIT compiler
llvm-svn: 5126
2002-12-24 00:01:05 +00:00
Chris Lattner
2af84f79e3 New files for miscompilation detection
llvm-svn: 5120
2002-12-23 23:50:16 +00:00
Chris Lattner
079d149fbd Simplify interface to remove virtual function references
llvm-svn: 5100
2002-12-17 04:20:39 +00:00
Chris Lattner
3b7f709ebd Add support for register alias set description
llvm-svn: 5080
2002-12-16 16:39:14 +00:00
Chris Lattner
07cc730ddd Export well known instruction opcodes usable by target independant passes
llvm-svn: 5063
2002-12-15 22:16:08 +00:00
Chris Lattner
7ac77c761c Add new opIsUse method
llvm-svn: 5062
2002-12-15 22:05:02 +00:00
Chris Lattner
4214ac384a Simplify interfaces used by regalloc to insert code
llvm-svn: 5052
2002-12-15 20:06:35 +00:00
Chris Lattner
9b1957fd1e Simplify TargetRegisterClass a bit, also eliminating virtual function call
overhead

llvm-svn: 5049
2002-12-15 19:29:14 +00:00
Chris Lattner
51cf15cf12 * Rename const_regclass_begin/end to just regclass_begin/end
* Regclass iterators need an extra level of pointerness to work right
* Pull inverse mapping code out of target description files

llvm-svn: 5046
2002-12-15 18:40:01 +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
Misha Brukman
fb02408496 Added moveReg2Reg() and moveImm2Reg() to accomodate moving data around due to
PHI nodes.

llvm-svn: 5001
2002-12-13 09:54:12 +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
Chris Lattner
329956d9f9 Get rid of deprecated function
llvm-svn: 4997
2002-12-13 07:30:45 +00:00
Misha Brukman
bc60f65211 Define the 2-address flag used by X86 instructions (add,sub,and,or,xor) that
need to be declared as such.

llvm-svn: 4975
2002-12-12 23:19:51 +00:00
Chris Lattner
4e607715ce Make a release build compile. This field is not really an enum, it's really a bitfield
llvm-svn: 4971
2002-12-12 05:31:26 +00:00
Misha Brukman
9fbca4e8ea No need to specify the class if the method is within the class declaration.
llvm-svn: 4969
2002-12-12 05:28:39 +00:00
Chris Lattner
8911afb9c1 Fix header
llvm-svn: 4966
2002-12-12 03:43:30 +00:00
Vikram S. Adve
8ea96d8162 This file provides the function DemoteRegToStack(), which takes a
virtual register computed by an Instruction& X and replaces it with
a slot in the stack frame, allocated via alloca.

llvm-svn: 4963
2002-12-10 13:07:12 +00:00
Vikram S. Adve
c8ea11cf8e The pass Parallelize automatically parallelizes a program using the
Cilk multi-threaded runtime system to execute parallel code.  This file
exposes some routines needed for code generation for that pass.

llvm-svn: 4961
2002-12-10 00:42:22 +00:00
Vikram S. Adve
c9617fde54 Iterator that enumerates the ProgramDependenceGraph (PDG) for a function,
i.e., enumerates all data and control dependences for the function.

llvm-svn: 4958
2002-12-08 14:13:19 +00:00
Vikram S. Adve
90bc3110b6 An explicit representation of dependence graphs, and a pass that
computes a dependence graph for data dependences on memory locations
using interprocedural Mod/Ref information.

llvm-svn: 4957
2002-12-08 13:26:29 +00:00
Chris Lattner
93f7326092 Give better error message if two passes of the same argument are registered
llvm-svn: 4950
2002-12-07 04:41:22 +00:00
Vikram S. Adve
183ea76dc4 Stronger assertion in getNodeId(): node id must exist in the map.
llvm-svn: 4949
2002-12-06 21:19:07 +00:00
Vikram S. Adve
ef10713b0e Added static helper method MergeNodes(). See DataStructure.cpp for more.
llvm-svn: 4946
2002-12-06 21:10:17 +00:00
Vikram S. Adve
c8e0378317 Bug fix in operator==() and in method fini().
llvm-svn: 4945
2002-12-06 15:02:22 +00:00
Chris Lattner
da374a0ade Make sure to print indirect node again
llvm-svn: 4943
2002-12-06 06:40:00 +00:00