[LLVMdev] Accounting for stack space

Chris Lattner sabre at nondot.org
Wed Jun 20 20:41:20 PDT 2007


On Wed, 20 Jun 2007, Sandro Magi wrote:
> To this end, are there any implicit allocations being done by
> generated LLVM code, other than the system stack?

heap allocations?  Only malloc/free.  Note that the compiler does generate 
calls to runtime libraries (e.g. libstdc++ and libgcc), we don't have 
control over when they do allocations.  The libstdc++ calls show up in the 
.ll file, but the libgcc ones don't.  I don't think any libgcc routines do 
heap allocations.

-Chris

> On 6/18/07, Sandro Magi <naasking at gmail.com> wrote:
>> Given my recent posts, I think it's obvious that I'm trying to figure
>> out how to build a resource-aware VM for a high-level language.
>>
>> I've figured out adequate solutions for most of the problems I've
>> encountered, including separate heaps, quotas, etc. However, I'm not
>> sure how I can account for a thread's stack space. Given a language
>> process (LP) running in a heap with a quota, a thread in that LP can
>> exceed the LP's quota simply by recursing infinitely since stack space
>> allocation is outside of my VM's control.
>>
>> So how can I account for the stack space consumed by the thread
>> running in that LP, or control the allocation of stack space? One
>> solution is to CPS-transform the program, so that all activation
>> frames are explicitly allocated from the LP's heap. Is there another
>> way?
>>
>> Sandro
>>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/



More information about the llvm-dev mailing list