1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
Commit Graph

266 Commits

Author SHA1 Message Date
Chris Lattner
b6c8569f05 Regularize header file comments
llvm-svn: 9071
2003-10-13 03:32:08 +00:00
Chris Lattner
c8586d8d06 Minor cleanups
llvm-svn: 9067
2003-10-13 01:02:33 +00:00
Chris Lattner
af8f585013 Checkin an improvement contributed by Bill:
Only transform call sites in a setjmp'ing function which are reachable from
the setjmp.  If the call dominates the setjmp (for example), the called
function cannot longjmp to the setjmp.

This dramatically reduces the number of invoke instructions created in some
large testcases.

llvm-svn: 9066
2003-10-13 00:57:16 +00:00
Misha Brukman
868eac95dd Fix spelling.
llvm-svn: 9027
2003-10-10 17:57:28 +00:00
Chris Lattner
bbfaf77c5d Fix bugzilla bug #5
llvm-svn: 8930
2003-10-07 19:33:31 +00:00
Chris Lattner
512ab7b5fd Speed up the predicate used to decide when to inline by caching the size
of callees between executions.

On eon, in release mode, this changes the inliner from taking 11.5712s
to taking 2.2066s.  In debug mode, it went from taking 14.4148s to
taking 7.0745s.  In release mode, this is a 24.7% speedup of gccas, in
debug mode, it's a total speedup of 11.7%.

This also makes it slightly more aggressive.  This could be because we
are not judging the size of the functions quite as accurately as before.
When we start looking at the performance of the generated code, this can
be investigated further.

llvm-svn: 8893
2003-10-06 15:52:43 +00:00
Misha Brukman
94a0f2edf0 Credits are now in top-level CREDITS.TXT
llvm-svn: 8661
2003-09-22 21:57:15 +00:00
Chris Lattner
b6aad9cad0 Global variables with APPENDING linkage are very important to keep around!
llvm-svn: 8632
2003-09-20 19:00:50 +00:00
Chris Lattner
d4de2760aa Rename Function::getEntryNode -> getEntryBlock
llvm-svn: 8625
2003-09-20 14:39:18 +00:00
Chris Lattner
13c224fd17 Fix bug raising allocations whose call sites were invoke instructions.
Thanks to brg for tracking down the problem so precisely!

llvm-svn: 8568
2003-09-16 19:42:21 +00:00
Chris Lattner
8502d4f3f8 This is effectively a complete rewrite of the globaldce algorithm, resulting
in it being both shorter and more effective.  It no longer depends on the
callgraph, so one FIXME has been fixed.

Additionally, this pass was not able to delete recursive (but dead) functions
if they were pointed to by global variables which were also dead.  In fact
this pass had a lot of problems deleting functions which were only pointed
to by dead globals and other stuff.

Fixing this means that the entire EH library should be stripped away now from
programs that don't use sjlj or exceptions.

llvm-svn: 8567
2003-09-16 19:27:31 +00:00
Chris Lattner
362afdca3f Minor cleanups, give credit, remove code that should not be necessary, and
was a "major hack"  :)

llvm-svn: 8524
2003-09-15 05:43:05 +00:00
Chris Lattner
c66f223e5a Initial checkin of the Setjmp/Longjmp lowering/transformation pass,
contributed by the masterful Bill Wendling!

