The AMDGPU target's default datalayout causes issues with the LLVM verifier on debug builds because the verifier is run so early in the optimization pipeline. We can fix this by allowing backends to override running Julia's optimization pass pipeline, and reordering the individual passes to better suit the backend's needs.