Chris Lattner [Tue, 24 Feb 2004 04:54:45 +0000 (04:54 +0000)]
Wow, the description of the 'switch' instruction was out of date.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11790
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Feb 2004 04:02:20 +0000 (04:02 +0000)]
we no longer include boost
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11789
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Feb 2004 03:54:22 +0000 (03:54 +0000)]
Hrm, my find must have been faulty. It didn't remove these as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11788
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Feb 2004 03:53:00 +0000 (03:53 +0000)]
Boost is now unneeded, thanks to the fix for PR253, contributed by Reid Spencer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11787
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Feb 2004 03:50:24 +0000 (03:50 +0000)]
Now that's a new feature!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11786
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Feb 2004 03:50:05 +0000 (03:50 +0000)]
Use the new LLVM is_class template instead of the boost one, allowing us to
remove our dependency on boost! Thanks to Reid Spencer for making this possible!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11785
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Feb 2004 03:49:29 +0000 (03:49 +0000)]
Check in a new type_traits header which provides the mysterious is_class
template. Thanks go out to Reid Spencer for skillfully extracting this
from boost!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11784
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 24 Feb 2004 03:47:25 +0000 (03:47 +0000)]
Noone cares about similarity to boost
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11783
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 23 Feb 2004 23:49:40 +0000 (23:49 +0000)]
Make enum private as it is an implementation detail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11782
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 23 Feb 2004 23:47:10 +0000 (23:47 +0000)]
Remove '4Virt' from member function names as it is obvious.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11781
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 23 Feb 2004 23:08:11 +0000 (23:08 +0000)]
Refactor VirtRegMap out of RegAllocLinearScan as the first part of bug
251 (providing a generic machine code rewriter/spiller).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11780
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 23 Feb 2004 22:42:51 +0000 (22:42 +0000)]
Include Config/config.h for SHLIBEXT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11779
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 22:07:26 +0000 (22:07 +0000)]
DataTypes.h is now output from configure, and shortened
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11778
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 22:07:01 +0000 (22:07 +0000)]
Add SUBSTing checks for sys/types.h and inttypes.h; add DataTypes.h to AC_OUTPUT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11777
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 22:07:00 +0000 (22:07 +0000)]
Regenerated with autoconf-2.57.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11776
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Feb 2004 21:46:58 +0000 (21:46 +0000)]
Generate much more efficient code in programs like pifft
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11775
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Feb 2004 21:46:42 +0000 (21:46 +0000)]
Fix a small typeo in my checkin last night that broke vortex and other programs :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11774
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 21:30:39 +0000 (21:30 +0000)]
Regenerated with autoheader-2.57.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11773
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 21:30:37 +0000 (21:30 +0000)]
Regenerated with autoconf-2.57.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11772
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 21:30:36 +0000 (21:30 +0000)]
Change test for pthreads to use AC_SUBST; add ThreadSupport.h as an AC_OUTPUT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11771
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 21:30:29 +0000 (21:30 +0000)]
ThreadSupport.h is now output from configure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11770
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 23 Feb 2004 21:12:58 +0000 (21:12 +0000)]
Remove check for slist
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11769
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Feb 2004 20:30:06 +0000 (20:30 +0000)]
Fix InstCombine/2004-02-23-ShiftShiftOverflow.ll
Also, turn 'shr int %X, 1234' into 'shr int %X, 31'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11768
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Feb 2004 20:24:16 +0000 (20:24 +0000)]
Test for the other way also
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11767
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Feb 2004 20:19:51 +0000 (20:19 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11766
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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