Chris Lattner
3dbb504081
Fix cases where we generated horrible code like this:
...
mov %EDI, 12
add %EDI, %ECX
mov %ECX, 12
add %ECX, %EDX
mov %EDX, 12
add %EDX, %ESI
instead (really!) generate this:
add %ECX, 12
add %EDX, 12
add %ESI, 12
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15090 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 21:28:26 +00:00
Brian Gaeke
7848e68c16
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
2004-07-21 20:50:33 +00:00
Brian Gaeke
7d02766247
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
2004-07-21 20:50:22 +00:00
Misha Brukman
a31f1f7cb2
* 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
2004-07-21 20:30:18 +00:00
Misha Brukman
17a9000ac8
* 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
2004-07-21 20:22:06 +00:00
Chris Lattner
f0cacc0ae7
* 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
2004-07-21 20:14:10 +00:00
Misha Brukman
97a296f743
* 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
2004-07-21 20:11:11 +00:00
Misha Brukman
1013ef5228
* 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
2004-07-21 20:09:08 +00:00
Chris Lattner
5eb919405c
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
2004-07-21 19:50:44 +00:00
Misha Brukman
e0380e0c42
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
2004-07-21 19:36:57 +00:00
Misha Brukman
1721784a1b
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
2004-07-21 18:04:27 +00:00
Misha Brukman
ebbbf25dc7
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
2004-07-21 18:02:43 +00:00
Alkis Evlogimenos
d03451ef47
Fix analysis name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15078 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 17:23:44 +00:00
Misha Brukman
53d9a48855
Add SUBI instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15077 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 15:53:04 +00:00
Misha Brukman
1e635c3400
Fix spelling of `iterative scan'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15075 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 12:53:14 +00:00
Misha Brukman
712c0e256e
* 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
2004-07-21 12:47:40 +00:00
Alkis Evlogimenos
fc29e63afe
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
2004-07-21 12:00:10 +00:00
Alkis Evlogimenos
2d54705c4b
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
2004-07-21 09:46:55 +00:00
Alkis Evlogimenos
7b32639362
Add greater_ptr functor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 08:38:06 +00:00
Alkis Evlogimenos
3b1af0b3fc
Improve file comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15069 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 08:28:39 +00:00
Alkis Evlogimenos
910d0d6066
Add Iterative scan register allocator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 08:24:35 +00:00
Alkis Evlogimenos
c8dec2c23e
Linearscan is no longer experimental.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15067 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 08:18:50 +00:00
Chris Lattner
6d4b0d723d
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
2004-07-21 07:04:26 +00:00
Chris Lattner
877ad7d80b
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
2004-07-21 07:03:57 +00:00
Chris Lattner
12c1155403
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
2004-07-21 05:18:04 +00:00
Chris Lattner
e8a7e593e6
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
2004-07-21 04:27:24 +00:00
Chris Lattner
bb8f43c8fc
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
2004-07-21 03:56:54 +00:00
Brian Gaeke
adfe28d136
Regenerated using autoconf-2.57.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15061 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 03:50:25 +00:00
Brian Gaeke
a4d718f03c
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
2004-07-21 03:50:01 +00:00
Brian Gaeke
d59a64797b
Regenerated with autoconf/autoheader 2.57
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15059 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 03:33:58 +00:00
Brian Gaeke
0d3ac4cc30
Solaris hack for isinf()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15058 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 03:32:51 +00:00
Brian Gaeke
dfb3397c5b
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
2004-07-21 03:30:27 +00:00
Brian Gaeke
043c0bb0d9
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
2004-07-21 03:15:26 +00:00
Brian Gaeke
a7d03b466a
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
2004-07-21 03:15:14 +00:00
Brian Gaeke
c64d41e706
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
2004-07-21 03:15:02 +00:00
Brian Gaeke
3869b27ba7
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
2004-07-21 03:14:51 +00:00
Brian Gaeke
4cc02ac652
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
2004-07-21 03:14:39 +00:00
Brian Gaeke
52a551d69b
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
2004-07-21 03:14:12 +00:00
Brian Gaeke
418f73cbaa
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
2004-07-21 03:13:50 +00:00
Brian Gaeke
0b441227e2
Move LLVM tool definitions to Makefile.rules
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15049 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 01:31:47 +00:00
Misha Brukman
cd2273f4a7
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
2004-07-20 20:59:57 +00:00
Misha Brukman
bf417a6d46
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
2004-07-20 20:43:05 +00:00
Misha Brukman
1d3a8b0bd8
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
2004-07-20 20:25:18 +00:00
Misha Brukman
c5f9d8c630
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
2004-07-20 16:14:06 +00:00
Misha Brukman
86ddcf9d4f
Differentiate between global and weak symbol loads
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15037 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 15:52:25 +00:00
Misha Brukman
ec6319a00c
* 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
2004-07-20 15:51:37 +00:00
Misha Brukman
e48178e8a6
Differentiate between global and weak symbol loads
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15035 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 15:45:27 +00:00
Misha Brukman
5c4544160f
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
2004-07-20 15:43:25 +00:00
Alkis Evlogimenos
a39fc0efcf
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
2004-07-20 13:28:17 +00:00
Alkis Evlogimenos
6bd23c0832
Remove unneeded functor. LiveInterval has a < operator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15031 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 10:20:03 +00:00