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