Reid Spencer
a2e2f5c878
Make a cast explicit.
...
llvm-svn: 17977
2004-11-19 03:20:09 +00:00
Reid Spencer
a181a37bb4
Make findModulesDefiningSymbols modify its symbols argument so we can \
...
eliminate symbols defined by the archive efficiently
llvm-svn: 17976
2004-11-19 03:18:22 +00:00
Reid Spencer
119f824e80
Reduce the amount of work in LinkInArchive by not searching the archive for
...
symbols it has already identified as not defining.
llvm-svn: 17975
2004-11-19 03:13:25 +00:00
Nate Begeman
de1fd6a162
Generate fewer reg-reg copies for the register allocator to deal with.
...
This eliminates over 2000 in hbd alone.
llvm-svn: 17973
2004-11-19 02:06:40 +00:00
Chris Lattner
ce8249f570
Delete stoppoints that occur for the same source line.
...
llvm-svn: 17970
2004-11-18 21:41:39 +00:00
Tanya Lattner
bd01287efd
Fixed to fit in 80 columns.
...
llvm-svn: 17961
2004-11-18 18:47:29 +00:00
Tanya Lattner
d29c748a57
Adding option to llc for ModuloScheduling. By default it is turned off.
...
llvm-svn: 17959
2004-11-18 18:38:01 +00:00
Chris Lattner
a06c8cfe80
These methods are inlined
...
llvm-svn: 17958
2004-11-18 17:47:13 +00:00
Chris Lattner
7fb7c81ebf
Check in hook that I forgot
...
llvm-svn: 17956
2004-11-18 17:24:20 +00:00
Brian Gaeke
23969d8817
Rewrite LoadArgumentsToVirtualRegs, making it match almost exactly how
...
visitCallInst works. Support cast of byte/short/int to long.
llvm-svn: 17949
2004-11-18 07:43:33 +00:00
Brian Gaeke
b01ef957b9
Update current expected failures list - expand it to include all of
...
SingleSource. Update to-do list (open-coding refers to binary operations on
longs, not to passing them into functions, which we already support.)
llvm-svn: 17948
2004-11-18 07:43:32 +00:00
Nate Begeman
567d30174a
Eliminate another common source of moves that the register allocator
...
shouldn't be forced to coalesce for us: folded GEP operations. This too
fires thousands of times across the testsuite.
llvm-svn: 17947
2004-11-18 07:22:46 +00:00
Nate Begeman
3e1aaef2b5
When accessing the base register for global variables, use the register
...
directly rather than making a copy for the register allocator to coalesce.
This kills thousands of live intervals across the testsuite.
llvm-svn: 17946
2004-11-18 06:51:29 +00:00
Chris Lattner
ccd7bfb561
* There is no reason for SpillWeights to be an instance var
...
* Do not put fixed registers into the unhandled set. This means they will
never find their way into the inactive, active, or handled sets, so we
can simplify a bunch of code.
llvm-svn: 17945
2004-11-18 06:01:45 +00:00
Chris Lattner
60c90d623f
There is no need to check to see if j overflowed in this loop as we're only
...
incrementing i.
llvm-svn: 17944
2004-11-18 05:28:21 +00:00
Chris Lattner
2c16205a0d
Moderate head scratching reveals that this conditional is not needed. If
...
i->start == j->start, then certainly i->end > j->start.
llvm-svn: 17943
2004-11-18 05:19:02 +00:00
Nate Begeman
7e254235e2
Clean up and fix cast codegen by removing cases that are handled elsewhere,
...
and properly emitting signed short to unsigned int. This fixes the last
regression vs. the CBE, MultiSource/Applications/hbd.
llvm-svn: 17942
2004-11-18 04:56:53 +00:00
Reid Spencer
c1871a4eaa
Dynamic Library abstraction. This makes the abstraction of a single dynamic
...
library (shared library/shared object) whose symbols can be looked up
dynamically. Used for plug-ins.
llvm-svn: 17940
2004-11-18 04:33:39 +00:00
Chris Lattner
e9ab36314d
Fix a couple of bugs where we considered physregs past their range as possibly
...
intersecting an interval.
llvm-svn: 17939
2004-11-18 04:33:31 +00:00
Chris Lattner
c23cebb206
Fix typeo
...
llvm-svn: 17938
2004-11-18 04:31:10 +00:00
Chris Lattner
3a6991f745
Start using the iterators in the fixed_ intervals to avoid having to binary
...
search physreg intervals every time we access it. This takes another
half second off of linscan.
llvm-svn: 17937
2004-11-18 04:13:02 +00:00
Chris Lattner
189acb3955
Take another .7 seconds off of linear scan time.
...
llvm-svn: 17936
2004-11-18 04:02:11 +00:00
Chris Lattner
a52650a18a
Add a counter for the number of times linscan has to backtrack. Start using
...
the iterator hints we have to speed up overlaps(). This speeds linscan up
by about .2s (out of 8.7) on 175.vpr for PPC.
llvm-svn: 17935
2004-11-18 03:49:30 +00:00
Chris Lattner
2edc3cec62
Add ability to give hints to the overlaps routines.
...
llvm-svn: 17934
2004-11-18 03:47:34 +00:00
Chris Lattner
18ced80110
* Improve comments/documentation substantially
...
* Eliminate the releaseMemory method, this is not an analysis
* Change the fixed, active, and inactive lists of intervals to maintain an
iterator for the current position in the interval. This allows us to do
constant time increments of the iterator instead of having to do a binary
search to find our liverange in our liveinterval all of the time, which
substantially speeds up cases where LiveIntervals have many LiveRanges
- which is very common for physical registers. On targets with many
physregs, this can make a noticable difference.
With a release build of LLC for PPC, this halves the time in
processInactiveIntervals and processActiveIntervals, from 1.5s to .75s.
This also lays the ground for more to come.
llvm-svn: 17933
2004-11-18 02:42:27 +00:00
Chris Lattner
3bf87c8f95
Add new advanceTo method
...
llvm-svn: 17932
2004-11-18 02:37:31 +00:00
Chris Lattner
77a4102d91
Fix a minor bug in expiredAt. endNumber() is the first number that is not valid.
...
llvm-svn: 17931
2004-11-18 01:34:44 +00:00
Chris Lattner
ddc898639f
Rename some methods, use 'begin' instead of 'start', add new LiveInterval
...
iterator/begin/end members.
llvm-svn: 17930
2004-11-18 01:29:39 +00:00
Brian Gaeke
77ddfa2495
Allocate fewer registers and tighten up alignment restrictions.
...
llvm-svn: 17929
2004-11-18 00:25:20 +00:00
Brian Gaeke
cc4074987b
Update to-do list.
...
llvm-svn: 17927
2004-11-17 22:33:55 +00:00
Brian Gaeke
0963d035c6
Update list of failing SingleSource Benchmarks
...
llvm-svn: 17926
2004-11-17 22:33:28 +00:00
Brian Gaeke
70a111317a
We were (somehow) getting the wrong branch opcode for setcc float instrs.
...
llvm-svn: 17925
2004-11-17 22:06:56 +00:00
Alkis Evlogimenos
b9e38d3cc5
Make ReturnInst accept a value of type void as the return value. The
...
ReturnInst constructed is the same as if NULL was passed instead of
the void value.
llvm-svn: 17923
2004-11-17 21:02:25 +00:00
Reid Spencer
a98ccac6fc
Fix some things for Mac OSX archives:
...
* ensure trailing spaces are eliminated so they don't factor into the
length of a member's name.
* make sure all the bytes of a name are written even if the name ends in
multiple null characters (bug in OSX ar)
* make sure we provide the full member name when searching for symbols so
the module name is not accidentally duplicated.
llvm-svn: 17918
2004-11-17 18:28:29 +00:00
Reid Spencer
3e245bd4d5
Make sure we parse bytecode with a module identifier that reflects the full
...
name of the module: "Archive.a(object.o)"
llvm-svn: 17917
2004-11-17 18:25:21 +00:00
Chris Lattner
5a2ce1faab
Generalize this code to turn any cast-to-first-element-of into a gep constexpr
...
llvm-svn: 17914
2004-11-17 17:59:35 +00:00
Chris Lattner
bd02c10b87
Simplify conditional and fix LICM/2004-11-17-UndefIndexCrash.ll
...
by saying what we mean
llvm-svn: 17913
2004-11-17 17:39:39 +00:00
Reid Spencer
b9fbea4c79
Adjust long file name writing to match BSD 4.4 and Mac OSX style archives.
...
llvm-svn: 17910
2004-11-17 16:14:21 +00:00
Reid Spencer
f59013e0fa
Despite documentation to the contrary, Mac OSX and BSD 4.4 archive formats
...
*do* include the length of the long file in the length of the member and
they are *not* null terminated.
llvm-svn: 17909
2004-11-17 16:13:11 +00:00
Tanya Lattner
18118cf0c3
Added my own defMap. Only saving values that are not loop invariant. Fixed a couple of assertions that were triggered due to registers not being allocated. These both had to do with PHINodes.
...
llvm-svn: 17907
2004-11-16 21:31:37 +00:00
Chris Lattner
4725ecbbd6
Minor cleanup and speedup. This reduces link-time for 252.eon from 35.5s
...
to 34.7s with a profile build.
llvm-svn: 17906
2004-11-16 20:39:04 +00:00
Chris Lattner
7fdc458443
Make this function work with non-abstract types.
...
llvm-svn: 17905
2004-11-16 20:30:53 +00:00
Chris Lattner
8906663505
Don't increment a dead iterator
...
llvm-svn: 17904
2004-11-16 19:04:40 +00:00
Chris Lattner
a7eec14b04
Fix a major bug in the signed shr code, which apparently only breaks 134.perl!
...
llvm-svn: 17902
2004-11-16 18:40:52 +00:00
Reid Spencer
24a84793ba
* Use low-level unix I/O interface since we're on Unix.
...
* Don't use variable length arrays (replaced with alloca)
llvm-svn: 17901
2004-11-16 17:14:08 +00:00
Chris Lattner
b40f8214ea
Simplify the remapper by only needing one map, since the body of the functions
...
being linked do not need to be remapped any longer.
llvm-svn: 17900
2004-11-16 17:12:38 +00:00
Chris Lattner
92e712b00f
Do not delete dead invoke instructions!
...
llvm-svn: 17897
2004-11-16 16:32:28 +00:00
Misha Brukman
3885f4ec6d
Erase non-applicable Unix comment, this is Win32
...
llvm-svn: 17896
2004-11-16 07:35:32 +00:00
Brian Gaeke
c68a1fb6b9
Update list of failing benchmarks
...
llvm-svn: 17895
2004-11-16 07:32:58 +00:00
Brian Gaeke
effc63fac5
Correct the implicit-defs information for indirect and direct calls.
...
You can't have implicit defs that overlap explicit defs, or implicit
defs that alias one another.
llvm-svn: 17894
2004-11-16 07:32:09 +00:00