Artur Pilipenko
2015-Jul-13 11:45 UTC
[LLVMdev] String attributes for function arguments and return values
Hi, I’d like to support string attributes on function arguments and return values. We are going to use them in our tree to express higher level language types. Internally attributes framework have everything to do this, it’s even possible to generate string attributes via API right now: Function *function; function->setAttributes(function->getAttributes().addAttribute(context, i, "attribute")); But because it’s not supported in LLParser if you dump the function and try to parse it back it will fail. I have a patch to fix this problem: http://reviews.llvm.org/D11058 I consider this part as a bug fix for existing functionality. The second patch is to add accessors to string attributes to Argument and Function classes: http://reviews.llvm.org/D10872 This part is optional because there no code in upstream will make use of it. But if we support string attributes syntax it makes sense to provide API support as well. Does anyone have any objections? Thanks, Artur -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150713/36e06632/attachment.html>
Hal Finkel
2015-Jul-13 12:59 UTC
[LLVMdev] String attributes for function arguments and return values
----- Original Message -----> From: "Artur Pilipenko" <apilipenko at azulsystems.com> > To: llvmdev at cs.uiuc.edu > Cc: "Hal Finkel" <hfinkel at anl.gov> > Sent: Monday, July 13, 2015 6:45:35 AM > Subject: String attributes for function arguments and return values > > Hi, > > I’d like to support string attributes on function arguments and > return values. We are going to use them in our tree to express > higher level language types.How do you expect to use this information? Will you need the inliner to do something special with these? Thanks again, Hal> > Internally attributes framework have everything to do this, it’s even > possible to generate string attributes via API right now: > Function *function; > function->setAttributes(function->getAttributes().addAttribute(context, > i, "attribute")); > But because it’s not supported in LLParser if you dump the function > and try to parse it back it will fail. I have a patch to fix this > problem: > http://reviews.llvm.org/D11058 > I consider this part as a bug fix for existing functionality. > > The second patch is to add accessors to string attributes to Argument > and Function classes: > http://reviews.llvm.org/D10872 > This part is optional because there no code in upstream will make use > of it. But if we support string attributes syntax it makes sense to > provide API support as well. > > Does anyone have any objections? > > Thanks, > Artur > > >-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
Artur Pilipenko
2015-Jul-13 14:42 UTC
[LLVMdev] String attributes for function arguments and return values
Hi, On 13 Jul 2015, at 15:59, Hal Finkel <hfinkel at anl.gov<mailto:hfinkel at anl.gov>> wrote: ----- Original Message ----- From: "Artur Pilipenko" <apilipenko at azulsystems.com<mailto:apilipenko at azulsystems.com>> To: llvmdev at cs.uiuc.edu<mailto:llvmdev at cs.uiuc.edu> Cc: "Hal Finkel" <hfinkel at anl.gov<mailto:hfinkel at anl.gov>> Sent: Monday, July 13, 2015 6:45:35 AM Subject: String attributes for function arguments and return values Hi, I’d like to support string attributes on function arguments and return values. We are going to use them in our tree to express higher level language types. How do you expect to use this information? Will you need the inliner to do something special with these? Type information is required for Java specific optimizations, like devirtualization, subtype check optimizations, etc. There are no plans to upstream them, because they are too specific to Java. W.r.t inlining I don’t think that these attributes will require any special handling. Artur Thanks again, Hal Internally attributes framework have everything to do this, it’s even possible to generate string attributes via API right now: Function *function; function->setAttributes(function->getAttributes().addAttribute(context, i, "attribute")); But because it’s not supported in LLParser if you dump the function and try to parse it back it will fail. I have a patch to fix this problem: http://reviews.llvm.org/D11058 I consider this part as a bug fix for existing functionality. The second patch is to add accessors to string attributes to Argument and Function classes: http://reviews.llvm.org/D10872 This part is optional because there no code in upstream will make use of it. But if we support string attributes syntax it makes sense to provide API support as well. Does anyone have any objections? Thanks, Artur -- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150713/32445b18/attachment.html>