Commit Graph

9649 Commits

Author SHA1 Message Date
Chris Lattner 83025b214b This header is dead
llvm-svn: 10470
2003-12-15 06:39:18 +00:00
Alkis Evlogimenos 8870674da7 Change preserve all claim to just preserve live variables and phielimination.
llvm-svn: 10469
2003-12-15 04:55:38 +00:00
Chris Lattner ab475b85f7 New testcase
llvm-svn: 10468
2003-12-15 00:03:53 +00:00
Chris Lattner 884e824534 Refactor code just a little bit, allowing us to implement TailCallElim/return_constant.ll
llvm-svn: 10467
2003-12-14 23:57:39 +00:00
Chris Lattner 0fcc74f1df new test
llvm-svn: 10466
2003-12-14 23:39:34 +00:00
Chris Lattner 1809966189 Finegrainify namespacification
llvm-svn: 10465
2003-12-14 23:25:48 +00:00
Chris Lattner c9499b6a20 Finegrainify namespacification
llvm-svn: 10464
2003-12-14 21:35:53 +00:00
Chris Lattner dd978ce8c5 Finegrainify namespacification
Make the Timer code give correct user/system/user+system times when -track-memory is enabled

llvm-svn: 10463
2003-12-14 21:27:33 +00:00
Alkis Evlogimenos fc2234ff4b I wonder how this didn't cause any tests to fail...
llvm-svn: 10462
2003-12-14 13:30:19 +00:00
Alkis Evlogimenos aaba4639f8 Change interface of MachineOperand as follows:
a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
    b) add isUse(), isDef()
    c) rename opHiBits32() to isHiBits32(),
              opLoBits32() to isLoBits32(),
              opHiBits64() to isHiBits64(),
              opLoBits64() to isLoBits64().

This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.

llvm-svn: 10461
2003-12-14 13:24:17 +00:00
Alkis Evlogimenos fbeb3b02c3 Change preserve all claim to just preserve live variables and phielimination.
llvm-svn: 10460
2003-12-14 10:14:23 +00:00
Chris Lattner 5a8a7282dc Rev the release notes to 1.2
llvm-svn: 10459
2003-12-14 05:03:43 +00:00
Chris Lattner d1c371c32c Do not promote volatile alias sets into registers
llvm-svn: 10458
2003-12-14 04:52:31 +00:00
Chris Lattner 0a14060ce2 Finegrainify namespacification
Add capability to represent volatile AliasSet's
Propagate this information from loads&stores into the aliassets

llvm-svn: 10457
2003-12-14 04:52:11 +00:00
Chris Lattner 310da97240 Add capability to represent volatile AliasSet's
llvm-svn: 10456
2003-12-14 04:51:34 +00:00
Chris Lattner 29da20f96c Testcase for PR179
llvm-svn: 10455
2003-12-14 04:46:07 +00:00
Alkis Evlogimenos 4f7f017ab5 When reserving a preallocated register spill the aliases of this
register too.

llvm-svn: 10450
2003-12-13 11:58:10 +00:00
Alkis Evlogimenos 7dbdf3839c Ignore non-allocatable physical registers in live interval analysis.
llvm-svn: 10449
2003-12-13 11:11:02 +00:00
Alkis Evlogimenos ed53b35076 Expire any active intervals left when register allocation is done.
llvm-svn: 10448
2003-12-13 05:50:19 +00:00
Alkis Evlogimenos e6dc614c3c Add instruction numbers to debugging output.
llvm-svn: 10447
2003-12-13 05:48:57 +00:00
Alkis Evlogimenos 904cd6d48c Add a floating point killer pass. This pass runs before register
allocaton on the X86 to add information to the machine code denoting
that our floating point stackifier cannot handle virtual point
register that are alive across basic blocks. This pass adds an
implicit def of all virtual floating point register at the end of each
basic block.

llvm-svn: 10446
2003-12-13 05:36:22 +00:00
Alkis Evlogimenos 06f379a278 Handle explicit physical register defs.
llvm-svn: 10445
2003-12-13 05:26:39 +00:00
Alkis Evlogimenos 9bced9455a Remove unecessary if statements when looping on ImplicitDefs.
llvm-svn: 10444
2003-12-13 01:20:58 +00:00
Chris Lattner 6f9e65ef7a Try rewording stuff talking about unwinding. Hopefully it will make llvm sound less bad, and still make John happy. :)
llvm-svn: 10439
2003-12-12 21:33:08 +00:00
Chris Lattner b84f3323f7 Link to lists, incorporate feedback from Tanya
llvm-svn: 10438
2003-12-12 21:22:16 +00:00
John Criswell 8cc89ca6bc Updated configure script so that it does not configure llvm/project
directories that do not contain a configure script.