llvm-svn: 8520
2003-09-15 04:56:27 +00:00
Chris Lattner
f3cac3df12 Ugh, a bug fix needed because of the bug in the CallGraph code
llvm-svn: 8519
2003-09-15 04:52:00 +00:00
Chris Lattner
6075013b55 Fix bug: PruneEH/2003-09-14-ExternalCall.llx
llvm-svn: 8516
2003-09-15 02:22:50 +00:00
Misha Brukman
6c4ffae6a5 Spell `definitely' correctly.
llvm-svn: 8466
2003-09-11 15:31:17 +00:00
Chris Lattner
58d4183a25 Fix spell-o's
llvm-svn: 8431
2003-09-10 05:29:43 +00:00
Chris Lattner
e8ae7bf114 Eliminate support for the llvm.unwind intrinisic, using the Unwind instruction instead
llvm-svn: 8411
2003-09-08 19:44:26 +00:00
Chris Lattner
4ad8720f91 Add support for the unwind instruction
llvm-svn: 8408
2003-09-08 18:54:55 +00:00
Chris Lattner
16149f6b85 Final cleanup: remove dead code
llvm-svn: 8291
2003-09-01 18:01:36 +00:00
Chris Lattner
b70da7293b Not only is this a lot smaller, it actually works if there is already a
function with the right name in the module.

llvm-svn: 8290
2003-09-01 16:53:46 +00:00
Chris Lattner
3bef1d6ae4 Dead files
llvm-svn: 8289
2003-09-01 16:49:57 +00:00
Chris Lattner
8fd6602748 If "These should be used only by the auto-parallelization pass", we might as
well put them INTO the auto-par pass.

llvm-svn: 8288
2003-09-01 16:49:38 +00:00
Chris Lattner
d5f57a52db Moved all of the cilkifier stuff into lib/Transforms/IPO, as it really is not
support stuff.

llvm-svn: 8287
2003-09-01 16:45:30 +00:00
Chris Lattner
4ee52b7154 Minor cleanups
Do not #include Parallelize.h, it's just a subset of Cilkifier.h

llvm-svn: 8285
2003-09-01 16:42:16 +00:00
Chris Lattner
2cdcc41517 Change the RaiseAllocations pass to be a Pass instead of a BasicBlock pass.
This makes it more efficient: it doesn't have to scan the whole program, so
it performs work proportional to the number of malloc/free calls in the
program, not the size of the program.

llvm-svn: 8280
2003-09-01 03:14:56 +00:00
Chris Lattner
a37b6a09d3 Heavily refactor code:
* Separate the policy decisions into a derived class [InlineSimple]
  * Move the inlining mechanics into a base class [Inliner]
  * Change the inliner to be an SCCPass, making it more structured and
    eventually pipelinable with other SCC passes

llvm-svn: 8257
2003-08-31 19:10:30 +00:00
Chris Lattner
212039c1c8 Add accessor function
llvm-svn: 8253
2003-08-31 16:30:07 +00:00
Chris Lattner
d024e5ea75 Initial checkin of the -prune-eh pass, a very simple exception handling removal pass
llvm-svn: 8250
2003-08-31 02:47:32 +00:00
Chris Lattner
c9e30ea132 Inline invoke instructions as well as call instructions
llvm-svn: 8107
2003-08-24 06:59:28 +00:00
Chris Lattner
5159ae0f96 Big diff for a small change: delete inlined functions if all callees have
inlined the function.
Implements: Inline/inline_dce.ll

llvm-svn: 8101
2003-08-24 05:03:14 +00:00
Chris Lattner
705fb5f473 Fix bug: FunctionResolve/2003-08-23-ArgumentWarning.ll
llvm-svn: 8076
2003-08-23 20:03:05 +00:00
Chris Lattner
cd9ac7b0f7 Unless we CANNOT merge the arguments, do so
llvm-svn: 7999
2003-08-20 23:50:38 +00:00
Misha Brukman
56f7db4178 Spell `necessary' correctly.
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
cd72043c89 Fix FIXME by removing FIXME
llvm-svn: 7832
2003-08-13 22:15:04 +00:00
John Criswell
64631c7abe Removing the pool allocator from the main CVS tree.
Use the poolalloc module in CVS from now on.

llvm-svn: 7810
2003-08-13 15:36:15 +00:00
Sumant Kowshik
b3e21bb00f Bug fix: Some nodes pointed to by globals may not be marked incomplete and need to be tracked to find pool arguments
llvm-svn: 7763
2003-08-12 00:45:13 +00:00
Chris Lattner
623bd2eb83 Fix handling of 'free' if it has absolutely no prototype
llvm-svn: 7721
2003-08-11 15:05:08 +00:00
John Criswell
e5d4f11e14 Fixed a segfault in gccld.
The original code does not work because the value from WorkList.end() is
invalidated once WorkList.erase() is called.  To ensure proper functionality,
we must ensure that WorkList.erase() is always called before WorkList.end().

llvm-svn: 7673
2003-08-07 14:43:13 +00:00
Sumant Kowshik
095e7c3052 Added code for pool allocating only the pool-allocatable data structures in the presence of collapsed nodes + a couple of bug fixes
llvm-svn: 7662
2003-08-07 05:29:28 +00:00
Chris Lattner
c25494f95e Remove unnecessary use of NonCopyable
llvm-svn: 7641
2003-08-06 17:16:24 +00:00
Chris Lattner
629c78afe3 Minor changes:
* Expand most tabs into spaces
  * Move #define DEBUG_TYPE to top of file to avoid warning

llvm-svn: 7611
2003-08-05 18:44:12 +00:00
Sumant Kowshik
18c49a775f Major bug fixes including a memory leak and tracking some exceptional conditions. Also added support for including global and indirect call information in the DS graphs used by the pool allocation
llvm-svn: 7605
2003-08-05 17:01:54 +00:00
Chris Lattner
686e94e760 DEBUG got moved to Support/Debug.h
llvm-svn: 7492
2003-08-01 22:15:03 +00:00
Chris Lattner
31224cdff9 Fix bug: FunctionResolve/2003-07-23-CPR-Reference.ll
This fixes a long time annoyance which caused prototypes for bzero, bcopy,
bcmp, fputs, and fputs_unlocked to never get deleted.  Grr.

llvm-svn: 7285
2003-07-23 22:03:18 +00:00
Chris Lattner
a824a1ab66 Eliminate using declarations, adjust for new DSGraph API
llvm-svn: 6992
2003-06-30 03:14:44 +00:00
Chris Lattner
17ea08b804 Allow the inlining limit to be controlled from the command line!
llvm-svn: 6929
2003-06-28 15:57:04 +00:00
Chris Lattner
6b54665aa9 Add support to globaldce for deleting dead function prototypes
llvm-svn: 6918
2003-06-26 05:41:18 +00:00
Chris Lattner
3dc8d444ff When internalizing global ctor/dtor list, also mark it constant. This is gross, but
until DSA is working all of the time and is totally reliable, we do this.

llvm-svn: 6917
2003-06-26 05:30:40 +00:00
Chris Lattner
e3d0b99978 Add argument to DAE to allow operation on non-internal functions
llvm-svn: 6895
2003-06-25 04:12:49 +00:00