Owen Anderson
cc287b28c9
Get rid of the Pass+Context magic.
...
llvm-svn: 76702
2009-07-22 00:24:57 +00:00
Owen Anderson
4483fbda5e
Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst.
...
llvm-svn: 75863
2009-07-15 23:53:25 +00:00
Owen Anderson
8c85061ee6
Move EVER MORE stuff over to LLVMContext.
...
llvm-svn: 75703
2009-07-14 23:09:55 +00:00
Dan Gohman
8e93bc202e
Forward-declare Loop and LoopInfo instead of #including LoopInfo.h.
...
llvm-svn: 75529
2009-07-13 22:19:41 +00:00
Dan Gohman
f6caa6f1e3
Make Loop and MachineLoop be subclasses of LoopBase, rather than typedefs,
...
using the Curiously Recurring Template Pattern with LoopBase.
This will help further refactoring, and future functionality for
Loop. Also, Headers can now foward-declare Loop, instead of pulling
in LoopInfo.h or doing tricks.
llvm-svn: 75519
2009-07-13 21:51:15 +00:00
Owen Anderson
121f736d9c
"LLVMContext* " --> "LLVMContext *"
...
llvm-svn: 74878
2009-07-06 23:00:19 +00:00
Owen Anderson
977aa11bc6
More LLVMContext-ification.
...
llvm-svn: 74807
2009-07-05 22:41:43 +00:00
Nick Lewycky
b01a2dc7ba
Add Static Single Information construction pass written by André Tavares!
...
Use it by requiring it through the pass manager, then calling its createSSI
method on the variables that you want in SSI form.
llvm-svn: 74780
2009-07-03 19:28:36 +00:00
Owen Anderson
81b8dabb53
Add a pointer to the owning LLVMContext to Module. This requires threading LLVMContext through a lot
...
of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.
Patches for Clang and LLVM-GCC to follow.
llvm-svn: 74614
2009-07-01 16:58:40 +00:00
Dan Gohman
8d2a45fadb
Teach LoopSimplify how to merge multiple loop exits into a single exit,
...
when one of them can be converted to a trivial icmp and conditional
branch.
This addresses what is essentially a phase ordering problem.
SimplifyCFG knows how to do this transformation, but it doesn't do so
if the primary block has any instructions in it other than an icmp and
a branch. In the given testcase, the block contains other instructions,
however they are loop-invariant and can be hoisted. SimplifyCFG doesn't
have LoopInfo though, so it can't hoist them. And, it's important that
the blocks be merged before LoopRotation, as it doesn't support
multiple-exit loops.
llvm-svn: 74396
2009-06-27 21:30:38 +00:00
Devang Patel
4f5d296df0
Remove unused routines.
...
llvm-svn: 74351
2009-06-26 22:53:22 +00:00
Chris Lattner
574c5de9f8
Generalize instcombine's isSafeToLoadUnconditionally() function
...
to ignore readonly calls, and factor it out of instcombine so
that it can be used by other passes. Patch by Frits van Bommel!
llvm-svn: 73506
2009-06-16 17:23:12 +00:00
Dan Gohman
00c4ac3add
Re-apply 70645, converting ScalarEvolution to use
...
CallbackVH, with fixes. allUsesReplacedWith need to
walk the def-use chains and invalidate all users of a
value that is replaced. SCEVs of users need to be
recalcualted even if the new value is equivalent. Also,
make forgetLoopPHIs walk def-use chains, since any
SCEV that depends on a PHI should be recalculated when
more information about that PHI becomes available.
llvm-svn: 70927
2009-05-04 22:30:44 +00:00
Chris Lattner
b07d558841
Factor loop backedge finding out of CodeGenPrepare into a new
...
FindFunctionBackedges function.
llvm-svn: 70819
2009-05-04 02:25:58 +00:00
Dan Gohman
8e4b9e586b
Revert r70645 for now; it's causing a variety of regressions.
...
llvm-svn: 70661
2009-05-03 05:46:20 +00:00
Dan Gohman
7d98736ca6
Convert ScalarEvolution to use CallbackVH for its internal map. This
...
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.
It also makes ValueDeletionListener unnecessary.
llvm-svn: 70645
2009-05-02 21:19:20 +00:00
Dan Gohman
a79cce4aef
Previously, RecursivelyDeleteDeadInstructions provided an option
...
of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.
Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.
This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.
llvm-svn: 70636
2009-05-02 18:29:22 +00:00
Duncan Sands
9c1869fdaf
These bitfields were being miscompiled on some
...
64 bit platforms when building with optimization.
So replace them by a hand-coded implementation.
This fixes PR3822.
llvm-svn: 69597
2009-04-20 16:03:21 +00:00
Devang Patel
28a28a2588
Add "check/remove dbg var" helper routines.
...
llvm-svn: 66223
2009-03-06 00:19:37 +00:00
Dale Johannesen
33fa9dc8a9
When sinking an insn in InstCombine bring its debug
...
info with it.
Don't count debug info insns against the scan maximum
in FindAvailableLoadedValue (lest they affect codegen).
llvm-svn: 65910
2009-03-03 01:09:07 +00:00
Evan Cheng
d8aad94754
Factor address mode matcher out of codegen prepare to make it available to other passes, e.g. loop strength reduction.
...
llvm-svn: 65134
2009-02-20 18:24:38 +00:00
Cedric Venet
48be6b5e15
Unbreak the build on win32.
...
Cleanup some warning.
Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.
Only tested with VS2008. hope it does not break anything. feel free to revert.
llvm-svn: 64554
2009-02-14 16:06:42 +00:00
Devang Patel
7377e7aa89
Enable scalar replacement of AllocaInst whose one of the user is dbg info.
...
llvm-svn: 64207
2009-02-10 07:00:59 +00:00
Devang Patel
72f5fba371
Revert rev. 63876. It is causing llvm-gcc bootstrap failure.
...
llvm-svn: 63888
2009-02-05 21:46:41 +00:00
Devang Patel
66eee02024
Ignore dbg intrinsics while propagating conditional expression info.
...
llvm-svn: 63876
2009-02-05 19:15:39 +00:00
Dale Johannesen
eb1316a896
Adjustments to last patch based on review.
...
llvm-svn: 61969
2009-01-09 01:30:11 +00:00
Dale Johannesen
4c25cb12ea
Do not inline functions with (dynamic) alloca into
...
functions that don't already have a (dynamic) alloca.
Dynamic allocas cause inefficient codegen and we shouldn't
propagate this (behavior follows gcc). Two existing tests
assumed such inlining would be done; they are hacked by
adding an alloca in the caller, preserving the point of
the tests.
llvm-svn: 61946
2009-01-08 21:45:23 +00:00
Dan Gohman
8271066844
Tidy up #includes, deleting a bunch of unnecessary #includes.
...
llvm-svn: 61715
2009-01-05 17:59:02 +00:00
Chris Lattner
420385f8c3
Factor some code into a new FoldSingleEntryPHINodes method.
...
llvm-svn: 60501
2008-12-03 19:44:02 +00:00
Chris Lattner
c77e2f13a3
fix a really incorrect comment.
...
llvm-svn: 60492
2008-12-03 19:18:54 +00:00
Chris Lattner
7a00825f57
Rename DeleteBlockIfDead to DeleteDeadBlock and make it
...
unconditionally delete the block. All likely clients will
do the checking anyway.
llvm-svn: 60464
2008-12-03 06:40:52 +00:00
Chris Lattner
12c3938837
Factor some code out of SimplifyCFG, forming a new
...
DeleteBlockIfDead method.
llvm-svn: 60463
2008-12-03 06:37:44 +00:00
Chris Lattner
8b382de4e0
Enhance RecursivelyDeleteTriviallyDeadInstructions to optionally
...
return a list of deleted instructions.
llvm-svn: 60193
2008-11-27 23:14:34 +00:00
Chris Lattner
b374a0158a
remove doConstantPropagation and dceInstruction, they are just
...
wrappers around the interesting code and use an obscure iterator
abstraction that dates back many many years.
Move EraseDeadInstructions to Transforms/Utils and name it
RecursivelyDeleteTriviallyDeadInstructions.
llvm-svn: 60191
2008-11-27 22:57:53 +00:00
Chris Lattner
577096bcaa
move FindAvailableLoadedValue from JumpThreading to Transforms/Utils.
...
llvm-svn: 60166
2008-11-27 08:10:05 +00:00
Chris Lattner
bb86dff3fe
move MergeBasicBlockIntoOnlyPred to Transforms/Utils.
...
llvm-svn: 60162
2008-11-27 07:43:12 +00:00
Devang Patel
e5a07d989e
Do not use separate utility to walk all instructions and remove dead dbg intrinsics. Let instcombiner do this job.
...
llvm-svn: 59659
2008-11-19 19:01:37 +00:00
Devang Patel
ec4ae29ae4
Add utility routines to remove dead debug info.
...
llvm-svn: 59011
2008-11-11 00:53:02 +00:00
Daniel Dunbar
097da598fb
Add InlineCost class for represent the estimated cost of inlining a
...
function.
- This explicitly models the costs for functions which should
"always" or "never" be inlined. This fixes bugs where such costs
were not previously respected.
llvm-svn: 58450
2008-10-30 19:26:59 +00:00
Daniel Dunbar
e2fe2de3f4
Assorted comment/naming fixes, 80-col violations, and reindentation.
...
- No functionality change.
llvm-svn: 58352
2008-10-28 23:24:26 +00:00
Dan Gohman
e1f9be27bc
Tidy up several unbeseeming casts from pointer to intptr_t.
...
llvm-svn: 55779
2008-09-04 17:05:41 +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
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
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
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
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
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
Chris Lattner
9fb1d740a6
prune #includes, fit in 80 cols.
...
llvm-svn: 47556
2008-02-25 19:21:38 +00:00
Chris Lattner
ff7707de37
don't include loopinfo.h from this file.
...
llvm-svn: 45858
2008-01-11 06:30:04 +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
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
Devang Patel
d412a2a0ed
Add utility to clone loops.
...
llvm-svn: 40997
2007-08-10 17:59:47 +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
Tanya Lattner
a715bbe152
Adding ability to demote phi to stack.
...
llvm-svn: 39744
2007-07-11 18:41:34 +00:00
Devang Patel
d9043c7501
Add SplitEdge and SplitBlock utility routines.
...
llvm-svn: 37952
2007-07-06 21:39:20 +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
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
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
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
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
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
0d03d576e4
Remove a level of indirection.
...
llvm-svn: 26109
2006-02-10 21:32:11 +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
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
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
Misha Brukman
58c97e67f3
Remove trailing whitespace
...
llvm-svn: 21412
2005-04-21 20:59:05 +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
Chris Lattner
cd83905b39
Add support for the unreachable instruction
...
llvm-svn: 17039
2004-10-16 18:06:43 +00:00
Chris Lattner
12d1ccfbd8
Add an optional argument to PromoteMemToReg
...
llvm-svn: 16346
2004-09-15 01:02:30 +00:00
Misha Brukman
0ae5becf22
Moved to include/llvm/Support
...
llvm-svn: 14350
2004-06-23 17:24:53 +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
Chris Lattner
2bf8038c69
Add new interfaces
...
llvm-svn: 12918
2004-04-13 19:28:32 +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
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
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
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
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
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
d1c3f771f8
Change the interface to PromoteMemToReg to also take a DominatorTree
...
llvm-svn: 8883
2003-10-05 21:20: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
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
dbde8ba630
Fix an FLAT OUT WRONG comment
...
llvm-svn: 8263
2003-08-31 19:37:29 +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
Tanya Lattner
eaa01f0821
Fixed comment width, changed arg to be const, fixed indentation, removed unnecessary includes.
...
llvm-svn: 6476
2003-05-31 20:01:37 +00:00
Tanya Lattner
ceefb5002a
Sorry, correcting small typo.
...
llvm-svn: 6433
2003-05-30 15:53:50 +00:00
Tanya Lattner
117f7c0082
Added support for cloning a trace.
...
llvm-svn: 6430
2003-05-30 15:48:23 +00:00
Chris Lattner
47842943a5
Doxygenify comments
...
llvm-svn: 6393
2003-05-29 15:06:40 +00:00
Misha Brukman
825e174bf7
Hopefully, the final fix for `[Pp]ropogate'.
...
llvm-svn: 6251
2003-05-20 21:01:22 +00:00
Chris Lattner
17200af63c
Add prototype for new CloneBasicBlock function
...
llvm-svn: 5804
2003-04-18 03:49:22 +00:00
Chris Lattner
190480ecfe
Add getAnalysisUsage method
...
llvm-svn: 5756
2003-03-31 17:29:18 +00:00
Chris Lattner
a49e96dda5
Change the mem2reg interface to accept a TargetData argument
...
llvm-svn: 5685
2003-03-03 17:25:18 +00:00
Chris Lattner
74aa1f8c03
Add a new interface file for the PromoteMemToReg interface in the Utils library
...
llvm-svn: 5609
2003-02-22 23:04:52 +00:00
Vikram S. Adve
8ea96d8162
This file provides the function DemoteRegToStack(), which takes a
...
virtual register computed by an Instruction& X and replaces it with
a slot in the stack frame, allocated via alloca.
llvm-svn: 4963
2002-12-10 13:07:12 +00:00
Chris Lattner
29c4cbb5a5
Cloning stuff doesn't modify the source module
...
llvm-svn: 4787
2002-11-20 20:22:58 +00:00
Chris Lattner
e5a05ec13b
Minor changes to cloning interface
...
llvm-svn: 4770
2002-11-19 22:54:01 +00:00
Chris Lattner
01ce78b4e1
Extend function cloning interface to support inlining
...
llvm-svn: 4767
2002-11-19 21:54:38 +00:00
Chris Lattner
5165195254
This file is supersumed by Utils/Cloning.h
...
llvm-svn: 4765
2002-11-19 21:00:33 +00:00
Chris Lattner
697f2aac86
Merge cloning and inlining utilities
...
llvm-svn: 4763
2002-11-19 20:58:38 +00:00
Chris Lattner
442d220996
- Do not expose Critical Edge breaking mechanics outside the BCE pass, thus
...
removing it from Transforms/Local.h and from Transforms/Utils/*
llvm-svn: 3909
2002-09-24 15:51:54 +00:00
Chris Lattner
c8554b6352
- Rename BreakCriticalEdge to the slightly more standard SplitCriticalEdge
...
llvm-svn: 3587
2002-09-06 02:35:11 +00:00
Chris Lattner
66c5dd4050
* Doxygenize API
...
* Add new functions for identifying and breaking critical edges
llvm-svn: 3586
2002-09-06 02:19:25 +00:00
Chris Lattner
88a7f572fb
Remove duplicate #include
...
llvm-svn: 3567
2002-09-02 04:04:11 +00:00
Chris Lattner
b90f78e2b3
- Do not expose ::ID from any of the analyses anymore.
...
llvm-svn: 3416
2002-08-21 17:09:45 +00:00