Commit Graph

9607 Commits

Author SHA1 Message Date
Alkis Evlogimenos eeea81483f Do a separate pass to compute spill weights because doing it inline
with live intervals was missing registers that were used before they
were defined (in the arbitrary order live intervals numbers
instructions).

llvm-svn: 10603
2003-12-24 15:44:53 +00:00
Chris Lattner 4688edb69d boog fixed
llvm-svn: 10602
2003-12-23 23:50:31 +00:00
Chris Lattner 547508d542 Hrm is a really nasty ommission. The lack of this destructor was causing abstract
types to never be deleted, manifesting itself as many OpaqueType objects being
leaked.  Whoops.

llvm-svn: 10601
2003-12-23 23:25:21 +00:00
John Criswell 5695ec9f95 Corrected typo.
llvm-svn: 10600
2003-12-23 22:22:10 +00:00
Chris Lattner 87c593b882 Right, fix the problem with invoke instructions, not just call instructions
llvm-svn: 10599
2003-12-23 22:18:36 +00:00
Chris Lattner 601415ed84 Do not delete the type holder until after the call instruction has been
constructed!

llvm-svn: 10598
2003-12-23 20:39:17 +00:00
John Criswell 80ce0e620e Modified the logic so that library objects with main() are only linked in
if the program currently has main undefined.

llvm-svn: 10597
2003-12-23 20:27:14 +00:00
Chris Lattner e970301580 Minor cleanups, plug a minor memory leak
llvm-svn: 10596
2003-12-23 20:05:15 +00:00
Alkis Evlogimenos 7d7d7e89d4 Change the way free regusters are computed and perform better
allocation in the presence of preallocated intervals.

llvm-svn: 10595
2003-12-23 18:00:33 +00:00
John Criswell b6d3cb9449 Modified the linker so that it always links in an object from an archive
that defines the symbol "main."  This is a hack that ensures that programs
that place their main function in a library and then link it in
(i.e. Apache 2.x) get their main function linked in.

There is probably a more correct way to do this, but this works for now.

llvm-svn: 10594
2003-12-23 17:37:06 +00:00
Chris Lattner bd03ac8567 Rename method
llvm-svn: 10593
2003-12-23 09:41:45 +00:00
Chris Lattner 30513e0a3a rename ClassifyExpression -> ClassifyExpr
llvm-svn: 10592
2003-12-23 08:04:08 +00:00
Chris Lattner f732b6b926 Rename ClassifyExpression -> ClassifyExpr
llvm-svn: 10591
2003-12-23 08:03:40 +00:00
Chris Lattner 7e755e443f More minor non-functional changes. This now computes the exit condition, though
it doesn't do anything with it.

llvm-svn: 10590
2003-12-23 07:47:09 +00:00
Chris Lattner 93bfb6c741 Remove extraneous #include
finegrainify namespacification

llvm-svn: 10589
2003-12-23 07:43:38 +00:00
Chris Lattner 1e74843e7c Finegrainify namespacification
llvm-svn: 10588
2003-12-23 06:44:41 +00:00
Chris Lattner 0b428c107d bug fixed
llvm-svn: 10587
2003-12-22 23:56:37 +00:00
Chris Lattner c2ee05427e Fix memory corruption bug PR193
llvm-svn: 10586
2003-12-22 23:49:36 +00:00
John Criswell bd10d09b07 Reverted back to revision 1.11. The previous fix doesn't really fix
anything; it just causes the bug to go dormant.

llvm-svn: 10585
2003-12-22 16:22:49 +00:00
Alkis Evlogimenos 3ec903474f Fix crash when compiling twolf.
llvm-svn: 10584
2003-12-22 13:54:29 +00:00
Chris Lattner a02d5aa6ce Don't mind me, I'm just refactoring away. This patch makes room for LFTR, but
contains no functionality changes.

llvm-svn: 10583
2003-12-22 09:53:29 +00:00
Chris Lattner a86c4a3a01 finegrainify namespacification
Implement indvar analysis of getelementptr and sub expressions

llvm-svn: 10582
2003-12-22 05:26:29 +00:00
Chris Lattner f1277450ab new testcase for cananonicalization of subtracts
llvm-svn: 10581
2003-12-22 05:24:45 +00:00
Chris Lattner 6449dcefbc Implement IndVarsSimplify/pointer-indvars.ll, transforming pointer
arithmetic into "array subscripts"

llvm-svn: 10580
2003-12-22 05:02:01 +00:00
Chris Lattner bb661c18c8 finegrainify namespacification
add new getIntPtrType() method

