Nick Lewycky
9bfe06b4d6
When promoting an alloca to registers discard any lifetime intrinsics.
...
llvm-svn: 133251
2011-06-17 10:09:00 +00:00
Cameron Zwarich
462b5db500
Make LoadAndStorePromoter preserve debug info and create llvm.dbg.values when
...
promoting allocas to SSA variables. Fixes <rdar://problem/9479036>.
llvm-svn: 131953
2011-05-24 03:10:43 +00:00
Jay Foad
c146569beb
Remove unused STL header includes.
...
llvm-svn: 130068
2011-04-23 19:53:52 +00:00
Jay Foad
32fce4d563
PR9214: Convert Metadata API to use ArrayRef.
...
llvm-svn: 129932
2011-04-21 19:59:31 +00:00
Jay Foad
53632b7c03
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
...
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537
2011-03-30 11:28:46 +00:00
Devang Patel
3506f02e33
Refactor into a separate utility function.
...
llvm-svn: 127832
2011-03-17 21:58:19 +00:00
Devang Patel
29b946c0bd
Do not use DIFactory. Use DIBuilder.
...
llvm-svn: 126398
2011-02-24 18:49:55 +00:00
Cameron Zwarich
3295a3b4db
Convert two std::vectors to SmallVectors for a 3.4% speedup running -scalarrepl
...
on test-suite + SPEC2000 & SPEC2006.
llvm-svn: 124068
2011-01-23 08:03:04 +00:00
Cameron Zwarich
4ccaa5dccc
Convert a std::map to a DenseMap for another 1.7% speedup on -scalarrepl.
...
llvm-svn: 123732
2011-01-18 04:50:38 +00:00
Cameron Zwarich
c35c06d0d4
Make a std::vector a SmallVector<*, 32> like the other vectors in the same
...
function. This seems to be about a 1.5% speedup of -scalarrepl on test-suite
with SPEC2000 and SPEC2006.
llvm-svn: 123731
2011-01-18 04:41:32 +00:00
Cameron Zwarich
e39e476305
Remove outdated references to dominance frontiers.
...
llvm-svn: 123724
2011-01-18 03:53:26 +00:00
Cameron Zwarich
0a1975802e
Roll r123609 back in with two changes that fix test failures with expensive
...
checks enabled:
1) Use '<' to compare integers in a comparison function rather than '<='.
2) Use the uniqued set DefBlocks rather than Info.DefiningBlocks to initialize
the priority queue.
The speedup of scalarrepl on test-suite + SPEC2000 + SPEC2006 is a bit less, at
just under 16% rather than 17%.
llvm-svn: 123662
2011-01-17 17:38:41 +00:00
Cameron Zwarich
77e381e302
Roll out r123609 due to failures on the llvm-x86_64-linux-checks bot.
...
llvm-svn: 123618
2011-01-17 07:26:51 +00:00
Cameron Zwarich
e35642342b
Eliminate the use of dominance frontiers in PromoteMemToReg. In addition to
...
eliminating a potentially quadratic data structure, this also gives a 17%
speedup when running -scalarrepl on test-suite + SPEC2000 + SPEC2006. My initial
experiment gave a greater speedup around 25%, but I moved the dominator tree
level computation from dominator tree construction to PromoteMemToReg.
Since this approach to computing IDFs has a much lower overhead than the old
code using precomputed DFs, it is worth looking at using this new code for the
second scalarrepl pass as well.
llvm-svn: 123609
2011-01-17 01:08:59 +00:00
Chris Lattner
e396e846b4
split dom frontier handling stuff out to its own DominanceFrontier header,
...
so that Dominators.h is *just* domtree. Also prune #includes a bit.
llvm-svn: 122714
2011-01-02 22:09:33 +00:00
Duncan Sands
f0224e2119
Don't keep track of inserted phis in PromoteMemoryToRegister: the information
...
is never used. Patch by Cameron Zwarich.
llvm-svn: 119963
2010-11-22 09:41:24 +00:00
Duncan Sands
74aeda71dd
Have a few places that want to simplify phi nodes use SimplifyInstruction
...
rather than calling hasConstantValue. No intended functionality change.
llvm-svn: 119352
2010-11-16 17:41:24 +00:00
Chris Lattner
d20a060467
remove some dead code.
...
llvm-svn: 111344
2010-08-18 02:41:56 +00:00
Dan Gohman
66ae369e76
Don't look up the "dbg" metadata kind by name.
...
llvm-svn: 108961
2010-07-20 23:09:34 +00:00
Gabor Greif
a5fdd0955d
cache result of operator*
...
llvm-svn: 107966
2010-07-09 14:18:23 +00:00
Dan Gohman
6a3c46ad49
Use A.append(...) instead of A.insert(A.end(), ...) when A is a
...
SmallVector, and other SmallVector simplifications.
llvm-svn: 106452
2010-06-21 19:47:52 +00:00
Devang Patel
8bf4434e6e
Copy location info for current function argument from dbg.declare if respective store instruction does not have any location info.
...
llvm-svn: 105490
2010-06-04 22:27:30 +00:00
Devang Patel
46e30f80bf
Fix typo.
...
llvm-svn: 104914
2010-05-28 01:29:50 +00:00
Devang Patel
d7be13168c
Fix typo.
...
llvm-svn: 104913
2010-05-28 01:17:51 +00:00
Devang Patel
8d4eb26f24
Do not drop location info for inlined function args.
...
llvm-svn: 104884
2010-05-27 20:25:04 +00:00
Douglas Gregor
2f2491405a
Fixes for Microsoft Visual Studio 2010, from Steven Watanabe!
...
llvm-svn: 103457
2010-05-11 06:17:44 +00:00
Devang Patel
0638b539bb
Wrap const MDNode * inside DIDescriptor.
...
llvm-svn: 103295
2010-05-07 20:54:48 +00:00
Devang Patel
5b2d1c23a7
Use overloaded operators instead of DIDescriptor::getNode()
...
llvm-svn: 103276
2010-05-07 18:19:32 +00:00
Gabor Greif
df5013e4d8
rename use_const_iterator to const_use_iterator for consistency's sake
...
llvm-svn: 99564
2010-03-25 23:06:16 +00:00
Duncan Sands
1b33dd3c83
There are two ways of checking for a given type, for example isa<PointerType>(T)
...
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
2010-02-16 11:11:14 +00:00
Victor Hernandez
60060d030c
mem2reg erases the dbg.declare intrinsics that it converts to dbg.val intrinsics
...
llvm-svn: 94763
2010-01-29 00:01:35 +00:00
Chris Lattner
deabd1cfb6
some cleanups.
...
llvm-svn: 94649
2010-01-27 02:12:20 +00:00
Chris Lattner
354782f9b9
no need to check for null
...
llvm-svn: 94648
2010-01-27 02:04:20 +00:00
Victor Hernandez
e6321dc910
When converting dbg.declare to dbg.value, attach promoted store's debug metadata to dbg.value
...
llvm-svn: 94634
2010-01-27 00:44:36 +00:00
Victor Hernandez
3a9845ecf7
Switch AllocaDbgDeclares to SmallVector and don't leak DIFactory
...
llvm-svn: 94567
2010-01-26 18:57:53 +00:00
Victor Hernandez
f12e8a120f
In mem2reg, for all alloca/stores that get promoted where the alloca has an associated llvm.dbg.declare instrinsic, insert an llvm.dbg.var intrinsic before each store.
...
llvm-svn: 94493
2010-01-26 02:42:15 +00:00
Victor Hernandez
253c09eb8f
Revert r94260 until findDbgDeclare() is made more efficient
...
llvm-svn: 94432
2010-01-25 17:52:13 +00:00
Victor Hernandez
7ce9006ba0
In mem2reg, for all alloca/stores that get promoted where the alloca has an associated llvm.dbg.declare instrinsic, insert an llvm.dbg.var intrinsic before each store
...
llvm-svn: 94260
2010-01-23 00:17:34 +00:00
Victor Hernandez
e4d8ef8fc4
Keep ignoring pointer-to-pointer bitcasts
...
llvm-svn: 94194
2010-01-22 19:05:05 +00:00
Victor Hernandez
ef9e66c909
DbgInfoIntrinsic no longer appear in an instruction's use list
...
llvm-svn: 94113
2010-01-21 23:08:36 +00:00
Dan Gohman
e4a22bdd4a
Use do+while instead of while for loops which obviously have a
...
non-zero trip count. Use SmallVector's pop_back_val().
llvm-svn: 92734
2010-01-05 16:27:25 +00:00
Chris Lattner
587962c667
Remove isPod() from DenseMapInfo, splitting it out to its own
...
isPodLike type trait. This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.
llvm-svn: 91421
2009-12-15 07:26:43 +00:00
Chandler Carruth
f5a2d328af
Don't leave pointers uninitialized in the default constructor. GCC complains
...
about the potential use of these uninitialized members under certain conditions.
llvm-svn: 91239
2009-12-13 07:04:45 +00:00
Nick Lewycky
b3bedf4b2d
Pull LLVMContext out of PromoteMemToReg.
...
llvm-svn: 89645
2009-11-23 03:50:44 +00:00
Chris Lattner
9fc809ca55
fix a bug exposed by moving SRoA earlier which caused a crash building kc++
...
llvm-svn: 85786
2009-11-02 04:37:17 +00:00
Nick Lewycky
2b8400628d
Remove includes of Support/Compiler.h that are no longer needed after the
...
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
2009-10-25 06:57:41 +00:00
Nick Lewycky
711c726c97
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.
...
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
2009-10-25 06:33:48 +00:00
Chris Lattner
f5afe18457
tidy up
...
llvm-svn: 82488
2009-09-21 22:26:02 +00:00
Dan Gohman
66c853f17f
Change PHINode::hasConstantValue to have a DominatorTree argument
...
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.
llvm-svn: 80920
2009-09-03 15:34:35 +00:00
Dan Gohman
1c41d60c4a
Fix a bunch of namespace pollution.
...
llvm-svn: 78363
2009-08-07 01:32:21 +00:00