[llvm-commits] new linux/llvm patches

Duncan Sands baldrick at free.fr
Sat May 12 12:51:13 PDT 2012


Hi PaX Team,

> - intentional lack of support for nested functions in clang/llvm (it also makes no
>    sense for kernel code because kernel stacks are typically non-executable therefore
>    if a trampoline was emitted there, the kernel would just oops).

a trampoline is only needed if you take the address of the nested function.

> - due to different inlining strategies from gcc, more functions need to be prevented
>    from getting inlined lest the frame size get too big (which is a problem for the
>    kernel due to the limited kernel stack space).

GCC knows some tricks to  reduce the size of stack frames (eg by sharing the
same stack slot for variables that have non-overlapping lifetimes) that I don't
think LLVM knows.

Ciao, Duncan.



More information about the llvm-commits mailing list