[llvm-dev] multi-entry function (debug info)

via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 23 09:21:00 PDT 2018


Interesting. So the FORTRAN subprogram would have an implicit parameter and effectively have a computed GOTO at the beginning to dispatch to the correct ENTRY?  Would you expect each ENTRY to be described as its own subprogram in the debug info?  (My FORTRAN experience is even more ancient than my PL/I.)
--paulr

From: Roger Ferrer Ibáñez [mailto:rofirrim at gmail.com]
Sent: Tuesday, October 23, 2018 12:08 PM
To: Robinson, Paul
Cc: jiangmuhui at gmail.com; LLVM-Dev
Subject: Re: [llvm-dev] multi-entry function (debug info)


Regarding multi-entry functions, I'm aware of two cases where this occurs in a source language.  One is when you have optional parameters in C++, which effectively creates one or more overloads for the function; the other is PL/I which allows defining an entry label within the body of the function.  For the C++ case, I'd expect the front-end to create stubs that fill in the defaulted parameters and then tail-call the main function; in this case, each stub would have its own debug-info entry and be treated as its own independent function for debug-info purposes.  For PL/I, I would probably do the same, although I admit it has been a long time since I did any PL/I programming and I never worked on a PL/I compiler.

Another example of source language with functions that can have more than entry point is Fortran via the ENTRY statement. I think most compilers use an extra integer parameter to discriminate between the different entry points at the call sites.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181023/2c1ee1f6/attachment.html>


More information about the llvm-dev mailing list