Two stacks implementation


In our architecture there is 2 disjoint address spaces for data memory and we need 2 stacks in each address space.

As I understand, there is no support for this in clang and llvm backend.

Clang doesn’t allow to specify ‘address_space’ attribute for locals.

LLVM codegen doesn’t lower alloca if address space of alloca differs with that is specified in datalayout.

So, is there any thoughts how to implement 2 independent stacks?

Is it possible to distinguish frame indexes of 2 different stacks?

Is there any support of several stacks in stack coloring and stack frame?