[LLVMdev] The line number range of a function in source code level

Mingliang LIU liuml07 at gmail.com
Fri Apr 12 08:48:31 PDT 2013


Thank you very much.


On Fri, Apr 12, 2013 at 10:26 PM, John Criswell <criswell at illinois.edu>wrote:

>  On 4/12/13 4:31 AM, Mingliang LIU wrote:
>
> Hi all,
>
>  I need to know the line number range of a function. The start of the
> function line number can be found by the definition point, which is stored
> at the subprogram metadata: DISubprogram::getLineNumber().
>
>  However, there is no API (or the metadata in the first place) to know
> the end of the function.
>
>  I have to visit all the instructions of the function and maintain the *
> max* line number of the instructions. I use the inst_begin(func):
> inst_end(func) as the iterator. But I don't think it's effective to
> iterate all the instructions from the beginning. It's supposed that we can
> iterate the instructions reversely and the first one who has attached
> metadata should be treated as the end of the function. Unfortunately, there
> is no reverse iterator of a function.
>
>
> Keep in mind that some transforms may move instructions, so the last
> instruction in the function with meta-data does not necessarily come from
> the last instruction in the function.
>
> For example, there is a transform that modifies a function so that it only
> has one return instruction.  Which meta-data does the merged return
> instruction get?
>
> I think iterating over all the instructions is more robust.  If you need
> more accuracy than that, it might be a good idea to modify the front-end to
> generate meta-data that marks the line number of the end of the function.
>
> -- John T.
>
>
>
>  Any idea?
>
>  Thank you very much!
>
>  --
> Mingliang LIU (刘明亮 in Chinese)
>
> PACMAN Group,  Dept. of Computer Science & Technology
> Tsinghua University, Beijing 100084, China
> Email: liuml07 at mails.tsinghua.edu.cn
> Homepage: http://pacman.cs.tsinghua.edu.cn/~liuml07/
>
>
> _______________________________________________
> LLVM Developers mailing listLLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>


-- 
Mingliang LIU (刘明亮 in Chinese)

PACMAN Group,  Dept. of Computer Science & Technology
Tsinghua University, Beijing 100084, China
Email: liuml07 at mails.tsinghua.edu.cn
Homepage: http://pacman.cs.tsinghua.edu.cn/~liuml07/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130412/b287dcbe/attachment.html>


More information about the llvm-dev mailing list