Brian Gaeke [Wed, 21 Jul 2004 20:50:33 +0000 (20:50 +0000)]
These files don't need to include <iostream> since they include "Support/Debug.h".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15089
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 21 Jul 2004 20:50:22 +0000 (20:50 +0000)]
Include <iostream> here, because most people using DEBUG() want to use std::cerr too.
This means that users of this file do not also need to include <iostream>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15088
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 21 Jul 2004 20:30:18 +0000 (20:30 +0000)]
* Add the lost fix to define the second reg of a 2-reg representation of longs
* Fix opcode RLWNM -> RLWINM since it uses an immediate const shift value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15087
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 21 Jul 2004 20:22:06 +0000 (20:22 +0000)]
* Speed up canUseAsImmediateForOpcode() by comparing Operand before
dyn_cast<>ing and checking Constant's value
* Convert tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15086
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Jul 2004 20:14:10 +0000 (20:14 +0000)]
* Further cleanup.
* Test for whether bits are shifted out during the optzn.
If so, the fold is illegal, though it can be handled explicitly for setne/seteq
This fixes the miscompilation of 254.gap last night, which was a latent bug
exposed by other optimizer improvements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15085
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 21 Jul 2004 20:11:11 +0000 (20:11 +0000)]
* Fix printing of signed immediate values (Nate Begeman)
* Fix printing of `zeroinitializer'
* Fix printing of `linkonce' globals, complete with stubs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15084
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 21 Jul 2004 20:09:08 +0000 (20:09 +0000)]
* Fix printing of signed immediate values
* Generation of opcodes that take 16 bit immediates
* Rewrote multiply to be correct for 64 bit values
* Rewrote all the long handling to be correct for PowerPC
* Fix visitSelectInst() to define the upper register of the pair of regs
representing a long value
Patch contributed by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Jul 2004 19:50:44 +0000 (19:50 +0000)]
Make cast-cast code a bit more defensive
"simplify" a bit of code for comparison/and folding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15082
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 21 Jul 2004 19:36:57 +0000 (19:36 +0000)]
Use addSImm() instead of addImm() for stack offsets, which may be negative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15081
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 21 Jul 2004 18:04:27 +0000 (18:04 +0000)]
Reid doesn't need a definite article in front of his name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15080
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 21 Jul 2004 18:02:43 +0000 (18:02 +0000)]
Delete extra space; add <p> tags around text within a <div>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15079
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 21 Jul 2004 17:23:44 +0000 (17:23 +0000)]
Fix analysis name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15078
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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