llvm-svn: 10579
2003-12-22 05:01:15 +00:00
Chris Lattner db65d6f14c Doxygenize methods, add new getIntPtrType method
llvm-svn: 10578
2003-12-22 05:00:45 +00:00
Chris Lattner a5e3418d98 New testcase to see if -indvars can promote pointer arithmetic to array accesses
llvm-svn: 10577
2003-12-22 05:00:13 +00:00
Chris Lattner 2d69eae755 fix grammao
llvm-svn: 10576
2003-12-22 04:08:12 +00:00
Chris Lattner 8e570babb0 Bug fixed
llvm-svn: 10575
2003-12-22 04:06:24 +00:00
Chris Lattner 5abdc6fd3d The GCC problem is not specific to suse
llvm-svn: 10574
2003-12-22 04:06:12 +00:00
Chris Lattner d3678bc7c5 Fix PR194
llvm-svn: 10573
2003-12-22 03:58:44 +00:00
Misha Brukman 69aa1ccb07 Really release memory used by functions. Patch by Chris.
llvm-svn: 10572
2003-12-22 03:47:58 +00:00
Misha Brukman 8834af99d6 Fix the URL to check the referrer for CSS conformity.
llvm-svn: 10571
2003-12-21 22:53:21 +00:00
Alkis Evlogimenos 690e1b8de2 Remove verifyIntervals() since it doesn't actually work right now.
llvm-svn: 10570
2003-12-21 20:41:26 +00:00
Alkis Evlogimenos 2665d9c6f9 Change weight into a float so that we can take into account the
nesting level when computing it. Right now the allocator uses:

    w = sum_over_defs_uses( 10 ^ nesting level );

llvm-svn: 10569
2003-12-21 20:19:10 +00:00
Chris Lattner 7b432f77ac New testcase for PR194
llvm-svn: 10568
2003-12-21 19:06:15 +00:00
Alkis Evlogimenos 2103574b32 Move FP_REG_KILL closer to the return instruction.
llvm-svn: 10567
2003-12-21 16:47:43 +00:00
Alkis Evlogimenos c09b77ea35 Add support for inactive intervals. This effectively reuses registers
for live ranges that fall into assigned registers' holes.

llvm-svn: 10566
2003-12-21 05:43:40 +00:00
John Criswell d8c7a7fbaa Fix PR#193.
Modified ReadArchiveBuffer() so that it dynamically allocates the
std::string object used to hold the bytecode object file's name.  This is
necessary because it is passed by reference to the new Module that is
allocated to represent the bytecode object, and previously we were
using a std::string that disappeared on function exit.

llvm-svn: 10565
2003-12-20 22:37:29 +00:00
Alkis Evlogimenos 2406ca8d71 Fix help string for --enable-spec2000 option
llvm-svn: 10564
2003-12-20 21:35:15 +00:00
Alkis Evlogimenos 27437e3318 Move FP_REG_KILL closer to the actual branch instruction.
llvm-svn: 10563
2003-12-20 17:28:15 +00:00
Alkis Evlogimenos 68cff6bf4d Remove floating point killer pass. This is now implemented in the
instruction selector by adding a new pseudo-instruction
FP_REG_KILL. This instruction implicitly defines all x86 fp registers
and is a terminator so that passes which add machine code at the end
of basic blocks (like phi elimination) do not add instructions between
it and the branch or return instruction.

llvm-svn: 10562
2003-12-20 16:22:59 +00:00
Chris Lattner 6448f89cdc Another day, another bug
llvm-svn: 10561
2003-12-20 10:29:02 +00:00
Chris Lattner 4cbb97bfdd Add a new target-independent machine code freeing pass
llvm-svn: 10560
2003-12-20 10:20:58 +00:00
Chris Lattner 452597611f Finally, _actually delete the machine code_ for a function, after it has
been emitted.  Also, since the FPK pass is causing memory access violations,
disable it.

llvm-svn: 10559
2003-12-20 10:20:19 +00:00
Chris Lattner b1bbd7c7f6 This should not be needed anymore
llvm-svn: 10558
2003-12-20 10:19:18 +00:00
Chris Lattner 5219159892 Rearrange code, indent for the namespace, add the createMachineFunctionPrinterPass
to passes.h, and add the machien destruction pass to Passes.h

llvm-svn: 10557
2003-12-20 10:18:58 +00:00
Chris Lattner af4304f807 Fix memory leak in the stackifier, due to the machinebasicblocks not holding
instructions on an ilist

llvm-svn: 10556
2003-12-20 10:12:17 +00:00
Chris Lattner d46cd68695 Finegrainify namespacification
Minor cleanups to killer pass

llvm-svn: 10555
2003-12-20 09:58:55 +00:00
Chris Lattner 9a4898939a Hoist some sparc specific code into the sparc target
llvm-svn: 10554
2003-12-20 09:17:40 +00:00