No announcement yet.

Indirect Addressing Merged In LLVM R600 Back-End

  • Filter
  • Time
  • Show
Clear All
new posts

  • Indirect Addressing Merged In LLVM R600 Back-End

    Phoronix: Indirect Addressing Merged In LLVM R600 Back-End

    Merged into the mainline LLVM repository on Wednesday was support for indirect addressing within AMD's R600 GPU back-end...

  • #2
    Indirect addressing allows for a virtual address to be passed that then ends up mapping to the actual address, which is more important for compute scenarios.
    This description of indirect addressing is incorrect, or at least misleading. Indirect addressing is how arrays, or at least variable array indicies, are implemented. You can tell the GPU to add the value of a register to the index when loading or storing something; for example, instead of saying "load address 5," you can say "load address '5 + something I've just calculated'." It's like how dereferencing a pointer works in C, except a little more limited. It's also more commonly seen in compute shaders, since they often tend to do more complex things like loops where you need indirect addressing in order to do anything useful, although there are some cases where it's useful in graphics shaders too (such as bone skinning).