- Sep 03, 2009
-
-
Dan Gohman authored
that these passes are properly preserved. Fix several transformation passes that claimed to preserve LoopSimplify form but weren't. llvm-svn: 80926
-
Dan Gohman authored
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
-
Duncan Sands authored
memcpy calls. llvm-svn: 80915
-
Andreas Neustifter authored
Removed inverted flag form MaximumSpanningTree, also do not handle so much information to MaximumSpanningTree. llvm-svn: 80911
-
Nick Lewycky authored
llvm-svn: 80903
-
Chris Lattner authored
simplifylibcalls optimization is thus valid for C++ but not C. It's not important enough to worry about for C++ apps, so just remove it. rdar://7191924 llvm-svn: 80887
-
Gabor Greif authored
llvm-svn: 80871
-
Gabor Greif authored
re-commit r66920 (which has been backed out in r66953) I may have more luck this time. I'll back out if needed... llvm-svn: 80858
-
- Sep 02, 2009
-
-
Andreas Neustifter authored
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085890.html) llvm-svn: 80789
-
Andreas Neustifter authored
be instrumented. llvm-svn: 80788
-
Andreas Neustifter authored
llvm-svn: 80781
-
Chris Lattner authored
the instruction BBI points to. llvm-svn: 80768
-
Chris Lattner authored
llvm-svn: 80767
-
Chris Lattner authored
llvm-svn: 80766
-
Chris Lattner authored
return a vector of i1, not i1 itself. llvm-svn: 80761
-
- Sep 01, 2009
-
-
Andreas Neustifter authored
This adds the instrumentation and runtime part of OptimalEdgeProfiling. llvm-svn: 80712
-
Chris Lattner authored
llvm-svn: 80708
-
Chris Lattner authored
llvm-svn: 80706
-
Chris Lattner authored
callgraph. This is now dead because RAUW does the job. llvm-svn: 80703
-
Chris Lattner authored
don't alias. Remove an old and poorly reduced testcase that fails with this transform for reasons unrelated to the original test. llvm-svn: 80693
-
Chris Lattner authored
llvm-svn: 80682
-
Ted Kremenek authored
llvm-svn: 80680
-
Andreas Neustifter authored
Add statistics for regular edge profiling, this enables the comparation of the number of edges inserted by regular and optimal edge profiling. llvm-svn: 80668
-
Chris Lattner authored
for sanity. This didn't turn up any bugs. Change CallGraphNode to maintain its "callsite" information in the call edges list as a WeakVH instead of as an instruction*. This fixes a broad class of dangling pointer bugs, and makes CallGraph have a number of useful invariants again. This fixes the class of problem indicated by PR4029 and PR3601. llvm-svn: 80663
-
- Aug 31, 2009
-
-
Chris Lattner authored
from runOnFunction llvm-svn: 80562
-
Chris Lattner authored
llvm-svn: 80540
-
Chris Lattner authored
llvm-svn: 80539
-
Chris Lattner authored
instcombine is changing stuff. llvm-svn: 80538
-
Chris Lattner authored
changes: SimplifyDemandedBits can't use the builder yet because it has the wrong insertion point. This fixes a crash building MultiSource/Benchmarks/PAQ8p llvm-svn: 80537
-
Chris Lattner authored
instead of CallGraphNode*'s. This also papers over a callgraph problem where a pass (in this case, MemCpyOpt) introduces a new function into the module (llvm.memset.i64) but doesn't add it to the call graph (nor should it, since it is a function pass). While it might be a good idea for MemCpyOpt to not synthesize functions in a runOnFunction(), there is no need for FunctionAttrs to be boneheaded, so fix it there. This fixes an assertion building 176.gcc. llvm-svn: 80535
-
Chris Lattner authored
indirect function pointer, inline it, then go to delete the body. The problem is that the callgraph had other references to the function, though the inliner had no way to know it, so we got a dangling pointer and an invalid iterator out of the deal. The fix to this is pretty simple: stop the inliner from deleting the function by knowing that there are references to it. Do this by making CallGraphNodes contain a refcount. This requires moving deletion of available_externally functions to the module-level cleanup sweep where it belongs. llvm-svn: 80533
-
Chris Lattner authored
argpromotion and structretpromote. Basically, when replacing a function, they used the 'changeFunction' api which changes the entry in the function map (and steals/reuses the callgraph node). This has some interesting effects: first, the problem is that it doesn't update the "callee" edges in any callees of the function in the call graph. Second, this covers for a major problem in all the CGSCC pass stuff, which is that it is completely broken when functions are deleted if they *don't* reuse a CGN. (there is a cute little fixme about this though :). This patch changes the protocol that CGSCC passes must obey: now the CGSCC pass manager copies the SCC and preincrements its iterator to avoid passes invalidating it. This allows CGSCC passes to mutate the current SCC. However multiple passes may be run on that SCC, so if passes do this, they are now required to *update* the SCC to be current when they return. Other less interesting parts of this patch are that it makes passes update the CG more directly, eliminates changeFunction, and requires clients of replaceCallSite to specify the new callee CGN if they are changing it. llvm-svn: 80527
-
- Aug 30, 2009
-
-
Chris Lattner authored
is itself a bitcast. Since we have gep(bitcast(bitcast(y))) in this case, just wait for the two bitcasts to get zapped. This prevents instcombine from confusing some aliasing stuff, and allows it to directly eliminate the load in the testcase. llvm-svn: 80508
-
Chris Lattner authored
llvm-svn: 80507
-
Chris Lattner authored
in a few scalar xforms to simplify things. llvm-svn: 80506
-
Chris Lattner authored
llvm-svn: 80505
-
Chris Lattner authored
llvm-svn: 80504
-
Chris Lattner authored
the new Instcombine builder. llvm-svn: 80501
-
Chris Lattner authored
llvm-svn: 80500
-
Chris Lattner authored
workslist and is set to insert new instructions before the current one. Convert a bunch of stuff that used to call InsertNewInstBefore over to use it, greatly simplifying code and making it more natural. There is still a lot more to go, but this is a good start. llvm-svn: 80492
-