about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/callee.rs
AgeCommit message (Collapse)AuthorLines
2020-08-30mv compiler to compiler/mark-192/+0
2020-08-06Incorporate tracing cratebishtpawan-1/+1
2020-07-29Auto merge of #72049 - mati865:mingw-lld, r=petrochenkovbors-1/+6
MinGW: enable dllexport/dllimport Fixes (only when using LLD) https://github.com/rust-lang/rust/issues/50176 Fixes https://github.com/rust-lang/rust/issues/72319 This makes `windows-gnu` on pair with `windows-msvc` when it comes to symbol exporting. For MinGW it means both good things like correctly working dllimport/dllexport, ability to link with LLD and bad things like https://github.com/rust-lang/rust/issues/27438. Not sure but maybe this should land behind unstable compiler option (`-Z`) or environment variable?
2020-07-29MinGW: emit dllexport/dllimport by rustcMateusz MikuĊ‚a-1/+6
This fixes various cases where LD could not guess dllexport correctly and greatly improves compatibility with LLD which is not going to support linker scripts anytime soon
2020-07-20mir: `unused_generic_params` queryDavid Wood-3/+7
This commit implements the `unused_generic_params` query, an initial version of polymorphization which detects when an item does not use generic parameters and is being needlessly monomorphized as a result. Signed-off-by: David Wood <david@davidtw.co>
2020-07-15Change `SymbolName::name` to a `&str`.Nicholas Nethercote-1/+1
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.
2020-04-23Modify `as_local_hir_id` to accept a `LocalDefId` instead of a `DefId`marmeladema-1/+1
2020-04-07fix abuses of tykind::errmark-1/+1
2020-03-31Address review feedbackWesley Wiser-1/+1
2020-03-30rustc -> rustc_middle part 2Mazdak Farrokhzad-2/+2
2020-01-23Add projection query for upstream drop-glue instances.Michael Woerister-6/+1
This reduces the amount of invalidated data when new types are add to upstream crates.
2020-01-05Rename Instance.ty to Instance.monomorphic_tyAaron Hill-1/+1
2019-12-22Format the worldMark Rousskov-15/+14
2019-12-11rustc: Link LLVM directly into rustc againAlex Crichton-0/+1
This commit builds on #65501 continue to simplify the build system and compiler now that we no longer have multiple LLVM backends to ship by default. Here this switches the compiler back to what it once was long long ago, which is linking LLVM directly to the compiler rather than dynamically loading it at runtime. The `codegen-backends` directory of the sysroot no longer exists and all relevant support in the build system is removed. Note that `rustc` still supports a dynamically loaded codegen backend as it did previously, it just no longer supports dynamically loaded codegen backends in its own sysroot. Additionally as part of this the `librustc_codegen_llvm` crate now once again explicitly depends on all of its crates instead of implicitly loading them through the sysroot. This involved filling out its `Cargo.toml` and deleting all the now-unnecessary `extern crate` annotations in the header of the crate. (this in turn required adding a number of imports for names of macros too). The end results of this change are: * Rustbuild's build process for the compiler as all the "oh don't forget the codegen backend" checks can be easily removed. * Building `rustc_codegen_llvm` is much simpler since it's simply another compiler crate. * Managing the dependencies of `rustc_codegen_llvm` is much simpler since it's "just another `Cargo.toml` to edit" * The build process should be a smidge faster because there's more parallelism in the main rustc build step rather than splitting `librustc_codegen_llvm` out to its own step. * The compiler is expected to be slightly faster by default because the codegen backend does not need to be dynamically loaded. * Disabling LLVM as part of rustbuild is still supported, supporting multiple codegen backends is still supported, and dynamic loading of a codegen backend is still supported.
2019-12-03rustc_target: add abi::call::Conv::Rust distinct from Conv::C.Eduard-Mihai Burtescu-1/+1
2019-12-03rustc_codegen_llvm: take an Instance in attributes::from_fn_attrs.Eduard-Mihai Burtescu-7/+1
2019-12-03rustc: compute FnAbi's for virtual calls through FnAbi::of_instance.Eduard-Mihai Burtescu-1/+1
2019-12-03rustc_codegen_ssa: use FnAbi::of_instance wherever possible.Eduard-Mihai Burtescu-11/+12
2019-12-03rustc_codegen_ssa: take a FnAbi instead of a FnSig in declare_fn.Eduard-Mihai Burtescu-10/+12
2019-10-13Remove MiscMethods::instancesbjorn3-1/+1
2019-09-04Remove `LocalInternedString` uses from `librustc/ty/`.Nicholas Nethercote-1/+1
This is not a compelling change in isolation, but it is a necessary step.
2019-06-02remove reexport of rustc::ty::InstanceMark Mansi-2/+1
2019-03-05Use non_erasable_generics for codegenvarkor-1/+1
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-02-18librustc_codegen_llvm => 2018Taiki Endo-5/+5
2019-02-10rustc: doc commentsAlexander Regueiro-2/+2
2018-12-25Remove licensesMark Rousskov-10/+0
2018-12-12rustc: Switch `extern` functions to abort by default on panicAlex Crichton-1/+1
This was intended to land way back in 1.24, but it was backed out due to breakage which has long since been fixed. An unstable `#[unwind]` attribute can be used to tweak the behavior here, but this is currently simply switching rustc's internal default to abort-by-default if an `extern` function panics, making our codegen sound primarily (as currently you can produce UB with safe code) Closes #52652
2018-11-29Rename StaticMethods::static_ptrcast to ConstMethods::const_ptrcastbjorn3-1/+1
2018-11-16[eddyb] rustc_codegen_ssa: rename `interfaces` to `traits`.Eduard-Mihai Burtescu-1/+1
2018-11-16Finished moving backend-agnostic code to rustc_codegen_ssaDenis Merigoux-4/+2
2018-11-16Great separation of librustc_codegen_llvm: librustc_codegen_ssa compilesDenis Merigoux-32/+0
2018-11-16Move doc to trait declarationsDenis Merigoux-3/+1
2018-11-16Generalized mir::codegen_mir (and all subsequent functions)Denis Merigoux-12/+9
2018-11-16Generalized base::unsized_infoDenis Merigoux-13/+15
2018-11-16Generalized memset and memcpyDenis Merigoux-1/+1
2018-11-16Removing LLVM content from CommonMethods -> ConstMethodsDenis Merigoux-1/+1
2018-11-16CommonWriteMethods are not static any moreDenis Merigoux-2/+2
2018-11-16Split CommonMethods to accomodate for use in back/write.rsDenis Merigoux-1/+1
2018-11-16Traitification of common.rs methodsDenis Merigoux-3/+4
2018-11-03Shift both late bound regions and bound typesscalexm-1/+1
2018-10-24Move codegen_llvm::common::ty_fn_sig into rustc::ty::Instance.Masaki Hara-4/+4
2018-10-24Make declare_fn accept PolyFnSig instead of Ty.Masaki Hara-1/+1
2018-10-24Resolve to Instance::VtableShim when necessary.Masaki Hara-0/+16
2018-10-24Make declare_fn aware of vtable shims.Masaki Hara-1/+1
2018-10-24Add ty_fn_sig_vtable for getting adjusted signature for vtable shims.Masaki Hara-1/+1
2018-08-23AMDGPU ignores `noinline` when it slaps `alwaysinline` everywhere.Richard Diamond-1/+1
Allow target specs to disable that attribute.
2018-08-16Set more llvm function attributes for __rust_tryAlex Crichton-1/+1
This shim is generated elsewhere in the compiler so this commit adds support to ensure it goes through similar paths as the rest of the compiler to set llvm function attributes like target features. cc #53372
2018-08-04Move share_generics getter onto options directlyMark Rousskov-1/+1
2018-07-30rustc_codegen_llvm: use safe references for Value.Irina Popa-10/+11
2018-05-24std: Ensure OOM is classified as `nounwind`Alex Crichton-11/+0
OOM can't unwind today, and historically it's been optimized as if it can't unwind. This accidentally regressed with recent changes to the OOM handler, so this commit adds in a codegen test to assert that everything gets optimized away after the OOM function is approrpiately classified as nounwind Closes #50925