Hello, i've started learning low-level gpu computing concepts using AMD IL and ISA documentation. And I have question about address stack allocation: in which kind of memory it is allocated (lds, gds, registers, something special)? and how fast this memory is?
IL documentation provides only this information:
address stack (glossary):
A stack that contains only addresses (no other state). Used for flow control. Popping the address stack overrides the instruction address field of a flow control instruction. The address stack is only modified if the flow control instruction decides to jump.
ISA documentation doesn't give answers for this questions too (maybe I couldn't quite catch them?). I've found information only about push/pop mechanisms and maximal call deepness = 32.
I'm working on my own compiler for GPUs, and this information can help me to handle calls (and recursion) in most efficient way.
Thank you, and sorry for my poor english. 🙂