oota-llvm.git
20 years agoRenamed to hash_set.in; move to using autoconf substitution tags.
Brian Gaeke [Mon, 23 Feb 2004 18:56:36 +0000 (18:56 +0000)]
Renamed to hash_set.in; move to using autoconf substitution tags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11765 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRenamed to hash_map.in; move to using autoconf substitution tags.
Brian Gaeke [Mon, 23 Feb 2004 18:56:35 +0000 (18:56 +0000)]
Renamed to hash_map.in; move to using autoconf substitution tags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11764 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd include/Support/hash_map and include/Support/hash_set as AC_OUTPUT files.
Brian Gaeke [Mon, 23 Feb 2004 18:56:05 +0000 (18:56 +0000)]
Add include/Support/hash_map and include/Support/hash_set as AC_OUTPUT files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11763 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRegenerated using autoheader-2.57.
Brian Gaeke [Mon, 23 Feb 2004 18:56:04 +0000 (18:56 +0000)]
Regenerated using autoheader-2.57.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11762 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMove HASH_* checks to using AC_SUBST instead of AC_DEFINE. Tighten up some whitespace...
Brian Gaeke [Mon, 23 Feb 2004 18:56:03 +0000 (18:56 +0000)]
Move HASH_* checks to using AC_SUBST instead of AC_DEFINE. Tighten up some whitespace and comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11761 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRegenerated using autoconf-2.57.
Brian Gaeke [Mon, 23 Feb 2004 18:56:02 +0000 (18:56 +0000)]
Regenerated using autoconf-2.57.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11760 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd number of spilled registers statistic.
Alkis Evlogimenos [Mon, 23 Feb 2004 18:45:32 +0000 (18:45 +0000)]
Add number of spilled registers statistic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11759 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix bugs in finegrainification
Chris Lattner [Mon, 23 Feb 2004 18:40:08 +0000 (18:40 +0000)]
Fix bugs in finegrainification

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11758 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFinegrainify namespacification
Chris Lattner [Mon, 23 Feb 2004 18:38:20 +0000 (18:38 +0000)]
Finegrainify namespacification

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11757 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse MachineBasicBlock::getParent().
Alkis Evlogimenos [Mon, 23 Feb 2004 18:36:38 +0000 (18:36 +0000)]
Use MachineBasicBlock::getParent().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11756 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRemove implementation of default constructor as it is useless now.
Alkis Evlogimenos [Mon, 23 Feb 2004 18:28:35 +0000 (18:28 +0000)]
Remove implementation of default constructor as it is useless now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11755 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRenamed from include/Support/iterator. Doxygenify comments; add autoconf substitution...
Brian Gaeke [Mon, 23 Feb 2004 18:16:10 +0000 (18:16 +0000)]
Renamed from include/Support/iterator. Doxygenify comments; add autoconf substitution tags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11754 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoReplaced by include/Support/iterator.in.
Brian Gaeke [Mon, 23 Feb 2004 18:16:10 +0000 (18:16 +0000)]
Replaced by include/Support/iterator.in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11753 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRegenerated with autoheader-2.57.
Brian Gaeke [Mon, 23 Feb 2004 18:16:09 +0000 (18:16 +0000)]
Regenerated with autoheader-2.57.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11752 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd include/Support/iterator as an AC_OUTPUT file.
Brian Gaeke [Mon, 23 Feb 2004 18:16:08 +0000 (18:16 +0000)]
Add include/Support/iterator as an AC_OUTPUT file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11751 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake all iterator checks use AC_SUBST instead of AC_DEFINE.
Brian Gaeke [Mon, 23 Feb 2004 18:16:07 +0000 (18:16 +0000)]
Make all iterator checks use AC_SUBST instead of AC_DEFINE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11750 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRegenerated with autoconf-2.57.
Brian Gaeke [Mon, 23 Feb 2004 18:16:06 +0000 (18:16 +0000)]
Regenerated with autoconf-2.57.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11749 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRefactor rewinding code for finding the first terminator of a basic
Alkis Evlogimenos [Mon, 23 Feb 2004 18:14:48 +0000 (18:14 +0000)]
Refactor rewinding code for finding the first terminator of a basic
block into MachineBasicBlock::getFirstTerminator().

