31724 Commits

Author SHA1 Message Date
Chris Lattner
2862d2ec71 There is no way to guarantee that constants are not forward referenced.
Handle forward referenced constants in a general way.  This fixes bug:
Assembler/2002-10-13-ConstantEncodingProblem.llx and allows the SPEC
197.parser benchmark to be built

llvm-svn: 4161
2002-10-14 03:33:02 +00:00
Chris Lattner
163b890dfb - Dramatically simplify the Constant::mutateReferences implementation,
allowing it to be called on all constant types (structures/arrays)

llvm-svn: 4160
2002-10-14 03:30:23 +00:00
Chris Lattner
8022a0f57c This loop executed exactly one time, turn it into straightline code
llvm-svn: 4159
2002-10-14 03:28:42 +00:00
Nick Hildenbrandt
8a07a0c25d More results
llvm-svn: 4158
2002-10-14 01:08:06 +00:00
Chris Lattner
251a7e6231 Minor cleanups, no changes to functionality
llvm-svn: 4157
2002-10-14 00:48:57 +00:00
Nick Hildenbrandt
dd3a7c4978 More successes
llvm-svn: 4156
2002-10-13 22:43:11 +00:00
Nick Hildenbrandt
ed89fea5e8 New Results
llvm-svn: 4155
2002-10-13 22:10:08 +00:00
Chris Lattner
095441dcc3 Simplify again
llvm-svn: 4154
2002-10-13 21:51:55 +00:00
Vikram S. Adve
a202c0dbfa Don't try to compute the size of an "array" element if the index is 0:
the size may be unknown, and is not needed.

llvm-svn: 4153
2002-10-13 21:47:44 +00:00
Chris Lattner
89f1161293 Simplify testcase
llvm-svn: 4152
2002-10-13 21:47:43 +00:00
Chris Lattner
88957b9bc0 Rename test so that we can run the disassembler on it.
llvm-svn: 4151
2002-10-13 21:43:56 +00:00
Chris Lattner
a5841825fe Checking testcase for bytecode reader/writer that is causing the SPEC parser
benchmark to not build.

llvm-svn: 4150
2002-10-13 21:38:21 +00:00
Chris Lattner
149376dee5 - Change Function's so that their argument list is populated when they are
constructed.  Before, external functions would have an empty argument list,
    now a Function ALWAYS has a populated argument list.

llvm-svn: 4149
2002-10-13 20:57:00 +00:00
Chris Lattner
69ce8674b5 - Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd to
reflect the fact that it's a range being defined.

llvm-svn: 4147
2002-10-13 19:39:16 +00:00
Chris Lattner
b0f38789da Halfway conversion from custom printing to GraphWriter printing
llvm-svn: 4146
2002-10-13 19:31:57 +00:00
Chris Lattner
894962baaf First crack at reimplementing graph traits for DSGraphs
llvm-svn: 4145
2002-10-13 19:31:34 +00:00
Chris Lattner
10bdae7c9e disable the unused "pointer" member
llvm-svn: 4144
2002-10-13 19:30:44 +00:00
Chris Lattner
5f9f4e3aac Account for global variables resolved more accurately.
llvm-svn: 4143
2002-10-13 17:30:30 +00:00
Chris Lattner
88dbc4dbe9 Use methods that are more explanatory
llvm-svn: 4142
2002-10-13 17:12:47 +00:00
Chris Lattner
0e0e32dea9 Add dummy entries to document what members can be added
llvm-svn: 4141
2002-10-13 17:12:05 +00:00
Vikram S. Adve
31dbda2a1c Add a test for folding a GEP into a load.
llvm-svn: 4139
2002-10-13 00:44:00 +00:00
Vikram S. Adve
9e5eb46362 Use vectors instead of hash_maps for issueGaps and conflictLists.
These hash lookups were a major sink of time because they happen so often!
Also, add option to disable scheduling.

llvm-svn: 4138
2002-10-13 00:40:37 +00:00
Vikram S. Adve
f8c6e3db55 Major bug fix: was not adding CD edges for RETURNs!
llvm-svn: 4137
2002-10-13 00:39:22 +00:00
Vikram S. Adve
d77030bd76 Use vectors instead of hash_maps for issueGaps and conflictLists.
These hash lookups were a major sink of time because they happen so often!

llvm-svn: 4136
2002-10-13 00:37:46 +00:00
Vikram S. Adve
05ee0819a7 Run LICM before GCSE!
llvm-svn: 4135
2002-10-13 00:34:10 +00:00
Vikram S. Adve
10d8164013 Several major fixes, particularly in emitting constant aggregates:
(1) Padding bytes between structure fields (for alignment) were never
    being emitted into the constant pool so the layout did not match!
(2) In printing constants, structures containing structures or arrays
    were never handled.
