Chris Lattner
b77bda4432
* 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.
llvm-svn: 15085
2004-07-21 20:14:10 +00:00
Misha Brukman
7507403c2b
* Fix printing of signed immediate values (Nate Begeman)
...
* Fix printing of `zeroinitializer'
* Fix printing of `linkonce' globals, complete with stubs
llvm-svn: 15084
2004-07-21 20:11:11 +00:00
Misha Brukman
64f203922d
* 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.
llvm-svn: 15083
2004-07-21 20:09:08 +00:00
Chris Lattner
a3c10c2012
Make cast-cast code a bit more defensive
...
"simplify" a bit of code for comparison/and folding
llvm-svn: 15082
2004-07-21 19:50:44 +00:00
Misha Brukman
752584b520
Use addSImm() instead of addImm() for stack offsets, which may be negative.
...
llvm-svn: 15081
2004-07-21 19:36:57 +00:00
Misha Brukman
77e3529f65
Reid doesn't need a definite article in front of his name.
...
llvm-svn: 15080
2004-07-21 18:04:27 +00:00
Misha Brukman
f420620da9
Delete extra space; add <p> tags around text within a <div>
...
llvm-svn: 15079
2004-07-21 18:02:43 +00:00
Alkis Evlogimenos
40d8d044fe
Fix analysis name.
...
llvm-svn: 15078
2004-07-21 17:23:44 +00:00
Misha Brukman
3d395cbda3
Add SUBI instruction
...
llvm-svn: 15077
2004-07-21 15:53:04 +00:00
Misha Brukman
f432931d8c
Fix spelling of `iterative scan'
...
llvm-svn: 15075
2004-07-21 12:53:14 +00:00
Misha Brukman
bfa2cebdc6
* Uncomment rule for location of LLI (formerly commented out: typo?)
...
* Add space between VAR and `='
llvm-svn: 15074
2004-07-21 12:47:40 +00:00
Alkis Evlogimenos
183f8af791
Clear spilled list at once. Remove unused vector.
...
llvm-svn: 15073
2004-07-21 12:00:10 +00:00
Alkis Evlogimenos
c767432a26
Change std::list into a std::vector for IntervalSets. This reduces
...
compile time for 176.gcc from 5.6 secs to 4.7 secs.
llvm-svn: 15072
2004-07-21 09:46:55 +00:00
Alkis Evlogimenos
441f3a155d
Add greater_ptr functor.
...
llvm-svn: 15070
2004-07-21 08:38:06 +00:00
Alkis Evlogimenos
8a162136e1
Improve file comment.
...
llvm-svn: 15069
2004-07-21 08:28:39 +00:00
Alkis Evlogimenos
b5f60641f4
Add Iterative scan register allocator.
...
llvm-svn: 15068
2004-07-21 08:24:35 +00:00
Alkis Evlogimenos
75dbcf6d06
Linearscan is no longer experimental.
...
llvm-svn: 15067
2004-07-21 08:18:50 +00:00
Chris Lattner
195950df76
Add capability to remove aliasing aliassets from an AST
...
llvm-svn: 15066
2004-07-21 07:04:26 +00:00
Chris Lattner
67c1deddfc
Add a bunch of new functionality, primarily to do with removing aliasing
...
pointers from an AST.
llvm-svn: 15065
2004-07-21 07:03:57 +00:00
Chris Lattner
f9976c5dbf
Make the AST interface a bit richer by returning whether an insertion caused
...
an insertion or not (because the pointer set already existed).
llvm-svn: 15064
2004-07-21 05:18:04 +00:00
Chris Lattner
62c40d3982
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
llvm-svn: 15063
2004-07-21 04:27:24 +00:00
Chris Lattner
36940c22f7
Do not ignore casts unless they are pointer-pointer casts. This caused us
...
to miscompile the SingleSource/Regression/C++/pointer_member.cpp program.
llvm-svn: 15062
2004-07-21 03:56:54 +00:00
Brian Gaeke
8c0fb92856
Regenerated using autoconf-2.57.
...
llvm-svn: 15061
2004-07-21 03:50:25 +00:00
Brian Gaeke
d907fb65db
Add AC_MSG_CHECKING and AC_MSG_RESULT statements which were missing
...
from two of our custom checks.
llvm-svn: 15060
2004-07-21 03:50:01 +00:00
Brian Gaeke
2a45315ad0
Regenerated with autoconf/autoheader 2.57
...
llvm-svn: 15059
2004-07-21 03:33:58 +00:00
Brian Gaeke
1c49659e4f
Solaris hack for isinf()
...
llvm-svn: 15058
2004-07-21 03:32:51 +00:00
Brian Gaeke
853c525672
Add check for finite(). Solaris doesn't have isinf, but it has finite...go
...
figure!
llvm-svn: 15057
2004-07-21 03:30:27 +00:00
Brian Gaeke
d8775ad4f1
Emit NaNs and INFs bit-identically to the bytecode file, if the system has
...
printf("%a") support.
Patch contributed by Bill Wendling.
llvm-svn: 15056
2004-07-21 03:15:26 +00:00
Brian Gaeke
38bd15e507
Add prototypes for platform-independent wrappers for isinf().
...
Patch contributed by Bill Wendling.
llvm-svn: 15055
2004-07-21 03:15:14 +00:00
Brian Gaeke
94394bea47
Regenerated with autoheader-2.57.
...
Patch contributed by Bill Wendling.
llvm-svn: 15054
2004-07-21 03:15:02 +00:00
Brian Gaeke
07582185fc
Add call to check for isinf().
...
Patch contributed by Bill Wendling.
llvm-svn: 15053
2004-07-21 03:14:51 +00:00
Brian Gaeke
b29aef7a08
Add support for checking for isinf().
...
Patch contributed by Bill Wendling.
llvm-svn: 15052
2004-07-21 03:14:39 +00:00
Brian Gaeke
cb31d835ed
Regenerated with autoconf-2.57.
...
Patch contributed by Bill Wendling.
llvm-svn: 15051
2004-07-21 03:14:12 +00:00
Brian Gaeke
be7ccca4ab
Add platform-independent wrapper function for isinf().
...
Patch contributed by Bill Wendling.
llvm-svn: 15050
2004-07-21 03:13:50 +00:00
Brian Gaeke
b9b176fab3
Move LLVM tool definitions to Makefile.rules
...
llvm-svn: 15049
2004-07-21 01:31:47 +00:00
Misha Brukman
3e3d141a92
Shorts are aligned to 2 bytes, bools to 1 byte (in structs).
...
llvm-svn: 15048
2004-07-20 20:59:57 +00:00
Misha Brukman
6283677946
Treat external variables similarly to those with weak linkage: load indirect.
...
llvm-svn: 15047
2004-07-20 20:43:05 +00:00
Misha Brukman
1954583a4a
Refer would-be llvm-gcc source users/hackers to the compilation guide.
...
llvm-svn: 15046
2004-07-20 20:25:18 +00:00
Misha Brukman
1c856fcf9e
Use C++-style <cstdio> instead of C-style <stdio.h>
...
llvm-svn: 15042
2004-07-20 16:14:06 +00:00
Misha Brukman
f47940855d
Differentiate between global and weak symbol loads
...
llvm-svn: 15037
2004-07-20 15:52:25 +00:00
Misha Brukman
fe769110a0
* 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.
llvm-svn: 15036
2004-07-20 15:51:37 +00:00
Misha Brukman
5b5aff390a
Differentiate between global and weak symbol loads
...
llvm-svn: 15035
2004-07-20 15:45:27 +00:00
Misha Brukman
1942534307
Double alignment in structs is 4 bytes, not 8. Patch by Nate Begeman.
...
llvm-svn: 15034
2004-07-20 15:43:25 +00:00
Alkis Evlogimenos
cb3b2fc439
Add function to clear all virtual->physical mappings but not assigned
...
stack slots. This is in preparation for the iterative linear scan.
llvm-svn: 15032
2004-07-20 13:28:17 +00:00
Alkis Evlogimenos
89ae43ca19
Remove unneeded functor. LiveInterval has a < operator.
...
llvm-svn: 15031
2004-07-20 10:20:03 +00:00
Chris Lattner
4e4b8b0ad2
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.
llvm-svn: 15030
2004-07-20 05:45:24 +00:00
Chris Lattner
f8c20caf25
Implement Transforms/InstCombine/IntPtrCast.ll
...
llvm-svn: 15029
2004-07-20 05:21:00 +00:00
Chris Lattner
f6d78f81c0
new testcase
...
llvm-svn: 15028
2004-07-20 05:20:39 +00:00
Chris Lattner
da83200d72
Ignore instructions that are in trivially dead functions. This allows us
...
to constify 14 globals instead of 4 in a trivial C++ testcase.
llvm-svn: 15027
2004-07-20 03:58:07 +00:00
Misha Brukman
0a12f91274
Fix stack frame layout in prologue/epilogue. Patch courtesy of Nate Begeman.
...
llvm-svn: 15026
2004-07-20 02:23:09 +00:00