Sources for published papers.

Hi,

Is the source available for the algorithms described in the
papers "Automatic Pool Allocation for Disjoint Data Structures",
"Memory Safety Without Runtime Checks or Garbage Collection" and "Data
Structure Analysis: An Efficient Context-Sensitive Heap Analysis"?

Btw, I must say that the LLVM source is really beautiful and
understandable. Looking forward to see the result of the JVM
implementation. I will probably use LLVM for language implementation and
connection with a garbage collector for persistent memories.

, Tobias

Is the source available for the algorithms described in the papers:

I assume you mean source code for the implementation...

"Data Structure Analysis: An Efficient Context-Sensitive Heap Analysis"?

Yes, this lives in llvm/lib/Analysis/DataStructure

"Automatic Pool Allocation for Disjoint Data Structures",
"Memory Safety Without Runtime Checks or Garbage Collection" and

These two are not available in the main LLVM distribution (yet). If you
are interested in getting a private copy of them, send email to Vikram
(vadve@cs.uiuc.edu) and we can probably work something out.

Btw, I must say that the LLVM source is really beautiful and
understandable.

Thanks!

Looking forward to see the result of the JVM implementation. I will
probably use LLVM for language implementation and connection with a
garbage collector for persistent memories.

Sounds great, please keep the list informed and let us know if you run
into any problems! :slight_smile:

-Chris

> "Data Structure Analysis: An Efficient Context-Sensitive Heap Analysis"?

Yes, this lives in llvm/lib/Analysis/DataStructure

Great!

> "Automatic Pool Allocation for Disjoint Data Structures",
> "Memory Safety Without Runtime Checks or Garbage Collection" and

These two are not available in the main LLVM distribution (yet). If you
are interested in getting a private copy of them, send email to Vikram
(vadve@cs.uiuc.edu) and we can probably work something out.

Maybe I'll send a mail later regarding the pool allocation, but right now
I have enough code to read :). Thought it would be nice to see how the
pools are used in the backend instead of normal allocation, but I guess it
is a quite straight forward modification of LowerAllocation.cpp or
something similar.

Thanks for the positive and fast replies. :slight_smile:
, Tobias

Ps. I'm considering to try to make a small optimization-pass as an
exercise to learn the system. It would do something like this:

1. Order the local variables in the call-frame of a function based on
   liveness, with the variables dying first on top of the stack.

2. Then for each function-call, check which variables that have died and
   set the new call-frame over the dead variables instead of on the top of
   the stack. (which would work if the local variables are referenced
   relative to the frame pointer and not the stack pointer)

That would lead to some space optimization, kind of a more general tail
recursion elimination (maybe it already exists and have a name :)). I
guess this would have to be done in CodeGen. Ds