1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
Commit Graph

9967 Commits

Author SHA1 Message Date
Chris Lattner
727e11ac33 Rewrite to use the reachability cloner interface. Also, make this much more
efficient in the case where a function calls into the same graph multiple times
(ie, it either contains multiple calls to the same function, or multiple calls
to functions in the same SCC graph)

llvm-svn: 10986
2004-01-27 21:53:14 +00:00
Chris Lattner
25f95d2b7c minor cleanups
llvm-svn: 10985
2004-01-27 21:51:19 +00:00
Chris Lattner
9117f221b1 Get clone flags right, so we don't build InlinedGlobals only to clear them
llvm-svn: 10984
2004-01-27 21:50:41 +00:00
Chris Lattner
2ead39d5c8 Minor tweaks
llvm-svn: 10983
2004-01-27 21:49:42 +00:00
Chris Lattner
16a5e6bf33 Add comments, allow DSNode "copy ctor" to ignore outgoing links, add more
structured access to the globals list, add a couple helper methods.

llvm-svn: 10982
2004-01-27 21:49:25 +00:00
Chris Lattner
95d03595ae * cloneReachable* and clonePartiallyInto are not obsolete
* Make AssertNodeInGraph not be HORRIBLY time consuming
* Eliminate the dead mergeInGlobalsGraph method
*** Add the definition for the new ReachabilityCloner class

llvm-svn: 10981
2004-01-27 21:48:35 +00:00
Chris Lattner
5f74235ad9 Start counting projects
llvm-svn: 10980
2004-01-27 21:46:23 +00:00
John Criswell
a43fe7d309 Fixed PR#197. The libcrtend library is removed from the library linking list
when creating native executables.

llvm-svn: 10979
2004-01-26 23:51:10 +00:00
John Criswell
0b5166db12 Clarified the extension to shared library objects.
llvm-svn: 10978
2004-01-26 21:26:54 +00:00
John Criswell
298cb5e357 Updating release notes for PR214.
llvm-svn: 10977
2004-01-26 21:03:54 +00:00
John Criswell
3a994220ad Fixes for PR214. Use the SHLIBEXT variable instead of hardcoding .so into
every file.

llvm-svn: 10976
2004-01-26 20:59:41 +00:00
Brian Gaeke
dc5961acc0 Fix a couple of places I noticed where "X86" was hard-coded.
llvm-svn: 10974
2004-01-24 09:23:46 +00:00
Alkis Evlogimenos
2a8df1739b Fix failing test cases with joined live intervals. It turns out that
when joining we need to check if we overlap with the second interval
or any of its aliases.

Also make joining intervals the default.

llvm-svn: 10973
2004-01-23 13:37:51 +00:00
Brian Gaeke
bc72431950 Add the JITInfo object, accessor & initializer.
llvm-svn: 10972
2004-01-23 06:39:30 +00:00
Brian Gaeke
2757ec5b94 Add CodeEmitter and JITInfo stubs. Dump the old
PowerPCTargetMachine::addPassesToJITCompile() method, in favor of the
TargetJITInfo interface.

llvm-svn: 10971
2004-01-23 06:35:43 +00:00
Chris Lattner
6d2f67adb3 Initial support for implementing clonePartiallyInto in terms of cloneReachableSubgraph, though this support is currently disabled.
llvm-svn: 10970
2004-01-23 01:44:53 +00:00
Chris Lattner
de6ca7bf30 Add new flag, other minor modifications
llvm-svn: 10969
2004-01-23 01:42:32 +00:00
Chris Lattner
99f9b84640 Fix grammar
llvm-svn: 10968
2004-01-23 01:42:16 +00:00
Chris Lattner
317a6fec82 Fix a problem brian ran into with the bytecode reader asserting. It turns
out that the problem was actually the writer writing out a 'null' value
because it didn't normalize it.  This fixes:
test/Regression/Assembler/2004-01-22-FloatNormalization.ll

llvm-svn: 10967
2004-01-23 00:55:21 +00:00
Chris Lattner
732d53739e New testcase for problem brian ran into
llvm-svn: 10966
2004-01-23 00:54:26 +00:00
Alkis Evlogimenos
b4745bda05 Add option to join live intervals. Two intervals are joined if there
is a move between two registers, at least one of the registers is
virtual and the two live intervals do not overlap.

This results in about 40% reduction in intervals, 30% decrease in the
register allocators running time and a 20% increase in peephole
optimizations (mainly move eliminations).

The option can be enabled by passing -join-liveintervals where
appropriate.

llvm-svn: 10965
2004-01-22 23:08:45 +00:00
Brian Gaeke
2ad4ba012c Move bytecode_libdir def'n to Makefile.config.in from Makefile.rules, so it
lives near the other installation dirs (like libdir, bindir, etc.).

Move the rule for making bytecode_libdir out of the ifdef LIBRARYNAME...endif.

llvm-svn: 10964
2004-01-22 22:53:48 +00:00
Brian Gaeke
a034c6e129 Add autoconf check for the version of etags we have detected, and select
appropriate "force C++" command-line option.

llvm-svn: 10963
2004-01-22 21:55:15 +00:00
Brian Gaeke
5d66f2baa9 Regenerated using autoconf-2.57.
llvm-svn: 10962
2004-01-22 21:55:02 +00:00
Brian Gaeke
fc7e31fc37 Get autoconf'd ETAGSFLAGS value from configure.
llvm-svn: 10961
2004-01-22 21:55:01 +00:00
Brian Gaeke
150102cdee Move support for building tags database from Makefile.rules to Makefile, because
it's only used in the top-level directory.

