Chris Lattner [Fri, 23 Jul 2004 18:39:12 +0000 (18:39 +0000)]
New helper method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15138
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 18:38:52 +0000 (18:38 +0000)]
Speedup debug builds a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15137
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 18:13:24 +0000 (18:13 +0000)]
Instead of searching for a live interval pair, search for a location. This gives
a very modest speedup of .3 seconds compiling 176.gcc (out of 20s).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15136
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 17:56:30 +0000 (17:56 +0000)]
Rename LiveIntervals.(cpp|h) -> LiveIntervalAnalysis.(cpp|h)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15135
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 17:49:16 +0000 (17:49 +0000)]
Pull the LiveRange and LiveInterval classes out of LiveIntervals.h (which
will soon be renamed) into their own file. The new file should not emit
DEBUG output or have other side effects. The LiveInterval class also now
doesn't know whether its working on registers or some other thing.
In the future we will want to use the LiveInterval class and friends to do
stack packing. In addition to a code simplification, this will allow us to
do it more easily.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15134
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 23 Jul 2004 16:08:20 +0000 (16:08 +0000)]
* Codegen of GEPs dramatically improved by folding multiplies and adds
* Function pointers implemented correctly using appropriate stubs
Contributed by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15133
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 23 Jul 2004 15:40:57 +0000 (15:40 +0000)]
Revised the generation of files so that they follow the newer autoconf
standards. This is in hopes of fixing configuration problems on
Windows Services for Unix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15132
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 08:24:23 +0000 (08:24 +0000)]
Improve comments a bit
Use an explicit LiveRange class to represent ranges instead of an std::pair.
This is a minor cleanup, but is really intended to make a future patch simpler
and less invasive.
Alkis, could you please take a look at LiveInterval::liveAt? I suspect that
you can add an operator<(unsigned) to LiveRange, allowing us to speed up the
upper_bound call by quite a bit (this would also apply to other callers of
upper/lower_bound). I would do it myself, but I still don't understand that
crazy liveAt function, despite the comment. :)
Basically I would like to see this:
LiveRange dummy(index, index+1);
Ranges::const_iterator r = std::upper_bound(ranges.begin(),
ranges.end(),
dummy);
Turn into:
Ranges::const_iterator r = std::upper_bound(ranges.begin(),
ranges.end(),
index);
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15130
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 06:50:18 +0000 (06:50 +0000)]
Change column name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15129
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 05:27:43 +0000 (05:27 +0000)]
Update live intervals more accurately for PHI elim. This slightly reduces
the live intervals for some registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15125
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 Jul 2004 05:26:05 +0000 (05:26 +0000)]
Force coallescing of live ranges that have a single definition, even if they
interfere. Because these intervals have a single definition, and one of them
is a copy instruction, they are always safe to merge even if their lifetimes
interfere. This slightly reduces the amount of spill code, for example on
252.eon, from:
12837 spiller - Number of loads added
7604 spiller - Number of stores added
5842 spiller - Number of register spills
18155 liveintervals - Number of identity moves eliminated after coalescing
to:
12754 spiller - Number of loads added
7585 spiller - Number of stores added
5803 spiller - Number of register spills
18262 liveintervals - Number of identity moves eliminated after coalescing
The much much bigger win would be to merge intervals with multiple definitions
(aka phi nodes) but this is not that day.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15124
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 23 Jul 2004 01:30:49 +0000 (01:30 +0000)]
* Convert "\n" -> '\n'
* Print out another '\n' after printing out program execution status
* Make sure code wraps at 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15123
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 23 Jul 2004 01:11:46 +0000 (01:11 +0000)]
Bool alignment on MacOSX/PowerPC is 4 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15122
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 23 Jul 2004 01:11:19 +0000 (01:11 +0000)]
* Change class of BoolTy back to cInt
* Fix indentation back to 2 spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15121
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 23 Jul 2004 01:09:52 +0000 (01:09 +0000)]
* Add BoolAlignment to TargetData, default is 1 byte, size 1 byte
* Convert tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15120
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 23 Jul 2004 01:08:13 +0000 (01:08 +0000)]
* Add a BoolAlignment field to TargetData, default is 1 byte
* Fix spacing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15119
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 23:05:12 +0000 (23:05 +0000)]
costmetic changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15118
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 22 Jul 2004 22:43:21 +0000 (22:43 +0000)]
Let's not get carried away here, please.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15117
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 22 Jul 2004 22:11:16 +0000 (22:11 +0000)]
Give some credit to Oscar. Should help to address Bug#13.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15116
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 21:54:22 +0000 (21:54 +0000)]
Fix broken -debug printing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15115
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 21:46:02 +0000 (21:46 +0000)]
The default has not been 'simple' for AGES!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15114
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 21:32:38 +0000 (21:32 +0000)]
Remove some abandoned code that was never finished. If needed in the future
it can be ressurected from CVS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15113
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 21:30:35 +0000 (21:30 +0000)]
Remove some (LARGE) abandoned code for the release. If this is ever needed
again in the future, it can be resurrected out of CVS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15112
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 18:42:00 +0000 (18:42 +0000)]
Make linear scan the default
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15111
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 22 Jul 2004 15:58:04 +0000 (15:58 +0000)]
* Change bool from cInt to cByte (for now)
* Don't allow negative immediates to users of unsigned immediates
* Fix long compares
* Support <const int>, op as a potential immediate candidate
* Fix sign extension of short and byte loads
* Fix and improve integer casts
* Fix passing of doubles as vararg functions
Patch contributed by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15109
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 22 Jul 2004 15:30:33 +0000 (15:30 +0000)]
Put variable name to a separate line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15108
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 22 Jul 2004 15:26:23 +0000 (15:26 +0000)]
Fix indentation and wrap code at 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15107
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 22 Jul 2004 15:18:10 +0000 (15:18 +0000)]
Sorting is now handled by both linearscan and iterative scan so live
intervals need not be sorted anymore. Removing this redundant step
improves LiveIntervals running time by 5% on 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15106
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 22 Jul 2004 14:29:31 +0000 (14:29 +0000)]
Fit to 80 columns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15105
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 08:34:33 +0000 (08:34 +0000)]
Remove redundant SCCP pass
Add new DSE pass. Add a temporary option to disable it in case we need it
This is going in after the July 22 nightly tester run, so we'll wait until the 23rd to see it
:)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15104
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 22 Jul 2004 08:14:44 +0000 (08:14 +0000)]
Some compile time improvements resulting in a 1sec speedup in the 5sec
compilation of gcc:
* Use vectors instead of lists for the intervals sets
* Use a heap for the unhandled set to keep intervals always sorted and
makes insertions back to the heap very fast (compared to scanning a
list)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15103
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 08:07:30 +0000 (08:07 +0000)]
New prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15102
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 08:00:28 +0000 (08:00 +0000)]
This is a trivial dead store elimination pass. It very very simple and
can be improved in many ways. But: stop laughing, even with -basicaa it
deletes 15% of the stores in 252.eon :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15101
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 07:59:20 +0000 (07:59 +0000)]
Trivial testcase for dse
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15100
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 07:58:18 +0000 (07:58 +0000)]
Clean up reference counting to stop "leaking" alias sets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15099
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 05:51:56 +0000 (05:51 +0000)]
Remove extraneous punctuation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15098
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 05:51:13 +0000 (05:51 +0000)]
Update GC intrinsics to take a pointer to the object as well as a pointer
to the field being updated. Patch contributed by Tobias Nurmiranta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15097
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 05:50:01 +0000 (05:50 +0000)]
Updates to gc intrinsics, contributed by Tobias Nurmiranta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15096
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 05:49:38 +0000 (05:49 +0000)]
Update documentation for gc intrinsics change. Contributed by
Tobias Nurmiranta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15095
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 05:48:38 +0000 (05:48 +0000)]
Update gc intrinsics to take pointer to object as well as pointer to field.
Patch contributed by Tobias Nurmiranta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15094
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 22 Jul 2004 02:16:53 +0000 (02:16 +0000)]
Use reverse iterators when updating the vector, since scanning from
the end will reduce erase() runtimes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15093
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 22 Jul 2004 00:04:14 +0000 (00:04 +0000)]
That funny 2-address lowering pass can also cause multiple definitions,
fortunately, they are easy to handle if we know about them. This patch fixes
some serious pessimization of code produced by the linscan register allocator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15092
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Jul 2004 23:17:57 +0000 (23:17 +0000)]
Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15091
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 21 Jul 2004 21:28:26 +0000 (21:28 +0000)]
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
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