Commit Graph

3100 Commits

Author SHA1 Message Date
John Criswell
81587e798a Checking in Chris's suggestions:
Added assert() to ensure symbol table is well formed.
Added code to remember the value that was found; resolving types can change
the symbol table and invalidate the value of the iterator.
Added comments to the ResolveTypes() function (mainly for my own benefit).
Please feel free to correct the comments if they are not accurate.

llvm-svn: 9693
2003-11-04 15:22:26 +00:00
Chris Lattner
6444c37488 Implement InstCombine/cast-set.ll:test6[a]. This improves code generated for
a hot function in em3d

llvm-svn: 9673
2003-11-03 05:17:03 +00:00
Chris Lattner
1693079e92 Implement InstCombine/cast-set.ll: test1, test2, test7
llvm-svn: 9670
2003-11-03 04:25:02 +00:00
Chris Lattner
af7893203b Fix bug with zero sized casts
llvm-svn: 9667
2003-11-03 01:29:41 +00:00
Chris Lattner
d4d987dd4a Fix bug in previous checkin
llvm-svn: 9656
2003-11-02 06:54:48 +00:00
Chris Lattner
f4ad165e8b Implement transmogriphication of allocation instructions
llvm-svn: 9654
2003-11-02 05:57:39 +00:00
Chris Lattner
7f7285bab7 Fix PR78
llvm-svn: 9648
2003-11-02 02:06:27 +00:00
Chris Lattner
b45d9077cb Strip off CPR's manually, because if we don't, the inliner doesn't delete dead
functions.  GRR

llvm-svn: 9641
2003-10-31 21:05:58 +00:00
Chris Lattner
686767f3f6 Fix bug: 2003-10-29-CallSiteResolve.ll & PR70
llvm-svn: 9600
2003-10-30 00:46:41 +00:00
Chris Lattner
3420137e63 Refactor code, initial implementation of -insert-block-profiling pass
llvm-svn: 9593
2003-10-29 21:24:22 +00:00
Chris Lattner
bcb0f4bf2e Fix PR66 & ScalarRepl/2003-10-29-ArrayProblem.ll
llvm-svn: 9585
2003-10-29 17:55:44 +00:00
Chris Lattner
e5f15cdc5f Fix bug: ConstantMerge/2003-10-28-MergeExternalConstants.ll & PR64
llvm-svn: 9579
2003-10-29 06:01:26 +00:00
Chris Lattner
3e5ff2568c Check in statistifying patch for Bill
llvm-svn: 9572
2003-10-28 23:14:59 +00:00
Chris Lattner
183fa7ceb3 Pass in argc & argv
llvm-svn: 9563
2003-10-28 22:42:24 +00:00
Chris Lattner
c8ba0672ac Initial checkin of profiling instrumentation pass. So far, despite the
file name, we only support function profiling.  This will be fixed in the
near future.

llvm-svn: 9547
2003-10-28 18:59:04 +00:00
Chris Lattner
233989316c Eliminate using declarations
llvm-svn: 9543
2003-10-27 21:44:09 +00:00
Chris Lattner
5e004e8ce0 Propagating constants to arguments can make other arguments constant. For now
do something dumb, and inefficient, but more complete.

llvm-svn: 9542
2003-10-27 21:09:00 +00:00
Chris Lattner
b727fb2663 Fix test: Linker/2003-10-27-LinkOncePromote.ll
Fix PR58

llvm-svn: 9530
2003-10-27 16:39:39 +00:00
Chris Lattner
d9f4ffdf5e Get the list of PHI node values before the basic block is split. Also, add
PHI node entries for unwind instructions just like for call instructions which
became invokes!  This fixes PR57, tested by
Inline/2003-10-26-InlineInvokeExceptionDestPhi.ll

llvm-svn: 9526
2003-10-27 05:33:09 +00:00
Chris Lattner
12b78db685 We might as well strip off any CPRs before propagation
llvm-svn: 9437
2003-10-23 18:49:23 +00:00
Chris Lattner
05c71fb3e6 * We were forgetting to pass varargs arguments through a call
* Add a work around for bug PR56, gross but necessary for now.

