Displaying 20 results from an estimated 20000 matches similar to: "[LLVMdev] Secure Virtual Machine"
2007 Jun 15
0
[LLVMdev] Secure Virtual Machine
Let me cut it down to the core problem: I'm asking about the
feasibility of extending LLVM with constructs to manage separate
heaps. Given my current understanding of LLVM, I can see this done in
two ways:
1. Add heap management instructions to the core instructions, modify
allocation routines to explicitly name heaps or modify the runtime to
rebind the allocation routines depending on some
2007 Jun 15
1
[LLVMdev] Secure Virtual Machine
Sandro Magi wrote:
> Let me cut it down to the core problem: I'm asking about the
> feasibility of extending LLVM with constructs to manage separate
> heaps. Given my current understanding of LLVM, I can see this done in
> two ways:
>
If you just need to partition the heap into multiple heaps, then the
easiest thing to do would be to replace the use of malloc/free
2007 Jun 02
0
[LLVMdev] Secure Virtual Machine
We have a research project that is developing a Secure Virtual
Architecture using LLVM as the instruction set, and implementing via
a VM which we call a Secure Virtual Machine. The memory safety
foundations of this work are based on Dinakar Dhurjati's thesis and
publications:
http://llvm.org/pubs/
SVA is at a very preliminary stage but some slides about it are
attached.
2007 Jun 05
2
[LLVMdev] Secure Virtual Machine
On 6/5/07, John Criswell <criswell at cs.uiuc.edu> wrote:
>
> To be honest, while I understand your questions, I do not understand the
> context in which you are asking them. Are you asking if LLVM provides
> any facilities to provide these protections, or are you asking if we've
> added any special features to LLVM (or to SVA; our research work based
> on LLVM) to
2007 Jun 07
0
[LLVMdev] Secure Virtual Machine
On 6/6/07, Sandro Magi <naasking at gmail.com> wrote:
> On 6/5/07, John Criswell <criswell at cs.uiuc.edu> wrote:
> >
> > To be honest, while I understand your questions, I do not understand the
> > context in which you are asking them. Are you asking if LLVM provides
> > any facilities to provide these protections, or are you asking if we've
> >
2007 Jun 18
2
[LLVMdev] Accounting for stack space
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
2007 Jun 21
0
[LLVMdev] Accounting for stack space
To this end, are there any implicit allocations being done by
generated LLVM code, other than the system stack?
Sandro
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
2007 Jun 21
3
[LLVMdev] Accounting for stack space
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,
2007 Jul 10
2
[LLVMdev] Accounting for stack space
On Sun, 8 Jul 2007, Sandro Magi wrote:
> How about if I were to use LLVM's JIT? I suspect plenty of allocations
> are performed in the JIT.
The JIT does a ton of heap allocation. There is no way to approximate it
from the code you give it.
-Chris
> Sandro
>
> On 6/20/07, Chris Lattner <sabre at nondot.org> wrote:
>> On Wed, 20 Jun 2007, Sandro Magi wrote:
2007 Jun 18
4
[LLVMdev] Arbitrary bit width integers
Where does the storage for large bit width integers come from? Are
very large numbers heap allocated?
Sandro
2007 Jul 08
0
[LLVMdev] Accounting for stack space
How about if I were to use LLVM's JIT? I suspect plenty of allocations
are performed in the JIT.
Sandro
On 6/20/07, Chris Lattner <sabre at nondot.org> wrote:
> 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
2007 Jun 03
2
[LLVMdev] Secure Virtual Machine
SVA looks very promising. It would be great to be able to run
unmodified C safely!
However, it does not seem to address my original question: how can I
ensure that code cannot DoS either the memory subsystem, or the CPU?
In my proposal, I could execute said code in a concurrent process with
a memory quota. How would SVA address that problem?
Sandro
On 6/2/07, Vikram S. Adve <vadve at
2007 Jun 18
2
[LLVMdev] Arbitrary bit width integers
Ok, so if I needed very precise control over the allocation of memory,
then I should avoid using integers with bit widths larger than 64 bits
(or perhaps 128)? Is there a hard rule for an integer being stack
allocated, ie. one that doesn't depend on the current implementation
details?
Sandro
On 6/18/07, Reid Spencer <rspencer at reidspencer.com> wrote:
> Sandro Magi wrote:
>
>
2007 Jul 10
0
[LLVMdev] Accounting for stack space
On 7/10/07, Chris Lattner <sabre at nondot.org> wrote:
> On Sun, 8 Jul 2007, Sandro Magi wrote:
> > How about if I were to use LLVM's JIT? I suspect plenty of allocations
> > are performed in the JIT.
>
> The JIT does a ton of heap allocation. There is no way to approximate it
> from the code you give it.
I don't need to approximate it, but I'd like to
2007 Jun 18
0
[LLVMdev] Arbitrary bit width integers
Sandro Magi wrote:
>Where does the storage for large bit width integers come from? Are
>very large numbers heap allocated?
>
>
The ConstantInt class stores integer values. Large or not they are
stored using an APInt object. APInt (lib/Support/APInt.cpp) uses an
array of uint64_t if more than two are needed or an inline uint64_t in
the APInt object. So, yes, they are heap
2007 Jul 10
2
[LLVMdev] Accounting for stack space
On Tue, 10 Jul 2007, Sandro Magi wrote:
> On 7/10/07, Chris Lattner <sabre at nondot.org> wrote:
>> On Sun, 8 Jul 2007, Sandro Magi wrote:
>>> How about if I were to use LLVM's JIT? I suspect plenty of allocations
>>> are performed in the JIT.
>> The JIT does a ton of heap allocation. There is no way to approximate it
>> from the code you give it.
2007 Jun 05
0
[LLVMdev] Secure Virtual Machine
Sandro Magi wrote:
> SVA looks very promising. It would be great to be able to run
> unmodified C safely!
>
> However, it does not seem to address my original question: how can I
> ensure that code cannot DoS either the memory subsystem, or the CPU?
>
To be honest, while I understand your questions, I do not understand the
context in which you are asking them. Are you asking
2007 Jun 18
0
[LLVMdev] Arbitrary bit width integers
On Mon, 18 Jun 2007, Sandro Magi wrote:
> Ok, so if I needed very precise control over the allocation of memory,
> then I should avoid using integers with bit widths larger than 64 bits
> (or perhaps 128)? Is there a hard rule for an integer being stack
> allocated, ie. one that doesn't depend on the current implementation
> details?
In the generated code, or in the compiler
2006 Feb 27
1
[LLVMdev] Garbage collection questions
On 2/27/06, Chris Lattner <sabre at nondot.org> wrote:
> > 1. void llvm_gc_write(void *V, void *ObjPtr, void **FieldPtr)
> >
> > I haven't seen an adequate explanation of these, but I'm guessing:
> > void *V: value being written to the field
> > void *ObjPtr: current value of the field (ie. ObjPtr == *FieldPtr
> > upon entry to llvm_gc_write)
2014 Nov 04
4
[LLVMdev] [PATCH] Protection against stack-based memory corruption errors using SafeStack
On 4 Nov 2014, at 00:36, Kostya Serebryany <kcc at google.com> wrote:
> You at least increase the memory footprint by doubling the stack sizes.
Not quite. The space overhead is constant for each stack frame - you just need to keep track of the top of two stacks, rather than one. The important overhead is that you reduce locality of reference. You will need a minimum of two cache