oota-llvm.git
19 years agoAdd SUBI instruction
Misha Brukman [Wed, 21 Jul 2004 15:53:04 +0000 (15:53 +0000)]
Add SUBI instruction

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

19 years agoFix spelling of `iterative scan'
Misha Brukman [Wed, 21 Jul 2004 12:53:14 +0000 (12:53 +0000)]
Fix spelling of `iterative scan'

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

19 years ago* Uncomment rule for location of LLI (formerly commented out: typo?)
Misha Brukman [Wed, 21 Jul 2004 12:47:40 +0000 (12:47 +0000)]
* Uncomment rule for location of LLI (formerly commented out: typo?)
* Add space between VAR and `='

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

19 years agoClear spilled list at once. Remove unused vector.
Alkis Evlogimenos [Wed, 21 Jul 2004 12:00:10 +0000 (12:00 +0000)]
Clear spilled list at once. Remove unused vector.

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

19 years agoChange std::list into a std::vector for IntervalSets. This reduces
Alkis Evlogimenos [Wed, 21 Jul 2004 09:46:55 +0000 (09:46 +0000)]
Change std::list into a std::vector for IntervalSets. This reduces
compile time for 176.gcc from 5.6 secs to 4.7 secs.

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

19 years agoAdd greater_ptr functor.
Alkis Evlogimenos [Wed, 21 Jul 2004 08:38:06 +0000 (08:38 +0000)]
Add greater_ptr functor.

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

19 years agoImprove file comment.
Alkis Evlogimenos [Wed, 21 Jul 2004 08:28:39 +0000 (08:28 +0000)]
Improve file comment.

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

19 years agoAdd Iterative scan register allocator.
Alkis Evlogimenos [Wed, 21 Jul 2004 08:24:35 +0000 (08:24 +0000)]
Add Iterative scan register allocator.

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

19 years agoLinearscan is no longer experimental.
Alkis Evlogimenos [Wed, 21 Jul 2004 08:18:50 +0000 (08:18 +0000)]
Linearscan is no longer experimental.

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

19 years agoAdd capability to remove aliasing aliassets from an AST
Chris Lattner [Wed, 21 Jul 2004 07:04:26 +0000 (07:04 +0000)]
Add capability to remove aliasing aliassets from an AST

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

19 years agoAdd a bunch of new functionality, primarily to do with removing aliasing
Chris Lattner [Wed, 21 Jul 2004 07:03:57 +0000 (07:03 +0000)]
Add a bunch of new functionality, primarily to do with removing aliasing
pointers from an AST.

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

19 years agoMake the AST interface a bit richer by returning whether an insertion caused
Chris Lattner [Wed, 21 Jul 2004 05:18:04 +0000 (05:18 +0000)]
Make the AST interface a bit richer by returning whether an insertion caused
an insertion or not (because the pointer set already existed).

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

19 years agoRemove special casing of pointers and treat them generically as integers of
Chris Lattner [Wed, 21 Jul 2004 04:27:24 +0000 (04:27 +0000)]
Remove special casing of pointers and treat them generically as integers of
the appopriate size.  This gives us the ability to eliminate int -> ptr -> int

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

19 years agoDo not ignore casts unless they are pointer-pointer casts. This caused us
Chris Lattner [Wed, 21 Jul 2004 03:56:54 +0000 (03:56 +0000)]
Do not ignore casts unless they are pointer-pointer casts.  This caused us
to miscompile the SingleSource/Regression/C++/pointer_member.cpp program.

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

19 years agoRegenerated using autoconf-2.57.
Brian Gaeke [Wed, 21 Jul 2004 03:50:25 +0000 (03:50 +0000)]
Regenerated using autoconf-2.57.

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

19 years agoAdd AC_MSG_CHECKING and AC_MSG_RESULT statements which were missing
Brian Gaeke [Wed, 21 Jul 2004 03:50:01 +0000 (03:50 +0000)]
Add AC_MSG_CHECKING and AC_MSG_RESULT statements which were missing
from two of our custom checks.

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

19 years agoRegenerated with autoconf/autoheader 2.57
Brian Gaeke [Wed, 21 Jul 2004 03:33:58 +0000 (03:33 +0000)]
Regenerated with autoconf/autoheader 2.57

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

19 years agoSolaris hack for isinf()
Brian Gaeke [Wed, 21 Jul 2004 03:32:51 +0000 (03:32 +0000)]
Solaris hack for isinf()

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

19 years agoAdd check for finite(). Solaris doesn't have isinf, but it has finite...go
Brian Gaeke [Wed, 21 Jul 2004 03:30:27 +0000 (03:30 +0000)]
Add check for finite(). Solaris doesn't have isinf, but it has finite...go
figure!

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

19 years agoEmit NaNs and INFs bit-identically to the bytecode file, if the system has
Brian Gaeke [Wed, 21 Jul 2004 03:15:26 +0000 (03:15 +0000)]
Emit NaNs and INFs bit-identically to the bytecode file, if the system has
printf("%a") support.
Patch contributed by Bill Wendling.

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

19 years agoAdd prototypes for platform-independent wrappers for isinf().
Brian Gaeke [Wed, 21 Jul 2004 03:15:14 +0000 (03:15 +0000)]
Add prototypes for platform-independent wrappers for isinf().
Patch contributed by Bill Wendling.

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

19 years agoRegenerated with autoheader-2.57.
Brian Gaeke [Wed, 21 Jul 2004 03:15:02 +0000 (03:15 +0000)]
Regenerated with autoheader-2.57.
Patch contributed by Bill Wendling.

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

19 years agoAdd call to check for isinf().
Brian Gaeke [Wed, 21 Jul 2004 03:14:51 +0000 (03:14 +0000)]
Add call to check for isinf().
Patch contributed by Bill Wendling.

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

19 years agoAdd support for checking for isinf().
Brian Gaeke [Wed, 21 Jul 2004 03:14:39 +0000 (03:14 +0000)]
Add support for checking for isinf().
Patch contributed by Bill Wendling.

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

19 years agoRegenerated with autoconf-2.57.
Brian Gaeke [Wed, 21 Jul 2004 03:14:12 +0000 (03:14 +0000)]
Regenerated with autoconf-2.57.
Patch contributed by Bill Wendling.

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

19 years agoAdd platform-independent wrapper function for isinf().
Brian Gaeke [Wed, 21 Jul 2004 03:13:50 +0000 (03:13 +0000)]
Add platform-independent wrapper function for isinf().
Patch contributed by Bill Wendling.

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

19 years agoMove LLVM tool definitions to Makefile.rules
Brian Gaeke [Wed, 21 Jul 2004 01:31:47 +0000 (01:31 +0000)]
Move LLVM tool definitions to Makefile.rules

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

19 years agoShorts are aligned to 2 bytes, bools to 1 byte (in structs).
Misha Brukman [Tue, 20 Jul 2004 20:59:57 +0000 (20:59 +0000)]
Shorts are aligned to 2 bytes, bools to 1 byte (in structs).

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

19 years agoTreat external variables similarly to those with weak linkage: load indirect.
Misha Brukman [Tue, 20 Jul 2004 20:43:05 +0000 (20:43 +0000)]
Treat external variables similarly to those with weak linkage: load indirect.

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

19 years agoRefer would-be llvm-gcc source users/hackers to the compilation guide.
Misha Brukman [Tue, 20 Jul 2004 20:25:18 +0000 (20:25 +0000)]
Refer would-be llvm-gcc source users/hackers to the compilation guide.

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

19 years agoUse C++-style <cstdio> instead of C-style <stdio.h>
Misha Brukman [Tue, 20 Jul 2004 16:14:06 +0000 (16:14 +0000)]
Use C++-style <cstdio> instead of C-style <stdio.h>

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

19 years agoDifferentiate between global and weak symbol loads
Misha Brukman [Tue, 20 Jul 2004 15:52:25 +0000 (15:52 +0000)]
Differentiate between global and weak symbol loads

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

19 years ago* Differentiate between global and weak symbol loads
Misha Brukman [Tue, 20 Jul 2004 15:51:37 +0000 (15:51 +0000)]
* Differentiate between global and weak symbol loads
* Fix functions that take more than 32 bytes of args
* Alignment of doubles in structs is 4 bytes, not 8
* Fix passing long args: rN = hi, rN+1 = lo
* Rewrite signed divide
* Rewrite Intrinsic::returnaddress

Patch courtesy of Nate Begeman.

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

19 years agoDifferentiate between global and weak symbol loads
Misha Brukman [Tue, 20 Jul 2004 15:45:27 +0000 (15:45 +0000)]
Differentiate between global and weak symbol loads

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

19 years agoDouble alignment in structs is 4 bytes, not 8. Patch by Nate Begeman.
Misha Brukman [Tue, 20 Jul 2004 15:43:25 +0000 (15:43 +0000)]
Double alignment in structs is 4 bytes, not 8.  Patch by Nate Begeman.

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

19 years agoAdd function to clear all virtual->physical mappings but not assigned
Alkis Evlogimenos [Tue, 20 Jul 2004 13:28:17 +0000 (13:28 +0000)]
Add function to clear all virtual->physical mappings but not assigned
stack slots. This is in preparation for the iterative linear scan.

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

19 years agoRemove unneeded functor. LiveInterval has a < operator.
Alkis Evlogimenos [Tue, 20 Jul 2004 10:20:03 +0000 (10:20 +0000)]
Remove unneeded functor. LiveInterval has a < operator.

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

19 years agoFix a serious code pessimization problem. If an inlined function has a single
Chris Lattner [Tue, 20 Jul 2004 05:45:24 +0000 (05:45 +0000)]
Fix a serious code pessimization problem.  If an inlined function has a single
return, clone the 'ret' BB code into the block AFTER the inlined call, not the
other way around.

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

19 years agoImplement Transforms/InstCombine/IntPtrCast.ll
Chris Lattner [Tue, 20 Jul 2004 05:21:00 +0000 (05:21 +0000)]
Implement Transforms/InstCombine/IntPtrCast.ll

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

19 years agonew testcase
Chris Lattner [Tue, 20 Jul 2004 05:20:39 +0000 (05:20 +0000)]
new testcase

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

19 years agoIgnore instructions that are in trivially dead functions. This allows us
Chris Lattner [Tue, 20 Jul 2004 03:58:07 +0000 (03:58 +0000)]
Ignore instructions that are in trivially dead functions.  This allows us
to constify 14 globals instead of 4 in a trivial C++ testcase.

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

19 years agoFix stack frame layout in prologue/epilogue. Patch courtesy of Nate Begeman.
Misha Brukman [Tue, 20 Jul 2004 02:23:09 +0000 (02:23 +0000)]
Fix stack frame layout in prologue/epilogue.  Patch courtesy of Nate Begeman.

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

19 years agoDump the old-fashioned C-style <ctype.h> in favor of new `C++'-style <cctype>
Misha Brukman [Tue, 20 Jul 2004 02:18:25 +0000 (02:18 +0000)]
Dump the old-fashioned C-style <ctype.h> in favor of new `C++'-style <cctype>

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

19 years agoImplement InstCombine/GEPIdxCanon.ll
Chris Lattner [Tue, 20 Jul 2004 01:48:15 +0000 (01:48 +0000)]
Implement InstCombine/GEPIdxCanon.ll

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

19 years agoNew testcase that instcombine should help out with.
Chris Lattner [Tue, 20 Jul 2004 01:47:49 +0000 (01:47 +0000)]
New testcase that instcombine should help out with.

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

19 years agoImplement SimplifyCFG/BrUnwind.ll
Chris Lattner [Tue, 20 Jul 2004 01:17:38 +0000 (01:17 +0000)]
Implement SimplifyCFG/BrUnwind.ll

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

19 years agotest that unconditional branches to unwinds are always eliminated
Chris Lattner [Tue, 20 Jul 2004 01:17:19 +0000 (01:17 +0000)]
test that unconditional branches to unwinds are always eliminated

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

19 years agoMove handing of GlobalValues from getReg() to copyConstantToRegister(), this
Misha Brukman [Tue, 20 Jul 2004 00:59:38 +0000 (00:59 +0000)]
Move handing of GlobalValues from getReg() to copyConstantToRegister(), this
will avoid extra register-to-register copies.  Thanks to Chris for the idea.

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

19 years agoRewrite cast->cast elimination code completely based on the information we
Chris Lattner [Tue, 20 Jul 2004 00:59:32 +0000 (00:59 +0000)]
Rewrite cast->cast elimination code completely based on the information we
actually care about.  Someday when the cast instruction is gone, we can do
better here, but this will do for now.  This implements
instcombine/cast.ll:test17/18 as well.

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

19 years agoTestcases missed by the instruction combiner
Chris Lattner [Tue, 20 Jul 2004 00:57:21 +0000 (00:57 +0000)]
Testcases missed by the instruction combiner

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

19 years agoisupper() and tolower() are declared in <ctype.h>
Misha Brukman [Tue, 20 Jul 2004 00:52:16 +0000 (00:52 +0000)]
isupper() and tolower() are declared in <ctype.h>

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

19 years ago* Fn args passed in registers are now recorded as used by the call instruction
Misha Brukman [Tue, 20 Jul 2004 00:42:19 +0000 (00:42 +0000)]
* Fn args passed in registers are now recorded as used by the call instruction
`-> asm printer updated to not print out those registers with the call instr