llvm-svn: 9428
2003-10-23 17:44:53 +00:00
Chris Lattner
f516c698ff Check in initial version of ipcp
llvm-svn: 9423
2003-10-23 16:52:27 +00:00
Chris Lattner
0658cc20bd Make this pass substantially stronger by having it delete dead return values
as well as arguments.  Now it can delete arguments and return values which are
only passed into other arguments or are returned, if they are dead.  This causes
it to delete several hundred extra args/retvals from the C++ hello world program,
shrinking it by about 2K.

llvm-svn: 9398
2003-10-23 03:48:17 +00:00
Chris Lattner
9e8fe49c37 This important patch fixes two warnings in the linker which can occur from linking
valid pieces of code

llvm-svn: 9390
2003-10-22 23:03:38 +00:00
Chris Lattner
6d3425e87a Update the 'used' flag correctly
llvm-svn: 9366
2003-10-22 04:43:18 +00:00
Chris Lattner
12b3593dea Loop over the module, not the symbol table. This makes the code handle
unused external functions again

llvm-svn: 9365
2003-10-22 04:42:20 +00:00
Chris Lattner
4cd99ffa57 Implement FunctionResolve/2003-10-21-GlobalResolveHack.ll
llvm-svn: 9363
2003-10-22 03:35:34 +00:00
Chris Lattner
af2c00bf14 Fix bug: FunctionResolve/2003-10-21-GlobalTypeDifference.ll
llvm-svn: 9359
2003-10-21 23:17:56 +00:00
Chris Lattner
4f2581f828 Fix bug: Linker/2003-10-21-ConflictingTypesTolerance.ll
llvm-svn: 9357
2003-10-21 22:46:38 +00:00
Chris Lattner
9bc22b7439 Fix message to make more sense and confuse Chris less
llvm-svn: 9354
2003-10-21 21:52:20 +00:00
John Criswell
29265fe981 Added LLVM copyright header.
llvm-svn: 9321
2003-10-21 15:17:13 +00:00
John Criswell
4436c49787 Added LLVM copyright notice to Makefiles.
llvm-svn: 9312
2003-10-20 22:26:57 +00:00
John Criswell
482202a601 Added LLVM project notice to the top of every C++ source file.
Header files will be on the way.

llvm-svn: 9298
2003-10-20 19:43:21 +00:00
Chris Lattner
2d9c117e21 Reorder for minor efficiency gain
llvm-svn: 9285
2003-10-20 05:54:26 +00:00
Chris Lattner
b94550e537 Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
llvm-svn: 9269
2003-10-19 21:34:28 +00:00
Chris Lattner
b32f5748b7 Fix PR#50
llvm-svn: 9227
2003-10-18 06:14:59 +00:00
Chris Lattner
f0fc9be634 ADd support for the new varargs instructions
llvm-svn: 9225
2003-10-18 05:56:52 +00:00
Chris Lattner
1facf89eaf Do not crash on empty structures
llvm-svn: 9195
2003-10-17 18:03:54 +00:00
Chris Lattner
068ad84038 Add support for 'weak' linkage.
llvm-svn: 9171
2003-10-16 18:29:00 +00:00
Chris Lattner
50b6858e2e This code does not require random access use_lists
llvm-svn: 9156
2003-10-16 16:49:12 +00:00
Chris Lattner
5dbb244edb 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
Chris Lattner
f95d9b99b3 Decrease usage of use_size()
llvm-svn: 9135
2003-10-15 16:48:29 +00:00
Chris Lattner
f77a856f3b Cleanup
llvm-svn: 9133
2003-10-15 16:42:21 +00:00
Chris Lattner
b4778c73c9 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
612cafef0a Whoops, we inserted into the wrong set. What's up with the dead set anyway?
llvm-svn: 9094
2003-10-13 16:49:21 +00:00
Chris Lattner
951e7329e8 Use external df iterators to avoid revisiting blocks in functions with
multiple setjmp calls.

llvm-svn: 9093
2003-10-13 16:44:50 +00:00
Chris Lattner
178957028b Wrap code at 80 columns
llvm-svn: 9073
2003-10-13 05:04:27 +00:00
Chris Lattner
44d2c3514a Regularize header file comments
llvm-svn: 9071
2003-10-13 03:32:08 +00:00
Chris Lattner
7cce14bfbf Regularize header file comment, eliminate using's
llvm-svn: 9069
2003-10-13 03:30:47 +00:00
Chris Lattner
f7a60cd9fa Minor cleanups
llvm-svn: 9067
2003-10-13 01:02:33 +00:00