diff options
| author | Michael Woerister <michaelwoerister@posteo> | 2018-07-16 08:59:10 +0200 |
|---|---|---|
| committer | Michael Woerister <michaelwoerister@posteo> | 2018-07-16 08:59:10 +0200 |
| commit | d992090a702dff976a6d05a9b53b0d7b82199d14 (patch) | |
| tree | ed0091cc4d92cab8a3f3fb5162b26d80fdfaf99c /src/librustc_codegen_llvm/back | |
| parent | 5c0110f44bc830960ce3c89607a9f9012aa7adb3 (diff) | |
| download | rust-d992090a702dff976a6d05a9b53b0d7b82199d14.tar.gz rust-d992090a702dff976a6d05a9b53b0d7b82199d14.zip | |
Revert "Provide a way of accessing the ThinLTO module import map in rustc."
This reverts commit 9df56ca0eea1a8f5af945df25ce23e276b1d48a7.
Diffstat (limited to 'src/librustc_codegen_llvm/back')
| -rw-r--r-- | src/librustc_codegen_llvm/back/lto.rs | 69 |
1 files changed, 1 insertions, 68 deletions
diff --git a/src/librustc_codegen_llvm/back/lto.rs b/src/librustc_codegen_llvm/back/lto.rs index 28b9d2e7afa..a33f8b569d0 100644 --- a/src/librustc_codegen_llvm/back/lto.rs +++ b/src/librustc_codegen_llvm/back/lto.rs @@ -20,13 +20,12 @@ use rustc::hir::def_id::LOCAL_CRATE; use rustc::middle::exported_symbols::SymbolExportLevel; use rustc::session::config::{self, Lto}; use rustc::util::common::time_ext; -use rustc_data_structures::fx::FxHashMap; use time_graph::Timeline; use {ModuleCodegen, ModuleLlvm, ModuleKind, ModuleSource}; use libc; -use std::ffi::{CString, CStr}; +use std::ffi::CString; use std::ptr; use std::slice; use std::sync::Arc; @@ -777,69 +776,3 @@ impl ThinModule { Ok(module) } } - - -#[derive(Debug)] -pub struct ThinLTOImports { - // key = llvm name of importing module, value = list of modules it imports from - imports: FxHashMap<String, Vec<String>>, -} - -impl ThinLTOImports { - - /// Load the ThinLTO import map from ThinLTOData. - unsafe fn from_thin_lto_data(data: *const llvm::ThinLTOData) -> ThinLTOImports { - let raw_data: *const llvm::ThinLTOModuleImports = - llvm::LLVMRustGetThinLTOModuleImports(data); - - assert!(!raw_data.is_null()); - - let mut imports = FxHashMap(); - let mut module_ptr = raw_data; - let mut module_index = 0; - - loop { - let mut entry_ptr: *const llvm::ThinLTOModuleName = *module_ptr; - - if entry_ptr.is_null() { - break; - } - - let importing_module_name = CStr::from_ptr(*entry_ptr) - .to_str() - .expect("Non-utf8 LLVM module name encountered") - .to_owned(); - - entry_ptr = entry_ptr.offset(1); - - let mut imported_modules = vec![]; - - loop { - let imported_module_name = *entry_ptr; - - if imported_module_name.is_null() { - break - } - - let imported_module_name = CStr::from_ptr(imported_module_name) - .to_str() - .expect("Non-utf8 LLVM module name encountered") - .to_owned(); - - imported_modules.push(imported_module_name); - entry_ptr = entry_ptr.offset(1); - } - - imports.insert(importing_module_name, imported_modules); - - module_ptr = module_ptr.offset(1); - module_index += 1; - } - - assert_eq!(module_index, imports.len()); - - ThinLTOImports { - imports - } - } -} |