llvm-svn: 10437
2003-12-12 20:15:23 +00:00
John Criswell 6f73d28adf Don't configure directories that don't have a configure script (i.e Stacker).
llvm-svn: 10436
2003-12-12 20:09:33 +00:00
John Criswell c6efb11f02 Modified cast so that it converts the int to a long before casting to
a pointer.  This evades a warning emitted by GCC when we cast from
unsigned int (32 bit) to void * (64 bit) on SparcV9.

llvm-svn: 10435
2003-12-12 19:57:48 +00:00
John Criswell 604cd3c85f Fixed some minor typos.
Moved the new gccld feature to be in the list of enhancements.
Re-worded information on SPEC 2000 and Sparc support to try to make them
more accurate and precise.

llvm-svn: 10434
2003-12-12 19:54:20 +00:00
Brian Gaeke 13a2e54e0c Dynamically get the right-sized member of a GenericValue to hold a size_t, and
use it to return the result of strlen.

llvm-svn: 10433
2003-12-12 15:38:06 +00:00
Chris Lattner 542d24f530 PR177 is no longer among the open
llvm-svn: 10432
2003-12-12 07:26:25 +00:00
Chris Lattner 89af2d5a36 Implement the ExecutionEngine::getPointerToFunctionOrStub by forwarding the
request on to the TargetMachine if it supports the getJITStubForFunction method

llvm-svn: 10431
2003-12-12 07:12:02 +00:00
Chris Lattner 2e7416cb04 Implement the TargetMachine::getJITStubForFunction method for X86, finegrainify
namespacification.

llvm-svn: 10430
2003-12-12 07:11:18 +00:00
Chris Lattner 538dffd9fa Add new getJITStubForFunction method, which may optionally be implemented by
targets for better performance.

llvm-svn: 10429
2003-12-12 07:10:32 +00:00
Chris Lattner fa41ea3397 Doxygenify comments, remove extraneous #include
llvm-svn: 10428
2003-12-12 06:31:42 +00:00
Chris Lattner 4b34b35549 Note about bytecode format
llvm-svn: 10427
2003-12-12 05:52:39 +00:00
Brian Gaeke 8657acc07e Since we are using a gep_type_iterator, we apparently must get the type
index by using I.getOperand() here. This was failing an assertion on
basically every struct access.

llvm-svn: 10426
2003-12-12 05:13:05 +00:00
Brian Gaeke e60a0289d4 Use uintptr_t for pointer values in the ExecutionEngine.
llvm-svn: 10425
2003-12-12 05:06:09 +00:00
Brian Gaeke 1fe9f83b52 Fix typo in comment
llvm-svn: 10424
2003-12-12 04:58:13 +00:00
Chris Lattner eb8b184825 These aren't bugs, don't phrase them like they are.
llvm-svn: 10423
2003-12-12 04:56:02 +00:00
Chris Lattner 88e24cffe6 I'm a spaz
llvm-svn: 10422
2003-12-12 04:51:00 +00:00
Chris Lattner d25f26fce8 Add note about Stacker, duh!
llvm-svn: 10421
2003-12-12 04:45:09 +00:00
Misha Brukman 8395d737f2 Break lines and add space after ':' to be consistent in layout.
llvm-svn: 10420
2003-12-12 04:37:31 +00:00
Chris Lattner e76e9abeab More updates for the release
llvm-svn: 10419
2003-12-12 04:25:33 +00:00
Brian Gaeke d24cfed317 Throw better error messages, by calling strerror(errno) when we
get an error inside the bytecode reader.

llvm-svn: 10415
2003-12-12 00:47:44 +00:00
Brian Gaeke 1f147379b7 Add an assertion to make sure we are at least getting argv[0] right.
Use a clearer error message when we fail to load a program.

llvm-svn: 10414
2003-12-12 00:47:19 +00:00
Chris Lattner e4151eba68 Update release notes for PR86 and C++ support
llvm-svn: 10413
2003-12-11 23:31:21 +00:00
Chris Lattner 1eed55d6b9 Factor out some duplicated code, implement the rest of the cases in
BasicAA/2003-12-11-ConstExprGEP.ll

llvm-svn: 10412
2003-12-11 23:20:16 +00:00
Chris Lattner ace41617c7 Rename variable to avoid confusing it with the global G
llvm-svn: 10411
2003-12-11 22:49:32 +00:00
Chris Lattner 6ea17f77f8 Fix PR86. This makes basicaa _SIGNIFICANLY_ more aggressive with getelementptr's
llvm-svn: 10410
2003-12-11 22:44:13 +00:00
Chris Lattner 34399dda2d Fix LICM/2003-12-11-SinkingToPHI.ll, and quite possibly all of the other known problems in the universe.
llvm-svn: 10409
2003-12-11 22:23:32 +00:00
Chris Lattner 99146bb2a7 New testcase that LICM is breaking crafty on
llvm-svn: 10408
2003-12-11 22:15:11 +00:00
Chris Lattner 62aff8412a Finegrainify namespacification
Add new -print-cfg-only pass

