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

4184 Commits

Author SHA1 Message Date
Devang Patel
a5bb9b49d3 Do not rely on std::sort and std::erase to get list of unique
exit blocks. The output is dependent on addresses of basic block.

Add and use Loop::getUniqueExitBlocks.

llvm-svn: 29966
2006-08-29 22:29:16 +00:00
Evan Cheng
2335c819cd Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make it a static method of SelectionDAG.
llvm-svn: 29951
2006-08-29 06:42:35 +00:00
Nick Lewycky
9535a84c33 Add PredicateSimplifier pass. Collapses equal variables into one form
and simplifies expressions. This implements the optimization described
in PR807.

llvm-svn: 29947
2006-08-28 22:44:55 +00:00
Chris Lattner
4fa85705f6 Add 2nd form of resize
llvm-svn: 29945
2006-08-28 21:52:08 +00:00
Chris Lattner
5571652921 remove extraneous space
llvm-svn: 29940
2006-08-28 17:30:49 +00:00
Reid Spencer
959705759f Back out last revision which should not have been committed (yet).
llvm-svn: 29935
2006-08-28 01:08:45 +00:00
Reid Spencer
2567610703 For PR387:
Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.

llvm-svn: 29934
2006-08-28 01:02:49 +00:00
Chris Lattner
8a59e8be23 simplify AnalysisGroup registration, eliminating one typeid call.
llvm-svn: 29932
2006-08-28 00:42:29 +00:00
Chris Lattner
6474b3fe80 Silence -Woverloaded-virtual warnings.
llvm-svn: 29929
2006-08-28 00:09:00 +00:00
Chris Lattner
a39dcb5377 eliminate RegisterOpt. It does the same thing as RegisterPass.
llvm-svn: 29925
2006-08-27 22:42:52 +00:00
Chris Lattner
f530302eda Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.
llvm-svn: 29921
2006-08-27 22:30:17 +00:00
Chris Lattner
216059ff5a We no longer care whether something is an opt vs analysis pass, only whether
something is a pass vs an analysis group now.  Simplify interfaces.

llvm-svn: 29920
2006-08-27 22:21:55 +00:00
Chris Lattner
dc7bad1787 Remove a dead class.
llvm-svn: 29918
2006-08-27 22:11:07 +00:00
Chris Lattner
db0a995bbe add directive to disable inlining
llvm-svn: 29912
2006-08-27 13:16:05 +00:00
Chris Lattner
33bd5dcfb7 s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|
llvm-svn: 29911
2006-08-27 12:54:02 +00:00
Chris Lattner
91f098c9f7 Add external definitions for commonly-used template specializations and add
anchor methods to others.  This eliminates the vtable/template method bloat
in .o files that defining a cl::opt used to impose (~4K per .o file for one
cp::opt<unsigned>).

llvm-svn: 29909
2006-08-27 12:45:47 +00:00
Chris Lattner
a72e220a25 New place to put compiler-specific functionality. This replaces Visibility.h,
and provides macros that can be used to make explicit instantiations of
template specializations, which is a gcc-specific feature.

llvm-svn: 29908
2006-08-27 12:42:45 +00:00
Evan Cheng
6e08e7035f Eliminate SelectNodeTo() and getTargetNode() variants which take more than
3 SDOperand operands. They are replaced by versions which take an array
of SDOperand and the number of operands.

llvm-svn: 29905
2006-08-27 08:08:54 +00:00
Chris Lattner
5d7bd21c41 make optional pointer really optional
llvm-svn: 29904
2006-08-27 07:11:54 +00:00
Nate Begeman
f94ddf0d12 Properly size the string table, and emit symbol table and string table
entries in the correct order, fixing several fixmes.

llvm-svn: 29902
2006-08-26 15:46:34 +00:00
Evan Cheng
1c3d571e4b SelectNodeTo now returns a SDNode*.
llvm-svn: 29901
2006-08-26 08:00:10 +00:00
Chris Lattner
ec9c7fa089 Completely change the way that joining with physregs is implemented. This
paves the way for future changes, increases coallescing opportunities (in
theory, not witnessed in practice), and eliminates the really expensive
LiveIntervals::overlapsAliases method.

llvm-svn: 29890
2006-08-25 23:41:24 +00:00
Jim Laskey
e9b0e1014e Tidy up.
llvm-svn: 29888
2006-08-25 22:56:30 +00:00
Reid Spencer
9b5ea0704e For PR797:
Make the Win32 code exception free (untested/uncompiled) which forced some
interface changes which had ripple effect. This should be the last of 797.

llvm-svn: 29884
2006-08-25 21:37:17 +00:00
Reid Spencer
e2b7b29a82 For PR797:
Final commit for this bug. This removes the last EH holdouts in LLVM
and turns off exception support by using the -fno-exceptions option. This
leads to the following reduction in library and executable sizes:
                DEBUG BUILD                RELEASE BUILD
         before     after   delta     before   after    delta
lib    162,328K  157,616K   4,712    17,864K  16,416K  1,448K
bin    571,444K  557,156K  14,288    63,296K   56,996K 6,300K

Debug   Improvement: 19,000K (2.59%)
Release Improvement:  7,748K (9.55%)

llvm-svn: 29882
2006-08-25 19:54:53 +00:00
Jim Laskey
3af6953257 Consolidate callee saved register information so that it can me used by debug
information and exception handling.

