1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

8676 Commits

Author SHA1 Message Date
Chris Lattner
09ef1749f7 Completely rewrite support for the Value::use_* list. Now, all operations on
this list (except use_size()) are constant time.  Before the killUse method
(used whenever something stopped using a value) was linear time, and thus
very very slow for large programs.

This speeds GCCAS up _substantially_ on large programs: almost 2x for 176.gcc:

176.gcc:     77.07s -> 37.38s
177.mesa:     7.59s ->  5.57s
252.eon:     21.02s -> 19.52s (*)
253.perlbmk: 11.40s -> 13.05s
254.gap:      7.25s -> 7.42s

252.eon would speed up a whole lot more, but optimization time is being
dominated by the inlining pass, which needs to be fixed.

llvm-svn: 9160
2003-10-16 16:53:07 +00:00
Chris Lattner
0493113344 Completely rewrite support for the Value::use_* list. Now, all operations on
this list (except use_size()) are constant time.  Before the killUse method
(used whenever something stopped using a value) was linear time, and thus
very very slow for large programs.

This speeds GCCAS up _substantially_ on large programs: almost 2x for 176.gcc:

176.gcc:     77.07s -> 37.38s
177.mesa:     7.59s ->  5.57s
252.eon:     21.02s -> 19.52s (*)
253.perlbmk: 11.40s -> 13.05s
254.gap:      7.25s -> 7.42s

252.eon would speed up a whole lot more, but optimization time is being
dominated by the inlining pass, which needs to be fixed.

