[LLVMdev] memory lifetime and invariance

Nick Lewycky nicholas at mxc.ca
Tue May 19 19:58:47 PDT 2009


Chris Lattner wrote:
> On May 19, 2009, at 12:32 AM, Nick Lewycky wrote:
> 
>> Chris Lattner wrote:
>>> FYI, I wrote up some thoughts on this here:
>>> http://nondot.org/sabre/LLVMNotes/MemoryUseMarkers.txt
>>>
>>> The intention is to allow front-ends to express things like "I know
>>> this memory is a constant in this region" and to allow the optimizer/
>>> codegen to perform more aggressive stack slot merging.
>> Very nice!
>>
>> Why does @llvm.invariant.end restate the size when it already takes  
>> the
>> call to @llvm.invariant.start as its first argument? Did you really  
>> mean
>> to allow for the case where part of an object is still invariant and
>> part isn't? If so, isn't it missing an offset as well?
> 
> It is basically because the invariant.start may not be the immediate  
> operand of the invariant.end.  You may end up having phi nodes  
> connecting the two when various phi translation cases occur.

The verifier rejects phi nodes of {} type. Do you actually have a case 
where you want this to happen?

Nick



More information about the llvm-dev mailing list