You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[#50615] Rename librustc_trans to librustc_codegen_llvm. Make rustc_driver either able to choose codegen backends, or even better, pass rustc_codegen_llvm to rustc_driver from rustc-main.
See also #45226.
Possible refactoring steps:
remove SharedCrateContext, use TyCtxt
rename (Local)CrateContext to CodegenContext, remove accessor methods
use &'ll Module<'ll>, &'ll Value<'ll>, &'ll Type<'ll> etc. to correctly model lifetime relationships (without an invariant lifetime parameter, very little is actually enforced)
[#50615] Renamelibrustc_transtolibrustc_codegen_llvm.Makerustc_drivereither able to choose codegen backends, or even better, passrustc_codegen_llvmtorustc_driverfromrustc-main.See also #45226.
Possible refactoring steps:
removeSharedCrateContext, useTyCtxtrename(Local)CrateContexttoCodegenContext, remove accessor methodsmergelibrustc_llvmintolibrustc_codegen_llvmpassValueRefas&'ll Valueinstead, encode LLVM lifetimes in FFI signaturesuse this technique for C++ objects that borrow others: Tracking issue for RFC 1861: Extern types #43467 (comment)DI*inheritance hierarchy: Tracking issue for RFC 1861: Extern types #43467 (comment)&'ll Module<'ll>,&'ll Value<'ll>,&'ll Type<'ll>etc. to correctly model lifetime relationships (without an invariant lifetime parameter, very little is actually enforced)craneliftandllvm2craneliftfor common Cranelift/LLVM builder APIscommon tools used by SSA backends could be placed inrustc_codegen_ssarustc_codegen_ssaAPIs to match Cranelift, leave LLVM second-classbinemit"?) and linking components, out ofrustc_codegen_ssa