This also fixes a bug in the implementation of the above in both
RegAllocLocal and InstrSched, where instructions where added after the
terminator if the basic block's only instruction was a terminator (it
shouldn't matter for RegAllocLocal since this case never occurs in
practice).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11748 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSimplify code a bit, don't go off the end of the block, now that the current
Chris Lattner [Mon, 23 Feb 2004 07:42:19 +0000 (07:42 +0000)]
Simplify code a bit, don't go off the end of the block, now that the current
block we are in might be empty

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11744 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWe were forgetting to add FP_REG_KILL instructions to basic blocks which will
Chris Lattner [Mon, 23 Feb 2004 07:29:45 +0000 (07:29 +0000)]
We were forgetting to add FP_REG_KILL instructions to basic blocks which will
eventually get an assignment due to elimination of PHIs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11743 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement cast.ll::test14/15
Chris Lattner [Mon, 23 Feb 2004 07:16:20 +0000 (07:16 +0000)]
Implement cast.ll::test14/15

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11742 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd tests for casts that should be eliminated
Chris Lattner [Mon, 23 Feb 2004 07:16:03 +0000 (07:16 +0000)]
Add tests for casts that should be eliminated

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11741 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRefactor some code. In the mul - setcc folding case, we really care about
Chris Lattner [Mon, 23 Feb 2004 06:38:22 +0000 (06:38 +0000)]
Refactor some code.  In the mul - setcc folding case, we really care about
whether this is the sign bit or not, so check unsigned comparisons as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11740 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoHandle the unsigned form as well
Chris Lattner [Mon, 23 Feb 2004 06:37:33 +0000 (06:37 +0000)]
Handle the unsigned form as well

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11739 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImproved PhysRegTracker interface. RegAlloc lazily allocates the register tracker...
Alkis Evlogimenos [Mon, 23 Feb 2004 06:10:13 +0000 (06:10 +0000)]
Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11738 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement mul.ll:test11
Chris Lattner [Mon, 23 Feb 2004 06:00:11 +0000 (06:00 +0000)]
Implement mul.ll:test11

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11737 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a slight variant of test10
Chris Lattner [Mon, 23 Feb 2004 05:59:52 +0000 (05:59 +0000)]
Add a slight variant of test10

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11736 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement "strength reduction" of X <= C and X >= C
Chris Lattner [Mon, 23 Feb 2004 05:47:48 +0000 (05:47 +0000)]
Implement "strength reduction" of   X <= C and X >= C

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11735 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement InstCombine/mul.ll:test10, which is a case that occurs when dealing
Chris Lattner [Mon, 23 Feb 2004 05:39:21 +0000 (05:39 +0000)]
Implement InstCombine/mul.ll:test10, which is a case that occurs when dealing
with "predication"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11734 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThis multiply can be eliminated
Chris Lattner [Mon, 23 Feb 2004 05:38:47 +0000 (05:38 +0000)]
This multiply can be eliminated

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11733 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSimplify iterator usage now that we have next(). Also don't pass iterators by referen...
Alkis Evlogimenos [Mon, 23 Feb 2004 04:12:30 +0000 (04:12 +0000)]
Simplify iterator usage now that we have next(). Also don't pass iterators by reference now that MachineInstr* are in an ilist

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11732 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUpdate the 'new features' section
Chris Lattner [Mon, 23 Feb 2004 03:51:34 +0000 (03:51 +0000)]
Update the 'new features' section

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11731 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBug fixed
Chris Lattner [Mon, 23 Feb 2004 03:36:36 +0000 (03:36 +0000)]
Bug fixed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11730 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWork around a gas bug. Print '-9223372036854775808' as unsigned.
Chris Lattner [Mon, 23 Feb 2004 03:27:05 +0000 (03:27 +0000)]
Work around a gas bug.  Print '-9223372036854775808' as unsigned.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11729 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement cast fp -> bool
Chris Lattner [Mon, 23 Feb 2004 03:21:41 +0000 (03:21 +0000)]
Implement cast fp -> bool

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11728 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd testcase for the casts that are missing in PR249
Chris Lattner [Mon, 23 Feb 2004 03:21:09 +0000 (03:21 +0000)]
Add testcase for the casts that are missing in PR249

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11727 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoStop passing iterators around by reference now that we have ilists!
Chris Lattner [Mon, 23 Feb 2004 03:10:10 +0000 (03:10 +0000)]
Stop passing iterators around by reference now that we have ilists!

