Prefer doc comments over //
-comments in compiler
This commit is contained in:
parent
0e9eee6811
commit
1d42936b18
83 changed files with 400 additions and 387 deletions
|
@ -1179,7 +1179,7 @@ pub fn ignored_for_lto(sess: &Session, info: &CrateInfo, cnum: CrateNum) -> bool
|
|||
&& (info.compiler_builtins == Some(cnum) || info.is_no_builtins.contains(&cnum))
|
||||
}
|
||||
|
||||
// This functions tries to determine the appropriate linker (and corresponding LinkerFlavor) to use
|
||||
/// This functions tries to determine the appropriate linker (and corresponding LinkerFlavor) to use
|
||||
pub fn linker_and_flavor(sess: &Session) -> (PathBuf, LinkerFlavor) {
|
||||
fn infer_from(
|
||||
sess: &Session,
|
||||
|
|
|
@ -34,9 +34,9 @@ pub fn disable_localization(linker: &mut Command) {
|
|||
linker.env("VSLANG", "1033");
|
||||
}
|
||||
|
||||
// The third parameter is for env vars, used on windows to set up the
|
||||
// path for MSVC to find its DLLs, and gcc to find its bundled
|
||||
// toolchain
|
||||
/// The third parameter is for env vars, used on windows to set up the
|
||||
/// path for MSVC to find its DLLs, and gcc to find its bundled
|
||||
/// toolchain
|
||||
pub fn get_linker<'a>(
|
||||
sess: &'a Session,
|
||||
linker: &Path,
|
||||
|
|
|
@ -191,38 +191,38 @@ pub enum MetadataPosition {
|
|||
Last,
|
||||
}
|
||||
|
||||
// For rlibs we "pack" rustc metadata into a dummy object file.
|
||||
//
|
||||
// Historically it was needed because rustc linked rlibs as whole-archive in some cases.
|
||||
// In that case linkers try to include all files located in an archive, so if metadata is stored
|
||||
// in an archive then it needs to be of a form that the linker is able to process.
|
||||
// Now it's not clear whether metadata still needs to be wrapped into an object file or not.
|
||||
//
|
||||
// Note, though, that we don't actually want this metadata to show up in any
|
||||
// final output of the compiler. Instead this is purely for rustc's own
|
||||
// metadata tracking purposes.
|
||||
//
|
||||
// With the above in mind, each "flavor" of object format gets special
|
||||
// handling here depending on the target:
|
||||
//
|
||||
// * MachO - macos-like targets will insert the metadata into a section that
|
||||
// is sort of fake dwarf debug info. Inspecting the source of the macos
|
||||
// linker this causes these sections to be skipped automatically because
|
||||
// it's not in an allowlist of otherwise well known dwarf section names to
|
||||
// go into the final artifact.
|
||||
//
|
||||
// * WebAssembly - we actually don't have any container format for this
|
||||
// target. WebAssembly doesn't support the `dylib` crate type anyway so
|
||||
// there's no need for us to support this at this time. Consequently the
|
||||
// metadata bytes are simply stored as-is into an rlib.
|
||||
//
|
||||
// * COFF - Windows-like targets create an object with a section that has
|
||||
// the `IMAGE_SCN_LNK_REMOVE` flag set which ensures that if the linker
|
||||
// ever sees the section it doesn't process it and it's removed.
|
||||
//
|
||||
// * ELF - All other targets are similar to Windows in that there's a
|
||||
// `SHF_EXCLUDE` flag we can set on sections in an object file to get
|
||||
// automatically removed from the final output.
|
||||
/// For rlibs we "pack" rustc metadata into a dummy object file.
|
||||
///
|
||||
/// Historically it was needed because rustc linked rlibs as whole-archive in some cases.
|
||||
/// In that case linkers try to include all files located in an archive, so if metadata is stored
|
||||
/// in an archive then it needs to be of a form that the linker is able to process.
|
||||
/// Now it's not clear whether metadata still needs to be wrapped into an object file or not.
|
||||
///
|
||||
/// Note, though, that we don't actually want this metadata to show up in any
|
||||
/// final output of the compiler. Instead this is purely for rustc's own
|
||||
/// metadata tracking purposes.
|
||||
///
|
||||
/// With the above in mind, each "flavor" of object format gets special
|
||||
/// handling here depending on the target:
|
||||
///
|
||||
/// * MachO - macos-like targets will insert the metadata into a section that
|
||||
/// is sort of fake dwarf debug info. Inspecting the source of the macos
|
||||
/// linker this causes these sections to be skipped automatically because
|
||||
/// it's not in an allowlist of otherwise well known dwarf section names to
|
||||
/// go into the final artifact.
|
||||
///
|
||||
/// * WebAssembly - we actually don't have any container format for this
|
||||
/// target. WebAssembly doesn't support the `dylib` crate type anyway so
|
||||
/// there's no need for us to support this at this time. Consequently the
|
||||
/// metadata bytes are simply stored as-is into an rlib.
|
||||
///
|
||||
/// * COFF - Windows-like targets create an object with a section that has
|
||||
/// the `IMAGE_SCN_LNK_REMOVE` flag set which ensures that if the linker
|
||||
/// ever sees the section it doesn't process it and it's removed.
|
||||
///
|
||||
/// * ELF - All other targets are similar to Windows in that there's a
|
||||
/// `SHF_EXCLUDE` flag we can set on sections in an object file to get
|
||||
/// automatically removed from the final output.
|
||||
pub fn create_wrapper_file(
|
||||
sess: &Session,
|
||||
section_name: Vec<u8>,
|
||||
|
|
|
@ -340,20 +340,20 @@ pub struct CodegenContext<B: WriteBackendMethods> {
|
|||
pub split_debuginfo: rustc_target::spec::SplitDebuginfo,
|
||||
pub split_dwarf_kind: rustc_session::config::SplitDwarfKind,
|
||||
|
||||
// Number of cgus excluding the allocator/metadata modules
|
||||
/// Number of cgus excluding the allocator/metadata modules
|
||||
pub total_cgus: usize,
|
||||
// Handler to use for diagnostics produced during codegen.
|
||||
/// Handler to use for diagnostics produced during codegen.
|
||||
pub diag_emitter: SharedEmitter,
|
||||
// LLVM optimizations for which we want to print remarks.
|
||||
/// LLVM optimizations for which we want to print remarks.
|
||||
pub remark: Passes,
|
||||
// Worker thread number
|
||||
/// Worker thread number
|
||||
pub worker: usize,
|
||||
// The incremental compilation session directory, or None if we are not
|
||||
// compiling incrementally
|
||||
/// The incremental compilation session directory, or None if we are not
|
||||
/// compiling incrementally
|
||||
pub incr_comp_session_dir: Option<PathBuf>,
|
||||
// Used to update CGU re-use information during the thinlto phase.
|
||||
/// Used to update CGU re-use information during the thinlto phase.
|
||||
pub cgu_reuse_tracker: CguReuseTracker,
|
||||
// Channel back to the main control thread to send messages to
|
||||
/// Channel back to the main control thread to send messages to
|
||||
pub coordinator_send: Sender<Box<dyn Any + Send>>,
|
||||
}
|
||||
|
||||
|
@ -756,7 +756,7 @@ fn execute_work_item<B: ExtraBackendMethods>(
|
|||
}
|
||||
}
|
||||
|
||||
// Actual LTO type we end up choosing based on multiple factors.
|
||||
/// Actual LTO type we end up choosing based on multiple factors.
|
||||
pub enum ComputedLtoType {
|
||||
No,
|
||||
Thin,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Type Names for Debug Info.
|
||||
//! Type Names for Debug Info.
|
||||
|
||||
// Notes on targeting MSVC:
|
||||
// In general, MSVC's debugger attempts to parse all arguments as C++ expressions,
|
||||
|
@ -26,10 +26,10 @@ use std::fmt::Write;
|
|||
|
||||
use crate::debuginfo::wants_c_like_enum_debuginfo;
|
||||
|
||||
// Compute the name of the type as it should be stored in debuginfo. Does not do
|
||||
// any caching, i.e., calling the function twice with the same type will also do
|
||||
// the work twice. The `qualified` parameter only affects the first level of the
|
||||
// type name, further levels (i.e., type parameters) are always fully qualified.
|
||||
/// Compute the name of the type as it should be stored in debuginfo. Does not do
|
||||
/// any caching, i.e., calling the function twice with the same type will also do
|
||||
/// the work twice. The `qualified` parameter only affects the first level of the
|
||||
/// type name, further levels (i.e., type parameters) are always fully qualified.
|
||||
pub fn compute_debuginfo_type_name<'tcx>(
|
||||
tcx: TyCtxt<'tcx>,
|
||||
t: Ty<'tcx>,
|
||||
|
|
|
@ -40,10 +40,10 @@ pub enum OperandValue<V> {
|
|||
/// instead.
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct OperandRef<'tcx, V> {
|
||||
// The value.
|
||||
/// The value.
|
||||
pub val: OperandValue<V>,
|
||||
|
||||
// The layout of value, based on its Rust type.
|
||||
/// The layout of value, based on its Rust type.
|
||||
pub layout: TyAndLayout<'tcx>,
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue