[llvm-dev] DCE in the presence of control flow.
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Thu Jan 28 20:25:18 PST 2016
----- Original Message -----
> From: "David Callahan via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "LLVM Dev Mailing list" <llvm-dev at lists.llvm.org>
> Sent: Wednesday, January 27, 2016 3:56:33 PM
> Subject: [llvm-dev] DCE in the presence of control flow.
> I have been looking at some internal codes looking for differences
> between Clang (specifically 3.7.1) and gcc (typically 4.8.1 but
> sometimes later).
> One area where I bumped into was dead code elimination in the
> presence of complex control flow. I note that the “aggressive dead
> code elimination” (ADCE.cpp) treats all branch operations as live (
> isa<TerminatorInst>(I)). Doing more requires some approximation to
> control dependence.
Can you provide a small example where this matters?
-Hal
> I note SimplifyCFG indirectly handles some simple cases. It will
> speculate the contents of a basic block into a predecessor but this
> is insufficient for more complex structures. This probably
> cherry-picks the most common cases by frequency.
> Have their been prior attempts strengthen dead code elimination
> w.r.t. control flow? If so, any guidance on what went wrong?
> Thanks
> David
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160128/e147725e/attachment.html>
More information about the llvm-dev
mailing list