libFirm
Obstack Memory Allocation

Obstacks are the prefered way to handle memory allocation in libFirm.

Compared to classical malloc they are faster but don't allow fine-grained freeing of allocated memory. But in a compile this is fine most of the time as memory is allocated for a phase or a graph and later the whole phase ends or the whole graph gets discarded.

There's very good documentation about Object stacks in the glibc manual: http://www.gnu.org/s/libc/manual/html_node/Obstacks.html