| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2020-05-02 | fix rustdoc warnings | Tshepang Lekhonkhobe | -1/+1 | |
| 2020-04-26 | codegen_llvm: Simplify logic for relaxing PIC into PIE | Vadim Petrochenkov | -4/+0 | |
| 2020-04-05 | Remove Arcs in queries. | Camille GILLOT | -2/+1 | |
| 2020-04-02 | use direct import for ErrorReported | Mazdak Farrokhzad | -1/+1 | |
| 2020-04-02 | nix rustc_target::abi::* reexport in ty::layout | Mazdak Farrokhzad | -18/+16 | |
| 2020-03-30 | rustc -> rustc_middle part 3 (rustfmt) | Mazdak Farrokhzad | -6/+6 | |
| 2020-03-30 | rustc -> rustc_middle part 2 | Mazdak Farrokhzad | -26/+26 | |
| 2020-03-27 | Rename TyLayout to TyAndLayout. | Ana-Maria Mihalache | -11/+11 | |
| 2020-03-26 | Rename asm! to llvm_asm! | Amanieu d'Antras | -3/+3 | |
| asm! is left as a wrapper around llvm_asm! to maintain compatibility. | ||||
| 2020-03-19 | Refactorings to begin getting rid of rustc_codegen_utils | Mark Mansi | -6/+57 | |
| 2020-03-16 | use direct imports for `rustc::{lint, session}`. | Mazdak Farrokhzad | -2/+2 | |
| 2020-03-13 | Auto merge of #67502 - Mark-Simulacrum:opt-catch, r=Mark-Simulacrum | bors | -1/+0 | |
| 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-06 | fix various typos | Matthias Krüger | -1/+1 | |
| 2020-03-05 | Remove eh_unwind_resume lang item | Amanieu d'Antras | -1/+0 | |
| 2020-02-29 | Rename `syntax` to `rustc_ast` in source code | Vadim Petrochenkov | -2/+2 | |
| 2020-02-08 | rustc_codegen_ssa: remove unnecessary source_locations_enabled. | Eduard-Mihai Burtescu | -6/+1 | |
| 2020-02-08 | rustc_codegen_llvm: remove InternalDebugLocation and simplify dbg_var_addr. | Eduard-Mihai Burtescu | -1/+0 | |
| 2020-02-03 | rustc_codegen_ssa: split declare_local into create_dbg_var and dbg_var_addr. | Eduard-Mihai Burtescu | -6/+22 | |
| 2020-01-09 | Precompile CGUs while the main thread has the implicit job server token | John Kåre Alsaker | -0/+2 | |
| 2020-01-09 | Compile some CGUs in parallel at the start of codegen | John Kåre Alsaker | -4/+3 | |
| 2020-01-05 | Remove rustc_hir reexports in rustc::hir. | Mazdak Farrokhzad | -4/+4 | |
| 2020-01-04 | canonicalize FxHash{Map,Set} imports | Mazdak Farrokhzad | -1/+1 | |
| 2020-01-01 | Rename `syntax_pos` to `rustc_span` in source code | Vadim Petrochenkov | -6/+6 | |
| 2019-12-22 | Format the world | Mark Rousskov | -28/+19 | |
| 2019-12-03 | rustc_codegen_ssa: use FnAbi::of_instance wherever possible. | Eduard-Mihai Burtescu | -2/+3 | |
| 2019-12-03 | rustc_codegen_ssa: take a FnAbi instead of a FnSig in declare_fn. | Eduard-Mihai Burtescu | -2/+3 | |
| 2019-12-03 | rustc_codegen_ssa: remove define_fn and define_internal_fn. | Eduard-Mihai Burtescu | -14/+0 | |
| 2019-11-21 | Aggregation of drive-by cosmetic changes. | Alexander Regueiro | -8/+12 | |
| 2019-11-21 | reduce size of hir::ExprKind | Mazdak Farrokhzad | -2/+2 | |
| 2019-11-03 | rustc_codegen_ssa: rename ArgTypeMethods to ArgAbiMethods. | Eduard-Mihai Burtescu | -4/+4 | |
| 2019-11-03 | rustc_target: rename {Fn,Arg}Type to {Fn,Arg}Abi. | Eduard-Mihai Burtescu | -10/+10 | |
| 2019-10-31 | rustc_codegen_ssa: hide address ops from the declare_local interface. | Eduard-Mihai Burtescu | -3/+6 | |
| 2019-10-31 | rustc_codegen_ssa: move debuginfo scopes into FunctionDebugContext. | Eduard-Mihai Burtescu | -12/+4 | |
| 2019-10-31 | rustc_codegen_ssa: change set_var_name back to taking a &str. | Eduard-Mihai Burtescu | -1/+1 | |
| 2019-10-31 | rustc_codegen_ssa: move debuginfo-related things to a new mir::debuginfo module. | Eduard-Mihai Burtescu | -2/+2 | |
| 2019-10-28 | Rollup merge of #65792 - Centril:split-syntax-2, r=petrochenkov | Mazdak Farrokhzad | -1/+1 | |
| rustc, rustc_passes: reduce deps on rustc_expand Part of #65324. r? @petrochenkov | ||||
| 2019-10-27 | Always use consteval to codegen caller_location. | Adam Perry | -2/+0 | |
| 2019-10-27 | Panicking infra uses &core::panic::Location. | Adam Perry | -9/+0 | |
| This allows us to remove `static_panic_msg` from the SSA<->LLVM boundary, along with its fat pointer representation for &str. Also changes the signature of PanicInfo::internal_contructor to avoid copying. Closes #65856. | ||||
| 2019-10-27 | Implement core::intrinsics::caller_location. | Adam Perry | -0/+4 | |
| Returns a `&core::panic::Location` corresponding to where it was called, also making `Location` a lang item. | ||||
| 2019-10-27 | rustc, rustc_passes: don't depend on syntax_expand. | Mazdak Farrokhzad | -1/+1 | |
| This is done by moving some data definitions to syntax::expand. | ||||
| 2019-10-21 | Use `Symbol` for codegen unit names. | Nicholas Nethercote | -2/+2 | |
| This is a straightforward replacement except for two places where we have to convert to `LocalInternedString` to get a stable sort. | ||||
| 2019-10-16 | move syntax::ext to new crate syntax_expand | Mazdak Farrokhzad | -1/+1 | |
| 2019-10-13 | Remove MiscMethods::instances | bjorn3 | -2/+2 | |
| 2019-10-13 | s/FuncId/Function | bjorn3 | -9/+9 | |
| 2019-10-13 | Remove is_const_integral method from ConstMethods | bjorn3 | -3/+1 | |
| 2019-10-13 | Introduce FuncId backend type | bjorn3 | -7/+10 | |
| 2019-10-10 | Auto merge of #59546 - sfanxiang:interminable-ub, r=nagisa | bors | -0/+1 | |
| Add llvm.sideeffect to potential infinite loops and recursions LLVM assumes that a thread will eventually cause side effect. This is not true in Rust if a loop or recursion does nothing in its body, causing undefined behavior even in common cases like `loop {}`. Inserting llvm.sideeffect fixes the undefined behavior. As a micro-optimization, only insert llvm.sideeffect when jumping back in blocks or calling a function. A patch for LLVM is expected to allow empty non-terminate code by default and fix this issue from LLVM side. https://github.com/rust-lang/rust/issues/28728 **UPDATE:** [Mentoring instructions here](https://github.com/rust-lang/rust/pull/59546#issuecomment-515072429) to unstall this PR | ||||
| 2019-09-29 | remove indexed_vec re-export from rustc_data_structures | csmoe | -1/+1 | |
| 2019-09-28 | Add llvm.sideeffect to potential infinite loops and recursions | Xiang Fan | -0/+1 | |
| LLVM assumes that a thread will eventually cause side effect. This is not true in Rust if a loop or recursion does nothing in its body, causing undefined behavior even in common cases like `loop {}`. Inserting llvm.sideeffect fixes the undefined behavior. As a micro-optimization, only insert llvm.sideeffect when jumping back in blocks or calling a function. A patch for LLVM is expected to allow empty non-terminate code by default and fix this issue from LLVM side. https://github.com/rust-lang/rust/issues/28728 | ||||
| 2019-09-26 | Rollup merge of #64772 - Mark-Simulacrum:no-tyctxt-tx, r=eddyb | Mazdak Farrokhzad | -1/+7 | |
| Remove tx_to_llvm_workers from TyCtxt This can be kept within the codegen backend crates entirely -- there's no reason for us to create it outside and attempt to hold it in the (global) context. Changes here aren't really too easily reviewable I suspect -- not sure if they can be cleaned up by splitting into more commits though, it's just hard to reason about `Box<Any>` in general. If there are thoughts though I'd be happy to hear them. The primary goal of this PR is to get rid of the field on `rustc_interface::Queries`. | ||||