llvm-svn: 10407
2003-12-11 21:48:18 +00:00
Chris Lattner 027253b0d5 verifyFunction depends on dominator info, which levelraise does not declare
that it needs.  This is pretty scary code!  This fixes

Regression.Transforms.LevelRaise.2002-07-16-SourceAndDestCrash
Regression.Transforms.LevelRaise.2002-07-31-AssertionFailure

llvm-svn: 10406
2003-12-11 21:47:37 +00:00
Chris Lattner 15b2e377ae Fix test that was failing because we were optimizing the program better than expected :)
llvm-svn: 10404
2003-12-11 21:06:43 +00:00
Chris Lattner 659a500e57 New testcase for PR86
llvm-svn: 10403
2003-12-11 19:16:30 +00:00
Chris Lattner ed9fc4baad Run tailcall elimination in a more logical place
llvm-svn: 10402
2003-12-11 17:50:32 +00:00
Chris Lattner 17790fbb5b Fix a glaring bug
llvm-svn: 10400
2003-12-11 06:06:28 +00:00
Chris Lattner bc1197f292 Realize the gep P, <zeros> must aliases P.
This is a partial fix for PR 86

llvm-svn: 10399
2003-12-11 06:02:00 +00:00
Chris Lattner abb3bea6ce With Brian's change to AA.h we can now clean out this uglyness
llvm-svn: 10398
2003-12-11 05:44:59 +00:00
Brian Gaeke b453bc5957 IncludeFile hack to pull in BasicValueNumbering whenever ValueNumbering.h
is included.

llvm-svn: 10397
2003-12-11 05:05:56 +00:00
Brian Gaeke b06e7b1766 IncludeFile hack to pull in BasicAliasAnalysis whenever AliasAnalysis.h
is included.

llvm-svn: 10396
2003-12-11 05:05:02 +00:00
Brian Gaeke a03eeb0b7d Separate out target for cleaning up qmtest garbage.
llvm-svn: 10395
2003-12-11 04:48:38 +00:00
Brian Gaeke 4c563b8af1 Add more fixed bugs. Keep llvm core section sorted by pr#. (Is that ok?)
llvm-svn: 10394
2003-12-11 04:40:58 +00:00
Chris Lattner 95c13c92ff Stop laughing Misha
llvm-svn: 10393
2003-12-11 00:58:34 +00:00
Brian Gaeke 36fb4f19cd In getObjectType(), doxygenify comment, and take a pointer to the
beginning of the archive member data as an argument.

Get rid of ParseLongFilenameSection(), which is dead.

In ReadArchiveBuffer(), implement support for 4.4BSD/MacOSX long filenames.
This is kind of invasive, because they prepend the long filename to the archive
member data, and then lie about the size. So we have to keep track of the real
size.

llvm-svn: 10392
2003-12-11 00:38:04 +00:00
Brian Gaeke e869e0cfa8 Turn off "attribute weak" to pacify Mac OS X's system compiler, which prints a
warning whenever it sees it.

llvm-svn: 10391
2003-12-11 00:24:36 +00:00
Brian Gaeke 2bba152fb8 Fix typo in comment. Add prototype for getConstantExprValue().
llvm-svn: 10390
2003-12-11 00:23:28 +00:00
Brian Gaeke 5a8ec7d5f6 Add support for --debug-only=interpreter, to print out instrs before
interpreting them.

Move support for getting the value of a ConstantExpr into
getConstantExprValue(), and add support for the rest of the different
kinds of ConstantExprs.  (I don't think I like ConstantExprs!)
This requires separate procedures executeShlInst() and executeShrInst().

Reduce the number of references to TheEE.

Get rid of an old comment mentioning annotations.

Fix exitCalled(), which was crashing the Interpreter. This was a
leftover from the return-value code refactoring.

llvm-svn: 10389
2003-12-11 00:22:59 +00:00
John Criswell fb55ac24ec This appears to fix Bug 172 and does not break any other feature tests or
regression tests.

llvm-svn: 10388
2003-12-10 22:51:41 +00:00
Chris Lattner 6281fd3ead Fix bug: LICM/sink_multiple_exits.ll
Thanks for pointing this out John  :)

llvm-svn: 10387
2003-12-10 22:35:56 +00:00
Chris Lattner 55c2113b7b Don't allow dead instructions to stop sinking early.
llvm-svn: 10386
2003-12-10 20:43:29 +00:00
Chris Lattner 713907e2b8 Fix bug: IndVarsSimplify/2003-12-10-RemoveInstrCrash.llx
llvm-svn: 10385
2003-12-10 20:43:04 +00:00
Chris Lattner a8953e38d2 A new testcase, reduced by bugpoint
llvm-svn: 10384
2003-12-10 20:39:53 +00:00
Chris Lattner 7e5bd59da2 Finegrainify namespacification
Fix bug: LowerInvoke/2003-12-10-Crash.llx

