1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
Commit Graph

13204 Commits

Author SHA1 Message Date
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
Misha Brukman
6a7fd4d0a9 Dump the old-fashioned C-style <ctype.h> in favor of new `C++'-style <cctype>
llvm-svn: 15025
2004-07-20 02:18:25 +00:00
Chris Lattner
f6eb30e9a8 Implement InstCombine/GEPIdxCanon.ll
llvm-svn: 15024
2004-07-20 01:48:15 +00:00
Chris Lattner
074200ea75 New testcase that instcombine should help out with.
llvm-svn: 15023
2004-07-20 01:47:49 +00:00
Chris Lattner
8277141f09 Implement SimplifyCFG/BrUnwind.ll
llvm-svn: 15022
2004-07-20 01:17:38 +00:00
Chris Lattner
0a86aa9915 test that unconditional branches to unwinds are always eliminated
llvm-svn: 15021
2004-07-20 01:17:19 +00:00
Misha Brukman
6baf9045f6 Move handing of GlobalValues from getReg() to copyConstantToRegister(), this
will avoid extra register-to-register copies.  Thanks to Chris for the idea.

llvm-svn: 15019
2004-07-20 00:59:38 +00:00
Chris Lattner
d9c41a82a3 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.

llvm-svn: 15018
2004-07-20 00:59:32 +00:00
Chris Lattner
5a13111d34 Testcases missed by the instruction combiner
llvm-svn: 15017
2004-07-20 00:57:21 +00:00
Misha Brukman
8b9267b279 isupper() and tolower() are declared in <ctype.h>
llvm-svn: 15016
2004-07-20 00:52:16 +00:00
Misha Brukman
bec77933fa * 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!

llvm-svn: 15015
2004-07-20 00:42:19 +00:00
Misha Brukman
fdc633a29b * 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!

llvm-svn: 15014
2004-07-20 00:41:46 +00:00
Chris Lattner
e8b9b58454 While I'm at it, don't break codegen of mul by 3,5,9.
llvm-svn: 15013
2004-07-19 23:50:57 +00:00
Chris Lattner
f668465840 Generate better code for multiplies by negative constants like -4, -1, -9, etc.
llvm-svn: 15012
2004-07-19 23:47:21 +00:00
Alkis Evlogimenos
25fb592aa6 Remove dead code.
llvm-svn: 15011
2004-07-19 23:35:55 +00:00
Misha Brukman
f1dcfcbb96 Tabs to spaces.
llvm-svn: 15010
2004-07-19 21:22:02 +00:00
Misha Brukman
ab7bc6af0d Convert tabs to spaces; fix name of function in assert() description.
llvm-svn: 15009
2004-07-19 21:11:45 +00:00
Chris Lattner
3f60afac10 Fix broken link
llvm-svn: 15008
2004-07-19 19:30:40 +00:00
Chris Lattner
ee2626fd0a Just run 'make', not all-gcc
llvm-svn: 15007
2004-07-19 18:47:59 +00:00