MCPcopy Create free account
hub / github.com/IntegralPilot/rustc_codegen_jvm / join_codegen

Method join_codegen

src/lib.rs:1549–1624  ·  view source on GitHub ↗
(
        &self,
        ongoing_codegen: Box<dyn Any>,
        _sess: &Session,
        outputs: &OutputFilenames,
        _crate_info: &CrateInfo,
    )

Source from the content-addressed store, hash-verified

1547 tcx,
1548 function_roots,
1549 partitioned_functions,
1550 oomir_module,
1551 lowered_instances,
1552 scanned_instances,
1553 );
1554
1555 let data_type_defs = java_public_surface_def_ids(tcx, JavaPublicSurface::Reachable);
1556
1557 for def_id in data_type_defs {
1558 materialize_java_public_data_type(tcx, def_id, oomir_module);
1559 }
1560}
1561
1562fn empty_oomir_module(tcx: TyCtxt<'_>, name: &str) -> oomir::Module {
1563 lower1::types::reset_type_lowering_cache();
1564 oomir::Module {
1565 name: name.to_string(),
1566 source_file: tcx
1567 .sess
1568 .local_crate_source_file()
1569 .map(|file_name| rustc_span::FileName::Real(file_name).short().to_string()),
1570 functions: HashMap::default(),
1571 data_types: HashMap::default(),
1572 suppressed_data_types: HashSet::default(),
1573 shared_data_types: None,
1574 relative_static_methods: Arc::new(HashSet::default()),
1575 external_interfaces: HashSet::default(),
1576 statics: HashMap::default(),
1577 }
1578}
1579
1580fn prepare_oomir_shard(shard_name: &str, mut oomir_module: oomir::Module) -> oomir::Module {
1581 // Intrinsic use is registered while MIR is lowered. Drain the registry per
1582 // shard so no crate-wide OOMIR state has to remain alive.
1583 let needed_intrinsics = lower1::control_flow::take_needed_intrinsics();
1584 if !needed_intrinsics.is_empty() {
1585 breadcrumbs::log!(
1586 breadcrumbs::LogLevel::Info,
1587 "intrinsics",
1588 format!(
1589 "Emitting {} checked arithmetic intrinsics for {shard_name}: {:?}",
1590 needed_intrinsics.len(),
1591 needed_intrinsics
1592 )
1593 );
1594 let intrinsic_class = lower1::control_flow::checked_intrinsics::emit_all_needed_intrinsics(
1595 &needed_intrinsics,
1596 );
1597 oomir_module
1598 .data_types
1599 .insert("RustcCodegenJVMIntrinsics".to_string(), intrinsic_class);
1600 }
1601
1602 for data_type in oomir_module.data_types.values_mut() {
1603 data_type.clean_duplicates();
1604 }
1605
1606 oomir_module

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected