Commit Graph

10203 Commits

Author SHA1 Message Date
Chris Lattner
1fa3dabc4b Fix documentation bugs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11267 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 18:04:24 +00:00
Chris Lattner
b9f960e39d Make block profiling the default
add a new -function argument
Add a new -o argument to specify where to put llvmprof.out data


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11265 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 18:01:50 +00:00
Chris Lattner
ebd02a8cfa Allow the program to take a '-llvmprof-output filename' option to specify
where to output the profiling data, if llvmprof.out is not good enough.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11264 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 18:01:00 +00:00
Chris Lattner
81d1a2207d initialization calls now return argc. If the program uses the argc value
passed into main, make sure they use the return value of the init call
instead of the one passed in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11262 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 17:41:01 +00:00
Chris Lattner
affce4fd93 Make the initialization calls return argc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11261 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 17:36:25 +00:00
Misha Brukman
c6f7591f5a Doxygen-ify comments, make function prototypes more consistent in format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11259 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 16:39:05 +00:00
Brian Gaeke
3361386cd4 Mention install, RPM, autoconf improvements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11257 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 05:22:23 +00:00
Chris Lattner
964b0d87b2 Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11256 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 05:19:54 +00:00
Chris Lattner
21e79cbacd Fix PR228: [sparc] Boolean constants are emitted as true and false
I will observe that the concept of using WriteAsOperand is completely broken,
but then we all knew that, didn't we?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11255 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 05:16:44 +00:00
Brian Gaeke
9f4b90de91 RPM spec file for LLVM tools and libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11254 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 03:57:51 +00:00
Brian Gaeke
89409b64eb Should fix pr220 - "make install" doesn't install header files when
BUILD_SRC_ROOT != BUILD_OBJ_ROOT


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11253 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-10 01:10:01 +00:00
Misha Brukman
2647c3925b Doxygenify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11252 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 23:18:42 +00:00
Chris Lattner
79caafeefe Move this testcase out of /home/vadve/lattner/cvs/llvm/test/Programs/LLVMSource,
as it fails.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11250 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 22:52:25 +00:00
Chris Lattner
f1d0d3519f Only add the global variable with the abort message if an unwind actually
occurs in the program.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11249 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 22:48:47 +00:00
Alkis Evlogimenos
71be6db3ef Add global methods that prevent us from using ilist::iterators as
random access iterators.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11248 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 22:40:50 +00:00
John Criswell
ccb2a677af Fix PR#226: When emitting padding, always emit it as bytes. Bytes can be
placed into any alignment situation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11247 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 22:15:33 +00:00
Chris Lattner
56e670557f Many things have been fixed, so move them out of the "known problems" section
Also, PR137 is a code quality PR, not a bug


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11246 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 21:22:51 +00:00
Chris Lattner
a50c4ba86f QOI bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11245 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 21:16:16 +00:00
Chris Lattner
16af11d962 It turns out that the two dimensional vectors were causing big slowdowns
in this for programs with lots of types (like the testcase in PR224).
The problem was that the type ID that the outer vector was using was not
very dense (as many types are getting resolved), so the vector is large
and gets reallocated a lot.

