oota-llvm.git
20 years agoUpdate live intervals more accurately for PHI elim. This slightly reduces
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

20 years agoForce coallescing of live ranges that have a single definition, even if they
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

20 years ago* Convert "\n" -> '\n'
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

20 years agoBool alignment on MacOSX/PowerPC is 4 bytes.
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

20 years ago* Change class of BoolTy back to cInt
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

20 years ago* Add BoolAlignment to TargetData, default is 1 byte, size 1 byte
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

20 years ago* Add a BoolAlignment field to TargetData, default is 1 byte
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

20 years agocostmetic changes
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

20 years agoLet's not get carried away here, please.
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

20 years agoGive some credit to Oscar. Should help to address Bug#13.
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

20 years agoFix broken -debug printing
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

20 years agoThe default has not been 'simple' for AGES!
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

20 years agoRemove some abandoned code that was never finished. If needed in the future
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

20 years agoRemove some (LARGE) abandoned code for the release. If this is ever needed
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

20 years agoMake linear scan the default
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

20 years ago* Change bool from cInt to cByte (for now)
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

20 years agoPut variable name to a separate line.
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

20 years agoFix indentation and wrap code at 80 cols
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

20 years agoSorting is now handled by both linearscan and iterative scan so live
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

20 years agoFit to 80 columns.
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

20 years agoRemove redundant SCCP pass
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

20 years agoSome compile time improvements resulting in a 1sec speedup in the 5sec
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

20 years agoNew prototype
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

20 years agoThis is a trivial dead store elimination pass. It very very simple and
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

20 years agoTrivial testcase for dse
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

20 years agoClean up reference counting to stop "leaking" alias sets
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

20 years agoRemove extraneous punctuation
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

20 years agoUpdate GC intrinsics to take a pointer to the object as well as a pointer
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

20 years agoUpdates to gc intrinsics, contributed by Tobias Nurmiranta
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

20 years agoUpdate documentation for gc intrinsics change. Contributed by
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

20 years agoUpdate gc intrinsics to take pointer to object as well as pointer to field.
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

20 years agoUse reverse iterators when updating the vector, since scanning from
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

20 years agoThat funny 2-address lowering pass can also cause multiple definitions,
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

20 years agoMinor cleanups
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

20 years agoFix cases where we generated horrible code like this:
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

20 years agoThese files don't need to include <iostream> since they include "Support/Debug.h".
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

20 years agoInclude <iostream> here, because most people using DEBUG() want to use std::cerr...
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

20 years ago* Add the lost fix to define the second reg of a 2-reg representation of longs
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

20 years ago* Speed up canUseAsImmediateForOpcode() by comparing Operand before
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

20 years ago* Further cleanup.
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

20 years ago* Fix printing of signed immediate values (Nate Begeman)
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

20 years ago* Fix printing of signed immediate values
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

20 years agoMake cast-cast code a bit more defensive
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

20 years agoUse addSImm() instead of addImm() for stack offsets, which may be negative.
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

20 years agoReid doesn't need a definite article in front of his name.
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

20 years agoDelete extra space; add <p> tags around text within a <div>
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

20 years agoFix analysis name.
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

20 years agoAdd SUBI instruction
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

20 years agoFix spelling of `iterative scan'
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

20 years ago* Uncomment rule for location of LLI (formerly commented out: typo?)
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

20 years agoClear spilled list at once. Remove unused vector.
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

20 years agoChange std::list into a std::vector for IntervalSets. This reduces
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

20 years agoAdd greater_ptr functor.
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

20 years agoImprove file comment.
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

20 years agoAdd Iterative scan register allocator.
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

20 years agoLinearscan is no longer experimental.
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

20 years agoAdd capability to remove aliasing aliassets from an AST
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

20 years agoAdd a bunch of new functionality, primarily to do with removing aliasing
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

20 years agoMake the AST interface a bit richer by returning whether an insertion caused
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

20 years agoRemove special casing of pointers and treat them generically as integers of
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

20 years agoDo not ignore casts unless they are pointer-pointer casts. This caused us
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

20 years agoRegenerated using autoconf-2.57.
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

20 years agoAdd AC_MSG_CHECKING and AC_MSG_RESULT statements which were missing
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

20 years agoRegenerated with autoconf/autoheader 2.57
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

20 years agoSolaris hack for isinf()
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

20 years agoAdd check for finite(). Solaris doesn't have isinf, but it has finite...go
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

20 years agoEmit NaNs and INFs bit-identically to the bytecode file, if the system has
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

20 years agoAdd prototypes for platform-independent wrappers for isinf().
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

20 years agoRegenerated with autoheader-2.57.
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

20 years agoAdd call to check for isinf().
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

20 years agoAdd support for checking for isinf().
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

20 years agoRegenerated with autoconf-2.57.
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

20 years agoAdd platform-independent wrapper function for isinf().
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

20 years agoMove LLVM tool definitions to Makefile.rules
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

20 years agoShorts are aligned to 2 bytes, bools to 1 byte (in structs).
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

20 years agoTreat external variables similarly to those with weak linkage: load indirect.
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

20 years agoRefer would-be llvm-gcc source users/hackers to the compilation guide.
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

20 years agoUse C++-style <cstdio> instead of C-style <stdio.h>
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

20 years agoDifferentiate between global and weak symbol loads
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

20 years ago* Differentiate between global and weak symbol loads
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

20 years agoDifferentiate between global and weak symbol loads
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

20 years agoDouble alignment in structs is 4 bytes, not 8. Patch by Nate Begeman.
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

20 years agoAdd function to clear all virtual->physical mappings but not assigned
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

20 years agoRemove unneeded functor. LiveInterval has a < operator.
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

20 years agoFix a serious code pessimization problem. If an inlined function has a single
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

20 years agoImplement Transforms/InstCombine/IntPtrCast.ll
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

20 years agonew testcase
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

20 years agoIgnore instructions that are in trivially dead functions. This allows us
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

20 years agoFix stack frame layout in prologue/epilogue. Patch courtesy of Nate Begeman.
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

20 years agoDump the old-fashioned C-style <ctype.h> in favor of new `C++'-style <cctype>
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

20 years agoImplement InstCombine/GEPIdxCanon.ll
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

20 years agoNew testcase that instcombine should help out with.
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

20 years agoImplement SimplifyCFG/BrUnwind.ll
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

20 years agotest that unconditional branches to unwinds are always eliminated
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

20 years agoMove handing of GlobalValues from getReg() to copyConstantToRegister(), this
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

20 years agoRewrite cast->cast elimination code completely based on the information we
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

20 years agoTestcases missed by the instruction combiner
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

20 years agoisupper() and tolower() are declared in <ctype.h>
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

20 years ago* Fn args passed in registers are now recorded as used by the call instruction
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

20 years ago* cFP class split into cFP32 and cFP64
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