Dan Gohman
a83ac2d9e7
Update various Loop optimization passes to cope with the possibility that
...
LoopSimplify form may not be available.
llvm-svn: 86175
2009-11-05 21:11:53 +00:00
Dan Gohman
d9fa1c9c1e
Call getAnalysis<LoopInfo> the normal way, instead of asking passed-in
...
LoopPassManager for it.
llvm-svn: 86163
2009-11-05 19:43:25 +00:00
Dan Gohman
880c92ac1c
Rename forgetLoopBackedgeTakenCount to forgetLoop, because it
...
clears out more information than just the stored backedge taken count.
llvm-svn: 85664
2009-10-31 15:04:55 +00:00
Dan Gohman
6a10d5ebd3
Fix a typo in a comment.
...
llvm-svn: 85120
2009-10-26 15:55:24 +00:00
Dan Gohman
8f4078ba39
Rename isLoopExit to isLoopExiting, for consistency with the wording
...
used elsewhere - an exit block is a block outside the loop branched to
from within the loop. An exiting block is a block inside the loop that
branches out.
llvm-svn: 85019
2009-10-24 23:34:26 +00:00
Dan Gohman
b979794e4b
Rewrite LoopRotation's SSA updating code using SSAUpdater.
...
llvm-svn: 85016
2009-10-24 23:19:52 +00:00
Dan Gohman
fc20b67e80
Tell ScalarEvolution to forget everything it knows about a loop before
...
rotating the loop, since loop rotation is a very significant change.
llvm-svn: 82901
2009-09-27 15:37:03 +00:00
Nick Lewycky
42fb7452df
Instruction::clone does not need to take an LLVMContext&. Remove that and
...
update all the callers.
llvm-svn: 82889
2009-09-27 07:38:41 +00:00
Dan Gohman
ec4557f324
Fix SplitCriticalEdge to properly update LCSSA form when splitting a
...
loop exit edge -- new PHIs may be needed not only for the additional
splits that are made to preserve LoopSimplify form, but also for the
original split. Factor out the code that inserts new PHIs so that it
can be used for both. Remove LoopRotation.cpp's code for manually
updating LCSSA form, as it is now redundant. This fixes PR4934.
llvm-svn: 81363
2009-09-09 18:18:18 +00:00
Chris Lattner
2dd09dbdf7
eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861
...
llvm-svn: 80766
2009-09-02 06:11:42 +00:00
Owen Anderson
55f1c09e31
Push LLVMContexts through the IntegerType APIs.
...
llvm-svn: 78948
2009-08-13 21:58:54 +00:00
Devang Patel
b1106fbdbc
Fix dom frontier update. This fixes PR4667.
...
Patch by Jakub Staszak.
llvm-svn: 78388
2009-08-07 17:16:44 +00:00
Owen Anderson
47db941fd3
Get rid of the Pass+Context magic.
...
llvm-svn: 76702
2009-07-22 00:24:57 +00:00
Owen Anderson
1e5f00e7a7
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!?
...
llvm-svn: 75200
2009-07-09 23:48:35 +00:00
Dan Gohman
8918b481bf
More minor code simplifications.
...
llvm-svn: 74395
2009-06-27 21:23:40 +00:00
Dan Gohman
ac3b5382b8
Change this code to a form about which VC++ reportedly isn't unhappy.
...
llvm-svn: 74243
2009-06-26 00:35:12 +00:00
Dan Gohman
31167c61d5
Minor code simplification.
...
llvm-svn: 74240
2009-06-26 00:26:03 +00:00
Dan Gohman
091e440568
Reword a few comments.
...
llvm-svn: 74146
2009-06-25 00:22:44 +00:00
Devang Patel
bab43b4c91
Do not count DbgInfoIntrinsic while estimating loop header size.
...
llvm-svn: 66245
2009-03-06 03:51:30 +00:00
Duncan Sands
5a913d61e3
Rename getAnalysisToUpdate to getAnalysisIfAvailable.
...
llvm-svn: 63198
2009-01-28 13:14:17 +00:00
Chris Lattner
7b6647c178
Fix PR3408 by making a non-obvious assumption very obvious, and
...
handling the flaw inherent in that assumption. :)
llvm-svn: 62984
2009-01-26 02:11:30 +00:00
Chris Lattner
57cb472b56
More cleanups and simplifications, no functionality change.
...
llvm-svn: 62983
2009-01-26 01:57:01 +00:00
Chris Lattner
d67aaa6560
tidy asserts
...
llvm-svn: 62982
2009-01-26 01:38:24 +00:00
Daniel Dunbar
7f39e2d85a
Change create*Pass factory functions to return Pass* instead of
...
LoopPass*.
- Although less precise, this means they can be used in clients
without RTTI (who would otherwise need to include LoopPass.h, which
eventually includes things using dynamic_cast). This was the
simplest solution that presented itself, but I am happy to use a
better one if available.
llvm-svn: 58010
2008-10-22 23:32:42 +00:00
Dan Gohman
a79db30d28
Tidy up several unbeseeming casts from pointer to intptr_t.
...
llvm-svn: 55779
2008-09-04 17:05:41 +00:00
Dan Gohman
fa1211f69b
Enable first-class aggregates support.
...
Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
llvm-svn: 53941
2008-07-23 00:34:11 +00:00
Dan Gohman
9eea470fcf
Avoid using BasicBlock::getInstList directly in a few places.
...
llvm-svn: 52497
2008-06-19 17:37:25 +00:00
Dan Gohman
f96e1371e8
Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to
...
use it instead of duplicating its functionality.
llvm-svn: 51499
2008-05-23 21:05:58 +00:00
Gabor Greif
697e94cc22
Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better.
...
llvm-svn: 51143
2008-05-15 10:04:30 +00:00
Dan Gohman
d78c400b5b
Clean up the use of static and anonymous namespaces. This turned up
...
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
2008-05-13 00:00:25 +00:00
Chris Lattner
a700b2bd0f
add a FIXME so we remember to eventually remove this code.
...
llvm-svn: 50582
2008-05-02 17:18:31 +00:00
Dale Johannesen
78ffe6e939
Don't try to create PHIs of struct types. Fallout
...
from x86-64 calling convention work.
llvm-svn: 50545
2008-05-01 22:27:44 +00:00
Owen Anderson
7629b71dd4
Revert r49614. As Dan pointed out, some of these aren't correct.
...
llvm-svn: 49657
2008-04-14 17:38:21 +00:00
Owen Anderson
1f6fbc4bc3
Replace calls of the form V1->setName(V2->getName()) with V1->takeName(V2),
...
which is significantly more efficient.
llvm-svn: 49614
2008-04-13 19:15:17 +00:00
Gabor Greif
e9ecc68d8f
API changes for class Use size reduction, wave 1.
...
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
2008-04-06 20:25:17 +00:00
Devang Patel
a42c3147cc
Fix PR2028
...
llvm-svn: 47150
2008-02-15 01:24:49 +00:00
Chris Lattner
f3ebc3f3d2
Remove attribution from file headers, per discussion on llvmdev.
...
llvm-svn: 45418
2007-12-29 20:36:04 +00:00
Owen Anderson
b0dd27ee91
Make LoopInfoBase more generic, in preparation for having MachineLoopInfo. This involves a small interface change.
...
llvm-svn: 44348
2007-11-27 03:43:35 +00:00
Nick Lewycky
1d6f196245
typo
...
llvm-svn: 44262
2007-11-21 05:21:54 +00:00
Devang Patel
b5933bbbd5
Use SmallVector instead of std::vector.
...
llvm-svn: 41207
2007-08-21 00:31:24 +00:00
Devang Patel
698852561c
Loop Rotation pass preserves dominator tree and frontier.
...
llvm-svn: 40603
2007-07-30 20:22:53 +00:00
Devang Patel
29ccf8ba52
Disable claims to preserve analysis until open issues are resolved.
...
llvm-svn: 39834
2007-07-13 21:53:42 +00:00
Devang Patel
fac4d1f014
Preserve analysis info.
...
llvm-svn: 39767
2007-07-11 23:47:28 +00:00
Nick Lewycky
9b2252c6f0
Back out Devang's fix for PR1320 because it causes PR1542.
...
llvm-svn: 37966
2007-07-07 16:23:34 +00:00
Devang Patel
86d0ea973d
Request DominanceFrontiner in advance.
...
llvm-svn: 37954
2007-07-06 21:43:22 +00:00
Devang Patel
3ee408264b
Preserve various analysis info.
...
llvm-svn: 37953
2007-07-06 21:40:13 +00:00
Dan Gohman
b5650ebd6a
Fix typos.
...
llvm-svn: 36994
2007-05-11 21:10:54 +00:00
Devang Patel
8c78a0bff0
Drop 'const'
...
llvm-svn: 36662
2007-05-03 01:11:54 +00:00
Devang Patel
e95c6ad802
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
09f162ca6a
Do not use typeinfo to identify pass in pass manager.
...
llvm-svn: 36632
2007-05-01 21:15:47 +00:00