llvm-svn: 10382
2003-12-10 20:22:42 +00:00
Chris Lattner 02f7e71d35 new testcase
llvm-svn: 10381
2003-12-10 20:18:09 +00:00
John Criswell 3c721a8b15 Fixed a comma error.
Added the --disable-threads option to GCC configure (to avoid pthread errors
when building code with LLVM).

llvm-svn: 10380
2003-12-10 20:04:13 +00:00
Brian Gaeke f2484742b7 Support 'make install' for LLVM include files.
llvm-svn: 10378
2003-12-10 18:41:20 +00:00
John Criswell 65b3acdd5b Upon Chris's suggestion, moved the #ifdef's to the generated C code.
This makes LLVM and the generated C code more portable.

llvm-svn: 10377
2003-12-10 18:17:57 +00:00
Chris Lattner ccd9f3c1f8 Finegrainify namespacification
Reorder #includes
Implement: IndVarsSimplify/2003-12-10-IndVarDeadCode.ll

llvm-svn: 10376
2003-12-10 18:06:47 +00:00
John Criswell 83fb097ed0 Fixed the CBE on Solaris/Sparc. We need to define the return value of
the write() system call because it returns 64 bits on Solaris 64 bit,
and an implicit return value of int says it returns 32 bits.
Admittedly, this is a bit of a hack.

llvm-svn: 10375
2003-12-10 18:06:34 +00:00
Chris Lattner ae974caa05 New testcase
llvm-svn: 10374
2003-12-10 17:57:38 +00:00
Chris Lattner 7710f2f49e Finegrainify namespacification
Fix bug: LoopSimplify/2003-12-10-ExitBlocksProblem.ll

llvm-svn: 10373
2003-12-10 17:20:35 +00:00
Chris Lattner 679b49d7f5 New testcase which caused a bunch of tests to break last night with more
aggressive LICM

llvm-svn: 10372
2003-12-10 17:09:35 +00:00
Chris Lattner 6364314a6e Simplify code
llvm-svn: 10371
2003-12-10 16:58:24 +00:00
Chris Lattner 48b4b852b4 Avoid performing two identical lookups when one will suffice
llvm-svn: 10370
2003-12-10 16:57:24 +00:00
Chris Lattner edda1af35a Make LICM itself a bit more efficient, and make the generated code more efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop
llvm-svn: 10369
2003-12-10 15:56:24 +00:00
John Criswell cf657689bb Removed the pthread_once() function because it doesn't actually do
what it's supposed to do.
Just leave this library as a dummy library for now until we have time to
port a real pthread library (or get glibc working).

llvm-svn: 10368
2003-12-10 15:43:07 +00:00
Chris Lattner bff5116da6 Finegrainify namespacification
llvm-svn: 10367
2003-12-10 15:34:03 +00:00
Chris Lattner 8dee84159f Finegrainify namespacification
Provide a context module to WriteAsOperand

llvm-svn: 10366
2003-12-10 15:33:59 +00:00
John Criswell c619c3cd14 Added the --host= option to the Sparc configuration directions.
llvm-svn: 10364
2003-12-10 15:27:29 +00:00
John Criswell eaf4835c65 Dummy implementation of the pthread library.
This is needed since libstdc++ uses pthread_once().

llvm-svn: 10360
2003-12-10 14:46:36 +00:00
Chris Lattner 98cd4bf06f Make 'opt -o -' work correctly instead of creating a file named './-'
llvm-svn: 10359
2003-12-10 14:41:33 +00:00
Chris Lattner aaaea51090 Implement instruction sinking out of loops. This still can do a little bit
better job, but this is the majority of the work.  This implements
LICM/sink*.ll

llvm-svn: 10358
2003-12-10 06:41:05 +00:00
Chris Lattner 289df6b3de new testcase, checking to ensure we handle yet-another spiffy case correctly
llvm-svn: 10357
2003-12-10 05:42:23 +00:00
Brian Gaeke e545345131 Don't assume that system headers define 'uint' or 'ulong' as types.
llvm-svn: 10356
2003-12-10 05:06:38 +00:00
Brian Gaeke 09db53be57 Fix apparent copy-and-paste-o.
Get rid of %debug - Mac OS X bison doesn't have it.  sigh.

llvm-svn: 10352
2003-12-10 04:33:07 +00:00
Brian Gaeke 0f148bcbc0 Add support for installing tool executables.
llvm-svn: 10351
2003-12-10 00:26:28 +00:00
Brian Gaeke a3664d9d18 Add installation directories and commands, standardly provided by configure.
llvm-svn: 10350
2003-12-10 00:25:32 +00:00
Chris Lattner 9c450fc665 Yet another hard testcase
llvm-svn: 10349
2003-12-09 23:29:25 +00:00
Chris Lattner 6c237bcdf2 Do not insert one entry PHI nodes in split exit blocks!
llvm-svn: 10348
2003-12-09 23:12:55 +00:00
Brian Gaeke ddc088a9e4 Check in the llvm-native-gcc script, which I use in the process of
debugging front-end miscompilations.

