rust/src/librustc_codegen_llvm/debuginfo
Alex Crichton a120caf8b4 rustc: Update wasm32 support for LLVM 9
This commit brings in a number of minor updates for rustc's support for
the wasm target which has changed in the LLVM 9 update. Notable updates
include:

* The compiler now no longer manually inserts the `producers` section,
  instead relying on LLVM to do so. LLVM uses the `llvm.ident` metadata
  for the `processed-by` directive (which is now emitted on the wasm
  target in this PR) and it uses debuginfo to figure out what `language`
  to put in the `producers` section.

* Threaded WebAssembly code now requires different flags to be passed
  with LLD. In LLD we now pass:

  * `--shared-memory` - required since objects are compiled with
    atomics. This also means that the generated memory will be marked as
    `shared`.
  * `--max-memory=1GB` - required with the `--shared-memory` argument
    since shared memories in WebAssembly must have a maximum size. The
    1GB number is intended to be a conservative estimate for rustc, but
    it should be overridable with `-C link-arg` if necessary.
  * `--passive-segments` - this has become the default for multithreaded
    memory, but when compiling a threaded module all data segments need
    to be marked as passive to ensure they don't re-initialize memory
    for each thread. This will also cause LLD to emit a synthetic
    function to initialize memory which users will have to arrange to
    call.
  * The `__heap_base` and `__data_end` globals are explicitly exported
    since they're now hidden by default due to the `--export` flags we
    pass to LLD.
2019-07-25 07:08:45 -07:00
..
create_scope_map.rs Changes the type mir::Mir into mir::Body 2019-05-28 19:17:51 +02:00
doc.rs Fix incorrect links in librustc_codegen_llvm documentation 2019-03-11 01:11:54 +00:00
gdb.rs Pass a Symbol to check_name, emit_feature_err, and related functions. 2019-05-13 09:29:22 +10:00
metadata.rs rustc: Update wasm32 support for LLVM 9 2019-07-25 07:08:45 -07:00
mod.rs remove reexport of rustc::ty::Instance 2019-06-02 22:32:42 -05:00
namespace.rs remove unneeded deps 2019-06-02 22:56:37 -05:00
source_loc.rs Remove internal mutability from source_locations_enabled 2019-03-29 17:17:12 +01:00
utils.rs librustc_codegen_llvm: deny(elided_lifetimes_in_paths) 2019-02-25 08:40:18 +01:00