LDS objects allocated by in kernels by LowerModuleLDS were marked with llvm.donothing
to ensure they had a use from the kernel, as opposed to only from called functions.
The backend does not need that explicit use after D155190. PromoteAlloca relies on that
use to estimate the total LDS allocated on other variables. Changing PromoteAlloca to use
the attribute directly is quicker and more accurate when available. It also removes the last
requirement for the llvm.donothing calls on static LDS.
llvm.donothing is still used for dynamic LDS alignment after this patch.
I thought it was weird only having a size attribute. But also, how does this help if the size is always rounded by the maximum dynamic alignment?