llvm-svn: 10347
2003-12-09 22:23:24 +00:00
Chris Lattner 720348331c Add a new testcase which breaks the sinker because the loop canonnicalization
pass does not do a canonnicalization that the sinker wants.

llvm-svn: 10346
2003-12-09 22:05:08 +00:00
Chris Lattner b7924b166a Fix buggy test
llvm-svn: 10345
2003-12-09 21:45:23 +00:00
Chris Lattner 88ca84b809 New testcase for sinking operations from loops with multiple exits
llvm-svn: 10344
2003-12-09 21:40:36 +00:00
Chris Lattner eea64fd916 Make the test a bit harder so that we test to ensure that _both_ instructions
are sunk

llvm-svn: 10343
2003-12-09 20:50:20 +00:00
Chris Lattner 65c1193d55 Refactor code a little bit, eliminating the gratuitous InstVisitor, which
should make subsequent changes simpler.  This also allows us to hoist vaarg
and vanext instructions

llvm-svn: 10342
2003-12-09 19:32:44 +00:00
Chris Lattner c05176843e Fine grainify namespacification
Code cleanups
Make LICM::SafeToHoist marginally more efficient

llvm-svn: 10341
2003-12-09 17:18:00 +00:00
Chris Lattner d719cd1e5b New testcases for LICM improvement: code sinking.
llvm-svn: 10339
2003-12-09 16:56:51 +00:00
Chris Lattner 9056881d76 Improve portability with Mac OS/X
llvm-svn: 10338
2003-12-09 16:49:12 +00:00
Chris Lattner 9c9240447b Improve testcase portability on OS/X
llvm-svn: 10337
2003-12-09 16:48:24 +00:00
Chris Lattner db677331f2 New testcase that is not actually handled yet, but should be in the future.
This is here to remind me to get back to this after a while.

llvm-svn: 10336
2003-12-09 16:26:42 +00:00
John Criswell 7dd715180d Added the -h option for compatibility with other linkers.
llvm-svn: 10335
2003-12-09 15:39:11 +00:00
Chris Lattner 18b6f0f46d Whoops, forgot to check this in. :)
llvm-svn: 10334
2003-12-08 23:41:09 +00:00
Chris Lattner 50663a1a78 Implement: TailCallElim/accum_recursion_constant_arg.ll
Also make sure to clean up any PHI nodes that are inserted which are pointless.

llvm-svn: 10333
2003-12-08 23:37:35 +00:00
Chris Lattner 198e620752 Implement: test/Regression/Transforms/TailCallElim/accum_recursion.ll
We now insert accumulator variables as necessary to eliminate tail recursion
more aggressively.  This is still fairly limited, but allows us to transform
fib/factorial, and other functions into nice happy loops.  :)

llvm-svn: 10332
2003-12-08 23:19:26 +00:00
Chris Lattner 3c31f8c5c3 New testcase for automatic insertion of accumulator variables to eliminate
tail recursion

llvm-svn: 10331
2003-12-08 23:16:25 +00:00
Chris Lattner b662b064f6 Add a missing semi colon, which breaks bison 1.5
llvm-svn: 10325
2003-12-08 20:15:33 +00:00
Chris Lattner 102779e12a Simplify makefiles by just explicitly listing directories
llvm-svn: 10324
2003-12-08 20:12:46 +00:00
John Criswell ffc722a7f3 Updated build instructions for Sparc.
llvm-svn: 10323
2003-12-08 19:59:14 +00:00
John Criswell beb0b29871 Fixed the dynamic generation of the list of subdirectories to compile.
llvm-svn: 10322
2003-12-08 17:52:32 +00:00
Chris Lattner 86ad4c05d0 implement method
llvm-svn: 10321
2003-12-08 08:23:04 +00:00
Chris Lattner e6492f1057 Use the new method, though noone currently implements it any better than before
llvm-svn: 10320
2003-12-08 08:22:48 +00:00
Chris Lattner d71a033370 add two new virtual functions:
The first returns a function pointer or a stub if it's not already generated
  The second exposes what was previously JIT specific state to general clients

llvm-svn: 10319
2003-12-08 08:22:01 +00:00
Chris Lattner c0e1b071b9 Finegrainify namespacification
llvm-svn: 10318
2003-12-08 08:06:28 +00:00
Chris Lattner bd7356a5d3 Makefile updates contributed by Reid
llvm-svn: 10317
2003-12-08 07:08:00 +00:00
Chris Lattner d2a55f3041 New bug
llvm-svn: 10316
2003-12-08 06:33:19 +00:00
Misha Brukman d899432617 `effect' is the noun, `affect' is the verb.
llvm-svn: 10315
2003-12-08 06:22:05 +00:00
Chris Lattner b8d989e055 New testcase for PR165
llvm-svn: 10314
2003-12-08 06:18:37 +00:00
Chris Lattner 408916bc32 Add note about sucky suse compiler
llvm-svn: 10313
2003-12-08 05:43:19 +00:00
Chris Lattner a7b6f3ab9c Cleanup and restructure the code to make it easier to read and maintain.
The only functionality change is that we now implement:
  Regression/Transforms/TailCallElim/intervening-inst.ll

