Commit Graph

1189 Commits

Author SHA1 Message Date
Vikram S. Adve 7977a283e6 Added class MachineCacheInfo.
Also added function to convert float to int by copying via memory.

llvm-svn: 1221
2001-11-09 02:11:03 +00:00
Chris Lattner 0043cc1109 Remove false optimization that basically broke everything
llvm-svn: 1219
2001-11-09 01:08:10 +00:00
Chris Lattner 54e9f453c9 * Add better caching of data to avoid silly recusions
* Only check to see if uses of instructions can be converted for expressions... so we don't look at all of the uses of a constant.  This was making the code unnecessarily conservative

llvm-svn: 1218
2001-11-08 22:06:31 +00:00
Chris Lattner 2b48b9694c Add method decl
llvm-svn: 1217
2001-11-08 20:55:05 +00:00
Chris Lattner 2a4e3cfab7 Remove unneeded forward decl
llvm-svn: 1216
2001-11-08 20:54:51 +00:00
Chris Lattner 583e95e0b2 Improve raising significantly
llvm-svn: 1214
2001-11-08 20:19:56 +00:00
Chris Lattner cf66422978 Print the method that makes an instruction invalid
llvm-svn: 1213
2001-11-08 19:29:51 +00:00
Ruchira Sasanka dc709780aa corrected insertCode4Spilled ... bug.
llvm-svn: 1212
2001-11-08 19:11:30 +00:00
Vikram S. Adve b92658976a Eliminate cleaning step for individual %.bc files created by our gcc.
llvm-svn: 1211
2001-11-08 18:42:08 +00:00
Vikram S. Adve 7048762a3e Took out .clean.bc target.
llvm-svn: 1210
2001-11-08 18:25:05 +00:00
Vikram S. Adve 17bfd13a39 Run cleaning pass only when linking multiple files.
llvm-svn: 1209
2001-11-08 18:14:20 +00:00
Vikram S. Adve 04a251d785 Add cleaning pass after linking.
llvm-svn: 1208
2001-11-08 18:13:17 +00:00
Ruchira Sasanka 19a5165c29 Uncommented LR spill code insertion
llvm-svn: 1207
2001-11-08 16:43:25 +00:00
Vikram S. Adve 7543782956 Keep *.s files while we're debugging the native code.
Also, fix rule for $(LLCLIBS).

llvm-svn: 1206
2001-11-08 14:31:05 +00:00
Vikram S. Adve 56e61ec517 Bug fix: need to use .reserve for uninitialized data.
llvm-svn: 1205
2001-11-08 14:29:57 +00:00
Vikram S. Adve 7a3c4070d6 Add rule for %.clean.bc.
llvm-svn: 1204
2001-11-08 05:28:08 +00:00
Vikram S. Adve 3b193679f0 Bug fix: cannot modify Phi operands while iterating over them!
llvm-svn: 1203
2001-11-08 05:25:33 +00:00
Vikram S. Adve e4e91e3835 Add handle to object MachineFrameInfo.
llvm-svn: 1202
2001-11-08 05:23:45 +00:00
Vikram S. Adve e6ecf513a1 Include handle to TargetMachine in each Machine...Info class.
llvm-svn: 1201
2001-11-08 05:22:43 +00:00
Vikram S. Adve 06d8c600ea Add method CreateCodeToCopyIntToFloat.
Include handle to TargetMachine in each Machine...Info object.

llvm-svn: 1200
2001-11-08 05:22:15 +00:00
Vikram S. Adve 621b90440b Major change to how defs are found when adding dependences (they
are now found as part of the initial walk of the machine code).
Also memory load/store instructions can be generated for non-memory
LLVM instructions, which wasn't handled before.  It is now.

llvm-svn: 1199
2001-11-08 05:20:23 +00:00
Vikram S. Adve 80310bba37 MachineCodeForMethod is now an annotation on class Method.
llvm-svn: 1198
2001-11-08 05:18:18 +00:00
Vikram S. Adve c2f8911114 Add handle to TargetMachine object in all Machine...Info classes.
llvm-svn: 1197
2001-11-08 05:15:08 +00:00
Vikram S. Adve 81908213ae Added support for bitwise logical operators. Use different labels for
for these than for boolean logicals to avoid making Burg diverge.
See Burg manual for more information.

llvm-svn: 1196
2001-11-08 05:14:02 +00:00
Vikram S. Adve 03f12f521f Fixed function getEscapedString to follow the Sparc assembly rules
for symbol names!  (And renamed it to getValidSymbolName).
Fixed format for float and other constants.