llvm-svn: 29881
2006-08-25 19:45:51 +00:00
Reid Spencer
741140980f For PR797:
Remove exception throwing/handling from lib/Bytecode, and adjust its users
to compensate for changes in the interface.

llvm-svn: 29875
2006-08-25 17:43:11 +00:00
Nate Begeman
ce8ab85260 Get closer to handling globals correctly. We now generally get them in the
right section.

llvm-svn: 29871
2006-08-25 06:36:58 +00:00
Reid Spencer
d813eae003 For PR797:
Remove exception handling from the bytecode archiver and adjust the llvm-ar
tool to accommodate the new interfaces.

llvm-svn: 29866
2006-08-24 23:45:08 +00:00
Chris Lattner
28645a15bd Take advantage of the recent improvements to the liveintervals set (tracking
instructions which define each value#) to simplify and improve the coallescer.
In particular, this patch:

1. Implements iterative coallescing.
2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a
   better solution.
3. Implements PR865, "coallescing" away the second copy in code like:

   A = B
   ...
   B = A

This also includes changes to symbolically print registers in intervals
when possible.

llvm-svn: 29862
2006-08-24 22:43:55 +00:00
Reid Spencer
88bbd0bcf8 Remove a FIXME. Don't use strlcpy that isn't available on non-BSD platforms
and ensure that a memory overrun won't occur while still writing Length
bytes in the outstring function.

llvm-svn: 29855
2006-08-24 14:25:39 +00:00
Chris Lattner
a6ad752f16 update some comments
llvm-svn: 29853
2006-08-24 00:21:32 +00:00
Nate Begeman
0f0148d5f8 Correctly attribute file author & remote tabs
llvm-svn: 29852
2006-08-23 21:33:27 +00:00
Nate Begeman
1268d6cd46 Initial checkin of the Mach-O emitter. There's plenty of fixmes, but it
does emit linkable .o files in very simple cases.

llvm-svn: 29850
2006-08-23 21:08:52 +00:00
Reid Spencer
71c3f66dc6 For PR797:
Final removal of exceptions from lib/System and adjustment of users to
accommodate.

llvm-svn: 29846
2006-08-23 20:34:57 +00:00
Reid Spencer
b702899462 Fix constructor documentation.
llvm-svn: 29845
2006-08-23 17:43:20 +00:00
Reid Spencer
bc4c8e8ac0 For PR797:
Eliminate exception throwing from Path::renamePathOnDisk and adjust its
users correspondingly.

llvm-svn: 29843
2006-08-23 07:30:48 +00:00
Reid Spencer
0bc83e3c5e For PR797:
Remove exception throwing from Path::getDirectoryContents and its users.

llvm-svn: 29841
2006-08-23 06:56:27 +00:00
Reid Spencer
baf54399e7 For PR797:
Remove exceptions from the Path::create*OnDisk methods. Update their users
to handle error messages via arguments and result codes.

llvm-svn: 29840
2006-08-23 00:39:35 +00:00
Reid Spencer
45120b0798 For PR797:
Change the Path::make*OnDisk methods exception free and adjust their usage.

llvm-svn: 29836
2006-08-22 23:27:23 +00:00
Reid Spencer
353b72a7c0 Make the sys::Path::GetTemporaryDirectory method not throw exceptions and
adjust users of it to compensate.

llvm-svn: 29831
2006-08-22 19:01:30 +00:00
Chris Lattner
410c49afd3 Improve the LiveInterval class to keep track of which machine instruction
defines each value# tracked by the interval.  This will be used to improve
coallescing.

llvm-svn: 29830
2006-08-22 18:19:46 +00:00
Reid Spencer
4e1170d5d3 Fix some indentation.
llvm-svn: 29825
2006-08-22 17:38:05 +00:00
Chris Lattner
a6735ae8d1 add resize, move swap out of line
llvm-svn: 29823
2006-08-22 17:28:57 +00:00
Reid Spencer
e9b9e6a6c2 For PR797:
Adjust users of MappedFile to its new non-throwing interface.  Note that in
most cases the lazy step of just throwing after a call to MappedFile was
installed. This was done in the name of incremental changes. Getting rid of
the new throw statements will take adjustment of interfaces and propagation
of errors to higher levels.  Those changes will come in subsequent patches.

llvm-svn: 29817
2006-08-22 16:06:27 +00:00
Reid Spencer
9fbfd7c399 For PR797:
Make MappedFile not throw any exceptions.

llvm-svn: 29816
2006-08-22 16:04:22 +00:00
Chris Lattner
0a5e21e28d Switch to using smallvector for liveintervals. This speeds up live interval
analysis 11% on kc++.

llvm-svn: 29812
2006-08-22 06:32:56 +00:00
Chris Lattner
19d59ce917 add a bunch more operations, including swap, insert, erase, front(), and
bugfixes for operator=.

llvm-svn: 29811
2006-08-22 06:27:16 +00:00
Chris Lattner
2e9885371b move LiveInterval state all together
llvm-svn: 29806
2006-08-21 23:15:12 +00:00
Jim Laskey
db9724d6e4 Adding new Dwarf constants.
llvm-svn: 29798
2006-08-21 21:18:10 +00:00