bjorn3
5efd7782b3
Don't generate unnecessary let $arg=$arg for intrinsics
2022-01-30 18:00:36 +01:00
bjorn3
246998f5ec
Remove some unused lint allows
2022-01-30 17:43:09 +01:00
bjorn3
1b8ea0705e
Add const_allocate and const_deallocate intrinsics
2022-01-30 17:35:33 +01:00
bjorn3
3ff158e3ed
Update dependencies
2022-01-30 16:57:30 +01:00
bjorn3
96dc846a7d
Rustup to rustc 1.60.0-nightly ( a00e130da
2022-01-29)
2022-01-30 16:52:18 +01:00
bjorn3
2d32e51d86
Sync from rust a00e130dae
2022-01-30 13:25:57 +01:00
pierwill
2c26139bbc
Use an indexmap
to avoid sorting LocalDefId
s
...
Update `indexmap` to 1.8.0.
Bless test
2022-01-22 22:34:16 -06:00
bjorn3
cc24cea101
Rustfmt
2022-01-19 16:38:58 +01:00
bjorn3
c6e607a947
Implement unchecked_mul intrinsic
2022-01-19 15:45:04 +01:00
bjorn3
7a8227ecf9
Rustup to rustc 1.60.0-nightly ( 9ad5d82f8
2022-01-18)
2022-01-19 15:36:14 +01:00
bjorn3
400f122709
Sync from rust 2f004d2d40
2022-01-19 15:26:05 +01:00
lcnr
513d72d007
remove is_noop
2022-01-19 13:58:29 +01:00
bjorn3
78b65718bc
Split compile_fn out of codegen_fn
2022-01-18 19:07:26 +01:00
bjorn3
5f6c59e63f
Pass only the Function to write_clif_file
2022-01-18 18:58:37 +01:00
bjorn3
f3b2d37e77
Record object file artifact size in self profile data
2022-01-18 15:24:11 +01:00
bjorn3
b91ecc78bf
Update rustc test ignore list
2022-01-18 13:59:40 +01:00
bjorn3
0472f6c91c
Use 2021 edition for libcore tests
2022-01-18 13:41:01 +01:00
bjorn3
b85cbddf75
Rustup to rustc 1.60.0-nightly ( ee5d8d37b
2022-01-17)
2022-01-18 13:02:02 +01:00
bjorn3
489bff5543
Sync from rust 7531d2fdd4
2022-01-18 12:49:50 +01:00
bjorn3
e59b024e02
Pass target_features set instead of has_feature closure
...
This avoids unnecessary monomorphizations in codegen backends
2022-01-17 18:06:30 +01:00
bjorn3
48abe3c6fa
Use Symbol for target features in asm handling
...
This saves a couple of Symbol::intern calls
2022-01-17 18:06:27 +01:00
bors
0b58e52786
Auto merge of #92816 - tmiasko:rm-llvm-asm, r=Amanieu
...
Remove deprecated LLVM-style inline assembly
The `llvm_asm!` was deprecated back in #87590 1.56.0, with intention to remove
it once `asm!` was stabilized, which already happened in #91728 1.59.0. Now it
is time to remove `llvm_asm!` to avoid continued maintenance cost.
Closes #70173 .
Closes #92794 .
Closes #87612 .
Closes #82065 .
cc `@rust-lang/wg-inline-asm`
r? `@Amanieu`
2022-01-17 09:40:29 +00:00
Ellen
eef35308ef
initial revert
2022-01-15 01:16:55 +00:00
Tomasz Miąsko
7ec4de3ab8
Remove deprecated LLVM-style inline assembly
2022-01-12 18:51:31 +01:00
Aaron Hill
409276cf55
Store a Symbol
instead of an Ident
in VariantDef
/FieldDef
...
The field is also renamed from `ident` to `name. In most cases,
we don't actually need the `Span`. A new `ident` method is added
to `VariantDef` and `FieldDef`, which constructs the full `Ident`
using `tcx.def_ident_span()`. This method is used in the cases
where we actually need an `Ident`.
This makes incremental compilation properly track changes
to the `Span`, without all of the invalidations caused by storing
a `Span` directly via an `Ident`.
2022-01-11 10:16:22 -05:00
bjorn3
8f02c4e2ee
Add y.bin to clean_all.sh
2022-01-10 12:26:23 +01:00
bjorn3
759c4ac08f
Update to Cranelift 0.80.0
2022-01-10 12:26:03 +01:00
bjorn3
4dbd3196f9
Move most code from y.rs to build_system/mod.rs
...
y.rs can't be rustfmt'ed without making it no longer be a valid bash
script.
2022-01-09 19:30:07 +01:00
bjorn3
f328359787
Merge pull request #1216 from bjorn3/reduce_cg_clif_compile_times
...
Refactor the intrinsics module for slightly better build times
2022-01-09 19:25:10 +01:00
bjorn3
b7cda373d5
Pass Ty instead of TyAndLayout to the closure of various simd helpers
...
This reduces the total amount of llvm ir lines for simd related
functions from 9604 to 9467.
2022-01-09 19:07:15 +01:00
bjorn3
2633024850
Don't monomorphize the simd helpers for each closure
...
This halves the total amount of llvm ir lines for simd related functions
from 18227 to 9604.
2022-01-09 18:55:57 +01:00
bjorn3
b60eced405
Return Value instead of CValue from the simd_for_each_lane closure
2022-01-09 18:43:08 +01:00
bjorn3
57d25ef60e
Use simplified version of bool_to_zero_or_max_uint in simd_cmp
2022-01-09 18:32:27 +01:00
bjorn3
d4d2b24d55
Slightly simplify some macros by removing an extra case for when signedness doesn't matter
...
This is slightly more verbose when invoking the macro.
2022-01-09 17:44:55 +01:00
bjorn3
78e2d4a275
Remove support for vector icmp for now
...
Real simd support will need an overhaul in the future anyway. For now it
only complicates the code.
2022-01-09 17:39:00 +01:00
bjorn3
8ace43e650
Move a couple of macros to intrinsics::simd
2022-01-09 17:34:55 +01:00
bjorn3
4e3a8d5fb9
Move validate_simd_type from intrinsics to intrinsics::simd
2022-01-09 17:30:01 +01:00
bjorn3
9295b086f6
Turn validate_simd_type into a function
...
This effectively outlines it, significantly reducing the size of
the codegen_simd_intrinsic_call llvm ir from 10419 lines to 6378 lines.
2022-01-09 17:29:16 +01:00
bjorn3
9e6d8c1b24
Remove the call_intrinsic_match macro
2022-01-09 17:22:23 +01:00
bjorn3
baad993dae
Dedup codegen_operand calls in codegen_float_intrinsic_call
...
This reduces the amount of llvm ir lines for this function by a little
over half from 1662 to 781.
2022-01-09 17:19:11 +01:00
bjorn3
300974714c
Dedup write_cvalue calls in codegen_float_intrinsic_call
...
Also directly use an array instead of going through a tuple. This
reduces the amount of llvm ir lines for this function by almost half
from 3086 to 1662.
2022-01-09 17:11:28 +01:00
bjorn3
a1a164083e
Move call_intrinsic_match macro into codegen_float_intrinsic_call
2022-01-09 16:44:54 +01:00
bjorn3
046e094842
Only use a single bug!() invocation in call_intrinsic_match
...
This reduces code size
2022-01-09 15:40:40 +01:00
bjorn3
409e3eb2cb
Remove unnecessary argument
2022-01-09 15:40:39 +01:00
bjorn3
70cc242545
Remove a couple of duplicate calls
2022-01-09 15:38:45 +01:00
bjorn3
c5b969583f
Split codegen_intrinsic_call function
...
This should reduce compile times of cg_clif
2022-01-09 15:36:05 +01:00
bjorn3
9913630158
Reduce usage of subst types in the intrinsic code
...
Using the arguments often saves a layout_of call
2022-01-09 14:54:43 +01:00
bjorn3
e4fff03d40
Update Cranelift to 0.79.1
...
This version fixes the regressions in 0.79.0
2022-01-05 12:22:23 +01:00
Matthias Krüger
1da0071338
Rollup merge of #90102 - nbdd0121:box3, r=jonas-schievink
...
Remove `NullOp::Box`
Follow up of #89030 and MCP rust-lang/compiler-team#460 .
~1 month later nothing seems to be broken, apart from a small regression that #89332 (1aac85bb716c09304b313d69d30d74fe7e8e1a8e) shows could be regained by remvoing the diverging path, so it shall be safe to continue and remove `NullOp::Box` completely.
r? `@jonas-schievink`
`@rustbot` label T-compiler
2022-01-03 14:44:15 +01:00
bjorn3
720cd94cef
Merge branch 'sync_from_rust'
2021-12-30 14:54:21 +01:00