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/rustllvm/PassWrapper.cpp | |
| 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/rustllvm/PassWrapper.cpp')
| -rw-r--r-- | src/rustllvm/PassWrapper.cpp | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp index 30f585efedc..a00ff3b345d 100644 --- a/src/rustllvm/PassWrapper.cpp +++ b/src/rustllvm/PassWrapper.cpp @@ -798,11 +798,6 @@ LLVMRustPGOAvailable() { #endif } -// We encode the ThinLTO module import map as a nested null-terminated list to -// get it into Rust. -typedef const char* LLVMRustThinLTOModuleName; -typedef LLVMRustThinLTOModuleName* LLVMRustThinLTOModuleImports; - #if LLVM_VERSION_GE(4, 0) // Here you'll find an implementation of ThinLTO as used by the Rust compiler @@ -1104,52 +1099,6 @@ LLVMRustPrepareThinLTOImport(const LLVMRustThinLTOData *Data, LLVMModuleRef M) { return true; } -/// Converts the LLVMRustThinLTOData::ImportLists map into a nested list. The -/// first level is a null-terminated array with an entry for each module. Each -/// entry is a pointer that points to a null-termined array of module names. The -/// first entry is always the name of the *importing* module, the following -/// entries are the names of the modules it imports from. Each module name is -/// a regular C string. -extern "C" LLVMRustThinLTOModuleImports* -LLVMRustGetThinLTOModuleImports(const LLVMRustThinLTOData *Data) { - // Allocate number of module +1. This is a null-terminated array. - LLVMRustThinLTOModuleImports* thinLTOModuleImports = - new LLVMRustThinLTOModuleImports[Data->ImportLists.size() + 1]; - size_t module_index = 0; - - for (const auto & module : Data->ImportLists) { - StringRef module_id = module.getKey(); - const auto& imports = module.getValue(); - - // Allocate number of imported module + 2, one extra for the name of the - // importing module and another one for null-termination. - LLVMRustThinLTOModuleImports imports_array = - new LLVMRustThinLTOModuleName[imports.size() + 2]; - - // The first value is always the name of the *importing* module. - imports_array[0] = strndup(module_id.data(), module_id.size()); - - size_t imports_array_index = 1; - for (const auto imported_module_id : imports.keys()) { - // The following values are the names of the imported modules. - imports_array[imports_array_index] = strndup(imported_module_id.data(), - imported_module_id.size()); - imports_array_index += 1; - } - - assert(imports_array_index == imports.size() + 1); - imports_array[imports_array_index] = nullptr; - - thinLTOModuleImports[module_index] = imports_array; - module_index += 1; - } - - assert(module_index == Data->ImportLists.size()); - thinLTOModuleImports[module_index] = nullptr; - - return thinLTOModuleImports; -} - // This struct and various functions are sort of a hack right now, but the // problem is that we've got in-memory LLVM modules after we generate and // optimize all codegen-units for one compilation in rustc. To be compatible @@ -1331,11 +1280,6 @@ LLVMRustPrepareThinLTOImport(const LLVMRustThinLTOData *Data, LLVMModuleRef M) { report_fatal_error("ThinLTO not available"); } -extern "C" LLVMRustThinLTOModuleImports -LLVMRustGetLLVMRustThinLTOModuleImports(const LLVMRustThinLTOData *Data) { - report_fatal_error("ThinLTO not available"); -} - extern "C" void LLVMRustFreeThinLTOData(LLVMRustThinLTOData *Data) { report_fatal_error("ThinLTO not available"); |
