| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2020-04-15 | Use `call` instead of `invoke` for functions that cannot unwind | Wesley Wiser | -1/+3 | |
| The `FnAbi` now knows if the function is allowed to unwind. If a function isn't allowed to unwind, we can use a `call` instead of an `invoke`. This resolves an issue when calling LLVM intrinsics which cannot unwind LLVM will generate an error if you attempt to invoke them so we need to ignore cleanup blocks in codegen and generate a call instead. | ||||
| 2020-04-02 | direct imports for langitem stuff | Mazdak Farrokhzad | -1/+1 | |
| 2020-04-02 | nix rustc_target::abi::* reexport in ty::layout | Mazdak Farrokhzad | -3/+4 | |
| 2020-03-31 | Use Place directly in codegen_transmute, it's Copy | Santiago Pastorino | -2/+2 | |
| 2020-03-31 | Use Place directly on make_return_dest, it's Copy | Santiago Pastorino | -2/+2 | |
| 2020-03-31 | Use Place directly on codegen_drop_terminator, it's Copy | Santiago Pastorino | -2/+2 | |
| 2020-03-30 | rustc -> rustc_middle part 3 (rustfmt) | Mazdak Farrokhzad | -1/+1 | |
| 2020-03-30 | rustc -> rustc_middle part 2 | Mazdak Farrokhzad | -5/+5 | |
| 2020-03-13 | Auto merge of #67502 - Mark-Simulacrum:opt-catch, r=Mark-Simulacrum | bors | -9/+4 | |
| Optimize catch_unwind to match C++ try/catch This refactors the implementation of catching unwinds to allow LLVM to inline the "try" closure directly into the happy path, avoiding indirection. This means that the catch_unwind implementation is (after this PR) zero-cost unless a panic is thrown. https://rust.godbolt.org/z/cZcUSB is an example of the current codegen in a simple case. Notably, the codegen is *exactly the same* if `-Cpanic=abort` is passed, which is clearly not great. This PR, on the other hand, generates the following assembly: ```asm # -Cpanic=unwind: push rbx mov ebx,0x2a call QWORD PTR [rip+0x1c53c] # <happy> mov eax,ebx pop rbx ret mov rdi,rax call QWORD PTR [rip+0x1c537] # cleanup function call call QWORD PTR [rip+0x1c539] # <unfortunate> mov ebx,0xd mov eax,ebx pop rbx ret # -Cpanic=abort: push rax call QWORD PTR [rip+0x20a1] # <happy> mov eax,0x2a pop rcx ret ``` Fixes #64224, and resolves #64222. | ||||
| 2020-03-13 | adjust enum naming | Ralf Jung | -12/+12 | |
| 2020-03-12 | rename panic_if_ intrinsics to assert_ | Ralf Jung | -4/+4 | |
| 2020-03-11 | Rollup merge of #69850 - RalfJung:panic-bounds-check, r=eddyb | Mazdak Farrokhzad | -1/+5 | |
| panic_bounds_check: use caller_location, like PanicFnLangItem The `PanicFnLangItem` got switched to using `#[caller_location]` at some point, but `PanicBoundsCheckFnLangItem` was kept in the old style. For consistency, switch that one over to use `#[caller_location]` as well. This is also helpful for Miri as it means the `assert_panic` machine hook never needs to know the current `Span`. | ||||
| 2020-03-09 | Improve readability | Ralf Jung | -2/+2 | |
| 2020-03-09 | panic_bounds_check: use caller_location, like PanicFnLangItem | Ralf Jung | -1/+5 | |
| 2020-03-05 | Remove eh_unwind_resume lang item | Amanieu d'Antras | -9/+4 | |
| 2020-02-29 | move panic intrinsic codegen to helper function | Ralf Jung | -66/+92 | |
| 2020-02-29 | fmt | Ralf Jung | -6/+10 | |
| 2020-02-29 | make it even more conservative, and note some FIXMEs | Ralf Jung | -0/+2 | |
| 2020-02-29 | mem::zeroed/uninit: panic on types that do not permit zero-initialization | Ralf Jung | -3/+28 | |
| 2020-02-24 | no more codegen for miri_start_panic | Ralf Jung | -5/+2 | |
| 2020-02-15 | Change `const_field` and `const_caller_location` to return `ConstValue` ↵ | Ben Lewis | -1/+1 | |
| instead of `Const` as the type in the returned const isn't needed. | ||||
| 2020-02-13 | rename PanicInfo -> AssertKind | Ralf Jung | -3/+3 | |
| 2020-02-13 | move PanicInfo to mir module | Ralf Jung | -1/+1 | |
| 2020-02-09 | rustc_codegen_ssa: use `debug_introduce_local` on Operand call results. | Eduard-Mihai Burtescu | -0/+3 | |
| 2020-01-28 | Local field on PlaceRef and RootPlace is not a reference anymore | Santiago Pastorino | -1/+1 | |
| 2020-01-28 | codegen_place and related functions can take PlaceRef by value | Santiago Pastorino | -5/+5 | |
| 2020-01-10 | Add span_bug that notes that shuffle indices must be constant | Santiago Pastorino | -0/+2 | |
| 2020-01-10 | Remove PlaceBase enum and make Place base field be local: Local | Santiago Pastorino | -1/+1 | |
| 2020-01-10 | Use if let instead of match with one meaningful arm | Santiago Pastorino | -19/+9 | |
| 2020-01-10 | Remove StaticKind::Promoted | Santiago Pastorino | -30/+2 | |
| 2020-01-02 | Normalize `syntax::source_map` imports. | Mazdak Farrokhzad | -9/+8 | |
| 2019-12-25 | Run RustFmt | jumbatm | -1/+4 | |
| 2019-12-25 | Pass new instance instead of self.instance to simd_shuffle_indices. | jumbatm | -3/+3 | |
| 2019-12-22 | Format the world | Mark Rousskov | -237/+216 | |
| 2019-12-22 | Add simpler entry points to const eval for common usages. | Ben Lewis | -6/+1 | |
| 2019-12-08 | Rollup merge of #66991 - Nashenas88:body_cache_cleanup, r=eddyb | Mazdak Farrokhzad | -1/+1 | |
| Cleanup BodyCache After this PR: - `BodyCache` is renamed to `BodyAndCache` - `ReadOnlyBodyCache` is renamed to `ReadOnlyBodyAndCache` - `ReadOnlyBodyAndCache::body` fn is removed and all calls to it are replaced by a deref (possible due to fix of its `Deref` imp in #65947) cc @eddyb @oli-obk | ||||
| 2019-12-08 | Rollup merge of #66325 - BartMassey:master, r=joshtriplett | Mazdak Farrokhzad | -1/+1 | |
| Change unused_labels from allow to warn Fixes #66324, making the unused_labels lint warn instead of allow by default. I'm told @rust-lang/lang will need to review this, and perhaps will want to do a crater run. | ||||
| 2019-12-07 | Auto merge of #65881 - anp:implicit-caller-location, r=eddyb,oli-obk | bors | -8/+22 | |
| Implement #[track_caller] attribute. (RFC 2091 4/N) Implements the `#[track_caller]` attribute in both const and codegen contexts. The const implementation walks up the stack to find the nearest untracked callsite. The codegen implementation adds an implicit argument to tracked function calls, and populates it with either a call to the previously-landed intrinsic or if the caller has `#[track_caller]` with a copy of the location passed to the current function. Also includes a little cleanup and a few comments in the other caller location areas. [Depends on: 65664](https://github.com/rust-lang/rust/pull/65664) [RFC 2091 text](https://github.com/rust-lang/rfcs/blob/master/text/2091-inline-semantic.md) [Tracking issue](https://github.com/rust-lang/rust/issues/47809) [Tracking doc](https://paper.dropbox.com/doc/track_rfc_2091_impl-notes--Anf1NwnIb0xcRv31YLIadyj0Ag-rwCdRc2fi2yvRZ7syGZ9q#:uid=863513134494965680023183&h2=TODO-actually-pass-location-to) | ||||
| 2019-12-06 | Address review feedback. | Adam Perry | -2/+2 | |
| 2019-12-06 | Caller location is propagated via immediates rather than memory. | Adam Perry | -4/+2 | |
| 2019-12-05 | Pass a location to #[track_caller] functions in codegen_call_terminator. | Adam Perry | -0/+12 | |
| 2019-12-05 | Add field to FunctionCx for passing caller location. | Adam Perry | -8/+12 | |
| 2019-12-05 | rustc: Apply clearer naming to BodyAndCache, fix Deref impl, remove unneeded ↵ | Paul Daniel Faria | -1/+1 | |
| Index impl, remove body fn rustc_codegen_ssa: Fix BodyAndCache reborrow to Body and change instances of body() call to derefence rustc_mir: Fix BodyAndCache reborrow to Body and change intances of body() call to derefence | ||||
| 2019-12-06 | use abort instead of unreachable | Ralf Jung | -0/+6 | |
| 2019-12-03 | rustc: take a PolyFnSig instead of an FnSig in FnAbi::of_fn_ptr. | Eduard-Mihai Burtescu | -17/+13 | |
| 2019-12-03 | rustc: rename FnAbi::new to FnAbi::of_fn_ptr. | Eduard-Mihai Burtescu | -1/+1 | |
| 2019-12-03 | rustc: compute FnAbi's for virtual calls through FnAbi::of_instance. | Eduard-Mihai Burtescu | -21/+25 | |
| 2019-12-03 | rustc_codegen_ssa: clean up lifetimes on TerminatorCodegenHelper's methods. | Eduard-Mihai Burtescu | -14/+13 | |
| 2019-12-03 | rustc_codegen_ssa: use &'tcx mir::Body<'tcx> instead of &'a ... for the MIR ↵ | Eduard-Mihai Burtescu | -21/+22 | |
| body. | ||||
| 2019-12-03 | rustc: expose the mir::Body reference lifetime from mir::ReadOnlyBodyCache ↵ | Eduard-Mihai Burtescu | -2/+2 | |
| (#64736 fallout). | ||||