Since there are a lot of values in the program (the .ll file is 10M),
each reallocation has to copy the subvectors, which is also quite slow
(this wouldn't be a problem if C++ supported move semantics, but it
doesn't, at least not yet :(

Changing the outer data structure to a map speeds a release build of
llvm-as up from 11.21s to 5.13s on the testcase in PR224.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11244 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 21:03:38 +00:00
Chris Lattner
a44fb0d362 Remove the statistics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11243 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 21:01:23 +00:00
Chris Lattner
c3b5849e92 Speed up type resolution some more. On the testcase in PR224, for example,
this speeds up a release llvm-as from 21.95s to 11.21s, because before it
would do an expensive traversal of the type-graph of every type resolved.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11242 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 20:23:44 +00:00
Chris Lattner
026a8ce312 When resolving upreferences, if multiple uprefs will be resolved to the same
type at the same time, resolve the upreferences to each other before resolving
it to the outer type.  This shaves off some time from the testcase in PR224, from
25.41s -> 21.72s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11241 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 18:53:54 +00:00
Brian Gaeke
f7ecb9548d SchedGraph doesn't need to be friends with SchedGraphNodeCommon anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11240 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 18:43:06 +00:00
Brian Gaeke
f738db0818 Move InstrSchedule's iterator begin/end methods inline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11239 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 18:42:46 +00:00
Brian Gaeke
0dc5753f2b Make SchedGraph::dump() use SchedGraphNodeCommon's const_iterator
instead of randomly groping about inside its outEdges array.
Make SchedGraph::addDummyEdges() use getNumOutEdges() instead of
outEdges.size().
Get rid of ifdefed-out code in SchedGraph::buildGraph().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11238 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 18:42:05 +00:00
Chris Lattner
0cdaf94a5e Implement the hashing scheme in an attempt to speed up the "slow" case in
type resolution.  Unfortunately it doesn't help.

Also delete some dead debugging code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11237 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 18:32:40 +00:00
Brian Gaeke
6c0969696a Fix bug in installation process: MKDIR must respect DESTDIR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11236 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 17:38:52 +00:00
Chris Lattner
37606f96b0 This debugging hook is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11233 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 17:20:52 +00:00
Chris Lattner
2729540896 Code cleanup in preparation for later changes. Now that ContainedTy's are
consistent across the various type classes, we can factor out a LOT more
almost-identical code.  Also, add a couple of temporary statistics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11232 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 16:35:14 +00:00
Chris Lattner
f32f56862a Now that all of the derived types have disciplined interfaces, we can eliminate
all of the ad-hoc storage of contained types.  This allows getContainedType to
not be virtual, and allows us to entirely delete the TypeIterator class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11230 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 05:40:24 +00:00
Chris Lattner
68b86f4f41 Don't depend on auto data conversion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11229 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 05:16:30 +00:00
Chris Lattner
d21cd809b6 Adjust to the changed StructType interface. In particular, getElementTypes() is gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11228 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 04:37:31 +00:00
Chris Lattner
037b8b70d0 Increase encapsulation of the StructType class, eliminating the getElementTypes() member
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11227 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 04:36:50 +00:00
Chris Lattner
e3235afe09 Method is gone
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11226 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 04:14:46 +00:00
Chris Lattner
d5d8996720 Start using the new and improve interface to FunctionType arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11224 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 04:14:01 +00:00
Chris Lattner
36cb08ae5b Improve encapsulation in the FunctionType class, by adding param_(iterator/begin/end)
members, and eliminating the getParamTypes() method, and the associated typedef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11223 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 04:12:57 +00:00
Chris Lattner
bcb6afba33 This #include is not needed, it should have been removed with the last patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11222 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 03:22:32 +00:00
Chris Lattner
3b07386724 Instead of searching the entire type graph for a type to determine if it
contains the type we are looking for, just search the immediately used types.
We can only do this because we keep the "current" type in the nesting level
as we decrement upreferences.

This change speeds up the testcase in PR224 from 50.4s to 22.08s, not
too shabby.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11221 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 03:19:29 +00:00
Chris Lattner
2c37c18c6e Upreferences are always OpaqueTypes, meaning that it is impossible for a non-abstract
type from containing one.  This speeds up the asmparser on the testcase in PR224 from
61->50s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11220 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 03:03:10 +00:00
Chris Lattner
ecea5635f8 Another nice speedup for the register allocator. This time, we replace
the Virt2PhysRegMap std::map with an std::vector.  This speeds up the
register allocator another (almost) 40%, from .72->.45s in a release build
of LLC on 253.perlbmk.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11219 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 02:12:04 +00:00
Chris Lattner
f6f263ce8c Add a new (hidden) option that is useful for profiling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11218 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 01:47:10 +00:00
Chris Lattner
499487742e Ugh, perform an optimization that GCC should be able to do itself. This
speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11217 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 01:43:23 +00:00
Chris Lattner
96aef89338 Only do stuff for the REAL number of physical registers we have, not 1024.
This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for
the first/second pass respectively.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11216 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 01:35:21 +00:00
Chris Lattner
64667b6418 Change the PhysRegsUsed map into a dense array. Seeing that this is a mapping
from physical registers, and they are always dense, it makes sense to not have
a ton of RBtree overhead.  This change speeds up regalloclocal about ~30% on
253.perlbmk, from .35s -> .27s in the JIT (in LLC, it goes from .74 -> .55).

Now live variable analysis is the slowest codegen pass.  Of course it doesn't
help that we have to run it twice, because regalloclocal doesn't update it,
but even if it did it would be the slowest pass (now it's just the 2x slowest
pass :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11215 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 01:26:13 +00:00
Chris Lattner
e21f68d1e8 Two problems with these lines of code:
1. The "work" was not in the assert, so it was punishing the optimized release
 2. getNamedFunction is _very_ expensive in large programs.  It is not designed
    to be used like this, and was taking 7% of the execution time of the code
    generator on perlbmk.

Since the assert "can never fail", I'm just killing it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11214 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 00:59:07 +00:00
Chris Lattner
99d6b8ec95 The ConstantExpr::getCast call can cause a CPR to be generated. If so,
strip it off.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11213 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 00:20:55 +00:00
Chris Lattner
71151aee60 Fix PR215: [bcwriter] Problem compactifying ConstantPointerRefs
Have I ever mentioned how much I _hate_ constantpointerrefs?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11212 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-09 00:15:41 +00:00
Misha Brukman
b9806e0101 Fix grammar-o.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11210 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 22:27:33 +00:00
Chris Lattner
de4afdc89a All of spec, including 253.perlbmk should now work. There is still the 254.gap
regression, but that will definitely be fixed by 1.2


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11209 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 22:23:33 +00:00
Chris Lattner
501825e08a Improve compatibility with programs that already have a prototype for 'write',
even if it is wierd in some way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11207 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08 22:14:44 +00:00