[llvm-dev] RFC: New aggressive dead code elimination pass

David Callahan via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 4 09:38:04 PDT 2016

I posted the patch http://reviews.llvm.org/D18762

In the case where loops are retained, current dead code elimination plus some transformations in SimplifyCFG cover most common cases. This version however does provide a unified approach which allows extend to removal of may-be-infinite)loops.

From: Matthias Braun <matze at braunis.de<mailto:matze at braunis.de>>
Date: Wednesday, March 23, 2016 at 1:07 PM
To: David Callahan <dcallahan at fb.com<mailto:dcallahan at fb.com>>
Cc: LLVM Dev Mailing list <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>>
Subject: Re: [llvm-dev] RFC: New aggressive dead code elimination pass

Can you give an example of a case that is missed today but catched by your pass?

On Mar 23, 2016, at 6:43 AM, David Callahan via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:


I have a new variant of Aggressive Dead Code Elimination that also removes dead branching. It is designed to minimize the cost of control-dependence analysis in the common case where almost the entire program is live. It also can optionally remove dead but may-be-infinite loops.

When enabled for –O3 (replacing current ADCE pass) and removing loops, impact on SPEC2006 is in the noise but it impacts internal benchmarks suites 1-2% with a comparable increase in compile time.   My expectation would be to enable –O3 only until we have some experience with cost but I suspect it should be fine –O2.

What information would the community like to see about such a change before I put up a diff and (including tweaks to unit tests).

LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160404/83eb248f/attachment.html>

More information about the llvm-dev mailing list