- generate address space create blocks for each created node
- unfortunately compilers are not forced reuse stack frames of
blocks which are already done
- as a result llvm created tremendously huge stack frames for
generate address space
- this commit creates separate functions to create nodes, which
results in an extremly reduced stack usage