llvm-svn: 9159
2003-10-16 16:53:04 +00:00
Chris Lattner
e1f71ee070 Unfortunately, it looks like level raise is still needed :(
llvm-svn: 9158
2003-10-16 16:50:34 +00:00
Chris Lattner
f0da6e06e6 This code does not require random access use_lists
llvm-svn: 9156
2003-10-16 16:49:12 +00:00
Chris Lattner
0747f39327 Eliminate using declaration
Rewrite code to work with use_lists what are either random access or bidirectional

llvm-svn: 9155
2003-10-16 16:48:53 +00:00
Misha Brukman
c2f0ea4cf1 Added an entry for `llvm-nm'.
llvm-svn: 9154
2003-10-16 16:12:04 +00:00
Brian Gaeke
d7f07a7f91 Okay, this is a little hack that "scratches an itch" of mine.
I dislike having to examine the output of "dis" to see what symbols
are in a bytecode file. So, here is a first cut at a "nm" utility for llvm.
Flame away.... :-)

llvm-svn: 9153
2003-10-16 04:43:15 +00:00
John Criswell
3e6d68f570 Added autoconf support for the sample project.
llvm-svn: 9152
2003-10-16 01:49:07 +00:00
John Criswell
27f6878d71 Added autoconf support for the sample project.
Fixed the header comment in Makefile.rules
Changed all references to the echo program in Makefile.rules to the value
found by autoconf.

llvm-svn: 9151
2003-10-16 01:49:00 +00:00
John Criswell
2731484a3a Adding autoconf support to the sample project.
llvm-svn: 9150
2003-10-16 01:45:35 +00:00
John Criswell
39ba1903f2 Adding autoconf support for the sample project.
This should make setting up a new project much easier.

llvm-svn: 9149
2003-10-16 01:45:10 +00:00
John Criswell
45100684a4 Adding autoconf support for the sample project.
llvm-svn: 9148
2003-10-16 01:44:20 +00:00
Chris Lattner
64d7bc76b8 Vector is my friend, do you like vector?
llvm-svn: 9147
2003-10-15 22:10:10 +00:00
Chris Lattner
a390208127 lalala
llvm-svn: 9146
2003-10-15 22:09:57 +00:00
Chris Lattner
9db0d011b4 We'll need this soon as well
llvm-svn: 9145
2003-10-15 22:09:46 +00:00
Chris Lattner
eab4a2d0d1 #include vector which we will need here soon
llvm-svn: 9144
2003-10-15 22:09:32 +00:00
Chris Lattner
d335336fda This file uses assert and doesn't include anything which already #includes <cassert>
llvm-svn: 9142
2003-10-15 21:55:37 +00:00
Chris Lattner
5e7680e517 Give this file a proper header
llvm-svn: 9141
2003-10-15 21:49:57 +00:00
Chris Lattner
b3414f7cb6 The levelraise pass is a broken old piece of crufty code that should be
left on the side of the road without a second thought.

It is preventing forward progress, so for now, we will disable it by default.

llvm-svn: 9140
2003-10-15 21:48:38 +00:00
Brian Gaeke
255e770272 Fix up error message.
llvm-svn: 9139
2003-10-15 20:46:58 +00:00
Brian Gaeke
53682403cf Flush output after writing out the list of function names.
llvm-svn: 9138
2003-10-15 20:42:48 +00:00
John Criswell
af086496f6 Updated some of the information for the new autoconf changes.
llvm-svn: 9136
2003-10-15 16:52:57 +00:00
Chris Lattner
f2ed60c0b7 Decrease usage of use_size()
llvm-svn: 9135
2003-10-15 16:48:29 +00:00
Chris Lattner
7e21039f40 Remove usage of use_size()
llvm-svn: 9134
2003-10-15 16:43:24 +00:00
Chris Lattner
c6778e91f4 Cleanup
llvm-svn: 9133
2003-10-15 16:42:21 +00:00
Chris Lattner
27a1330106 Add new hasOneUse() method. Remove explicit inline qualifiers
llvm-svn: 9132
2003-10-15 16:39:04 +00:00
Chris Lattner
c44998d315 add support forloading additional .so files on the command line
llvm-svn: 9131
2003-10-14 22:24:31 +00:00
Chris Lattner
1a8192c85e Change the execute methods to take the shared object filename by const reference.
Other adjustments to work with the new ToolRunner interfaces

llvm-svn: 9130
2003-10-14 21:59:36 +00:00
Chris Lattner
ac95730fca Generalize abstract interpreter interface to allow linking in an arbitrary number of shared objects
llvm-svn: 9129
2003-10-14 21:52:52 +00:00
Misha Brukman
50fa0a7bae Order #includes as per the style guide.
llvm-svn: 9128
2003-10-14 21:42:11 +00:00
Misha Brukman
f5f7216102 Enabling incremental bytecode loading in the JIT:
* Use the incremental bytecode reader interface to speed up execution

llvm-svn: 9127
2003-10-14 21:39:53 +00:00
Misha Brukman
1d9479ba78 Enabling incremental bytecode loading in the JIT:
* FunctionPassManager ctor now takes in a ModuleProvider
* run() materializes function before running passes on it

llvm-svn: 9126
2003-10-14 21:38:42 +00:00
Misha Brukman
5252af2728 Enabling incremental bytecode loading in the JIT:
* The VM is now constructed with a ModuleProvider

llvm-svn: 9125
2003-10-14 21:37:41 +00:00
Misha Brukman
cc1cfd01ed Enabling incremental bytecode loading in the JIT:
* ExecutionEngine and VM can be constructed using a ModuleProvider.

llvm-svn: 9124
2003-10-14 21:36:31 +00:00
Misha Brukman
2ab03faac1 Enabling incremental bytecode loading in the JIT:
* ExecutionEngine can be constructed from a ModuleProvider
* Alphabetized order of forward-declared classes

llvm-svn: 9123
2003-10-14 21:35:52 +00:00
Misha Brukman
6e81243ff7 Enabling incremental bytecode loading in the JIT:
* Add ModuleProvider as a parameter to FunctionPassManager

llvm-svn: 9122
2003-10-14 21:34:56 +00:00
Chris Lattner
1cad7eb7b0 Substantial cleanups:
* Add header comment
 * Remove extraneous #includes
 * Move the FileType enum into the GCC class
 * The GCC class is not virtual.
 * Move all of the "constructor" functions into the classes themselves
 * Stop using cl::list as arguments, use std::vector instead (which cl::list
   derives from)
 * Improve comments

llvm-svn: 9121
2003-10-14 21:34:11 +00:00
Chris Lattner
60503a16cf The return value of compileSharedObject was never used. Return the shared
object's name instead

llvm-svn: 9120
2003-10-14 21:09:11 +00:00
Chris Lattner
187faf250c Actually return an error if something bad happens, don't just exit.
llvm-svn: 9119
2003-10-14 21:07:25 +00:00
Chris Lattner
beca447374 minor cleanups
llvm-svn: 9118
2003-10-14 21:01:51 +00:00
Chris Lattner
cb17d3f739 The -mode option is no longer
llvm-svn: 9117
2003-10-14 20:58:07 +00:00
Chris Lattner
b44dd76513 Fix minor formatting bug
llvm-svn: 9116
2003-10-14 20:55:56 +00:00
Chris Lattner
32f66afbad Eliminate the bugpoint -mode option, by making bugpoint automatically infer the root of all of your problems
llvm-svn: 9115
2003-10-14 20:52:55 +00:00
Chris Lattner
c115e75755 Output a contorted sequence of instructions to make sure that we don't access
off the bottom of the stack.  This fixes PR#41

llvm-svn: 9114
2003-10-14 19:09:05 +00:00
Chris Lattner
907de53acb Disable the leaf function optimization, which is apparently not legal on
X86/linux.  :(  The problem is that a signal delivered while the function
is executing could clobber the functions stack.  This is a partial fix
for PR41.

llvm-svn: 9113
2003-10-14 18:52:41 +00:00
Chris Lattner
f6db20e5bb Fix bug in script
llvm-svn: 9110
2003-10-14 01:22:08 +00:00
Chris Lattner
a567862e89 Do not move variable sized allocations to the top of the caller, which might
break dominance relationships, and is otherwise bad.  This fixes bug:
Inline/2003-10-13-AllocaDominanceProblem.ll.  This also fixes miscompilation
of 3 176.gcc source files (reload1.c, global.c, flow.c)

llvm-svn: 9109
2003-10-14 01:11:07 +00:00
Chris Lattner
1248b1582e New testcase which the inliner breaks
llvm-svn: 9108
2003-10-14 01:04:12 +00:00
John Criswell
4cf1b14857 Added a link to the main page for LLVM.
Made the "Submitting a Bug" reference point to the web site, as we want people
using the latest and greatest bug reporting.
Fixed the indentation by assuming that tabs are 8 characters or less.

llvm-svn: 9107
2003-10-13 21:09:04 +00:00
Chris Lattner
5851e74388 Unbreak code generator debug mode
llvm-svn: 9106
2003-10-13 21:04:26 +00:00