[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