22use crate :: maybe_pqp_cg_ssa as rustc_codegen_ssa;
33
44use crate :: codegen_cx:: { CodegenArgs , SpirvMetadata } ;
5+ use crate :: target:: { SpirvTarget , SpirvTargetVariant } ;
56use crate :: { SpirvCodegenBackend , SpirvModuleBuffer , linker} ;
67use ar:: { Archive , GnuBuilder , Header } ;
78use rspirv:: binary:: Assemble ;
@@ -24,14 +25,12 @@ use rustc_session::config::{
2425} ;
2526use rustc_session:: output:: { check_file_is_writeable, invalid_output_for_target, out_filename} ;
2627use rustc_span:: Symbol ;
27- use spirv_tools:: TargetEnv ;
2828use std:: collections:: BTreeMap ;
2929use std:: ffi:: { CString , OsStr } ;
3030use std:: fs:: File ;
3131use std:: io:: { BufWriter , Read } ;
3232use std:: iter;
3333use std:: path:: { Path , PathBuf } ;
34- use std:: str:: FromStr ;
3534use std:: sync:: Arc ;
3635
3736pub fn link (
@@ -338,8 +337,8 @@ fn do_spirv_opt(
338337 opt:: { self , Optimizer } ,
339338 } ;
340339
341- let target_env = TargetEnv :: from_str ( sess. target . options . env . desc ( ) ) . ok ( ) ;
342- let mut optimizer = opt:: create ( target_env ) ;
340+ let target = SpirvTarget :: parse_env ( sess. target . options . env . desc ( ) ) . unwrap ( ) ;
341+ let mut optimizer = opt:: create ( Some ( target . to_spirv_tools ( ) ) ) ;
343342
344343 match sess. opts . optimize {
345344 OptLevel :: No => { }
@@ -401,8 +400,8 @@ fn do_spirv_val(
401400) {
402401 use spirv_tools:: val:: { self , Validator } ;
403402
404- let target_env = TargetEnv :: from_str ( sess. target . options . env . desc ( ) ) . ok ( ) ;
405- let validator = val:: create ( target_env ) ;
403+ let target = SpirvTarget :: parse_env ( sess. target . options . env . desc ( ) ) . unwrap ( ) ;
404+ let validator = val:: create ( Some ( target . to_spirv_tools ( ) ) ) ;
406405
407406 if let Err ( e) = validator. validate ( spv_binary, Some ( options) ) {
408407 let mut err = sess. dcx ( ) . struct_err ( e. to_string ( ) ) ;
0 commit comments