Brian Gaeke [Thu, 18 Nov 2004 07:43:33 +0000 (07:43 +0000)]
Rewrite LoadArgumentsToVirtualRegs, making it match almost exactly how
visitCallInst works. Support cast of byte/short/int to long.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17949
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 18 Nov 2004 07:43:32 +0000 (07:43 +0000)]
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.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17948
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 18 Nov 2004 07:22:46 +0000 (07:22 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17947
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 18 Nov 2004 06:51:29 +0000 (06:51 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17946
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 06:01:45 +0000 (06:01 +0000)]
* 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17945
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 05:28:21 +0000 (05:28 +0000)]
There is no need to check to see if j overflowed in this loop as we're only
incrementing i.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17944
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 05:19:02 +0000 (05:19 +0000)]
Moderate head scratching reveals that this conditional is not needed. If
i->start == j->start, then certainly i->end > j->start.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17943
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 18 Nov 2004 04:56:53 +0000 (04:56 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17942
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 18 Nov 2004 04:33:40 +0000 (04:33 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17941
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 18 Nov 2004 04:33:39 +0000 (04:33 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17940
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 04:33:31 +0000 (04:33 +0000)]
Fix a couple of bugs where we considered physregs past their range as possibly
intersecting an interval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17939
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 04:31:10 +0000 (04:31 +0000)]
Fix typeo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17938
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 04:13:02 +0000 (04:13 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17937
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 04:02:11 +0000 (04:02 +0000)]
Take another .7 seconds off of linear scan time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17936
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 03:49:30 +0000 (03:49 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17935
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 03:47:34 +0000 (03:47 +0000)]
Add ability to give hints to the overlaps routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17934
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 02:42:27 +0000 (02:42 +0000)]
* 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17933
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 02:37:31 +0000 (02:37 +0000)]
Add new advanceTo method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17932
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 01:34:44 +0000 (01:34 +0000)]
Fix a minor bug in expiredAt. endNumber() is the first number that is not valid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17931
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Nov 2004 01:29:39 +0000 (01:29 +0000)]
Rename some methods, use 'begin' instead of 'start', add new LiveInterval
iterator/begin/end members.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17930
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 18 Nov 2004 00:25:20 +0000 (00:25 +0000)]
Allocate fewer registers and tighten up alignment restrictions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17929
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 17 Nov 2004 22:33:55 +0000 (22:33 +0000)]
Update to-do list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17927
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 17 Nov 2004 22:33:28 +0000 (22:33 +0000)]
Update list of failing SingleSource Benchmarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17926
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 17 Nov 2004 22:06:56 +0000 (22:06 +0000)]
We were (somehow) getting the wrong branch opcode for setcc float instrs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17925
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 17 Nov 2004 21:02:25 +0000 (21:02 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17923
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 Nov 2004 20:19:18 +0000 (20:19 +0000)]
Add a standards section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17921
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 Nov 2004 19:08:44 +0000 (19:08 +0000)]
Fix PR458:
* Don't include Makefile.rules in set of preconditions, it never has to be
copied to objdir.
* Enable the "update makefile first before executing targets" feature in
gnu make by *not* using a full path to the Makefile in the rule.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17920
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 Nov 2004 18:28:29 +0000 (18:28 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17918
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 Nov 2004 18:25:21 +0000 (18:25 +0000)]
Make sure we parse bytecode with a module identifier that reflects the full
name of the module: "Archive.a(object.o)"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17917
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Nov 2004 18:19:32 +0000 (18:19 +0000)]
Make this more accurate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17916
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Nov 2004 18:01:49 +0000 (18:01 +0000)]
New prototype for lowerpacked pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17915
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Nov 2004 17:59:35 +0000 (17:59 +0000)]
Generalize this code to turn any cast-to-first-element-of into a gep constexpr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17914
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Nov 2004 17:39:39 +0000 (17:39 +0000)]
Simplify conditional and fix LICM/2004-11-17-UndefIndexCrash.ll
by saying what we mean
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17913
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Nov 2004 17:39:19 +0000 (17:39 +0000)]
New testcase that crashes licm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17912
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Nov 2004 16:41:19 +0000 (16:41 +0000)]
-disable-opt is not -O0, it's okay for it to disable internalize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17911
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 Nov 2004 16:14:21 +0000 (16:14 +0000)]
Adjust long file name writing to match BSD 4.4 and Mac OSX style archives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17910
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 17 Nov 2004 16:13:11 +0000 (16:13 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17909
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 16 Nov 2004 21:31:37 +0000 (21:31 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17907
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 20:39:04 +0000 (20:39 +0000)]
Minor cleanup and speedup. This reduces link-time for 252.eon from 35.5s
to 34.7s with a profile build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17906
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 20:30:53 +0000 (20:30 +0000)]
Make this function work with non-abstract types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17905
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 19:04:40 +0000 (19:04 +0000)]
Don't increment a dead iterator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17904
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 18:59:20 +0000 (18:59 +0000)]
Even with -disable-opt we should still internalize and strip if requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17903
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 18:40:52 +0000 (18:40 +0000)]
Fix a major bug in the signed shr code, which apparently only breaks 134.perl!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17902
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 17:14:08 +0000 (17:14 +0000)]
* Use low-level unix I/O interface since we're on Unix.
* Don't use variable length arrays (replaced with alloca)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17901
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 17:12:38 +0000 (17:12 +0000)]
Simplify the remapper by only needing one map, since the body of the functions
being linked do not need to be remapped any longer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17900
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 16:46:22 +0000 (16:46 +0000)]
Make the comment for LinkFiles a bit more precise and easily understood.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17899
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 16:39:20 +0000 (16:39 +0000)]
New testcase for recent patch to SCCP, thanks to Nate Begeman for pointing
out this recent regression
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17898
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 16:32:28 +0000 (16:32 +0000)]
Do not delete dead invoke instructions!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17897
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 16 Nov 2004 07:35:32 +0000 (07:35 +0000)]
Erase non-applicable Unix comment, this is Win32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17896
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 16 Nov 2004 07:32:58 +0000 (07:32 +0000)]
Update list of failing benchmarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17895
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 16 Nov 2004 07:32:09 +0000 (07:32 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17894
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 07:31:51 +0000 (07:31 +0000)]
Take advantage of the fact that we are allowed to clobber the input module
by splicing function bodies from the src module to the destination module.
This speeds up linking quite a bit, e.g. gccld time on 176.gcc from 26s -> 20s
when forming the .rbc file, with a profile build. One of the really strange
but cool effects of this patch is that it speeds up the optimizers as well,
from 12s -> 10.7s, presumably because of better locality???
In any case, this is just a first step. We can trivially get rid of the
LocalMap now and do other simplifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17893
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 07:05:16 +0000 (07:05 +0000)]
Fix typeo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17892
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 07:00:23 +0000 (07:00 +0000)]
Remove useless #include.
Patch contributed by Jeff Cohen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17891
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:59:53 +0000 (06:59 +0000)]
Simplify code.
Patch contributed by Jeff Cohen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17890
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:58:55 +0000 (06:58 +0000)]
Standardize on 'class' instead of 'struct'. Gets rid of warnings in VC++
Patch contributed by Jeff Cohen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17889
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:57:30 +0000 (06:57 +0000)]
Remove dupliate buid of Signals.cpp
Patch contributed by Jeff Cohen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17888
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 16 Nov 2004 06:52:35 +0000 (06:52 +0000)]
Give a better message for a common assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17887
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:50:36 +0000 (06:50 +0000)]
Add a comment to some code that at first glance just doesn't look right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17886
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:47:41 +0000 (06:47 +0000)]
Per code review:\
* Adjust indentation\
* Ensure memory do not leak if exceptions happen (std::auto_ptr use)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17885
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:47:30 +0000 (06:47 +0000)]
Per code review:\
* Make the numVbrBytes function more efficient and better documented \
* Fix a bug in name truncation \
* Add comments before functions \
* Get rid of functions that are now inlined into the header \
* Do not have Archive doing symbol table printing \
* Put assert comments into the assert so they print out \
* Make sure foreign symbol tables are written
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17884
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:47:19 +0000 (06:47 +0000)]
Per code review:\
* Make sure we write out the foreign symbol table if we read one \
* Make the padding calculation more efficiently and avoid Solaris warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17883
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:47:07 +0000 (06:47 +0000)]
Per code review:\
* Make sure all members are initialized upon construction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17882
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:46:55 +0000 (06:46 +0000)]
Per code review:\
* Use STL names for STL operations \
* Do not have Archive doing symbol table printing \
* Avoid compiler warnings about only having private constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17881
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 06:41:36 +0000 (06:41 +0000)]
The second arg may be clobbered by this function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17880
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 06:41:21 +0000 (06:41 +0000)]
Document this as clobbering the second arg, make the second arg be non-const
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17879
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:41:20 +0000 (06:41 +0000)]
Per code review: \
* Make static things static \
* Get rid of unused TmpArchive variable \
* Implement symbol table printing \
* Adjust to changes in llvm::Archive interface \
* Make sure we destruct objects even if exceptions occur. \
* Fix a typo in an output string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17878
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:41:09 +0000 (06:41 +0000)]
Per code review: \
* hide the compatibility option \
* Make static things static \
* Use cl::extrahelp instead of cl::MoreHelp (defunct) \
* Use cl::PrintHelpMessage instead of our own printUse function \
* Use a std::set<sys::Path> for the path list because its now required by \
the sys::Path class and also ensues directories are traversed in sorted \
order.\
* Implement symbol table printing locally instead of in libLLVMArchive \
* Adjust to changes in llvm::Archive interface \
* Make sure we destruct objects even if exceptions occur. \
* Fix a typo in an output string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17877
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:41:05 +0000 (06:41 +0000)]
Per code review:\
* Get rid of memory leaks on exception \
* Provide better comments of how the memory handling works
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17876
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 06:40:54 +0000 (06:40 +0000)]
use an autoptr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17875
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 06:31:38 +0000 (06:31 +0000)]
Make this code not depend on LinkModules leaving the second argument unmolested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17874
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:22:17 +0000 (06:22 +0000)]
Per code review:
* get rid of (void) construct in function declarations
* make toString a const member
* add a default implementation of toString for Win32
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17873
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:15:19 +0000 (06:15 +0000)]
Per code review:
* Clean up the StatusInfo constructor to construct all members and give
them reasonable values.
* Get rid of the Vector typedef and make the interface to
getDirectoryContent use a std::set instead of a std::vector so the dir
content is sorted.
* Make the getStatusInfo method const and not return a useless boolean.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17872
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 16 Nov 2004 06:11:52 +0000 (06:11 +0000)]
Per code review:
*Implement/Document the cl::extrahelp feature instead of the MoreHelp ptr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17871
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 04:47:33 +0000 (04:47 +0000)]
Simplify namespaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17870
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 04:34:29 +0000 (04:34 +0000)]
Remove a dead function, which died when we got GAS emission working (phwew,
hold your nose!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17869
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 04:30:51 +0000 (04:30 +0000)]
Implement a simple FIXME: if we are emitting a basic block address that has
already been emitted, we don't have to remember it and deal with it later,
just emit it directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17868
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Nov 2004 04:21:18 +0000 (04:21 +0000)]
* Merge some win32 ifdefs together
* Get rid of "emitMaybePCRelativeValue", either we want to emit a PC relative
value or not: drop the maybe BS. As it turns out, the only places where
the bool was a variable coming in, the bool was a dynamic constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17867
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 15 Nov 2004 23:20:51 +0000 (23:20 +0000)]
* Change test/projects => projects/llvm-test
* Add link to complete Command Guide in the "brief intro to major tools" section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17866
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 23:20:19 +0000 (23:20 +0000)]
Add an accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17865
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 23:20:04 +0000 (23:20 +0000)]
Now that we have ghost linkage, we can force resolution of external symbols
immediately instead of lazily.
In this program, for example:
int main() {
printf("hello world\n");
printf("hello world\n");
printf("hello world\n");
printf("hello world\n");
}
We used to have to go through compilation callback 4 times (once for each
call to printf), now we don't go to it at all.
Thanks to Misha for noticing this, and for adding the initial ghost linkage
patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17864
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 23:18:09 +0000 (23:18 +0000)]
There is no reason to try to materialize the function from bytecode if it
already has been. This may be a small speedup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17863
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 23:16:55 +0000 (23:16 +0000)]
Add debug-only=jit printout, so we see when lazily resolved symbols are
set up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17862
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 23:16:34 +0000 (23:16 +0000)]
Simplify and rearrange long shift code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17861
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 22:54:50 +0000 (22:54 +0000)]
Update to reflect recent change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17860
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 22:39:49 +0000 (22:39 +0000)]
Do not emit FunctionBlock blocks for external functions. This shrinks
bytecode files by about 8 bytes per external function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17859
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 22:38:52 +0000 (22:38 +0000)]
Use a per-function flag bit to indicate whether or not there is a function
body for the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17858
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 21:56:33 +0000 (21:56 +0000)]
Disable this change, it was premature
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17857
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 21:55:33 +0000 (21:55 +0000)]
Make *SURE* to null out the pointer before throwing an exception, otherwise
the dtor for the BytecodeReader class will try to free it again!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17856
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 21:55:06 +0000 (21:55 +0000)]
Cleanups. Null out pointer after freeing it for paranoia
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17855
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 21:46:40 +0000 (21:46 +0000)]
If a function is external, do not output a FunctionBlock for the function
AT ALL. This saves 11 bytes per external function from the bytecode file,
and is also required to make GhostLinkage work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17854
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 15 Nov 2004 21:43:03 +0000 (21:43 +0000)]
Make functions default to having external linkage if they have no
FunctionBlock.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17853
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 15 Nov 2004 21:27:05 +0000 (21:27 +0000)]
Remove useless/confusing namespace qualifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17852
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 15 Nov 2004 21:20:09 +0000 (21:20 +0000)]
Add BCTR and LWZU instruction opcodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17851
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 15 Nov 2004 21:15:12 +0000 (21:15 +0000)]
Merge content of RequiredSoftware.html into GettingStarted.html
Remove now defunct RequiredSoftware.html.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17850
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 15 Nov 2004 21:05:08 +0000 (21:05 +0000)]
* Add entry for Linux/PowerPC
* Mark MacOS X/PPC support as 32-bit-only
* Fix FreeBSD space usage -- it's in MB, not GB
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17848
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 15 Nov 2004 20:39:30 +0000 (20:39 +0000)]
Be less verbose when `The' and `command' just aren't necessary
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17846
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 15 Nov 2004 20:36:39 +0000 (20:36 +0000)]
No need for the verbose `the llvm-link command' when simply `llvm-link' will do
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17845
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 15 Nov 2004 20:32:58 +0000 (20:32 +0000)]
Force a short link to gccld's man page
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17844
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 15 Nov 2004 20:30:19 +0000 (20:30 +0000)]
Fix syntax within a B<> tag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17843
91177308-0d34-0410-b5e6-
96231b3b80d8