Which is really kinda pointless, because it means that trivially dead code
does not interfere with -tce, but trivially dead code probably wouldn't be
around anytime when this pass is run anyway.

The point of including this change it to support other more aggressive
transformations when we have the analysis capabilities to do so.

llvm-svn: 10312
2003-12-08 05:34:54 +00:00
Chris Lattner 82ac26c8ba New testcase, this should be -tailcallelim'inated
llvm-svn: 10311
2003-12-08 05:32:48 +00:00
Chris Lattner 16f1a8f761 Since ssaification of the varargs builtings, the vaarg instruction no longer
can write to memory.

llvm-svn: 10310
2003-12-08 05:29:33 +00:00
Brian Gaeke ed16349810 Regenerated using autoheader-2.57
llvm-svn: 10309
2003-12-08 00:57:01 +00:00
Chris Lattner 69d47e7314 Bugpoint had appalingly bad grammar. Fix some of it.
llvm-svn: 10308
2003-12-07 02:43:09 +00:00
Chris Lattner 233b069113 Do not leave a bunch of crud lying around
llvm-svn: 10307
2003-12-07 02:31:03 +00:00
Chris Lattner b762ddbdf1 It is now after pldi. This issue has been fixed, so remove the hack
llvm-svn: 10306
2003-12-07 01:44:18 +00:00
Chris Lattner 771804b541 Implement RaiseAllocations/FreeCastConstantExpr.ll
llvm-svn: 10305
2003-12-07 01:42:08 +00:00
Chris Lattner ffb2d08c4a New testcase that the raiseallocations pass should be able to handle.
llvm-svn: 10304
2003-12-07 01:25:36 +00:00
Chris Lattner 8427bffb9a * Finegrainify namespacification
* Transform: free <ty>* (cast <ty2>* X to <ty>*) into free <ty2>* X

llvm-svn: 10303
2003-12-07 01:24:23 +00:00
Chris Lattner d1ea9cd345 The recalclulate method was a nasty hack that was once used by the -cee pass,
which never worked itself.  The cee pass still doesn't work, but it doesn't use
this method anymore anyway, so eliminate the method.

llvm-svn: 10302
2003-12-07 00:55:32 +00:00
Chris Lattner 00f5167693 Completely rewrite domset, idom, and domtree implementation. Now it is based
on the algorithm for directly computing immediate dominators presented in this
paper:

  A Fast Algorithm for Finding Dominators in a Flowgraph
  T. Lengauer & R. Tarjan, ACM TOPLAS July 1979, pgs 121-141.

This _substantially_ speeds up construction of all dominator related information.
Post-dominators to follow.

llvm-svn: 10301
2003-12-07 00:38:08 +00:00
Chris Lattner 31b77bbf7e Rewrite dominators implementation. Now domset is constructed from immdom,
instead of the other way around.

llvm-svn: 10300
2003-12-07 00:36:16 +00:00
Chris Lattner f9f7c2d302 Finegrainify namespacification
Move method out of generic dominators construction code

llvm-svn: 10299
2003-12-07 00:35:42 +00:00
Chris Lattner d48220fabe Move this method out of the generic dominators calculation code
llvm-svn: 10298
2003-12-07 00:35:19 +00:00
Tanya Lattner c970a38824 New command line parsing. This isn't as perfect as I would have liked. The CommandLine Library needs to be extended, in order to parse the options and allow for optional dashes. In addition, the help option isn't correct since I do the parsing mostly myself. But this is in the ocorrect ar format.
llvm-svn: 10297
2003-12-06 23:01:25 +00:00
Chris Lattner dca8b84bde Stop using the -fshort-enum compile option
llvm-svn: 10296
2003-12-06 20:59:45 +00:00
Chris Lattner d98fecb76e Fix awkward wording
llvm-svn: 10295
2003-12-06 20:24:46 +00:00
Chris Lattner ba7bd4720d Cleanup the release notes in preparation for the release.
llvm-svn: 10294
2003-12-06 20:22:41 +00:00
Brian Gaeke 7ee7b40af5 Add check for pthread_mutex_lock() in -lpthread (or otherwise).
Regenerated configure w/ autoconf-2.57.

llvm-svn: 10293
2003-12-05 19:29:01 +00:00
Alkis Evlogimenos e59ad4b441 Make assertion stricter. Since the source operands are allocated at
this point, the second operand must be a physical register (it cannot
be a virtual one).

