[LLVMdev] [RFC] Stackmap and Patchpoint Intrinsic Proposal

Philip R listmail at philipreames.com
Tue Oct 22 09:53:06 PDT 2013


On 10/17/13 10:39 PM, Andrew Trick wrote:
> This is a proposal for adding Stackmaps and Patchpoints to LLVM. The
> first client of these features is the JavaScript compiler within the
> open source WebKit project.
>
I have a couple of comments on your proposal.  None of these are major 
enough to prevent submission.

- As others have said, I'd prefer an experimental namespace rather than 
a webkit namespace.  (minor)
- Unless I am misreading your proposal, your proposed StackMap intrinsic 
duplicates existing functionality already in llvm.  In particular, much 
of the StackMap construction seems similar to the Safepoint mechanism 
used by the in-tree GC support.  (See CodeGen/GCStrategy.cpp and 
CodeGen/GCMetadata.cpp).  Have you examined these mechanisms to see if 
you can share implementations?
- To my knowledge, there is nothing that prevents an LLVM optimization 
pass from manufacturing new pointers which point inside an existing data 
structure.  (e.g. an interior pointer to an array when blocking a loop)  
Does your StackMap mechanism need to be able to inspect/modify these 
manufactured temporaries?  If so, I don't see how you could generate an 
intrinsic which would include this manufactured pointer in the live 
variable list.  Is there something I'm missing here?
- Your patchpoint mechanism appears to be one very specialized use of a 
patchable location.  Would you mind renaming it to something like 
patchablecall to reflect this specialization?

Yours,
Philip





More information about the llvm-dev mailing list