rust/compiler
Ralf Jung 2911b8cb30
Rollup merge of #76766 - khyperia:generic_intrinsics, r=eddyb
Extract some intrinsics out of rustc_codegen_llvm

A significant amount of intrinsics do not actually need backend-specific behaviors to be implemented, instead relying on methods already in rustc_codegen_ssa. So, extract those methods out to rustc_codegen_ssa, so that each backend doesn't need to reimplement the same code.

Almost everything should be a pretty direct translation. A notable not-direct-translation is `add_with_overflow` and friends being changed to `bx.checked_binop`, but it's pretty simple.

I could have been a lot more aggressive here and pulled out way more methods, and add a few new methods in the rustc_codegen_ssa "API". However, because this is my second rustc PR, I thought that moving those to a follow-up PR and doing more incremental changes here would be better (and I guess ask if this work is even desired in the first place). I'm hoping to eventually remove the mess of intrinsic handling in the backend entirely, which would be hecking fantastic 
2020-09-20 12:08:13 +02:00
..
rustc just max_level_info 2020-09-11 09:37:51 -07:00
rustc_apfloat mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_arena Add bench_typed_arena_clear_100 bench 2020-09-18 05:52:45 +02:00
rustc_ast Auto merge of #76541 - matthiaskrgr:unstable_sort, r=davidtwco 2020-09-14 21:43:17 +00:00
rustc_ast_lowering Auto merge of #76541 - matthiaskrgr:unstable_sort, r=davidtwco 2020-09-14 21:43:17 +00:00
rustc_ast_passes Stabilize doc_alias feature 2020-09-14 11:03:47 +02:00
rustc_ast_pretty Fully integrate token collection for additional AST structs 2020-09-10 17:58:14 -04:00
rustc_attr mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_builtin_macros Attach tokens to ast::Stmt 2020-09-10 17:33:06 -04:00
rustc_codegen_llvm Extract some intrinsics out of rustc_codegen_llvm 2020-09-15 23:35:31 +02:00
rustc_codegen_ssa Extract some intrinsics out of rustc_codegen_llvm 2020-09-15 23:35:31 +02:00
rustc_data_structures Use T::BITS instead of size_of::<T> * 8. 2020-09-19 06:54:42 +02:00
rustc_driver just max_level_info 2020-09-11 09:37:51 -07:00
rustc_error_codes Adjust spelling 2020-09-15 18:10:41 +02:00
rustc_errors replacing sub's that can wrap by saturating_sub's 2020-09-11 11:11:11 +02:00
rustc_expand Rollup merge of #75146 - tmiasko:range-overflow, r=Mark-Simulacrum 2020-09-16 01:30:30 +02:00
rustc_feature Stabilize doc_alias feature 2020-09-14 11:03:47 +02:00
rustc_fs_util mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_graphviz Make graphviz font configurable 2020-09-16 08:10:06 -07:00
rustc_hir review, improve note span 2020-09-13 22:53:51 +02:00
rustc_hir_pretty mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_incremental mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_index Improve BitSet APIs 2020-08-30 11:13:18 -07:00
rustc_infer Auto merge of #72412 - VFLashM:issue-72408-nested-closures-exponential, r=tmandry 2020-09-18 14:08:39 +00:00
rustc_interface Attach tokens to ast::Stmt 2020-09-10 17:33:06 -04:00
rustc_lexer lexer: Tiny improvement to shebang detection 2020-09-02 00:40:19 +03:00
rustc_lint Rollup merge of #75099 - davidtwco:is-zst-abstraction-violation, r=eddyb 2020-09-19 11:47:34 +02:00
rustc_llvm Update cc crate to understand aarch64-apple-darwin with clang 2020-09-18 09:22:07 -04:00
rustc_macros Fix non-determinism in generated format string. 2020-09-09 21:23:25 +10:00
rustc_metadata support const_evaluatable_checked across crate boundaries 2020-09-18 17:11:34 +02:00
rustc_middle Auto merge of #75346 - davidtwco:issue-69925-polymorphic-instancedef-fnptrshim, r=nikomatsakis 2020-09-20 04:15:43 +00:00
rustc_mir Auto merge of #76411 - RalfJung:promote-in-const-fn, r=ecstatic-morse 2020-09-20 06:20:16 +00:00
rustc_mir_build Rollup merge of #76757 - matthiaskrgr:clippy_try_into, r=lcnr 2020-09-19 11:47:52 +02:00
rustc_parse improve diagnostics for lifetime after &mut 2020-09-15 10:36:06 -04:00
rustc_parse_format mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_passes allow concrete self types in consts 2020-09-13 22:53:51 +02:00
rustc_plugin_impl mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_privacy support const_evaluatable_checked across crate boundaries 2020-09-18 17:11:34 +02:00
rustc_query_system update the version of itertools and parking_lot 2020-09-12 08:26:53 +02:00
rustc_resolve Rollup merge of #76756 - matthiaskrgr:cl123ppy, r=Dylan-DPC 2020-09-16 12:24:17 -07:00
rustc_save_analysis use push(char) instead of push_str(&str) to add single chars to strings 2020-09-10 13:58:41 +02:00
rustc_serialize mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
rustc_session Rollup merge of #76794 - richkadel:graphviz-font, r=ecstatic-morse 2020-09-16 12:24:30 -07:00
rustc_span Rollup merge of #75304 - Aaron1011:feature/diag-deref-move-out, r=estebank 2020-09-16 01:30:32 +02:00
rustc_symbol_mangling Change ty.kind to a method 2020-09-04 17:47:51 +02:00
rustc_target librustc_target: Address comments 2020-09-14 17:43:06 -07:00
rustc_trait_selection Auto merge of #76886 - Aaron1011:fix/ensure-stack-predicate, r=Mark-Simulacrum 2020-09-19 09:21:22 +00:00
rustc_traits Rollup merge of #76641 - nox:pointee-random-stuff, r=eddyb 2020-09-16 08:25:00 +02:00
rustc_ty Remove def_id field from ParamEnv 2020-09-09 10:14:31 +02:00
rustc_typeck Rollup merge of #76749 - guswynn:hir_ranges, r=estebank 2020-09-19 11:47:50 +02:00