llvm-svn: 10292
2003-12-05 11:31:39 +00:00
Alkis Evlogimenos f8fe176204 Fix bug in register spilling when a preallocated live range overlaps a
potential register assignment.

llvm-svn: 10291
2003-12-05 11:17:55 +00:00
Alkis Evlogimenos 2de099e54f Move operator<<(std::ostream&, const LiveInterval&) out of the header file.
llvm-svn: 10290
2003-12-05 10:38:28 +00:00
Alkis Evlogimenos ed28ca93ef Sort live intervals by increasing start point.
llvm-svn: 10289
2003-12-05 10:32:01 +00:00
Alkis Evlogimenos 5fe0031c68 Improve debugging output and clean up some code.
llvm-svn: 10288
2003-12-04 03:57:28 +00:00
Chris Lattner 40d2aeb28f Finegrainify namespacification
Fix regressions ScalarRepl/basictest.ll & arraytest.ll

llvm-svn: 10287
2003-12-02 17:43:55 +00:00
Brian Gaeke 93823ed30c Lock abstraction, introduced with a view toward making the JIT thread-safe.
Eventually.

llvm-svn: 10284
2003-12-01 21:33:31 +00:00
Chris Lattner e0da6ec8b6 Make stripped-bytecode a recursive target
llvm-svn: 10283
2003-12-01 07:28:25 +00:00
Chris Lattner 9b0eb852c7 Add new block number
llvm-svn: 10281
2003-12-01 07:08:06 +00:00
Chris Lattner d9cf9b30eb Emit & read more compressed bytecode by not emitting a bytecodeblock for
each basic block in function.  Instead, just emit a stream of instructions,
chopping up basic blocks based on when we find terminator instructions.  This
saves a fairly substantial chunk of bytecode space.  In stripped, sample
cases, for example, we get this reduction in size:

197.parser: 163036 -> 137180:  18.8% reduction
254.gap   : 844936 -> 689392:  22.6%
255.vortex: 621724 -> 528444:  17.7%

...

Not bad for something this simple.  :)  Note that this doesn't require a new
bytecode version number at all, though version 1.1 should not need to support
the old format.

llvm-svn: 10280
2003-12-01 07:05:31 +00:00
Chris Lattner 7c290ed25a Remove unused enum value
llvm-svn: 10279
2003-12-01 05:40:37 +00:00
Brian Gaeke fed9ed96a4 This may fix the "0 dirs" stuff we get in the nightly tests when they are
checking out over remote cvs connections.

