diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2020-07-10 15:45:05 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2020-07-15 14:37:55 +1000 |
| commit | 7c4d431c067308ae79b902fe0d0e7b9c6958d0e9 (patch) | |
| tree | c964535c7342e0f4d9f2a0fd5684c7b21b51d231 /src/librustc_codegen_ssa/back | |
| parent | 567ad7455d5f25f6b38d2fded1cb621e0c34a48b (diff) | |
| download | rust-7c4d431c067308ae79b902fe0d0e7b9c6958d0e9.tar.gz rust-7c4d431c067308ae79b902fe0d0e7b9c6958d0e9.zip | |
Change `SymbolName::name` to a `&str`.
This eliminates a bunch of `Symbol::intern()` and `Symbol::as_str()` calls, which is good, because they require locking the interner. Note that the unsafety in `from_cycle_error()` is identical to the unsafety on other adjacent impls.
Diffstat (limited to 'src/librustc_codegen_ssa/back')
| -rw-r--r-- | src/librustc_codegen_ssa/back/symbol_export.rs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/librustc_codegen_ssa/back/symbol_export.rs b/src/librustc_codegen_ssa/back/symbol_export.rs index faf6809f35b..e0910c693b1 100644 --- a/src/librustc_codegen_ssa/back/symbol_export.rs +++ b/src/librustc_codegen_ssa/back/symbol_export.rs @@ -16,7 +16,6 @@ use rustc_middle::ty::subst::{GenericArgKind, SubstsRef}; use rustc_middle::ty::Instance; use rustc_middle::ty::{SymbolName, TyCtxt}; use rustc_session::config::{CrateType, SanitizerSet}; -use rustc_span::symbol::sym; pub fn threshold(tcx: TyCtxt<'_>) -> SymbolExportLevel { crates_export_threshold(&tcx.sess.crate_types()) @@ -117,9 +116,9 @@ fn reachable_non_generics_provider(tcx: TyCtxt<'_>, cnum: CrateNum) -> DefIdMap< // In general though we won't link right if these // symbols are stripped, and LTO currently strips them. match name { - sym::rust_eh_personality - | sym::rust_eh_register_frames - | sym::rust_eh_unregister_frames => + "rust_eh_personality" + | "rust_eh_register_frames" + | "rust_eh_unregister_frames" => SymbolExportLevel::C, _ => SymbolExportLevel::Rust, } @@ -177,7 +176,7 @@ fn exported_symbols_provider_local( .collect(); if tcx.entry_fn(LOCAL_CRATE).is_some() { - let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new("main")); + let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(tcx, "main")); symbols.push((exported_symbol, SymbolExportLevel::C)); } @@ -185,7 +184,7 @@ fn exported_symbols_provider_local( if tcx.allocator_kind().is_some() { for method in ALLOCATOR_METHODS { let symbol_name = format!("__rust_{}", method.name); - let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(&symbol_name)); + let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(tcx, &symbol_name)); symbols.push((exported_symbol, SymbolExportLevel::Rust)); } @@ -199,7 +198,7 @@ fn exported_symbols_provider_local( ["__llvm_profile_raw_version", "__llvm_profile_filename"]; symbols.extend(PROFILER_WEAK_SYMBOLS.iter().map(|sym| { - let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(sym)); + let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(tcx, sym)); (exported_symbol, SymbolExportLevel::C) })); } @@ -209,14 +208,14 @@ fn exported_symbols_provider_local( const MSAN_WEAK_SYMBOLS: [&str; 2] = ["__msan_track_origins", "__msan_keep_going"]; symbols.extend(MSAN_WEAK_SYMBOLS.iter().map(|sym| { - let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(sym)); + let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(tcx, sym)); (exported_symbol, SymbolExportLevel::C) })); } if tcx.sess.crate_types().contains(&CrateType::Dylib) { let symbol_name = metadata_symbol_name(tcx); - let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(&symbol_name)); + let exported_symbol = ExportedSymbol::NoDefId(SymbolName::new(tcx, &symbol_name)); symbols.push((exported_symbol, SymbolExportLevel::Rust)); } |
