Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] emit after gvn pass?"
2010 May 05
0
[LLVMdev] emit after gvn pass?
On Wednesday 05 May 2010 12:00:18 nonpoly wrote:
> Hello again,
> Just wondering if there is a flag I can pass when compiling with
> llvm-gcc that can emit the llvm IR after the gvn pass (want to see the IR
> after dead code elimination/redundancy elimination). If so, will other
> passes be performed as well? I really just want to see the IR after the
> eliminations only, if
2010 May 01
1
[LLVMdev] Best intermediate form to...
Wow, thanks for the super fast reply!
I was asking about llvm-gcc because I want to be able to work with code that
compiles on GCC (since there is so much already out there), but in an
intermediate form. So I take it that clang plans on being able to compile
code that compiles on GCC? I'm assuming that's what they mean by "GCC
compatibility" on http://clang.llvm.org/ ;p
On a
2018 Apr 18
1
[RFC] Making GVN able to visit the same block more than once
Introduction
============
I'm currently in the middle of what initially looked to be a simple change in
GVN but is turning out to have unexpected consequences that are turning out to
be quite difficult to resolve, so I thought I'd send out an RFC to make sure
that I'm not barking up the wrong tree with how I'm trying to do this.
Motivation and current behaviour
2015 Jan 17
3
[LLVMdev] loop multiversioning
Does LLVM have loop multiversioning ? it seems it does not with clang++ -O3
-mllvm -debug-pass=Arguments program.c -c
bash-4.1$ clang++ -O3 -mllvm -debug-pass=Arguments fast_algorithms.c -c
clang-3.6: warning: treating 'c' input as 'c++' when in C++ mode, this
behavior is deprecated
Pass Arguments: -datalayout -notti -basictti -x86tti -targetlibinfo -no-aa
-tbaa -scoped-noalias
2016 Feb 09
3
[GVN] same sequence of instructions in if and else branch
Hello,
I found that GVN doesn't promote identical sequence of instructions in if and else branch to their common predecessors. For example, for the following code snippet
pred:
…
br i1 %cmp, label %if, label %else
if:
%incdec.ptr.1 = getelementptr inbounds i8, i8* %ptr, i64 1
%cast1 = ptrtoint i8* %incdec.ptr.1 to i64
…
else:
%incdec.ptr.2 = getelementptr inbounds i8, i8* %ptr,
2016 Feb 09
2
[GVN] same sequence of instructions in if and else branch
and by "right thing" i mean it can hoist if you want and it can prove it
will not extend the live range.
Note that VBE (very busy expressions) is a code size optimization only. It
does not save time.
On Tue, Feb 9, 2016 at 12:26 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> This GVN does not do that, this is correct. It is a very simple GVN. All
> phi nodes are
2016 Feb 09
2
[GVN] same sequence of instructions in if and else branch
There is a phi-node "%phi = phi i64 [%cast1, %if], [%cast2, %else]" in the common successor. The actual control flow is a bit more complex, but there is a common successor block, and %cast1 and %cast2 are the two values that the phi node in the common successor takes.
Does the existence of the phi node affect optimization?
Thanks,
Taewook
From: <mats.o.petersson at
2017 Dec 21
2
Pass ordering - GVN vs. loop optimizations
Hi,
This is Ariel from the Rust team again.
I am having another pass ordering issue. Looking at the pass manager at
https://github.com/llvm-mirror/llvm/blob/7034870f30320d6fbc74effff539d946018cd00a/lib/Transforms/IPO/PassManagerBuilder.cpp
(the early SimplifyCfg now doesn't sink stores anymore! I can't wait until
I can get to use that in rustc!) I find that the loop optimization group
2011 May 04
0
[LLVMdev] GVN Infinite loop
On May 3, 2011, at 3:25 PM, Arushi Aggarwal wrote:
> Hi,
>
> GVN seems to be running in an infinite loop on my example. I have attached the output of one iteration. I cant seem to reduce the testcase either.
>
> Any pointers to how to reduce the test case.
Bugzilla can reduce testcases that cause infinite loops (it has a -timeout flag), I'd try it. Even if this doesn't
2016 May 04
2
GVN pass: does global value numbering remove duplicate computations in loops?
Hello,
I was hoping to get some clarification on the aim of the GVN pass. I have
been reading a bit about global value numbering, and from what I
understand, there are polynomial time algorithms for removing duplicate
computations from loops[1].
I have an example program[2] which computes the sum of an array twice, in
two separate accumulators.
Here, sum0 and sum1 are both sums of the array A.
2011 May 03
3
[LLVMdev] GVN Infinite loop
Hi,
GVN seems to be running in an infinite loop on my example. I have attached
the output of one iteration. I cant seem to reduce the testcase either.
Any pointers to how to reduce the test case.
THanks,
Arushi
GVN iteration: 8
GVN WIDENED LOAD: %0 = load i8* getelementptr inbounds
(%struct.CHESS_POSITION* @search, i64 0, i32 23), align 2, !dbg !875
TO: %1 = load i16* bitcast (i8*
2015 Dec 02
2
GlobalsAA from GVN
Hi,
I've noticed that alias analysis queries arising from GVN do not use the
results from GlobalsAA.
The last call to AAResultsWrapperPass::runOnFunction() before GVN does not
add GlobalsAAWrapperPass due to unavailability. This leads to the alias
queries from GVN not having any globals mod-ref info.
Is this a known issue? and is there any way to have globals mod-ref info
available for GVN?
2018 Apr 10
0
Miscompilation bugs in GVN.cpp and PromoteMemoryToRegister.cpp?
On Tue, Apr 10, 2018 at 3:09 PM, Daniel Berlin via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
>
>
> On Tue, Apr 10, 2018 at 10:28 AM, Friedman, Eli via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> On 4/9/2018 8:19 PM, Jeehoon Kang via llvm-dev wrote:
>>
>> Dear llvm-dev,
>>
>>
>> Hi! We're collecting mis-compilation
2014 May 03
2
[LLVMdev] Testcases where GVN uses too much memory?
I've heard a few times, "GVN uses too much memory." The real fix
is probably a rewrite of some sort, but that's not what this email
is about.
I have a few patches that should *incrementally* reduce its memory
usage. Keyword being "should", because I haven't observed an
improvement... in fact, I haven't seen it using much memory at all.
Does anyone have a
2018 Apr 10
0
Miscompilation bugs in GVN.cpp and PromoteMemoryToRegister.cpp?
On 4/9/2018 8:19 PM, Jeehoon Kang via llvm-dev wrote:
> Dear llvm-dev,
>
>
> Hi! We're collecting mis-compilation bugs in gvn and mem2reg since
> 3.7.1. Specifically, We're interested in bugs in the following files:
>
> llvm/lib/Transforms/Scalar/GVN.cpp
> llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
3.7 was released over two years ago; there have been
2018 Apr 10
2
Miscompilation bugs in GVN.cpp and PromoteMemoryToRegister.cpp?
On Tue, Apr 10, 2018 at 10:28 AM, Friedman, Eli via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On 4/9/2018 8:19 PM, Jeehoon Kang via llvm-dev wrote:
>
> Dear llvm-dev,
>
>
> Hi! We're collecting mis-compilation bugs in gvn and mem2reg since
> 3.7.1. Specifically, We're interested in bugs in the following files:
>
> llvm/lib/Transforms/Scalar/GVN.cpp
2016 Apr 18
3
GVN pass limitation.
Hello,
We are now facing a bug caused by the GVN pass, only part of the code was
optimized. I have found that the problem is cause by an Limit in
lib/Analysis/MemoryDependenceAnalysis.cpp
00055 static cl::opt<unsigned> BlockScanLimit(
00056 "memdep-block-scan-limit", cl::Hidden, cl::init(100),
00057 cl::desc("The number of instructions to scan in a block in
2016 May 04
2
GVN pass: does global value numbering remove duplicate computations in loops?
----- Original Message -----
> From: "Daniel Berlin via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Amos Robinson" <amos.robinson at gmail.com>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Tuesday, May 3, 2016 7:39:54 PM
> Subject: Re: [llvm-dev] GVN pass: does global value numbering remove
> duplicate computations in
2015 Dec 03
3
GlobalsAA from GVN
Hi James,
Thanks for the help. From the log, I could infer that SLP vectorizer is not
preserving alias analysis, preventing GVN from getting the info. Although
the first function to get compiled has GlobalsAA available during GVN, rest
of them do not as SLP vectorizer run on that function invalidates GlobalsAA
which is a module pass. Is there a way to force re-computation of a
particular
2013 Sep 22
0
[LLVMdev] Why total number of store instructions increased in case of gvn with reg2mem?
Might have to do with GVN's PRE (partial redundancy elimination), which tends to increase code size.
H.
----- Original Message -----
From: Abhinash Jain
Sent: 09/22/13 01:17 AM
To: llvmdev at cs.uiuc.edu
Subject: [LLVMdev] Why total number of store instructions increased in case of gvn with reg2mem?
Below are the 4 cases out of which for the first 3 cases am able to understand the variation