Implement cast Type::ULongTy -> double

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11726 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSome code cleanups from Chris
Alkis Evlogimenos [Mon, 23 Feb 2004 01:57:39 +0000 (01:57 +0000)]
Some code cleanups from Chris

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11724 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be consiste...
Alkis Evlogimenos [Mon, 23 Feb 2004 01:25:05 +0000 (01:25 +0000)]
Fix comments in PhysRegTracker and rename isPhysRegAvail to isRegAvail to be consistent with the other two

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11723 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a new cmove instruction
Chris Lattner [Mon, 23 Feb 2004 01:16:05 +0000 (01:16 +0000)]
Add a new cmove instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11722 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMove LiveIntervals.h up to be the first included header
Alkis Evlogimenos [Mon, 23 Feb 2004 01:01:21 +0000 (01:01 +0000)]
Move LiveIntervals.h up to be the first included header

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11721 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPull PhysRegTracker out of RegAllocLinearScan as it can be used by other allocators...
Alkis Evlogimenos [Mon, 23 Feb 2004 00:53:31 +0000 (00:53 +0000)]
Pull PhysRegTracker out of RegAllocLinearScan as it can be used by other allocators as well

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11720 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMove LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts...
Alkis Evlogimenos [Mon, 23 Feb 2004 00:50:15 +0000 (00:50 +0000)]
Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts of the compiler

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11719 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoOnly insert FP_REG_KILL instructions in MachineBasicBlocks that actually
Chris Lattner [Sun, 22 Feb 2004 19:47:26 +0000 (19:47 +0000)]
Only insert FP_REG_KILL instructions in MachineBasicBlocks that actually
use FP instructions.  This reduces the number of instructions inserted in
176.gcc (for example) from 58074 to 101 (it doesn't use much FP, which
is typical).  This reduction speeds up the entire code generator.  In the
case of 176.gcc, llc went from taking 31.38s to 24.78s.  The passes that
sped up the most are the register allocator and the 2 live variable analysis
passes, which sped up 2.3, 1.3, and 1.5s respectively.  The asmprinter
pass also sped up because it doesn't print the instructions in comments :)

Note that this patch is likely to expose latent bugs in machine code passes,
because now basicblock can be empty, where they were never empty before.  I
cleaned out regalloclocal, but who knows about linscan :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11717 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAnother bug fix for empty MBB's
Chris Lattner [Sun, 22 Feb 2004 19:37:31 +0000 (19:37 +0000)]
Another bug fix for empty MBB's

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11716 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMove MOTy::UseType enum into MachineOperand. This eliminates the
Alkis Evlogimenos [Sun, 22 Feb 2004 19:23:26 +0000 (19:23 +0000)]
Move MOTy::UseType enum into MachineOperand. This eliminates the
switch statements in the constructors and simplifies the
implementation of the getUseType() member function. You will have to
specify defs using MachineOperand::Def instead of MOTy::Def though
(similarly for Use and UseAndDef).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11715 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a bug where we were implicitly assuming that there would be at least
Chris Lattner [Sun, 22 Feb 2004 19:08:15 +0000 (19:08 +0000)]
Fix a bug where we were implicitly assuming that there would be at least
one terminator instruction in each basic block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11714 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoReduce the number of pointless copies inserted due to constant pointer refs.
Chris Lattner [Sun, 22 Feb 2004 17:35:42 +0000 (17:35 +0000)]
Reduce the number of pointless copies inserted due to constant pointer refs.
Also, make an assertion actually fireable!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11713 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix bug in previous checkout: leave the iterator at the first instruction
Chris Lattner [Sun, 22 Feb 2004 17:05:38 +0000 (17:05 +0000)]
Fix bug in previous checkout: leave the iterator at the first instruction
AFTER the GEP that was emitted.  :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11712 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix silly bug in implementation of getUseType(). Thanks Misha.
Alkis Evlogimenos [Sun, 22 Feb 2004 07:24:19 +0000 (07:24 +0000)]
Fix silly bug in implementation of getUseType(). Thanks Misha.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11711 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoCompletely rewrite how getelementptr instructions are expanded. This has two
Chris Lattner [Sun, 22 Feb 2004 07:04:00 +0000 (07:04 +0000)]
Completely rewrite how getelementptr instructions are expanded.  This has two
(minor) benefits right now:

1. An extra dummy MOVrr32 is gone.  This move would often be coallesced by
   both allocators anyway.
