Introduce a collection of cross-module pass IDs, currently for only a
single pass, to allow a pass to be marked as preserved from a pass in
a different module.
The remainder of the patch fixes an issue in the AMDGPU backend where
values are uniform inside of a loop but the uses of that value outside
the loop can be divergent.
Change-Id: Ic8c9c24be9e317c40001baae2e68a8a8f40055dd