Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] Benchmarks for dead code elimination?"
2013 Jun 01
0
[LLVMdev] Dead Code Elimination and undef values
Hi Cristianno,
On 01/06/13 01:49, Cristianno Martins wrote:
> Hello there,
>
> I'm writing a transformation pass for LLVM, and I hoped to use dce to clean up
> the resulting code after my pass. I just have some questions about LLVM's dce
> implementation.
>
> Well, my transformation is a function pass, and, after the changes are made,
> some instructions are not
2013 May 31
2
[LLVMdev] Dead Code Elimination and undef values
Hello there,
I'm writing a transformation pass for LLVM, and I hoped to use dce to clean
up the resulting code after my pass. I just have some questions about
LLVM's dce implementation.
Well, my transformation is a function pass, and, after the changes are
made, some instructions are not needed anymore. In order to easily get rid
of those instructions, I'm setting all their uses to
2016 Jun 30
0
New Aggressive Dead Code Elimination (updated)
I request additional review of diff: http://reviews.llvm.org/D18762
We noticed that a source of performance difference between llvm and
gcc was in dead code elimination. This diff replaces ADCE with a new
implementation which will remove control flow and, under option, also
remove may-be-infinite loops which are dead. The patch current has
"ADCE_new.h" and "ADCE_new.cpp" to
2008 May 21
2
[LLVMdev] Optimization passes organization and tradeoffs
On Wed, 21 May 2008, Nicolas Capens wrote:
> Thanks for the detailed explanations. I have a few remaining questions:
>
> Am I correct that ScalarReplAggregates is hardly more expensive than Mem2Reg
> and therefore generally preferable?
Right.
> What would be the code quality implications of using "-dce -simplifycfg"
> instead of -adce? As far as I understand the
2016 Mar 23
0
RFC: New aggressive dead code elimination pass
David Callahan via llvm-dev <llvm-dev at lists.llvm.org> writes:
> Hi,
>
> 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.
>
>
2008 May 21
0
[LLVMdev] Optimization passes organization and tradeoffs
Hi Chris,
Thanks for the detailed explanations. I have a few remaining questions:
Am I correct that ScalarReplAggregates is hardly more expensive than Mem2Reg
and therefore generally preferable?
What would be the code quality implications of using "-dce -simplifycfg"
instead of -adce? As far as I understand the algorithms involved, -dce would
hardly ever miss a dead instruction if
2016 Mar 23
0
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> wrote:
>
> Hi,
>
> 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
2016 Mar 25
0
RFC: New aggressive dead code elimination pass
Yeah, that was gonna be my question.
If so, my view is we should just bite the bullet and start threading post
dominance through the compiler.
(assuming anyone wants to help. I'm tackling the memoryssa updating stuff
with george ATM).
On Thu, Mar 24, 2016 at 7:04 PM, Hal Finkel <hfinkel at anl.gov> wrote:
> [+Danny]
>
> ----- Original Message -----
> > From:
2010 Nov 24
2
[LLVMdev] how to eliminate dead infinite loops?
On 11/24/2010 03:36 PM, Nick Lewycky wrote:
> Andrew Clinton wrote:
>> Most of my programs contain loops that the LoopDeletion pass is unable
>> to remove. It appears that the following code in LoopDeletion.cpp:152
>> is the culprit:
>>
>> ScalarEvolution& SE = getAnalysis<ScalarEvolution>();
>> const SCEV *S =
2016 Mar 25
2
RFC: New aggressive dead code elimination pass
[+Danny]
----- Original Message -----
> From: "Justin Bogner via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "David Callahan via llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Wednesday, March 23, 2016 12:36:50 PM
> Subject: Re: [llvm-dev] RFC: New aggressive dead code elimination pass
>
> David Callahan via llvm-dev <llvm-dev at
2016 Mar 23
4
RFC: New aggressive dead code elimination pass
Hi,
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
2013 Sep 04
2
[LLVMdev] How to prevent Dead-Code-Elimination pass removing pseudo-instructions ADJCALLSTACK(DOWN | UP)?
Hi, LLVMer.
I use pseudo-instructions ADJCALLSTACK(DOWN | UP) to adjust call stacks,
and it works well with "-O0" option. However, ADJCALLSTACK(DOWN | UP) are
removed during codegen DCE pass under "-O2".
What have I ignored?
Thanks.
--
杨勇勇 (Yang Yong-Yong)
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2013 Sep 04
0
[LLVMdev] How to prevent Dead-Code-Elimination pass removing pseudo-instructions ADJCALLSTACK(DOWN | UP)?
You should set them as using/defining your stack register with :
let Defs = [STACKREG], Uses = [STACKREG] in {
__ YOUR INSTRUCTION __
}
Marcello
On 04/09/13 07:56, 杨勇勇 wrote:
> I use pseudo-instructions ADJCALLSTACK(DOWN | UP) to adjust call
> stacks, and it works well with "-O0" option. However,
> ADJCALLSTACK(DOWN | UP) are removed during codegen DCE pass under
2016 Aug 02
2
[LLVM] New Dead Code Elimination
You should not expect pretty much any perf uplifts from any DCE, ever.
If it does, it's mostly luck (better cache behavior, etc).
You should expect size improvements ;)
On Mon, Aug 1, 2016 at 10:51 PM, Das, Dibyendu via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> What kind of perf. uplifts are expected and in what benchmarks/apps ?
>
>
>
> *From:* llvm-dev
2016 Mar 25
0
RFC: New aggressive dead code elimination pass
Make most things update post-dominance info and preserve it.
Our other alternative to not take up too much time seems to be invasive
surgery on how BB successors/predecessors work so they are a constant time
array. I say this because GCC recomputes post-dominators roughly 15-19
times per compilation, and can do it about 3-5x faster than we can. All
profiling i've done basically says all our
2010 Nov 24
0
[LLVMdev] how to eliminate dead infinite loops?
Andrew Clinton wrote:
> Most of my programs contain loops that the LoopDeletion pass is unable
> to remove. It appears that the following code in LoopDeletion.cpp:152
> is the culprit:
>
> ScalarEvolution& SE = getAnalysis<ScalarEvolution>();
> const SCEV *S = SE.getMaxBackedgeTakenCount(L);
> if (isa<SCEVCouldNotCompute>(S))
> return
2016 Mar 25
2
RFC: New aggressive dead code elimination pass
What do you have in mind here?
On Thu, Mar 24, 2016, 7:28 PM Daniel Berlin via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Yeah, that was gonna be my question.
> If so, my view is we should just bite the bullet and start threading post
> dominance through the compiler.
> (assuming anyone wants to help. I'm tackling the memoryssa updating stuff
> with george ATM).
2016 Jan 29
2
DCE in the presence of control flow.
Thanks
Also I found that some cases are also caught by a specialized routine to remove dead loops which is missing the case I noticed.
odavd
From: Daniel Berlin <dberlin at dberlin.org<mailto:dberlin at dberlin.org>>
Date: Thursday, January 28, 2016 at 8:45 PM
To: David Callahan <dcallahan at fb.com<mailto:dcallahan at fb.com>>, LLVM Dev Mailing list <llvm-dev at
2008 May 20
4
[LLVMdev] Optimization passes organization and tradeoffs
On May 20, 2008, at 8:57 AM, David Greene wrote:
> On Tuesday 20 May 2008 07:03, Nicolas Capens wrote:
>
>> 1) Does ScalarReplAggregates totally superscede
>> PromoteMemoryToRegister? I
>
> Nope, they are different. Mem2Reg is really important if you want
> register
> allocation.
Actually SROA does fully subsume Mem2Reg. It iterates between breaking
up
2016 Jan 30
0
DCE in the presence of control flow.
In practice, APT is not faster to build than rdf.
The df calculator we use is linear time and quite fast.
Updating is also pretty trivial since it's only deletes of dead and
unreachable code. So anything it reached can be replaced with undef in
most cases.
Cd-dce is not slower in GCC than dce
On Fri, Jan 29, 2016, 8:31 PM David Callahan <dcallahan at fb.com> wrote:
> I think you