llvm-svn: 10278
2003-12-01 05:31:12 +00:00
Chris Lattner cc04614ee5 Add some "useful" methods
llvm-svn: 10277
2003-12-01 05:30:29 +00:00
Chris Lattner 6d760d7cb3 Add an option to enable the SSA based peephole optimizer.
Eventually this pass will provide substantially better code in the interim between when we
have a crappy isel and nice isel.  Unfortunately doing so requires fixing the backend to
actually SUPPORT all of the fancy addressing modes that we now generate, and writing a DCE
pass for machine code.  Each of these is a fairly substantial job, so this will remain disabled
for the immediate future.  :(

llvm-svn: 10276
2003-12-01 05:18:30 +00:00
Chris Lattner a913723309 Add a new SSA-based peephole optimizer which includes copy propagation and
folding of instructions into addressing modes.  This creates lots of dead
instructions, which are currently not deleted.  It also creates a lot of
instructions that the X86 backend currently cannot handle.  :(

llvm-svn: 10275
2003-12-01 05:15:28 +00:00
Chris Lattner 128937bbe2 generalize the instruction types permitted a bit
llvm-svn: 10274
2003-12-01 05:13:56 +00:00
Chris Lattner 6cf03df531 fix broken link
llvm-svn: 10273
2003-12-01 05:12:09 +00:00
Alkis Evlogimenos 26f17e73eb Print instructions before register allocation is performed. Also fix
bug where spill instructions were added to the next basic block
instead of the end of the current one if the instruction that required
the spill was the last in the block.

llvm-svn: 10272
2003-11-30 23:40:39 +00:00
Chris Lattner 0fcba7f6b3 add missing dependency
llvm-svn: 10271
2003-11-30 09:22:42 +00:00
Chris Lattner d8218923ae Finegrainify namespacification
llvm-svn: 10270
2003-11-30 06:13:25 +00:00
Chris Lattner 121d04d1ae A line was missing
llvm-svn: 10269
2003-11-30 05:46:14 +00:00
Alkis Evlogimenos 0aa40f8db0 Remove "numReloaded" statistic.
llvm-svn: 10268
2003-11-30 05:15:36 +00:00
Chris Lattner 98e72b4bb3 Emit constants to one contiguous block, but this time, respect alignment constraints.
If this doesn't work Misha, feel free to revert it.

llvm-svn: 10267
2003-11-30 04:23:21 +00:00
Misha Brukman 873cf93b6e Go back to allocating memory for each constant separately. Since SPARCs do not
allow unaligned loads, that is probably the problem I've been seeing in numerous
SPARC test cases failing. X86, on the other hand, just slows down unaligned
accesses, since it must make 2 aligned accesses for each unaligned one.

llvm-svn: 10266
2003-11-30 00:50:53 +00:00
Chris Lattner 58efc9e0fe be 3.4 happy
llvm-svn: 10265
2003-11-29 20:04:13 +00:00
Chris Lattner 839030b3a8 be GCC 3.4 clean
llvm-svn: 10264
2003-11-29 19:55:12 +00:00
Chris Lattner 594654f17d Hrm, how could this compile?
llvm-svn: 10263
2003-11-29 19:55:02 +00:00
Chris Lattner 982b285232 Fix compatibility with gcc 3.4
llvm-svn: 10262
2003-11-29 19:45:47 +00:00
Chris Lattner 3edb8478a4 Build _lib_crtend.a, not crtend.a
llvm-svn: 10260
2003-11-29 10:24:57 +00:00
Chris Lattner d52319f54e Don't print out tons of crap
llvm-svn: 10259
2003-11-29 10:14:17 +00:00
Chris Lattner 910c8d834e Rewrite makefile logic to build an archive instead of a .o file. This is
intended to address PR142

llvm-svn: 10257
2003-11-29 10:05:30 +00:00
Chris Lattner fe8f8b4947 Simplify some rules
Move LGCCLDPROG from test/Makefile.tests

llvm-svn: 10256
2003-11-29 09:50:15 +00:00
Chris Lattner 462444e1ea Move rule to top-level makefile
llvm-svn: 10255
2003-11-29 09:49:14 +00:00
Chris Lattner 46c6693781 Add readme and spiff up makefile header
llvm-svn: 10254
2003-11-29 09:22:53 +00:00
Chris Lattner 212e596ede Testcase for duplicated cleanup work (PR11). Note that this testcase is not actually
tested automatically, so it is practically useless.  However, it seemed silly to throw
away my testcase, so here it is.

llvm-svn: 10253
2003-11-29 09:10:50 +00:00
Chris Lattner 8384f97ee4 Fix test: Transforms/LevelRaise/2003-11-28-IllegalTypeConversion.ll
Some gep generalization changes

llvm-svn: 10252
2003-11-29 05:31:25 +00:00
Chris Lattner 6d94d10377 new testcase for problem causing 2003-10-12-GlobalVarInitializers failures
llvm-svn: 10251
2003-11-29 05:19:15 +00:00
Chris Lattner 8abd7dca76 The function resolving pass must be run, even if -disable-opt is specified
llvm-svn: 10250
2003-11-28 09:44:03 +00:00
Chris Lattner fcaa6fbbd8 * The return value of LinkLibraries is ignored, so remove it.
* Finegrainify namespacification of Linker.cpp
* If linking a library in fails, do not STOP LINKING IN LIBRARIES AND
  CONTINUE ANYWAY!  Instead, just output the warning, and keep going. :)

llvm-svn: 10249
2003-11-28 07:44:09 +00:00
Chris Lattner 1fdd8a45c3 fix gcc 3.4 compatibility problem
llvm-svn: 10248
2003-11-28 01:46:06 +00:00
Chris Lattner 68ac670086 Testcase for PR160
llvm-svn: 10247
2003-11-28 01:32:03 +00:00
Chris Lattner 9201586a98 New testcase for PR158
llvm-svn: 10246
2003-11-27 21:25:07 +00:00
Chris Lattner 40487e450b Fix grammaro
llvm-svn: 10245
2003-11-27 21:17:48 +00:00
Chris Lattner ff4aa6dbe2 testcase for PR159
llvm-svn: 10244
2003-11-27 20:47:16 +00:00
Chris Lattner 8139b78c03 PR11 is now fixed for 1.1
llvm-svn: 10242
2003-11-27 09:51:54 +00:00
Chris Lattner 2a7033255e * Squelch warning on Sun
* stdlib and friends are system headers
* 'long long' is the type that consistently turns into the LLVM 'long' type.

llvm-svn: 10241
2003-11-27 07:48:45 +00:00
John Criswell f1387a59bf Makefiles are now copies over to the object root directory dynamically.
llvm-svn: 10240
2003-11-26 20:09:49 +00:00
John Criswell 96be650984 Renamed intermediate values that used the same type and name as previous
values.  All of these files should assemble now.

llvm-svn: 10239
2003-11-26 14:45:37 +00:00
Chris Lattner 0548bc2472 Bugz die!
llvm-svn: 10238
2003-11-26 08:20:34 +00:00
Chris Lattner 9192f90865 Testcase for PR157
llvm-svn: 10237
2003-11-26 07:35:52 +00:00