(cherry picked from commit acf51e13457c45b97cdfd551d85d3e75140e0ff7)
Please read the rustc-dev-guide chapter on Backend Agnostic Codegen.