Displaying 20 results from an estimated 300 matches similar to: "Calling LowerSwitchPass causing crash in llvm 9"
2019 Dec 27
2
Calling LowerSwitchPass causing crash in llvm 9
There is no “switch” instruction in the target object code. It usually gets compiled into a switch table with instructions to load from it. Afaik
Zhang
> 在 2019年12月26日,17:49,n3v3rm03 via llvm-dev <llvm-dev at lists.llvm.org> 写道:
>
> Sorry I found an early thread discussing this question. I guess I shouldn't create lower switch pass like this.
> However, I have another
2017 Aug 07
2
vrp
Hello,
I am trying to figure out, what vrp propagation does in llvm. I tried this
program:
#include <stdio.h>
int main() {
int s = 0;
int j = 0;
for (int i = 0; i < 100; i++) {
j = j+i+1;
s+=j;
}
return (s+j);
}
And got this under optimized version ( I don't want everything to be
eliminated)
define i32 @main()
2017 Aug 07
2
vrp
On Mon, Aug 7, 2017 at 2:14 AM, Anastasiya Ruzhanskaya via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I am trying to print it like this (maybe here is smth wrong?)
>
>
> LazyValueInfo &LV = getAnalysis<LazyValueInfoWrapperPass>().getLVI();
> DominatorTree &DT =
> getAnalysis<DominatorTreeWrapperPass>().getDomTree();
> LV.printLVI(F,
2019 Dec 20
3
What's the go-to method to call other transform passes in LLVM9?
Hi:
In my in-house transform passes I needs to properly lower Switch/Invoke and PhiNodes, prior to LLVM9 I just call createLowerSwitchPass() and run it. However in LLVM9 doing this would assert out with error message:
Assertion failed: (Resolver && "Pass has not been inserted into a PassManager object!"), function getAnalysis, file
2019 Jan 02
2
AA pass dependencies
On Wed, Jan 2, 2019 at 1:34 AM Markus Lavin <markus.lavin at ericsson.com>
wrote:
> To be more specific I am trying to use LVI from inside BasicAA to improve
> some cases that turned out to be relevant for our downstream target.
>
>
>
> The code is in https://reviews.llvm.org/D55107 and I have problems with a
> failing assert in the LazyValueInfoWrapperPass destructor
2018 Dec 27
2
AA pass dependencies
Hi,
Looking at the output of e.g.
llc -mtriple=x86_64-unknown-linux-gnu test/CodeGen/X86/pre-coalesce.ll -debug-pass=Executions
Why is it that 'Basic Alias Analysis (stateless AA impl)' is freed much earlier than 'Function Alias Analysis Results' even though the latter depends on the former (at least AFAICT by looking at lib/Analysis/AliasAnalysis.cpp)?
Thanks!
-Markus
2018 Dec 31
1
AA pass dependencies
The management of passes in the legacy PM is ... highly confusing.
Do you have a specific problem you're trying to solve or a specific
question?
On Thu, Dec 27, 2018 at 6:47 AM Markus Lavin via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Hi,
>
>
> Looking at the output of e.g.
>
>
> llc -mtriple=x86_64-unknown-linux-gnu test/CodeGen/X86/pre-coalesce.ll
>
2017 Aug 07
2
vrp
I am primarily interested in phi nodes and their induction variables, in
ValueTracking file there is an analysis of them, but if the upper bound is
inf, it is not working?
2017-08-07 11:41 GMT+02:00 Anastasiya Ruzhanskaya <
anastasiya.ruzhanskaya at frtk.ru>:
> So, it is not supported to determine by this instruction : %cmp = icmp slt
> i32 %i.03, 99,
> that %i.03 = phi i32 [ 0,
2019 Jan 19
3
Can't find symbol from llvm backend
No, I don't. But I’m sure it is not optimized because I can see this
variable in the final binary file emitted.
Do you mean if I don’t refer to this variable in the front end, then I
can’t see it in the backend? (although it’s in the final binary file)
Thank you!
2019年1月19日(土) 2:00 <paul.robinson at sony.com>:
> Do you have a use of the new variable as well? If not, it might be
2019 Jan 18
2
Can't find symbol from llvm backend
Hi, I am new to llvm.
I create a global variable called "test_llvm_var" in the front end function
pass like this:
new GlobalVariable(*m, tmp->getType(), true,
llvm::GlobalValue::ExternalLinkage, tmp, "test_llvm_var");
where tmp is a function.
Then I tried to access this global variable in the back end
MachineFunctionPass like this:
MCContext&
2005 Oct 17
1
[LLVMdev] about switch and select instructions in SparcV9
Hi:
In the file of SparcV9BurgISel.cpp, you said you didn't implement the
"Switch" instruction and I also can't find how the "Select" instruction
is implemented. So do you do some work to handle these two kind of
instructions in other parts? Where can I find it? Thank you!
--
Shuhan
2019 Dec 01
4
ConstantRange modelling precision?
Hello.
This question has come up in https://reviews.llvm.org/D70043
There, i'm teaching ConstantRange how no-wrap flags affect
the range of `mul` instruction, with end goal of exploiting
this in LVI/CVP.
There are certain combinations of ranges and no-wrap flags
that result in always-overflowing `mul`. For example,
`mul nuw nsw i4 [2,0), [4,0)` always overflows:
2011 Mar 14
2
[LLVMdev] How to integrate an analysis into LVI?
Hi guys,
I have an analysis that is able to answer questions like this: given an
integer variable, what is the interval of values that this variable can
assume during the program's execution?
I want to integrate this analysis into LLVM and it seems LVI (Lazy Value
Info) is the best place to do this kind of stuff. Can someone give some
hints about what I have to do to integrate my analysis
2011 Mar 18
0
[LLVMdev] How to integrate an analysis into LVI?
Hi guys,
I am trying to figure out how to use your Lazy Value Info pass, but I am
having some questions. First, it seems that the implementation contains
infra-structure to deal with range intervals, but the main interface only
gives the client information about which values are constants. Is this true?
Second, reading the code I see that the ranges are being computed, but I
could not tell if
2006 May 03
1
[LLVMdev] Patch for transform dependencies
Hi,
A number of transforms are actually independent, so here's a partial fix. I
updated the
dependencies in a cluster of transforms: LowerSwitch, Mem2Reg, LowerSelect,
LowerAllocations, UnifyFunctionExitNodes.
The patch has been tested, but not extensively. PassManager doesn't
complain, and
the result of a test pass that requires all these (except for
LowerAllocations) together
works
2016 Jan 13
5
High memory use and LVI/Correlated Value Propagation
Hi all,
with the current trunk I have two major cases where clang needs more
than 2GB memory for compiling programs with -O2. One is related to GVN
and MemoryDependenceAnalysis and has a pending patch. The other is
related to the Correlated Value Propagation and Lazy Value Information
cache. Attached is a heap profile for one of the relevant test cases.
Looking at the sources, I don't see any
2016 Jul 06
4
Should analyses be able to hold AssertingVH to IR? (related to PR28400)
While building test-suite with the new PM, I ran into problems with
AssertingVH being triggered which is obvious in retrospect:
https://llvm.org/bugs/show_bug.cgi?id=28400
Both cases I ran into revolve around LVI which holds AssertingVH.
Essentially, what happens is this:
1. LVI holds an AssertingVH pointing at a BasicBlock
2. Some other pass ends up deleting that BB (e.g. SimplifyCFG)
3. BOOM
2016 Sep 27
4
Inferring nsw/nuw flags for increment/decrement based on relational comparisons
On 2016-09-27 02:28, Philip Reames wrote:
> On 09/20/2016 12:05 PM, Matti Niemenmaa via llvm-dev wrote:
>> I posted some questions related to implementing inference of nsw/nuw
>> flags based on known icmp results to Bug 30428 (
>> https://llvm.org/bugs/show_bug.cgi?id=30428 ) and it was recommended
>> that I engage a wider audience by coming here. The minimal context is
2016 Jan 14
2
High memory use and LVI/Correlated Value Propagation
----- Original Message -----
> From: "Daniel Berlin via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "Joerg Sonnenberger" <joerg at britannica.bec.de>, "llvm-dev"
> <llvm-dev at lists.llvm.org>
> Sent: Thursday, January 14, 2016 10:38:10 AM
> Subject: Re: [llvm-dev] High memory use and LVI/Correlated Value
> Propagation
> On
2016 Jan 14
3
High memory use and LVI/Correlated Value Propagation
On Wed, Jan 13, 2016 at 03:38:24PM -0800, Philip Reames wrote:
> I don't think that arbitrary limiting the complexity of the search is the
> right approach. There are numerous ways the LVI infrastructure could be
> made more memory efficient. Fixing the existing code to be memory efficient
> is the right approach. Only once there's no more low hanging fruit should
> we