llvm-svn: 1195
2001-11-08 05:12:37 +00:00
Vikram S. Adve f889a11590 Fix bugs in FITOS/D instruction generation.
The space for optional args in the stack frame is now being computed,
so finish the code generation for the variable `alloca'.
Finally, made a major overhaul of how stack frame is managed.

llvm-svn: 1194
2001-11-08 05:04:09 +00:00
Vikram S. Adve 503d3098fa Added new function UltraSparcInstrInfo::CreateCodeToCopyIntToFloat.
Also major overhaul of how stack frame is managed.

llvm-svn: 1193
2001-11-08 04:57:53 +00:00
Vikram S. Adve 7a1524f971 Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.

llvm-svn: 1192
2001-11-08 04:56:41 +00:00
Vikram S. Adve 6fcb28924b Use MachineFrameInfo as base class of UltraSparcFrameInfo, and made
a major overhaul of this class and how stack frames are managed.

llvm-svn: 1191
2001-11-08 04:55:13 +00:00
Vikram S. Adve 1ef453c2ff Machine-independent interface to target's stack frame layout parameters.
llvm-svn: 1190
2001-11-08 04:52:27 +00:00
Vikram S. Adve e316915197 Use different op labels for bitwise logical operations and boolean logical
operations in BURG input trees.

llvm-svn: 1189
2001-11-08 04:51:39 +00:00
Vikram S. Adve 70dd1d4ee4 Added a second constructor for and improved class TmpInstruction.
llvm-svn: 1188
2001-11-08 04:50:33 +00:00
Vikram S. Adve bdbb802c2f Added two minor methods.
llvm-svn: 1187
2001-11-08 04:49:52 +00:00
Vikram S. Adve d9f8598104 Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.

llvm-svn: 1186
2001-11-08 04:48:50 +00:00
Vikram S. Adve c53037205b Major overhaul of stack frame management.
llvm-svn: 1185
2001-11-08 04:47:06 +00:00
Vikram S. Adve 07900bde2d Old file which was moved to include/llvm/Target some time back.
llvm-svn: 1184
2001-11-08 04:46:08 +00:00
Vikram S. Adve b375b89e00 Removed MachineCodeForMethod object and made it an annotation.
llvm-svn: 1183
2001-11-08 04:38:58 +00:00
Chris Lattner c1c54a2a92 Add analysis pass.
llvm-svn: 1182
2001-11-07 21:16:29 +00:00
Chris Lattner 83f1528061 Initial checkin of pointer safety checker
llvm-svn: 1181
2001-11-07 21:16:12 +00:00
Chris Lattner b1f672812b Correct problem that allows indirect function calls
llvm-svn: 1179
2001-11-07 20:12:30 +00:00
Chris Lattner 31e9e4d219 * Switch to operation on pointers with PointerTy more consistently
* Fix misspeling
* Catch SIGFPE for traps
* info XXX now prints the raw contents of the GenericValue
* Switch to calloc instead of malloc (temporarily I hope) to bandaid Olden benchmarks
* Implement binary And & Or
* Convert expressions like this:
     PointerTy SrcPtr = getOperandValue(I->getPtrOperand(), SF).PointerVal;
  to:
    GenericValue SRC = getOperandValue(I->getPtrOperand(), SF);
    PointerTy SrcPtr = SRC.PointerVal;
  because the prior way confuses purify.
* Taint the initial values of the value planes
* Handling 'print bb4' in the interpreter without crashing
* Print nicer stack frames with concise return type
* printf doesn't suck nearly as badly as it used to

llvm-svn: 1177
2001-11-07 19:46:27 +00:00
Chris Lattner 75586e2ace 1. -Winline emits spurious warnings that aren't useful right now
2. Fix the "rebuild everything if I change one file" problem

llvm-svn: 1176
2001-11-07 14:50:58 +00:00
Chris Lattner e147d062fa Killing warnings
llvm-svn: 1175
2001-11-07 14:01:59 +00:00
Chris Lattner 3b7199e36c Add #includes to enable buiding in Release mode
llvm-svn: 1174
2001-11-07 13:49:45 +00:00
Chris Lattner 5e030830a3 Squelch warnings about not returning a value
llvm-svn: 1173
2001-11-07 13:49:12 +00:00
Vikram S. Adve b8157d5a29 Roll back all these changes that have broken Makefile.target again.
llvm-svn: 1172
2001-11-07 12:29:40 +00:00
Chris Lattner 28e969d689 Okay, so this is a huge hack. Fixme later
llvm-svn: 1171
2001-11-07 05:31:53 +00:00
Chris Lattner eaec4ede57 *Print Stack traces better.
* Use the cache writer for all it's problems.
* print arguments to methods in stack traces.
*Print the current stack from for up/down commands.

llvm-svn: 1170
2001-11-07 05:31:27 +00:00
Chris Lattner 1f01726487 * Use cached writer to speed up printing and get symbolic types more consistently
* When a segfault or bus error occurs, stop the program, print a stack trace, and dump the user in the debugger mode

llvm-svn: 1169
2001-11-07 04:23:00 +00:00
Chris Lattner 7db7958bd4 Implement CachedWriter class to allow module level printing of various components very quickly
llvm-svn: 1168
2001-11-07 04:21:57 +00:00