Chris Lattner
2f629c4b80
Add a new trivial -inst-namer pass which makes it possible to diff the
...
before/after effects of a pass, crazy!
llvm-svn: 55230
2008-08-23 06:07:02 +00:00
Owen Anderson
13498aa150
Remove GCSE, ValueNumbering, and LoadValueNumbering. These have been deprecated for almost a year; it's finally time for them to go away.
...
llvm-svn: 54822
2008-08-15 21:31:02 +00:00
Owen Anderson
cb787a2004
Make MergeBlockIntoPredecessor more aggressive when the same successor appears
...
more than once.
llvm-svn: 53731
2008-07-17 19:42:29 +00:00
Owen Anderson
7fb36c8bba
Factor MergeBlockIntoPredecessor out into BasicBlockUtils.
...
llvm-svn: 53705
2008-07-17 00:01:40 +00:00
Dan Gohman
9f52e3890f
Correct a top-level comment.
...
llvm-svn: 53685
2008-07-16 16:03:31 +00:00
Chris Lattner
8a9725bffe
Reapply r53540, now with the matching header!
...
llvm-svn: 53557
2008-07-14 17:32:59 +00:00
Chris Lattner
58fe3dee5a
whitespace fix.
...
llvm-svn: 53537
2008-07-14 00:28:45 +00:00
Chris Lattner
f5c321c7fc
doxygenate comments and wrap to 80 cols.
...
llvm-svn: 53536
2008-07-14 00:27:31 +00:00
Dan Gohman
955fdc7a4c
Add explicit keywords.
...
llvm-svn: 53179
2008-07-07 18:00:37 +00:00
Matthijs Kooijman
9b72ea4658
Add missing semicolumn in my last commit.
...
llvm-svn: 52780
2008-06-26 09:49:38 +00:00
Matthijs Kooijman
151654f100
Improve comments wrt createInternalize.
...
llvm-svn: 52779
2008-06-26 09:48:11 +00:00
Matthijs Kooijman
bb456f6b42
Rename a few variables to be more consistent.
...
llvm-svn: 52672
2008-06-24 09:14:10 +00:00
Evan Cheng
ce2c3b07ba
Revert 51775.
...
llvm-svn: 51795
2008-05-30 22:47:19 +00:00
Evan Cheng
8ebaae9d1c
Patches for building llvm on Solaris x86. Contributed by Nathan Keynes.
...
llvm-svn: 51775
2008-05-30 17:16:20 +00:00
Dan Gohman
3ea2dceca0
Prune and tidy #includes.
...
llvm-svn: 51697
2008-05-29 19:52:31 +00:00
Devang Patel
047ba6df54
Simplify internalize pass. Add test case.
...
Patch by Matthijs Kooijman!
llvm-svn: 51114
2008-05-14 20:01:01 +00:00
Dan Gohman
b4eeb4dfba
Commit the header I accidentally left out of 51083.
...
llvm-svn: 51093
2008-05-14 04:39:40 +00:00
Dan Gohman
ffe0b1f40e
Whitespace cleanups.
...
llvm-svn: 51089
2008-05-14 00:43:10 +00:00
Dan Gohman
138a53b303
Change class' public PassInfo variables to by initialized with the
...
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.
llvm-svn: 51022
2008-05-13 02:05:11 +00:00
Dan Gohman
a84b75df17
Remove uses of llvm/System/IncludeFile.h that are no longer needed.
...
llvm-svn: 50695
2008-05-06 01:32:53 +00:00
Chris Lattner
be2bafbe92
Delete the IPO simplify-libcalls and completely reimplement it as
...
a FunctionPass. This makes it simpler, fixes dozens of bugs, adds
a couple of minor features, and shrinks is considerably: from
2214 to 1437 lines.
llvm-svn: 50520
2008-05-01 06:25:24 +00:00
Owen Anderson
5b7928f3d2
Rename DeadLoopElimination to LoopDeletion, part 2.
...
llvm-svn: 50437
2008-04-29 20:06:54 +00:00
Owen Anderson
4cc52fd657
Add dead loop elimination, which removes dead loops for which we can compute
...
the trip count.
llvm-svn: 50382
2008-04-29 00:38:34 +00:00
Chris Lattner
57e11a167d
Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h
...
as a global helper function. At the same type, switch it from taking
a vector of predecessors to an arbitrary sequential input. This allows
us to switch LoopSimplify to use a SmallVector for various temporary
vectors that it passed into SplitBlockPredecessors.
llvm-svn: 50020
2008-04-21 01:28:02 +00:00
Chris Lattner
c8c74f39db
Add a new Jump Threading pass, which will handle cases
...
such as those in PR2235. Right now the pass is not very
effective. :)
llvm-svn: 50000
2008-04-20 20:35:01 +00:00
Chris Lattner
d299f7b8cf
Allow argpromote to promote struct arguments with a specified number
...
of elements. Patch by Matthijs Kooijman!
llvm-svn: 49962
2008-04-19 19:50:01 +00:00
Owen Anderson
ca7e0e21f3
Factor a bunch of functionality related to memcpy and memset transforms out of
...
GVN and into its own pass.
llvm-svn: 49419
2008-04-09 08:23:16 +00:00
Evan Cheng
d01a2a18f8
Increasing the inline limit from (overly conservative) 200 to 300. Given each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it).
...
Furthermore, double the limit when more than 10% of the callee instructions are vector instructions. Multimedia kernels tend to love inlining.
llvm-svn: 48725
2008-03-24 06:37:48 +00:00
Andrew Lenharth
2ff2bcbde8
FunctionExtractorPass has been superceded by GVExtractorPass
...
llvm-svn: 48648
2008-03-21 16:46:53 +00:00
Andrew Lenharth
6c788376e9
add a pass that can extract all kinds of global values, not just functions. Update llvm-extract to use it and optionally extract a global variable if you want it too
...
llvm-svn: 48015
2008-03-07 19:51:57 +00:00
Gabor Greif
d746841e93
fix typos
...
llvm-svn: 47994
2008-03-06 10:36:00 +00:00
Devang Patel
cb72d92471
Add pass to promote sret.
...
This pass transforms
%struct._Point = type { i32, i32, i32, i32, i32, i32 }
define internal void @foo(%struct._Point* sret %agg.result)
into
%struct._Point = type { i32, i32, i32, i32, i32, i32 }
define internal %struct._Point @foo()
This pass updates foo() clients appropriately to use
getresult instruction to extract return values.
This pass is not yet ready for prime time.
llvm-svn: 47776
2008-02-29 23:34:08 +00:00
Chris Lattner
9fb1d740a6
prune #includes, fit in 80 cols.
...
llvm-svn: 47556
2008-02-25 19:21:38 +00:00
Chris Lattner
ae2f8bc116
remove the LowerSelect pass. The last client was the old Sparc backend, which is long dead by now.
...
llvm-svn: 47323
2008-02-19 07:49:17 +00:00
Chris Lattner
010e9fb704
remove the lower packed pass. It can never work and even the parts that
...
could work don't work fully. This fixes PR1705. Oh yeah, we don't have
packed types anymore either ;-)
llvm-svn: 47322
2008-02-19 07:39:17 +00:00
Bill Wendling
629a569ce9
The CorrelatedExpressionElimination pass is known to be buggy. Remove it.
...
This fixes PR1769.
llvm-svn: 46408
2008-01-27 06:11:41 +00:00
Chris Lattner
fb5876f0be
Allow clients to specify the inline threshold when creating
...
the inliner pass. Patch by Robert Zeh.
llvm-svn: 45903
2008-01-12 06:49:13 +00:00
Chris Lattner
ff7707de37
don't include loopinfo.h from this file.
...
llvm-svn: 45858
2008-01-11 06:30:04 +00:00
Gordon Henriksen
db4f51e1b9
With this patch, the LowerGC transformation becomes the
...
ShadowStackCollector, which additionally has reduced overhead with
no sacrifice in portability.
Considering a function @fun with 8 loop-local roots,
ShadowStackCollector introduces the following overhead
(x86):
; shadowstack prologue
movl L_llvm_gc_root_chain$non_lazy_ptr, %eax
movl (%eax), %ecx
movl $___gc_fun, 20(%esp)
movl $0, 24(%esp)
movl $0, 28(%esp)
movl $0, 32(%esp)
movl $0, 36(%esp)
movl $0, 40(%esp)
movl $0, 44(%esp)
movl $0, 48(%esp)
movl $0, 52(%esp)
movl %ecx, 16(%esp)
leal 16(%esp), %ecx
movl %ecx, (%eax)
; shadowstack loop overhead
(none)
; shadowstack epilogue
movl 48(%esp), %edx
movl %edx, (%ecx)
; shadowstack metadata
.align 3
___gc_fun: # __gc_fun
.long 8
.space 4
In comparison to LowerGC:
; lowergc prologue
movl L_llvm_gc_root_chain$non_lazy_ptr, %eax
movl (%eax), %ecx
movl %ecx, 48(%esp)
movl $8, 52(%esp)
movl $0, 60(%esp)
movl $0, 56(%esp)
movl $0, 68(%esp)
movl $0, 64(%esp)
movl $0, 76(%esp)
movl $0, 72(%esp)
movl $0, 84(%esp)
movl $0, 80(%esp)
movl $0, 92(%esp)
movl $0, 88(%esp)
movl $0, 100(%esp)
movl $0, 96(%esp)
movl $0, 108(%esp)
movl $0, 104(%esp)
movl $0, 116(%esp)
movl $0, 112(%esp)
; lowergc loop overhead
leal 44(%esp), %eax
movl %eax, 56(%esp)
leal 40(%esp), %eax
movl %eax, 64(%esp)
leal 36(%esp), %eax
movl %eax, 72(%esp)
leal 32(%esp), %eax
movl %eax, 80(%esp)
leal 28(%esp), %eax
movl %eax, 88(%esp)
leal 24(%esp), %eax
movl %eax, 96(%esp)
leal 20(%esp), %eax
movl %eax, 104(%esp)
leal 16(%esp), %eax
movl %eax, 112(%esp)
; lowergc epilogue
movl 48(%esp), %edx
movl %edx, (%ecx)
; lowergc metadata
(none)
llvm-svn: 45670
2008-01-07 01:30:53 +00:00
Chris Lattner
a09bc3d9a4
back out accidental commit.
...
llvm-svn: 45660
2008-01-06 19:19:32 +00:00
Chris Lattner
5489888580
rename isStore -> mayStore to more accurately reflect what it captures.
...
llvm-svn: 45656
2008-01-06 08:36:04 +00:00
Owen Anderson
6c7beb1748
Didn't mean to commit this.
...
llvm-svn: 45607
2008-01-05 00:43:37 +00:00
Owen Anderson
2adf8c5533
Move some more functionality from MRegisterInfo to TargetInstrInfo.
...
llvm-svn: 45603
2008-01-04 23:57:37 +00:00
Chris Lattner
e0b1ee937a
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change. Boy are my fingers tired. ;-)
llvm-svn: 45411
2007-12-29 19:59:42 +00:00
Owen Anderson
7b92dab615
Start the process of making MachineLoopInfo possible by templating Loop.
...
llvm-svn: 44097
2007-11-14 02:33:58 +00:00
Anton Korobeynikov
8ab03c9d1c
Make this header public
...
llvm-svn: 43938
2007-11-09 12:16:58 +00:00
Gordon Henriksen
8188f028a2
Deleting redundant copy of block extractor pass. See also PR1775.
...
llvm-svn: 43694
2007-11-05 01:54:05 +00:00
Anton Korobeynikov
bcee4726bf
Reg2Mem cleanup and optimizations:
...
- enable phi instructions demotion to stack
- create alloca instructions in the entry block
llvm-svn: 43208
2007-10-21 23:05:16 +00:00
Hartmut Kaiser
ed12f66488
Updated VC++ build system.
...
Silenced some VC warnings.
I'm getting linker errors, though: unresolved externals:
llvm::Split<class llvm::BasicBlock *,struct llvm::GraphTraits<class llvm::BasicBlock *> >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)
and
llvm::Split<struct llvm::Inverse<class llvm::BasicBlock *>,struct llvm::GraphTraits<struct llvm::Inverse<class llvm::BasicBlock *> > >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)
Where are these defined?
llvm-svn: 43073
2007-10-17 14:56:40 +00:00
Owen Anderson
a37895cfee
Remove RLE from the headers, since the pass itself is gone now.
...
llvm-svn: 41971
2007-09-14 22:54:46 +00:00
Devang Patel
d412a2a0ed
Add utility to clone loops.
...
llvm-svn: 40997
2007-08-10 17:59:47 +00:00
Chris Lattner
15b13dc5f9
add #ifndef guards
...
llvm-svn: 40990
2007-08-10 15:53:08 +00:00
Devang Patel
8289b6e663
Fix comment.
...
llvm-svn: 40911
2007-08-07 23:16:03 +00:00
Devang Patel
228dc09ff6
Begin loop index split pass.
...
llvm-svn: 40883
2007-08-07 00:25:56 +00:00
Dan Gohman
7dd04fb91c
More explicit keywords.
...
llvm-svn: 40673
2007-08-01 15:32:29 +00:00
Owen Anderson
58e64df595
Rename FastDSE to just DSE.
...
llvm-svn: 40668
2007-08-01 06:36:51 +00:00
Devang Patel
a03e82d7ee
Use SmallPtrSet.
...
llvm-svn: 40560
2007-07-27 18:34:27 +00:00
Devang Patel
d7b401bafd
Add BasicInliner interface.
...
This interface allows clients to inline bunch of functions with module
level call graph information.:wq
llvm-svn: 40486
2007-07-25 18:00:25 +00:00
Owen Anderson
eb9f1b612c
Add a GVN pass, using the value numbering code I developed for GVNPRE and the
...
load elimination code from RedundantLoadElimination.
llvm-svn: 40469
2007-07-24 17:55:58 +00:00
Owen Anderson
5969a3cb91
Rename a lot of things to change FastDLE to RedundantLoadElimination.
...
llvm-svn: 40457
2007-07-24 00:17:04 +00:00
Owen Anderson
0448fc9e66
Fix a comment.
...
llvm-svn: 40446
2007-07-23 21:51:37 +00:00
Owen Anderson
bd3360e856
Add FastDLE, the load-elimination counterpart of FastDSE.
...
llvm-svn: 40445
2007-07-23 21:48:08 +00:00
Devang Patel
9166ad7658
Make LCSSA a loop pass.
...
llvm-svn: 39844
2007-07-13 23:57:11 +00:00
Tanya Lattner
a715bbe152
Adding ability to demote phi to stack.
...
llvm-svn: 39744
2007-07-11 18:41:34 +00:00
Owen Anderson
1eaba31f12
Add FastDSE, a new algorithm for doing dead store elimination. This algorithm is not as accurate
...
as the current DSE, but it only a linear scan over each block, rather than quadratic. Eventually
(once it has been improved somewhat), this will replace the current DSE.
NOTE: This has not yet been extensively tested.
llvm-svn: 38517
2007-07-11 00:46:18 +00:00
Devang Patel
65f3717db9
Expose struct size threhold to allow users to tweak their own setting.
...
llvm-svn: 38472
2007-07-09 21:19:23 +00:00
Devang Patel
d9043c7501
Add SplitEdge and SplitBlock utility routines.
...
llvm-svn: 37952
2007-07-06 21:39:20 +00:00
Tanya Lattner
6d152cd7df
Move inliner pass header file.
...
llvm-svn: 37664
2007-06-19 22:29:02 +00:00
Devang Patel
b5554f450a
Do not preserve ETForest.
...
llvm-svn: 37506
2007-06-08 00:02:08 +00:00
Devang Patel
3daf3625ab
Do not use ETForest as well as DomiantorTree. DominatorTree is sufficient.
...
llvm-svn: 37501
2007-06-07 22:17:16 +00:00
Devang Patel
a466c96f77
Use DominatorTree instead of ETForest.
...
This allows faster immediate domiantor walk.
llvm-svn: 37500
2007-06-07 21:57:03 +00:00
Devang Patel
59091c81b6
Rename.
...
llvm-svn: 37448
2007-06-06 00:49:02 +00:00
Devang Patel
61661c6774
Avoid non-trivial loop unswitching while optimizing for size.
...
llvm-svn: 37446
2007-06-06 00:21:03 +00:00
Owen Anderson
d765ae21f7
Put GVN-PRE in all the right places.
...
llvm-svn: 37352
2007-05-29 23:36:32 +00:00
Nick Lewycky
c2306ff5b4
Fix typo in comment.
...
llvm-svn: 36873
2007-05-06 13:37:16 +00:00
Devang Patel
cd45427a87
Drop 'const'
...
llvm-svn: 36662
2007-05-03 01:11:54 +00:00
Devang Patel
8ee9065162
Use 'static const char' instead of 'static const int'.
...
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
2007-05-02 21:39:20 +00:00
Devang Patel
38a66bc82e
Do not use typeinfo to identify pass in pass manager.
...
llvm-svn: 36632
2007-05-01 21:15:47 +00:00
Devang Patel
6a358e5694
Mem2Reg does not need TargetData.
...
llvm-svn: 36446
2007-04-25 18:41:11 +00:00
Devang Patel
b6ef7bc5d9
Remove unused function argument.
...
llvm-svn: 36441
2007-04-25 17:15:20 +00:00
Owen Anderson
41b527b75f
Move more passes to using ETForest instead of DominatorTree.
...
llvm-svn: 36271
2007-04-20 06:27:13 +00:00
Owen Anderson
85b0e20f2a
Completely purge DomSet. This is the (hopefully) final patch for PR1171.
...
llvm-svn: 35731
2007-04-07 07:17:27 +00:00
Owen Anderson
41bf50021d
Expunge DomSet from CodeExtractor. This is part of the continuing work
...
on PR1171.
llvm-svn: 35726
2007-04-07 05:31:27 +00:00
Devang Patel
562df7f986
Add loop rotation pass.
...
llvm-svn: 35714
2007-04-07 01:25:15 +00:00
Chris Lattner
579b1c63d5
Split the sdisel code munging stuff out into its own opt-pass, CodeGenPrepare.
...
llvm-svn: 35528
2007-03-31 04:06:36 +00:00
Devang Patel
6a56e3c1a0
Now IndVarSimplify is a LoopPass.
...
llvm-svn: 35003
2007-03-07 06:39:01 +00:00
Devang Patel
16107bb71b
Now LICM is a LoopPass.
...
llvm-svn: 35001
2007-03-07 04:41:30 +00:00
Devang Patel
3a24891f80
Now LoopUnroll is a LoopPass.
...
llvm-svn: 34996
2007-03-07 01:38:05 +00:00
Devang Patel
c35610b9f9
Now LoopUnswitch is a LoopPass.
...
llvm-svn: 34992
2007-03-07 00:26:10 +00:00
Devang Patel
0b82378a28
Now LoopStrengthReduce is a LoopPass.
...
llvm-svn: 34984
2007-03-06 21:14:09 +00:00
Chris Lattner
388222d25e
remove some dead passes and stuff specific to the reoptimizer.
...
llvm-svn: 34438
2007-02-20 05:31:35 +00:00
Reid Spencer
55e4e98a2a
For PR1195:
...
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
llvm-svn: 34293
2007-02-15 02:26:10 +00:00
Reid Spencer
6af21b3029
For PR411:
...
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.
llvm-svn: 33918
2007-02-05 20:47:22 +00:00
Reid Spencer
45d9d72ac0
For PR1072:
...
Removing -raise has neglible positive or negative side effects so we are
opting to remove it. See the PR for comparison details.
llvm-svn: 33844
2007-02-03 23:15:56 +00:00
Chris Lattner
71fe09f397
Switch inliner over to use DenseMap instead of std::map for ValueMap. This
...
speeds up the inliner 16%.
llvm-svn: 33801
2007-02-03 00:08:31 +00:00
Chris Lattner
854464d748
move constant folding code out of Utils/Local into libanalysis
...
llvm-svn: 33681
2007-01-30 23:46:43 +00:00
Chris Lattner
23628987e2
The inliner/cloner can now optionally take TargetData info, which can be
...
used by constant folding.
llvm-svn: 33676
2007-01-30 23:22:39 +00:00
Chris Lattner
59ba02e557
Change constant folding APIs to take an optional TargetData, and change
...
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array
of operands + size, instead of an std::vector.
llvm-svn: 33669
2007-01-30 23:12:47 +00:00
Anton Korobeynikov
611d5e2eda
Propagate changes from my local tree. This patch includes:
...
1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.
NOTEs: 1. Documentation will be updated soon.
2. llvm-upgrade should be improved to translate csret => sret.
Before this, there will be some unexpected test fails.
llvm-svn: 33597
2007-01-28 13:31:35 +00:00
Devang Patel
bf44036fbf
Inherit CallGraphSCCPass directly from Pass.
...
llvm-svn: 33514
2007-01-26 00:47:38 +00:00
Devang Patel
a9eae6951d
Inherit BasicBlockPass directly from Pass.
...
llvm-svn: 33511
2007-01-25 23:23:25 +00:00
Chris Lattner
d5cd984a0e
remove an old instrumentation pass that is not used anymore.
...
llvm-svn: 32997
2007-01-07 18:12:13 +00:00
Reid Spencer
4428c3483b
For PR950:
...
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.
llvm-svn: 32751
2006-12-23 06:05:41 +00:00
Jeff Cohen
e1003da1a2
Unbreak VC++ build.
...
llvm-svn: 31464
2006-11-05 19:31:28 +00:00
Chris Lattner
65f872288d
add option to isCriticalEdge
...
llvm-svn: 31258
2006-10-28 06:58:17 +00:00
Chris Lattner
85bc826ca6
Expose a smarter way to break critical edges.
...
llvm-svn: 31256
2006-10-28 06:44:56 +00:00
Bill Wendling
85f53a4427
Corrected formatting.
...
llvm-svn: 30942
2006-10-13 20:53:50 +00:00
Duraid Madina
51396ffd3e
add setJumpBufSize() and setJumpBufAlignment() to target-lowering.
...
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
llvm-svn: 30095
2006-09-04 06:21: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
Reid Spencer
eb02f1c668
For PR885:
...
Consolidate the LinkAllAnalyses.h and LinkAllPasses.h headers into one
so there is no dupliation.
llvm-svn: 29787
2006-08-21 05:34:03 +00:00
Jim Laskey
b92b14f422
Introducing plugable register allocators and instruction schedulers.
...
llvm-svn: 29434
2006-08-01 14:21:23 +00:00
Devang Patel
07e0d34f7d
Add new constructor to accept vector of exported names while creating
...
InternalizePass.
llvm-svn: 29222
2006-07-20 17:48:05 +00:00
Owen Anderson
0d9583aa41
Update some comments, and expose LCSSAID in preparation for having other passes
...
require LCSSA.
llvm-svn: 28734
2006-06-08 20:02:53 +00:00
Chris Lattner
0f5ef733cc
Force anything that #includes llvm/Transforms/Utils/UnifyFunctionExitNodes.h
...
to link in the implementation. Thanks to Anton Korobeynikov for figuring out
what was going on here.
llvm-svn: 28660
2006-06-02 18:40:06 +00:00
Chris Lattner
fcb019fcb6
Implement a new method: CloneAndPruneFunctionInto, as documented.
...
llvm-svn: 28518
2006-05-27 01:21:50 +00:00
Chris Lattner
c8b9439f3a
Add an interface to constant fold and instruction given it's opcode, type
...
and operands.
llvm-svn: 28516
2006-05-27 01:17:40 +00:00
Owen Anderson
93098cfc4c
Skeletal LCSSA pass. This is currently non-functional. Expect functionality
...
and documentation updates soo.
llvm-svn: 28495
2006-05-26 13:58:26 +00:00
Chris Lattner
9a0d02f8f7
Add a CloneModule call that exposes the mapping of values from the old module
...
to the new module. Patch provided by Nick Lewycky!
llvm-svn: 28349
2006-05-17 18:05:35 +00:00
Chris Lattner
2070effca0
This is a proper fix for the compiler warning. A termination condition is
...
not needed, as it can never be reached: an edge must exist.
llvm-svn: 28282
2006-05-14 02:01:22 +00:00
Reid Spencer
e343483440
Fix an infinite loop bug that Vladimir Prus identified.
...
llvm-svn: 28281
2006-05-13 18:11:32 +00:00
Chris Lattner
1275941193
Add pass ID's for various passes, so they can be AddRequiredID. Patch by
...
Domagoj Babic!
llvm-svn: 28048
2006-05-02 04:24:36 +00:00
Chris Lattner
0b321ad43f
remove a dead prototype
...
llvm-svn: 27882
2006-04-20 15:45:54 +00:00
Andrew Lenharth
b3f434b83d
Add a simple pass to make sure that all (non-library) calls to malloc and free
...
are visible to analysis as intrinsics. That is, make sure someone doesn't pass
free around by address in some struct (as happens in say 176.gcc).
This doesn't get rid of any indirect calls, just ensure calls to free and malloc
are always direct.
llvm-svn: 27560
2006-04-10 19:26:09 +00:00
Evan Cheng
db35180b27
For each loop, keep track of all the IV expressions inserted indexed by
...
stride. For a set of uses of the IV of a stride which is a multiple
of another stride, do not insert a new IV expression. Rather, reuse the
previous IV and rewrite the uses as uses of IV expression multiplied by
the factor.
e.g.
x = 0 ...; x ++
y = 0 ...; y += 4
then use of y can be rewritten as use of 4*x for x86.
llvm-svn: 26803
2006-03-16 21:53:05 +00:00
Evan Cheng
692235499c
Added target lowering hooks which LSR consults to make more intelligent
...
transformation decisions.
llvm-svn: 26738
2006-03-13 23:14:23 +00:00
Chris Lattner
ed45ad33b7
Make the LLVM headers "-ansi -pedantic -Wno-long-long" clean.
...
Patch by Martin Partel!
llvm-svn: 26313
2006-02-22 16:23:43 +00:00
Chris Lattner
0d03d576e4
Remove a level of indirection.
...
llvm-svn: 26109
2006-02-10 21:32:11 +00:00
Chris Lattner
5c0f92e308
Remove a never-working pass
...
llvm-svn: 25348
2006-01-16 01:05:24 +00:00
Chris Lattner
3e2e2b22ec
Teach inline function how to update the callgraph when it makes changes.
...
llvm-svn: 25318
2006-01-14 20:05:06 +00:00
Chris Lattner
67fb415248
Allow the code cloning interfaces to capture some important info about the
...
code being cloned if the client wants.
llvm-svn: 25281
2006-01-13 18:39:17 +00:00
Andrew Lenharth
cad1d52b64
Added documented rsprofiler interface. Also remove new profiler passes, the
...
old ones have been updated to implement the interface.
llvm-svn: 24499
2005-11-28 18:00:38 +00:00
Andrew Lenharth
311ec68cf4
Random sampling (aka Arnold and Ryder) profiling. This is still preliminary, but it works on spec on x86 and alpha. The idea is to allow profiling passes to remember what profiling they inserted, then a random sampling framework is inserted which consists of duplicated basic blocks (without profiling), such that at each backedge in the program and entry into every function, the framework chooses whether to use the instrumented code or the instrumentation free code. The goal of such a framework is to make it reasonably cheap to do random sampling of very expensive profiling products (such as load-value profiling).
...
The code is organized into 3 parts (2 passes)
1) a linked set of profiling passes, which implement an analysis group (linked, like alias analysis are). These insert profiling into the program, and remember what they inserted, so that at a later time they can be queried about any instruction.
2) a pass that handles inserting the random sampling framework. This also has options to control how random samples are choosen. Currently implemented are Global counters, register allocated global counters, and read cycle counter (see? there was a reason for it).
The profiling passes are almost identical to the existing ones (block, function, and null profiling is supported right now), and they are valid passes without the sampling framework (hence the existing passes can be unified with the new ones, not done yet).
Some things are a bit ugly still, but that should be fixed up soon enough.
Other todo? making the counter values not "magic 2^16 -1" values, but dynamically choosable.
llvm-svn: 24493
2005-11-28 00:58:09 +00:00
Andrew Lenharth
79ee761b69
Reg2Mem is something a pass may depend on, so allow that
...
llvm-svn: 24488
2005-11-22 22:14:23 +00:00
Andrew Lenharth
ddcbd92b23
needs to go here to apparently.
...
llvm-svn: 24268
2005-11-10 02:07:45 +00:00
Andrew Lenharth
03d60c3d09
The pass everyone has been waiting for!
...
Reg2Mem
for fun you can opt -reg2mem -mem2reg
llvm-svn: 24267
2005-11-10 01:58:38 +00:00
Nate Begeman
f299b9fb03
Add support alignment of allocation instructions.
...
Add support for specifying alignment and size of setjmp jmpbufs.
No targets currently do anything with this information, nor is it presrved
in the bytecode representation. That's coming up next.
llvm-svn: 24196
2005-11-05 09:21:28 +00:00
Chris Lattner
dae0aafea8
Remove the LowerConstantExpressionsPass pass
...
llvm-svn: 24089
2005-10-29 05:32:20 +00:00
John Criswell
0893d5847f
Move some constant folding functions into LLVMAnalysis since they are used
...
by Analysis and Transformation passes.
llvm-svn: 24038
2005-10-27 16:00:10 +00:00
Chris Lattner
bd6a973ae0
Don't link these three passes in anymore
...
llvm-svn: 23941
2005-10-24 02:30:25 +00:00
Chris Lattner
2f752062c1
Don't invade the system namespace
...
llvm-svn: 23917
2005-10-24 00:16:03 +00:00
Chris Lattner
31ac6df518
There is no need for this to be VC++ only
...
llvm-svn: 23915
2005-10-24 00:08:51 +00:00
Chris Lattner
dac26c2440
Make this work with the internalize change
...
llvm-svn: 23812
2005-10-19 01:41:47 +00:00
Chris Lattner
211f996c92
add an option to the internalize pass
...
llvm-svn: 23782
2005-10-18 06:28:16 +00:00
Chris Lattner
dbef366ea5
allow demotion to volatile values
...
llvm-svn: 23472
2005-09-27 19:38:43 +00:00
Chris Lattner
2a5d66d0e1
add a new function
...
llvm-svn: 23443
2005-09-26 05:26:32 +00:00
Chris Lattner
1fc1d60d5a
add a helper
...
llvm-svn: 22823
2005-08-17 06:34:37 +00:00
Nate Begeman
ef41400067
Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization into
...
BasicBlock's removePredecessor routine. This requires shuffling around
the definition and implementation of hasContantValue from Utils.h,cpp into
Instructions.h,cpp
llvm-svn: 22664
2005-08-04 23:24:19 +00:00
Jeff Cohen
b555ae8f95
Add SimplyLibCalls.cpp to VC++ build
...
llvm-svn: 21554
2005-04-26 02:57:49 +00:00
Reid Spencer
a8e0496412
Declare a function to create the SimplifyLibCalls pass.
...
llvm-svn: 21523
2005-04-25 02:54:00 +00:00
Misha Brukman
58c97e67f3
Remove trailing whitespace
...
llvm-svn: 21412
2005-04-21 20:59:05 +00:00
Chris Lattner
8456833fa8
new pass
...
llvm-svn: 21307
2005-04-15 21:13:16 +00:00
Chris Lattner
ca287099e1
add a new prototype
...
llvm-svn: 21305
2005-04-15 19:24:49 +00:00
Jeff Cohen
1be6e1cb99
Fix VC++ build breakage
...
llvm-svn: 20888
2005-03-28 02:52:28 +00:00
Alkis Evlogimenos
e0e628a401
Rename createPromoteMemoryToRegister() to
...
createPromoteMemoryToRegisterPass() to be consistent with other pass
creation functions.
llvm-svn: 20885
2005-03-28 02:01:12 +00:00
Jeff Cohen
29ecafb2e3
Add support for not strength reducing GEPs where the element size is a small
...
power of two. This emphatically includes the zeroeth power of two.
llvm-svn: 20429
2005-03-04 04:04:26 +00:00
Chris Lattner
f43446fb2f
Add an argument.
...
llvm-svn: 20413
2005-03-03 01:03:10 +00:00
Jeff Cohen
29092b4f26
Get VC++ compiling again
...
llvm-svn: 19869
2005-01-28 07:29:32 +00:00
Jeff Cohen
8b03a55724
Apply feedback from Chris.
...
llvm-svn: 19432
2005-01-10 04:23:32 +00:00
Jeff Cohen
a7f1ae5dc0
Apply feed back from Chris:
...
1. Rename createLoaderPass to CreateProfileLoaderPass
2. Opt shouldn't use the pass registered in CodeGen.
llvm-svn: 19431
2005-01-10 03:56:27 +00:00
Jeff Cohen
f692cd303d
Add last four createXxxPass functions
...
llvm-svn: 19424
2005-01-09 20:42:52 +00:00
Jeff Cohen
6c0db8d863
Add even more missing createXxxPass functions.
...
llvm-svn: 19402
2005-01-08 22:01:16 +00:00
Jeff Cohen
69ed91d1ca
Add a few more passes to LinkAllPasses.h
...
llvm-svn: 19371
2005-01-08 18:15:23 +00:00
Jeff Cohen
ce541ade79
Add more missing createXxxPass functions.
...
llvm-svn: 19370
2005-01-08 17:21:40 +00:00
Jeff Cohen
d8ac84c3f3
But not the identation of THAT line
...
llvm-svn: 19328
2005-01-07 07:46:40 +00:00
Jeff Cohen
8a926637e2
Correct indentation levels
...
llvm-svn: 19322
2005-01-07 07:44:02 +00:00
Jeff Cohen
c07c54f5b4
Add missing createXxxPass functions
...
llvm-svn: 19319
2005-01-07 06:57:28 +00:00
Misha Brukman
8b60d3e9df
Fix spelling.
...
llvm-svn: 19317
2005-01-07 06:45:07 +00:00
Jeff Cohen
83039834d7
Update list of passes
...
llvm-svn: 19316
2005-01-07 06:12:41 +00:00
Jeff Cohen
8d5d10078b
Fix return type
...
llvm-svn: 19314
2005-01-07 05:41:39 +00:00
Jeff Cohen
9bf3df5cc6
Get the #ifdef right on LinkAllPasses.h.
...
llvm-svn: 19310
2005-01-06 07:01:08 +00:00
Jeff Cohen
c205cf1049
Fix minor mistakes
...
llvm-svn: 19309
2005-01-06 06:29:42 +00:00
Jeff Cohen
b5bd66d55c
Get rid of those pesky tabs...
...
llvm-svn: 19308
2005-01-06 06:06:35 +00:00
Jeff Cohen
dfe5e3b330
Add project opt to Visual Studio.
...
llvm-svn: 19307
2005-01-06 06:02:53 +00:00
Jeff Cohen
727aeaf966
Fix incorrect return type.
...
llvm-svn: 19304
2005-01-06 05:45:45 +00:00
Chris Lattner
a856de4013
New prototype
...
llvm-svn: 18751
2004-12-10 07:55:01 +00:00
Chris Lattner
e2b8d886c9
Move the strip pass from Scalar to IPO lib
...
llvm-svn: 18438
2004-12-02 21:24:19 +00:00
Chris Lattner
fd98a3195a
New prototype for lowerpacked pass.
...
llvm-svn: 17915
2004-11-17 18:01:49 +00:00
Chris Lattner
6807c1681b
This is V9 specific stuff
...
llvm-svn: 17546
2004-11-07 00:42:29 +00:00
Chris Lattner
dd0094e4ed
Convert 'struct' to 'class' in various places to adhere to the coding standards
...
and work better with VC++. Patch contributed by Morten Ofstad!
llvm-svn: 17281
2004-10-27 16:14:51 +00:00
Nate Begeman
49e38c2185
Initial implementation of the strength reduction for GEP instructions in
...
loops. This optimization is not turned on by default yet, but may be run
with the opt tool's -loop-reduce flag. There are many FIXMEs listed in the
code that will make it far more applicable to a wide range of code, but you
have to start somewhere :)
This limited version currently triggers on the following tests in the
MultiSource directory:
pcompress2: 7 times
cfrac: 5 times
anagram: 2 times
ks: 6 times
yacr2: 2 times
llvm-svn: 17134
2004-10-18 21:08:22 +00:00
Reid Spencer
a5b7b341a4
Declare a function in the correct namespace.
...
Patch contributed by Morten Ofstad. Thanks Morten!
llvm-svn: 17124
2004-10-18 14:43:45 +00:00
Chris Lattner
cd83905b39
Add support for the unreachable instruction
...
llvm-svn: 17039
2004-10-16 18:06:43 +00:00
Chris Lattner
8ddca97a5a
Rename pass
...
llvm-svn: 16801
2004-10-07 04:12:02 +00:00
Brian Gaeke
63338063d0
Add accessor function prototypes for reoptimizer support passes.
...
Make accessors return FunctionPass* as appropriate.
llvm-svn: 16619
2004-09-30 20:13:55 +00:00
Chris Lattner
a4d3f95fa3
Do not prototype any of these passes as returning Pass*. Instead, be specific
...
llvm-svn: 16431
2004-09-20 04:41:39 +00:00
Chris Lattner
12d1ccfbd8
Add an optional argument to PromoteMemToReg
...
llvm-svn: 16346
2004-09-15 01:02:30 +00:00
Chris Lattner
f1450e2a51
Remove unused pass
...
llvm-svn: 16338
2004-09-14 16:34:08 +00:00
Chris Lattner
872e4a14da
Add a pass
...
llvm-svn: 15713
2004-08-13 03:03:44 +00:00
Chris Lattner
00ff5a4e35
Expose breakcriticaledges as a functionpass
...
llvm-svn: 15370
2004-07-31 10:02:24 +00:00
Brian Gaeke
45adb41f46
Make the create...() functions for some of these passes return a FunctionPass *.
...
llvm-svn: 15276
2004-07-27 17:43:21 +00:00
Chris Lattner
d1cfccd01e
New prototype
...
llvm-svn: 15102
2004-07-22 08:07:30 +00:00
Chris Lattner
8f4173433d
Remove dead file
...
llvm-svn: 14459
2004-06-28 00:46:54 +00:00
Chris Lattner
adff3f7355
Remove two dead passes
...
llvm-svn: 14456
2004-06-28 00:43:25 +00:00
Chris Lattner
2420a80afa
Prototype for new ConstantExpr lowering pass, contributed by Vladimir Prus!
...
llvm-svn: 14397
2004-06-25 07:41:06 +00:00
Misha Brukman
0ae5becf22
Moved to include/llvm/Support
...
llvm-svn: 14350
2004-06-23 17:24:53 +00:00
Chris Lattner
f9d9fd95bd
Add a new prototype
...
llvm-svn: 13685
2004-05-23 21:16:13 +00:00
Alkis Evlogimenos
fd3b0971bf
Declare function defined in namespace llvm as gcc-3.4 doesn't accept a definition in a namespace of a non-declared function.
...
llvm-svn: 13602
2004-05-19 19:17:48 +00:00
Misha Brukman
d41853bbe2
Aggregating function arguments is now an option. Default is `no', as before.
...
llvm-svn: 13142
2004-04-23 23:54:34 +00:00
Misha Brukman
1dc8e19185
Clarify the logic: the flag is renamed to `deleteFn' to signify it will delete
...
the function instead of isolating it. This also means the condition is reversed.
llvm-svn: 13112
2004-04-22 23:00:51 +00:00
Misha Brukman
94f0180757
Add a boolean flag to delete this function from module, leaving the rest behind.
...
Useful in manual debugging when bugpoint isn't quite up to snuff.
llvm-svn: 13110
2004-04-22 22:51:37 +00:00
Chris Lattner
10c5fa0de9
Add accessor for a Loop Unswitching pass
...
llvm-svn: 13066
2004-04-19 06:28:37 +00:00
Chris Lattner
27fd823c1b
Add prototype
...
llvm-svn: 13029
2004-04-18 05:20:32 +00:00
Chris Lattner
2bf8038c69
Add new interfaces
...
llvm-svn: 12918
2004-04-13 19:28:32 +00:00
Chris Lattner
34112aa99f
Improve description, add warning
...
llvm-svn: 12570
2004-03-31 21:59:07 +00:00
Chris Lattner
58a6a4d57a
Add a simple select instruction lowering pass
...
llvm-svn: 12540
2004-03-30 18:41:10 +00:00
Chris Lattner
f5af93a6bb
The code extractor needs dominator information, so we provide it.
...
llvm-svn: 12482
2004-03-18 03:47:46 +00:00
Chris Lattner
fa7a97f573
Make this header file self-contained
...
llvm-svn: 12480
2004-03-18 03:14:56 +00:00
Chris Lattner
739eb75cd4
cleanup comment
...
llvm-svn: 12463
2004-03-17 01:29:36 +00:00
Chris Lattner
fffee2b160
Rename createLoopExtractorPass to createSingleLoopExtractorPass
...
Doxygenify
llvm-svn: 12389
2004-03-14 20:00:37 +00:00
Chris Lattner
3bb91dafcd
Move loop extractor to the IPO header
...
llvm-svn: 12374
2004-03-14 02:36:34 +00:00
Chris Lattner
6d84c5547a
Remove dead file
...
llvm-svn: 12371
2004-03-14 02:13:57 +00:00
Chris Lattner
7ed7f02c3a
Move DemoteRegToStack prototype out of DemoteRegToStack.h to this file.
...
llvm-svn: 12367
2004-03-14 02:13:07 +00:00
Chris Lattner
db27e586bf
Add prototype
...
llvm-svn: 12194
2004-03-07 21:30:08 +00:00
Misha Brukman
057b5d5519
Add prototype for ExtractCodeRegion()
...
llvm-svn: 12069
2004-03-02 00:20:32 +00:00
Misha Brukman
f5abaea3a5
Add ability to extract a single basic block into a new function.
...
llvm-svn: 12052
2004-03-01 18:27:13 +00:00
Misha Brukman
13b5b048fb
New Function-level transformation utils.
...
llvm-svn: 11938
2004-02-28 03:33:30 +00:00
Misha Brukman
1ddb180929
Add the prototype for the LoopExtractor Pass.
...
llvm-svn: 11937
2004-02-28 03:33:17 +00:00
Chris Lattner
64cbbad38e
Add prototype
...
llvm-svn: 11837
2004-02-25 21:34:51 +00:00
Misha Brukman
47df5a35ec
Fix spelling of `tendency'.
...
llvm-svn: 11378
2004-02-13 16:23:14 +00:00
Chris Lattner
2b87d0184b
Expose a pass ID for lower-invoke
...
llvm-svn: 11377
2004-02-13 16:16:35 +00:00
Chris Lattner
0d6e2dfd13
Check in header file I forgot before.
...
llvm-svn: 11115
2004-02-04 03:59:08 +00:00
Chris Lattner
98a45667fb
llvm::ConstantFoldInstruction
...
llvm-svn: 10787
2004-01-12 18:25:56 +00:00
Chris Lattner
c1952a1fd6
Add new function
...
llvm-svn: 10529
2003-12-19 05:56:28 +00:00
Brian Gaeke
98cfeec17b
Fix typo in comment.
...
llvm-svn: 10487
2003-12-16 21:55:45 +00:00
Brian Gaeke
d25f86d683
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Chris Lattner
da2387324c
Include forms of SplitCriticalEdge which work correctly with pred/succ iterators
...
llvm-svn: 9856
2003-11-10 04:42:13 +00:00
Chris Lattner
2a993fb1c5
Move isCriticalEdge & SplitCritical into this file. While we're at it, change
...
the interface to SplitCriticalEdge so that it splits an edge if it is critical,
otherwise just returns false and noops if not.
llvm-svn: 9852
2003-11-10 04:10:27 +00:00
Chris Lattner
6beaeb1c1d
Move isCriticalEdge & SplitCritical edge out of this file, which is only
...
for passes.
llvm-svn: 9851
2003-11-10 04:09:44 +00:00
Misha Brukman
b6f41c96d7
Declare FunctionPasses as such.
...
llvm-svn: 9767
2003-11-07 17:19:39 +00:00
Chris Lattner
5c551d6bd5
Split the DAE pass into DAE and DAH passes
...
llvm-svn: 9742
2003-11-05 21:43:42 +00:00
Chris Lattner
78d89a92b7
Include new prototype
...
llvm-svn: 9422
2003-10-23 16:51:49 +00:00
John Criswell
16c6cda9d5
Added LLVM copyright header (for lack of a better term).
...
llvm-svn: 9304
2003-10-20 20:19:47 +00:00
Chris Lattner
f4ca01758d
Rename loop preheaders pass to loop simplify
...
llvm-svn: 9061
2003-10-12 21:52:28 +00:00
Chris Lattner
d1c3f771f8
Change the interface to PromoteMemToReg to also take a DominatorTree
...
llvm-svn: 8883
2003-10-05 21:20:13 +00:00
Chris Lattner
8848bf58ce
Add new prototype for createLowerInvokePass(). Make simplifycfg be a
...
functionpass
llvm-svn: 8870
2003-10-05 19:15:13 +00:00
Chris Lattner
4e4c763dfc
Standardize header file comments
...
llvm-svn: 8782
2003-09-30 18:37:50 +00:00
Chris Lattner
b64863a2f3
Cleanup header file
...
llvm-svn: 8622
2003-09-20 14:35:38 +00:00
Chris Lattner
bf7dd80e7c
Expose the TCE pass
...
llvm-svn: 8619
2003-09-20 05:14:13 +00:00
Chris Lattner
0c3066b0ae
Add prototype for the lowersetjmp pass
...
llvm-svn: 8522
2003-09-15 05:05:23 +00:00
Chris Lattner
ee577bdc08
Expand the pass to unify all of the unwind blocks as well
...
llvm-svn: 8456
2003-09-10 20:34:51 +00:00
Chris Lattner
58d4183a25
Fix spell-o's
...
llvm-svn: 8431
2003-09-10 05:29:43 +00:00
Chris Lattner
f993c53f49
Dead header file
...
llvm-svn: 8317
2003-09-01 20:46:08 +00:00
Chris Lattner
603a7af227
Add RPR prototype here
...
llvm-svn: 8314
2003-09-01 20:44:42 +00:00
Chris Lattner
ed0dcf3cf0
This file is just a subset of Cilkifier.h
...
llvm-svn: 8286
2003-09-01 16:42:43 +00:00
Chris Lattner
2ef2a63728
Change the RaiseAllocations pass from being a BasicBlockPass to being a Pass
...
llvm-svn: 8279
2003-09-01 03:14:00 +00:00
Chris Lattner
dbde8ba630
Fix an FLAT OUT WRONG comment
...
llvm-svn: 8263
2003-08-31 19:37:29 +00:00
Chris Lattner
7dac86e5f5
Add accessor function for the PruneEH pass
...
llvm-svn: 8254
2003-08-31 16:30:25 +00:00
Chris Lattner
e61cdf5a6e
Add versions of InlineFunction which work on Invoke instructions and general call sites
...
llvm-svn: 8105
2003-08-24 06:58:32 +00:00
Brian Gaeke
4651096037
Factory methods for function passes now return type FunctionPass *.
...
llvm-svn: 7839
2003-08-14 06:09:32 +00:00
Brian Gaeke
77c65be59e
Factory methods for FunctionPasses now return type FunctionPass *.
...
llvm-svn: 7823
2003-08-13 18:18:15 +00:00