[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...
More information about the llvm-dev