llvm-svn: 10960
2004-01-22 21:54:51 +00:00
Alkis Evlogimenos
8d8c76a064 Remove unneeded check. An interval in active, by definition overlaps
with the current one.

llvm-svn: 10959
2004-01-22 20:07:18 +00:00
Alkis Evlogimenos
abdbf4a288 Improve debugging output. Remove unneeded virtReg->0 mapping when
virtReg lives on the stack. Now a virtual register has an entry in the
virtual->physical map or the virtual->stack slot map but never in
both.

llvm-svn: 10958
2004-01-22 19:24:43 +00:00
Alkis Evlogimenos
a1bb8618c3 Revert previous change. The code was correct...
llvm-svn: 10957
2004-01-22 19:17:52 +00:00
Alkis Evlogimenos
448e6f3353 Fix incorrect negatives in LiveIntervals::Interval::liveAt().
llvm-svn: 10956
2004-01-22 18:33:50 +00:00
Chris Lattner
a72f3a387a Eliminated the CompletedNodes argument to the cloneReachable* methods. This
map was only used to implement a marginal GlobalsGraph optimization, and it
actually slows the analysis down (due to the overhead of keeping it), so just
eliminate it entirely.

llvm-svn: 10955
2004-01-22 16:56:13 +00:00
Chris Lattner
50e765d1a2 Ok, I'm tired of pulling out all my timers to check stuff in, just do it.
llvm-svn: 10954
2004-01-22 16:36:28 +00:00
Chris Lattner
da04e4d383 Bug fix: X.mergeWith(Y) was not updating Y if Y was a null node handle!
llvm-svn: 10953
2004-01-22 16:31:08 +00:00
Chris Lattner
7348bd20b1 It doesn't make sense for one side to be const, but not the other.
llvm-svn: 10952
2004-01-22 16:08:51 +00:00
Chris Lattner
07d45564d0 Start implementing DSGraph::clonePartiallyInto and implement mergeInGraph
in terms of it.

Though clonePartiallyInto is not cloning partial graphs yet, this change
dramatically speeds up inlining of graphs with many scalars.  For example,
this change speeds up the BU pass on 253.perlbmk from 69s to 36s, because
it avoids iteration over the scalar map, which can get pretty large.

llvm-svn: 10951
2004-01-22 15:30:58 +00:00
Chris Lattner
5f0e00c8b2 Remove const qualifier (all Value*'s are nonconst in DSA, so it's not clear
why this one was)

Add new method proto

llvm-svn: 10950
2004-01-22 15:26:52 +00:00
Chris Lattner
f2a7d96dde Specialize std::swap correctly
llvm-svn: 10949
2004-01-22 15:26:15 +00:00
Chris Lattner
961cc51cf1 Allow disabling of ALL printing overhead when performing timings
llvm-svn: 10948
2004-01-22 13:42:43 +00:00
Brian Gaeke
3c863c8fdf Add DESTDIR support for installing. Use (and depend on) $(bytecode_libdir).
llvm-svn: 10947
2004-01-21 23:57:46 +00:00
Brian Gaeke
afa0e2d2c2 Give the ".../llvm-gcc/bytecode-libs" directory a variable of its own,
called bytecode_libdir.  Make install-bytecode-library depend on
the existence of that directory, and add a rule for creating it if
it does not exist by calling mkinstalldirs.

llvm-svn: 10946
2004-01-21 23:57:21 +00:00
Brian Gaeke
ee85ae33d2 Part 2 of DESTDIR support
llvm-svn: 10945
2004-01-21 23:28:03 +00:00
Misha Brukman
5723c64d9a Implement ModuleProvider::materializeModule() by only materializing functions
that are still left in the lazy reader map.

llvm-svn: 10944
2004-01-21 22:55:34 +00:00
Misha Brukman
87ca68c2ff Let subclasses implement ModuleProvider::materializeModule() which is based on
their implementation of book-keeping for which functions need to be materialized
and which don't.

llvm-svn: 10943
2004-01-21 22:54:50 +00:00
Misha Brukman
38664cbb8b To materialize a module, you need to know what functions NEED to be read and
which ones don't, which is state that the parent class doesn't know without
knowing the implementation. Let the children classes implement
materializeModule().

llvm-svn: 10942
2004-01-21 22:54:10 +00:00
Misha Brukman
26b6be3053 If you call abort(), #include <cstdlib>
llvm-svn: 10941
2004-01-21 22:50:12 +00:00
Brian Gaeke
705759b8b6 Add DESTDIR support for installation, to support RPM etc.
llvm-svn: 10940
2004-01-21 21:20:44 +00:00
Brian Gaeke
d901dc68f1 Maybe Misha isn't so buggy after all. He caught the rest of my huge thinko
w.r.t. SHLIBEXT starting with a dot.

:-)

llvm-svn: 10939
2004-01-21 21:17:37 +00:00
Brian Gaeke
b31ce9f568 Build the PowerPC directory, so it is less likely to bit-rot (again)
llvm-svn: 10938
2004-01-21 21:16:10 +00:00
Brian Gaeke
764f1b476a Import of skeletal PowerPC backend I have had laying around for months...
llvm-svn: 10937
2004-01-21 21:13:19 +00:00
Brian Gaeke
4f7930e0ee Remember, SHLIBEXT begins with a period.
llvm-svn: 10936
2004-01-21 19:59:19 +00:00