2. The code now uses the gep_type_iterator to walk the gep, which should future
   proof it a bit.  It still assumes that array indexes are Longs though.

These don't really justify rewriting the code.  The big benefit will come later
though.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11710 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWhen folding memory operands in machine instructions be careful to
Alkis Evlogimenos [Sun, 22 Feb 2004 06:54:26 +0000 (06:54 +0000)]
When folding memory operands in machine instructions be careful to
leave register operands with the same use/def flags as the original
instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11709 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSignificantly simplify gep_type_iterator, and make its interface more general/powerful
Chris Lattner [Sun, 22 Feb 2004 06:27:03 +0000 (06:27 +0000)]
Significantly simplify gep_type_iterator, and make its interface more general/powerful

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11708 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix a soon-to-be-missing #include
Chris Lattner [Sun, 22 Feb 2004 06:26:17 +0000 (06:26 +0000)]
Fix a soon-to-be-missing #include

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11707 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoGet all instruction definitions
Chris Lattner [Sun, 22 Feb 2004 06:25:38 +0000 (06:25 +0000)]
Get all instruction definitions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11706 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWow this is out of date. When we have _real_ code generator documentation,
Chris Lattner [Sun, 22 Feb 2004 05:53:54 +0000 (05:53 +0000)]
Wow this is out of date.  When we have _real_ code generator documentation,
this should be folded into it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11705 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPrint basic block boundaries in machine instruction debug output.
Alkis Evlogimenos [Sun, 22 Feb 2004 05:46:04 +0000 (05:46 +0000)]
Print basic block boundaries in machine instruction debug output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11704 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoLink to most recent "LLVM document"
Chris Lattner [Sun, 22 Feb 2004 05:45:02 +0000 (05:45 +0000)]
Link to most recent "LLVM document"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11703 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoImplement Transforms/InstCombine/cast.ll:test13, a case which occurs in a
Chris Lattner [Sun, 22 Feb 2004 05:25:17 +0000 (05:25 +0000)]
Implement Transforms/InstCombine/cast.ll:test13, a case which occurs in a
hot 164.gzip loop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11702 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoTest that the instruction combiner can fold away a cast in a GEP instruction.
Chris Lattner [Sun, 22 Feb 2004 05:24:09 +0000 (05:24 +0000)]
Test that the instruction combiner can fold away a cast in a GEP instruction.
This occurs in 164.gzip, as a result of it declaring arrays extern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11701 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThe two address pass cannot handle two addr instructions where one incoming
Chris Lattner [Sun, 22 Feb 2004 04:44:58 +0000 (04:44 +0000)]
The two address pass cannot handle two addr instructions where one incoming
value is a physreg and one is a virtreg.  For this reason, disable copy folding
entirely for physregs.  Also, use the new isMoveInstr target hook which gives us
folding of FP moves as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11700 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAbstract merging of ranges away from number of slots per instruction.
Alkis Evlogimenos [Sun, 22 Feb 2004 04:05:13 +0000 (04:05 +0000)]
Abstract merging of ranges away from number of slots per instruction.

Also make it less aggressive as the current implementation breaks in
some cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11696 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse isNull instead of getNode() to test for existence of a node, this is cheaper.
Chris Lattner [Sun, 22 Feb 2004 00:53:54 +0000 (00:53 +0000)]
Use isNull instead of getNode() to test for existence of a node, this is cheaper.

FIX MAJOR BUG, whereby we didn't merge null edges correctly. Correcting this
fixes poolallocation on 175.vpr, and possibly others.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11695 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix an iterator invalidation problem which was causing some nodes to not be
Chris Lattner [Sat, 21 Feb 2004 22:28:26 +0000 (22:28 +0000)]
Fix an iterator invalidation problem which was causing some nodes to not be
correctly merged over!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11693 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse handy method
Chris Lattner [Sat, 21 Feb 2004 22:27:31 +0000 (22:27 +0000)]
Use handy method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11692 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUpdate comments and add warning
Chris Lattner [Sat, 21 Feb 2004 22:27:20 +0000 (22:27 +0000)]
Update comments and add warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11691 91177308-0d34-0410-b5e6-96231b3b80d8

