search for: lifetime_start

Displaying 10 results from an estimated 10 matches for "lifetime_start".

2020 Sep 30
2
lifetime_start/end
Hello, What intrinsics "@llvm.lifetime.start/@llvm.lifetime.end" really do? As per my knowledge, they define the live ranges of variables. In the following code section, they seem redundant. However, when I remove them, the behavior of the code becomes non-deterministic. The live ranges of the variables defined by them are never used in the code. Thanks, --------------- %37 = bitcast
2016 Jun 01
4
Adding BB input/output registers during ISel
...someone from the community will be able to offer a little insight so that if there are major issues here I can find out sooner rather than later. I'd like to add this newly-created big vector value as an input reg for all BBs that reference the original stack object but do not contain it's LIFETIME_START node, and I'd like to add it as an output reg for all BBs that reference the original stack object but do not contain it's LIFETIME_END node. I can create Copy From/ToReg nodes easily enough and I think I can get the reg number using MachineRegisterInfo::createVirtualRegister(). But I don...
2014 Nov 05
3
[LLVMdev] lifetime.start/end clarification
...> > call void @lifetime.start( %p ) > > > > > > ... use %p > > br i1 %c, label %loop, label %exit > > > > > > For this reason, it has been suggested that these intrinsics are > > horribly broken, > > I disagree, these just seem like bugs. lifetime_start are marked as > IntrReadWriteArgMem, but this is not really sufficient to prevent their > removal should the memory be subsequently unused. Plus there are other > places that just delete the lifetime intrinsics, like this in > lib/Transforms/Scalar/SROA.cpp: > > // FIXME: Cu...
2015 Nov 01
2
Re-numbering address space with a pass
Hi all, I would like my optimization pass to change an object's address space that is created by llvm.lifetime.start intrinsic. Because I want to be able to identify them later in a codegen pass. I can get a pointer from the intrinsic using CallInst::getArgOperand() function. However, I don't know what to do with it (or if it is the pointer that I want). How can I change its address space?
2014 Nov 05
4
[LLVMdev] lifetime.start/end clarification
> > This seems fine to me. The optimizer can (soundly) conclude that %p is > dead after the "lifetime.end" (for the two instructions), and dead before > the "lifetime.start" (for the *single* instruction in that basic block, > *not* for the previous BB). This seems like the proper result for this > example, am I missing something? > What if I put that in
2015 Jan 30
1
[LLVMdev] About user of bitcast/GEP instruction
Hi, If the special handling in the meg2reg pass is to look for lifetime intrinsics, shouldn't it cast to <IntrisicInst> and then use getInstrinsicID to check for lifetime_start and lifetime_end ? The thing that I don't understand is the following piece of code, which finds all the users and cast it to <Instruction> then eraseFromParent(). How can this guarantee that it only erase lifetime instrinsics ? -guoqing // The only users of this bitcast/GEP inst...
2014 Nov 05
5
[LLVMdev] lifetime.start/end clarification
...t; > > > > > > > ... use %p > > > br i1 %c, label %loop, label %exit > > > > > > > > > For this reason, it has been suggested that these intrinsics are > > > horribly broken, > > > > I disagree, these just seem like bugs. lifetime_start are marked as > > IntrReadWriteArgMem, but this is not really sufficient to prevent > > their removal should the memory be subsequently unused. Plus there > > are other places that just delete the lifetime intrinsics, like this > > in lib/Transforms/Scalar/SROA.cpp: > &gt...
2015 Jan 30
0
[LLVMdev] About user of bitcast/GEP instruction
----- Original Message ----- > From: "guoqing zhang" <gqzhang81 at gmail.com> > To: llvmdev at cs.uiuc.edu > Sent: Friday, January 30, 2015 4:29:16 AM > Subject: [LLVMdev] About user of bitcast/GEP instruction > > Hi, > > > In PromoteMemoryToRegister.cpp, it seems to rely on the fact that the > only users of bitcast/GEP instruction are lifetime
2015 Jan 30
3
[LLVMdev] About user of bitcast/GEP instruction
Hi, In PromoteMemoryToRegister.cpp, it seems to rely on the fact that the only users of bitcast/GEP instruction are lifetime intrinsics (llvm.lifetime.start/end). I did some searching in llvm/test folder, it seems to be true. However, by reading LLVM IR manual, I don't see any restriction stated on the possible user of bitcast/GEP instruction. So my question is who impose the restriction ?
2017 Mar 29
7
Well-formed @llvm.lifetime.start and @llvm.lifetime.end intrinsics
Hi @all, I hit a problem with Polly-generated code which llvm.org/PR32251 . The problem is how @llvm.lifetime.start is placed after Polly transformed the code. Basically Polly transformed llvm.lifetime.start(&var) [...] llvm.lifetime.end(&var) into if (c) { llvm.lifetime.start(&var) } [...] llvm.lifetime.end(&var) now the llvm.lifetime.end is