(3) Support new model for external/uninitialized/initialized globals.
    Uninitialized globals are no longer emitted since they are external.
    Initialized globals may go either in .bss or in .data.

llvm-svn: 4134
2002-10-13 00:32:18 +00:00
Vikram S. Adve
78044fbc8e Don't use %l0 for large operands to a SAVE since it is needed *before* SAVE!
We now use %g1 instead since that is shared and volatile.

llvm-svn: 4133
2002-10-13 00:24:06 +00:00
Vikram S. Adve
f4f7292b4e Don't mark JMPLCALL and JMPLRET as branches.
llvm-svn: 4132
2002-10-13 00:22:32 +00:00
Nick Hildenbrandt
176245f782 *** empty log message ***
llvm-svn: 4131
2002-10-13 00:20:48 +00:00
Vikram S. Adve
d2dc60e5d9 (1) Try to evaluate constant when multiplying 2 constants.
(2) Use intelligent multiply selection code for array allocas.
(3) Don't use cache padding for alloca'd stack slots!
(4) Bug fix in handling call arguments: was not copying sixth FP arg
    to int reg. when calling a function with no prototype.

llvm-svn: 4130
2002-10-13 00:18:57 +00:00
Vikram S. Adve
d00beecb59 Eliminate duplicate target pointer in SparcRegInfo.
llvm-svn: 4129
2002-10-13 00:06:04 +00:00
Vikram S. Adve
879eac9fa1 Eliminate duplicate target pointer. Also add a few assertions.
llvm-svn: 4128
2002-10-13 00:05:30 +00:00
Vikram S. Adve
ea31dc707f Make sure to handle small negative values hiding as large unsigned longs --
this is a common case created by the front-end.

llvm-svn: 4127
2002-10-13 00:04:26 +00:00
Vikram S. Adve
4ef6cce821 Major fix: extract ConstantExpr nodes and decompose them into symbolic
instructions so that (a) constant folding is done automatically before
code generation, and (b) selection does not have to deal with them.
Also, check for ConstantPointerRefs in additional to GlobalValues
when creating a GEP to load a global address.

llvm-svn: 4126
2002-10-13 00:01:57 +00:00
Vikram S. Adve
46f21c4443 Added inline constant expressions, including uses in binary subtract.
llvm-svn: 4125
2002-10-12 23:47:36 +00:00
Chris Lattner
1a061216a0 New testcase that causes invalid llvm to be emitted by cfe
llvm-svn: 4124
2002-10-12 23:37:34 +00:00
Chris Lattner
66507d887a * Fix extract to work with constant pointer refs correctly
* Extract makes all global vars external, so they don't have initializers

llvm-svn: 4121
2002-10-12 20:50:16 +00:00
Anand Shukla
12b05f3880 Changed to external global var
llvm-svn: 4120
2002-10-12 20:33:47 +00:00
Nick Hildenbrandt
16b1cb08b1 *** empty log message ***
llvm-svn: 4119
2002-10-11 22:22:12 +00:00
Nick Hildenbrandt
fa6e71e31d Instead of adding stdlib we just prototype malloc correctly.
llvm-svn: 4118
2002-10-11 21:40:44 +00:00
Nick Hildenbrandt
8d354423fc Sun requires you to include stdlib to use malloc
llvm-svn: 4117
2002-10-11 18:41:44 +00:00
Vikram S. Adve
3e54d6c3be Major bug fix: spill code for an instruction in a delay slot was
merrily being inserted before/after the instruction!

llvm-svn: 4116
2002-10-11 16:12:40 +00:00
Vikram S. Adve
ffc9dd5c0d Don't pad variables in stack slots for performance!
llvm-svn: 4115
2002-10-11 16:10:53 +00:00
Vikram S. Adve
b52220cd21 Use PARALLEL_DIRS.
llvm-svn: 4114
2002-10-11 16:08:17 +00:00
Misha Brukman
33022f07bb Added capability to get execution count of a loop if it is a predictable
number of iterations.

llvm-svn: 4113
2002-10-11 05:34:32 +00:00
Misha Brukman
3845be203d Added helper functions in LoopInfo: isLoopExit and numBackEdges.
llvm-svn: 4112
2002-10-11 05:31:10 +00:00
Chris Lattner
d484dd8da4 Expose API to graph library to allow iteration over all nodes, even unreachable ones
llvm-svn: 4111
2002-10-10 22:31:31 +00:00
Chris Lattner
27abebe1b6 Change reference
llvm-svn: 4110
2002-10-10 22:31:02 +00:00
Chris Lattner
e3336c72c0 * Don't only print out reachable nodes in the graph.
* use new api to get all nodes in the graph
  * Allow custom graph traits

llvm-svn: 4109
2002-10-10 22:29:51 +00:00
Chris Lattner
f43f410dfb Add new getGraphProperties that may be specialized by graphs
llvm-svn: 4108
2002-10-10 22:29:10 +00:00