All of Shootout tests now work.  Great thanks to Nate Begeman for the patch!

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

19 years ago* cFP class split into cFP32 and cFP64
Misha Brukman [Tue, 20 Jul 2004 00:41:46 +0000 (00:41 +0000)]
* cFP class split into cFP32 and cFP64
* Fn args passed in registers are now recorded as used by the call instruction
`-> asm printer updated to not print out those registers with the call instr
* Stack frame layout in prolog/epilog fixed, spills and vararg fns now work
* float/double to signed int codegen now correct
* various single precision float codegen bugs fixed
* const integer multiply codegen fixed
* select and setcc blocks inserted into the correct place in machine CFG
* load of integer constant code optimized

All of Shootout tests now work.  Great thanks to Nate Begeman for the patch!

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

19 years agoWhile I'm at it, don't break codegen of mul by 3,5,9.
Chris Lattner [Mon, 19 Jul 2004 23:50:57 +0000 (23:50 +0000)]
While I'm at it, don't break codegen of mul by 3,5,9.

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

19 years agoGenerate better code for multiplies by negative constants like -4, -1, -9, etc.
Chris Lattner [Mon, 19 Jul 2004 23:47:21 +0000 (23:47 +0000)]
Generate better code for multiplies by negative constants like -4, -1, -9, etc.

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

19 years agoRemove dead code.
Alkis Evlogimenos [Mon, 19 Jul 2004 23:35:55 +0000 (23:35 +0000)]
Remove dead code.

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

19 years agoTabs to spaces.
Misha Brukman [Mon, 19 Jul 2004 21:22:02 +0000 (21:22 +0000)]
Tabs to spaces.

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

19 years agoConvert tabs to spaces; fix name of function in assert() description.
Misha Brukman [Mon, 19 Jul 2004 21:11:45 +0000 (21:11 +0000)]
Convert tabs to spaces; fix name of function in assert() description.

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

19 years agoFix broken link
Chris Lattner [Mon, 19 Jul 2004 19:30:40 +0000 (19:30 +0000)]
Fix broken link

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

19 years agoJust run 'make', not all-gcc
Chris Lattner [Mon, 19 Jul 2004 18:47:59 +0000 (18:47 +0000)]
Just run 'make', not all-gcc

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

19 years agoAdded support for stdint.h. It is now automatically included by
John Criswell [Mon, 19 Jul 2004 16:12:29 +0000 (16:12 +0000)]
Added support for stdint.h.  It is now automatically included by
DataTypes.h.  So far, it doesn't seem to break Linux, Solaris, or MacOS X.
This should automatically include it for those people who need it.

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

19 years agoFix a bug that occurs when the last instruction in a range is dead
Chris Lattner [Mon, 19 Jul 2004 15:16:53 +0000 (15:16 +0000)]
Fix a bug that occurs when the last instruction in a range is dead

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

19 years agoWhen joining intervals, join intervals in deeply nested loops first. This
Chris Lattner [Mon, 19 Jul 2004 14:40:29 +0000 (14:40 +0000)]
When joining intervals, join intervals in deeply nested loops first.  This
is a simple change, but seems to improve code a little.  For example, on
256.bzip2, we went from 75.0s -> 73.33s (2% speedup).

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

19 years agoSplit joinIntervals into two methods
Chris Lattner [Mon, 19 Jul 2004 14:08:10 +0000 (14:08 +0000)]
Split joinIntervals into two methods

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

19 years agoFix comment
Chris Lattner [Mon, 19 Jul 2004 13:28:39 +0000 (13:28 +0000)]
Fix comment

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

19 years agobug 122:
Reid Spencer [Mon, 19 Jul 2004 13:25:02 +0000 (13:25 +0000)]
bug 122:
Simplify a conditional operator for a constant result from
GV->isNullValue()

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

19 years agoInline 4 methods
Chris Lattner [Mon, 19 Jul 2004 07:52:35 +0000 (07:52 +0000)]
Inline 4 methods

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

19 years agoDelete 4 methods, make clients use hte mark* methods directly
Chris Lattner [Mon, 19 Jul 2004 07:52:25 +0000 (07:52 +0000)]
Delete 4 methods, make clients use hte mark* methods directly

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

19 years agoThere is no need to store the MBB along with the MI any more, we can now
Chris Lattner [Mon, 19 Jul 2004 07:04:55 +0000 (07:04 +0000)]
There is no need to store the MBB along with the MI any more, we can now
ask instructions for their parent.

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

19 years agoSimplify the interface to LiveVariables::addVirtualRegister(Killed|Dead)
Chris Lattner [Mon, 19 Jul 2004 06:55:21 +0000 (06:55 +0000)]
Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead)

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

19 years agoRemove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent()
Chris Lattner [Mon, 19 Jul 2004 06:26:50 +0000 (06:26 +0000)]
Remove the DefBlock element of VarInfo.  DefBlock is always DefInst->getParent()

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

19 years agoErr, fix last checkin
Chris Lattner [Mon, 19 Jul 2004 06:03:51 +0000 (06:03 +0000)]
Err, fix last checkin

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

19 years agoFix bugpoint miscompilation support on OS/X
Chris Lattner [Mon, 19 Jul 2004 06:00:17 +0000 (06:00 +0000)]
Fix bugpoint miscompilation support on OS/X

Patch contributed by the fabulous Nate Begeman.

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

19 years agoTwo changes, both very significant:
Chris Lattner [Mon, 19 Jul 2004 05:55:50 +0000 (05:55 +0000)]
Two changes, both very significant:

* vreg <-> vreg joining now works, enable it unconditionally when joining
  is enabled (which is the default).
* Fix a serious pessimization of spill code where we were saying that a
  spilled DEF operand was live into the subsequent instruction.  This allows
  for substantially better code when spilling starts to happen.

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

19 years agoSee comments. The live intervals were not coming out of the spiller in sorted
Chris Lattner [Mon, 19 Jul 2004 05:15:10 +0000 (05:15 +0000)]
See comments.  The live intervals were not coming out of the spiller in sorted
order, causing the inactive list in the linearscan list to get unsorted, which
basically fuxored everything up severely.

These seems to fix the joiner, so with more testing I will enable it by default.

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

19 years agoFix assertion to not dereference end!
Chris Lattner [Mon, 19 Jul 2004 05:02:09 +0000 (05:02 +0000)]
Fix assertion to not dereference end!

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

19 years agoAdd some asserts that the list of intervals returned by addIntervalsForSpills
Chris Lattner [Mon, 19 Jul 2004 04:47:36 +0000 (04:47 +0000)]
Add some asserts that the list of intervals returned by addIntervalsForSpills
is sorted.  This is not the case currently, which is causing no end of
problems.

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

19 years agoremove the mbbi2mbbMap_, which was just keeping track of mbb order anyway.
Chris Lattner [Mon, 19 Jul 2004 02:15:56 +0000 (02:15 +0000)]
remove the mbbi2mbbMap_, which was just keeping track of mbb order anyway.

Heavily refactor handleVirtualRegisterDef, adding comments and making it more
efficient.  It is also much easier to follow and convince ones self that it is
correct :)

Add -debug output to the joine, showing the result of joining the intervals.

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

19 years agofill comment to 80 cols
Chris Lattner [Mon, 19 Jul 2004 02:13:59 +0000 (02:13 +0000)]
fill comment to 80 cols

remove map that is not needed

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

19 years agoclassof implementations are now inlined
Chris Lattner [Mon, 19 Jul 2004 00:59:10 +0000 (00:59 +0000)]
classof implementations are now inlined

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

19 years agoinline classof implementations, eliminate use of virtual methods.
Chris Lattner [Mon, 19 Jul 2004 00:58:47 +0000 (00:58 +0000)]
inline classof implementations, eliminate use of virtual methods.
classof<ConstantXXX> is now MUCH faster than it used to be.

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

19 years agoeliminate isConstantExpr, changes to isa<Constant> implementation
Chris Lattner [Mon, 19 Jul 2004 00:58:02 +0000 (00:58 +0000)]
eliminate isConstantExpr, changes to isa<Constant> implementation

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

19 years agoAdd new enum entries for ConstantAggregateZeroVal/ConstantExprVal and
Chris Lattner [Mon, 19 Jul 2004 00:57:40 +0000 (00:57 +0000)]
Add new enum entries for ConstantAggregateZeroVal/ConstantExprVal and
rename ConstantVal to SimpleConstantVal

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

19 years agoMethod now returns null, dtor is inlined
Chris Lattner [Mon, 19 Jul 2004 00:55:35 +0000 (00:55 +0000)]
Method now returns null, dtor is inlined

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

19 years agoChange method to return void. Inline dtor
Chris Lattner [Mon, 19 Jul 2004 00:55:19 +0000 (00:55 +0000)]
Change method to return void.  Inline dtor

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

19 years agoRemove dead file
Chris Lattner [Sun, 18 Jul 2004 23:44:15 +0000 (23:44 +0000)]
Remove dead file

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

19 years agoRemove this printer
Chris Lattner [Sun, 18 Jul 2004 23:43:34 +0000 (23:43 +0000)]
Remove this printer

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

19 years agoA description of what this library is about, reference to the documentation
Reid Spencer [Sun, 18 Jul 2004 22:33:08 +0000 (22:33 +0000)]
A description of what this library is about, reference to the documentation
and a list of don'ts for the library. All so future maintainers don't
break the important contract this library has with its user: LLVM.

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

19 years agoAdd note about GCC 3.3.2 being completely broken
Chris Lattner [Sun, 18 Jul 2004 22:32:22 +0000 (22:32 +0000)]
Add note about GCC 3.3.2 being completely broken

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

19 years agoInitiali Makefile for this library.
Reid Spencer [Sun, 18 Jul 2004 22:31:28 +0000 (22:31 +0000)]
Initiali Makefile for this library.

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

19 years agoAdd a workaround for a GCC 3.3.2 bug
Chris Lattner [Sun, 18 Jul 2004 21:56:20 +0000 (21:56 +0000)]
Add a workaround for a GCC 3.3.2 bug

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

19 years agoDoesn't exist
Chris Lattner [Sun, 18 Jul 2004 21:44:13 +0000 (21:44 +0000)]
Doesn't exist

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

19 years agoFix a performance regression from the CPR patch, simplify code
Chris Lattner [Sun, 18 Jul 2004 21:34:16 +0000 (21:34 +0000)]
Fix a performance regression from the CPR patch, simplify code

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

19 years agoStrip out and simplify some code. This also fixes the regression last
Chris Lattner [Sun, 18 Jul 2004 19:56:20 +0000 (19:56 +0000)]
Strip out and simplify some code.  This also fixes the regression last
night compiling cfrac.  It did not realize that code like this:

int G; int *H = &G;

takes the address of G.

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

19 years agoMinor cleanup, no functionality change
Chris Lattner [Sun, 18 Jul 2004 18:59:44 +0000 (18:59 +0000)]
Minor cleanup, no functionality change

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

19 years agoFix infinite loop
Chris Lattner [Sun, 18 Jul 2004 18:45:01 +0000 (18:45 +0000)]
Fix infinite loop

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

19 years agobug 122:
Reid Spencer [Sun, 18 Jul 2004 13:10:31 +0000 (13:10 +0000)]
bug 122:
Updated to remove references to ConstantPointerRef and reflect the change
in the inheritance hierarchy: GlobalValue now derives from Constant.

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

19 years agoRemove an if statement that would never be reached.
Reid Spencer [Sun, 18 Jul 2004 08:41:47 +0000 (08:41 +0000)]
Remove an if statement that would never be reached.

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

19 years agoDelete a redundant if branch.
Reid Spencer [Sun, 18 Jul 2004 08:34:52 +0000 (08:34 +0000)]
Delete a redundant if branch.

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

19 years agoExpand the coercion of constants to include the newly constant Globals.
Reid Spencer [Sun, 18 Jul 2004 08:34:19 +0000 (08:34 +0000)]
Expand the coercion of constants to include the newly constant Globals.

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