20 years ago`cat' is usually in /bin, not /usr/bin, at least on our systems.
Misha Brukman [Sat, 21 Feb 2004 21:51:41 +0000 (21:51 +0000)]
`cat' is usually in /bin, not /usr/bin, at least on our systems.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11690 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWhen printing a stack trace, demangle it if possible. Since we are potentially
Chris Lattner [Sat, 21 Feb 2004 21:06:19 +0000 (21:06 +0000)]
When printing a stack trace, demangle it if possible.  Since we are potentially
in a signal handler, allocating memory or doing other unsafe things is bad,
which means we should do it in a different process.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11689 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake 'fold' statistic's description the same in both allocators.
Alkis Evlogimenos [Sat, 21 Feb 2004 18:07:33 +0000 (18:07 +0000)]
Make 'fold' statistic's description the same in both allocators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11687 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoInstead of cloning the globals for main into the globals graph at the end of
Chris Lattner [Sat, 21 Feb 2004 00:30:28 +0000 (00:30 +0000)]
Instead of cloning the globals for main into the globals graph at the end of
BU propagation, clone the globals into the GG of EACH FUNCTION that finishes
processing!  The GlobalsGraph *must* include all globals and effects from
all functions in the program.  Fixing this makes pool allocation work better
on 175.vpr, but it still ultimately crashes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11686 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoThere is no need to merge the globals graph into the function graphs at the
Chris Lattner [Fri, 20 Feb 2004 23:52:15 +0000 (23:52 +0000)]
There is no need to merge the globals graph into the function graphs at the
end of the BU and CBU passes.  The globals will be marked incomplete, so it
doesn't matter if they are missing some info, and merging isn't guaranteed
to bring everything in anyway!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11684 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd two missing returns, which caused us to be very pessimistic about the
Chris Lattner [Fri, 20 Feb 2004 23:27:09 +0000 (23:27 +0000)]
Add two missing returns, which caused us to be very pessimistic about the
printf and scanf families!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11683 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agonew testcase
Chris Lattner [Fri, 20 Feb 2004 23:05:43 +0000 (23:05 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11682 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdded the POVRAY_ROOT to locate Povray.
John Criswell [Fri, 20 Feb 2004 22:30:46 +0000 (22:30 +0000)]
Added the POVRAY_ROOT to locate Povray.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11681 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdded an option for configuring Povray. By default, it should find my local
John Criswell [Fri, 20 Feb 2004 22:30:22 +0000 (22:30 +0000)]
Added an option for configuring Povray.  By default, it should find my local
installation of Povray (and not do anything for people who don't have it).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11680 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBuild an archive for use with Povray.
John Criswell [Fri, 20 Feb 2004 21:26:46 +0000 (21:26 +0000)]
Build an archive for use with Povray.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11678 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoSome more statistics improvements.
Alkis Evlogimenos [Fri, 20 Feb 2004 20:53:26 +0000 (20:53 +0000)]
Some more statistics improvements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11676 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDisambiguate statistic descriptions.
Alkis Evlogimenos [Fri, 20 Feb 2004 20:46:49 +0000 (20:46 +0000)]
Disambiguate statistic descriptions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11675 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRename statistic and add another one.
Alkis Evlogimenos [Fri, 20 Feb 2004 20:43:08 +0000 (20:43 +0000)]
Rename statistic and add another one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11674 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd support for some string functions, the scanf family, and sprintf
Chris Lattner [Fri, 20 Feb 2004 20:27:11 +0000 (20:27 +0000)]
Add support for some string functions, the scanf family, and sprintf

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11673 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a simple implementation of strncpy
Chris Lattner [Fri, 20 Feb 2004 20:15:47 +0000 (20:15 +0000)]
Add a simple implementation of strncpy

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11672 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoNew testcase, do not emit a call to __builtin_sqrt, emit a call to sqrt instead!
Chris Lattner [Fri, 20 Feb 2004 19:08:12 +0000 (19:08 +0000)]
New testcase, do not emit a call to __builtin_sqrt, emit a call to sqrt instead!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11668 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoBug fixed
Chris Lattner [Fri, 20 Feb 2004 17:41:35 +0000 (17:41 +0000)]
Bug fixed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11662 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoPR244: [llvm-gcc] miscompilation when a function is re-declared as static
Chris Lattner [Fri, 20 Feb 2004 17:32:24 +0000 (17:32 +0000)]
PR244: [llvm-gcc] miscompilation when a function is re-declared as static

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11661 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd checks for <execinfo.h> and backtrace().
Brian Gaeke [Fri, 20 Feb 2004 06:41:59 +0000 (06:41 +0000)]
Add checks for <execinfo.h> and backtrace().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11660 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix crash in debug output.
Alkis Evlogimenos [Fri, 20 Feb 2004 06:41:12 +0000 (06:41 +0000)]
Fix crash in debug output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11659 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoUse backtrace() and include execinfo.h, if they were detected by autoconf.
Brian Gaeke [Fri, 20 Feb 2004 06:40:59 +0000 (06:40 +0000)]
Use backtrace() and include execinfo.h, if they were detected by autoconf.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11658 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRegenerated using autoheader-2.57.
Brian Gaeke [Fri, 20 Feb 2004 06:40:58 +0000 (06:40 +0000)]
Regenerated using autoheader-2.57.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11657 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoRegenerated using autoconf-2.57.
Brian Gaeke [Fri, 20 Feb 2004 06:40:57 +0000 (06:40 +0000)]
Regenerated using autoconf-2.57.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11656 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFix instruction numbering in debug output.
Alkis Evlogimenos [Fri, 20 Feb 2004 06:29:51 +0000 (06:29 +0000)]
Fix instruction numbering in debug output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11655 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoToo many changes in one commit:
Alkis Evlogimenos [Fri, 20 Feb 2004 06:15:40 +0000 (06:15 +0000)]
Too many changes in one commit:

1. LiveIntervals now implement a 4 slot per instruction model. Load,
   Use, Def and a Store slot. This is required in order to correctly
   represent caller saved register clobbering on function calls,
   register reuse in the same instruction (def resues last use) and
   also spill code added later by the allocator. The previous
   representation (2 slots per instruction) was insufficient and as a
   result was causing subtle bugs.

2. Fixes in spill code generation. This was the major cause of
   failures in the test suite.

3. Linear scan now has core support for folding memory operands. This
   is untested and not enabled (the live interval update function does
   not attempt to fold loads/stores in instructions).

4. Lots of improvements in the debugging output of both live intervals
   and linear scan. Give it a try... it is beautiful :-)

In summary the above fixes all the issues with the recent reserved
register elimination changes and get the allocator very close to the
next big step: folding memory operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11654 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoIf bugpoint can't match the reference output, at LEAST provide the output
Chris Lattner [Fri, 20 Feb 2004 06:12:58 +0000 (06:12 +0000)]
If bugpoint can't match the reference output, at LEAST provide the output
we can get.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11653 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoWild and passionate uncontrolled goose chases are amusing to watch, but not
Chris Lattner [Fri, 20 Feb 2004 05:58:58 +0000 (05:58 +0000)]
Wild and passionate uncontrolled goose chases are amusing to watch, but not
very helpful.  Let bugpoint favor being helpful instead of determined.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11652 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoFormat a bit more nicely
Chris Lattner [Fri, 20 Feb 2004 05:56:48 +0000 (05:56 +0000)]
Format a bit more nicely

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11651 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoIt is totally unacceptable to print out (literally) millions of zeros when
Chris Lattner [Fri, 20 Feb 2004 05:49:22 +0000 (05:49 +0000)]
It is totally unacceptable to print out (literally) millions of zeros when
compiling 129.compress... so don't!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11649 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd strndup
Chris Lattner [Thu, 19 Feb 2004 21:44:41 +0000 (21:44 +0000)]
Add strndup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11638 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoAdd a method useful for updating DSA
Chris Lattner [Thu, 19 Feb 2004 21:27:50 +0000 (21:27 +0000)]
Add a method useful for updating DSA

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11636 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoDisable the stack trace thing until we can get an autoconf test for it. This
Chris Lattner [Thu, 19 Feb 2004 21:21:23 +0000 (21:21 +0000)]
Disable the stack trace thing until we can get an autoconf test for it.  This
call breaks on sparcs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11635 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake sure to print a stack trace whenever an error signal is delivered
Chris Lattner [Thu, 19 Feb 2004 20:33:00 +0000 (20:33 +0000)]
Make sure to print a stack trace whenever an error signal is delivered
to the tool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11634 91177308-0d34-0410-b5e6-96231b3b80d8

20 years agoMake sure to print a stack trace whenever an error signal is delivered to
Chris Lattner [Thu, 19 Feb 2004 20:32:39 +0000 (20:32 +0000)]
Make sure to print a stack trace whenever an error signal is delivered to
the tool.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11633 91177308-0d34-0410-b5e6-96231b3b80d8