1064 Commits

Author SHA1 Message Date
bjorn3
3f47f938ba Enable Cranelift optimizations when optimizing
LICM in Cranelift has been fixed recently
2020-12-12 10:38:46 +01:00
bjorn3
f8e22bfb1b Update Cranelift 2020-12-12 10:37:10 +01:00
bjorn3
994b91ac73 Optimize branches when the target is statically known to a jump
This can happen in generic code
2020-12-09 19:55:11 +01:00
bjorn3
5f21ff20b3 Inline codegen_mono_item 2020-12-04 10:19:50 +01:00
bjorn3
d95d03ae8a Support #[repr(simd)] on array wrappers
Complement to rust-lang/rust#78863
2020-12-03 12:59:36 +01:00
bjorn3
41047de9e2 Rustfmt 2020-11-23 11:49:06 +01:00
bjorn3
e99f78af08 Make simd_extract panic at runtime on non-const index again
This is necessary to compile packed_simd
2020-11-23 11:48:53 +01:00
bjorn3
d2eeed4ff5 Implement more simd_reduce_* intrinsics 2020-11-23 11:45:41 +01:00
bjorn3
47ff2e0932 Implement float simd comparisons 2020-11-23 11:21:15 +01:00
bjorn3
22c9623604 Implement simd_reduce_{add,mul}_{,un}ordered 2020-11-23 11:09:19 +01:00
bjorn3
c3179bc44b Rustup to rustc 1.50.0-nightly (593fe977a 2020-11-20) 2020-11-21 19:49:51 +01:00
bjorn3
77e90f1cb5 Sync from rust 539402cb0b0f1639a4be14e40eaf8db61a62ae41 2020-11-21 18:43:51 +01:00
Bastian Kauschke
56e63805be update cg_clif 2020-11-16 22:42:09 +01:00
bjorn3
bf94b3819c Rustfmt 2020-11-13 19:02:24 +01:00
bjorn3
753e6bcd5f Sync from rust f2a11a25378293e41cfcb00dbf67c524ffd79b39 2020-11-13 18:47:37 +01:00
bjorn3
4e547b942d Move some things from codegen_mono_item to trans_fn 2020-11-12 17:08:51 +01:00
bjorn3
db8fa0edfa Inline codegen_mono_items and outline predefine_mono_items 2020-11-12 17:07:02 +01:00
bjorn3
6eaa502049 Update Cranelift for SimpleJIT changes 2020-11-12 11:56:09 +01:00
bjorn3
96c4542dc3 Avoid muliplications by 1
```
Benchmark #1: ./raytracer_cg_clif_pre
  Time (mean ± σ):      9.553 s ±  0.129 s    [User: 9.543 s, System: 0.008 s]
  Range (min … max):    9.438 s …  9.837 s    10 runs

Benchmark #2: ./raytracer_cg_clif_post
  Time (mean ± σ):      9.463 s ±  0.055 s    [User: 9.452 s, System: 0.008 s]
  Range (min … max):    9.387 s …  9.518 s    10 runs

Summary
  './raytracer_cg_clif_post' ran
    1.01 ± 0.01 times faster than './raytracer_cg_clif_pre'
```
2020-11-12 11:09:58 +01:00
Nicholas-Baron
a5ec85758b Changed unwrap_or to unwrap_or_else in some places.
The discussion seems to have resolved that this lint is a bit "noisy" in
that applying it in all places would result in a reduction in
readability.

A few of the trivial functions (like `Path::new`) are fine to leave
outside of closures.

The general rule seems to be that anything that is obviously an
allocation (`Box`, `Vec`, `vec![]`) should be in a closure, even if it
is a 0-sized allocation.
2020-11-10 20:07:47 -08:00
Jonas Schievink
65ae469f8d Rollup merge of #78875 - petrochenkov:cleantarg, r=Mark-Simulacrum
rustc_target: Further cleanup use of target options

Follow up to https://github.com/rust-lang/rust/pull/77729.

Implements items 2 and 4 from the list in https://github.com/rust-lang/rust/pull/77729#issue-500228243.

The first commit collapses uses of `target.options.foo` into `target.foo`.

The second commit renames some target options to avoid tautology:
`target.target_endian` -> `target.endian`
`target.target_c_int_width` -> `target.c_int_width`
`target.target_os` -> `target.os`
`target.target_env` -> `target.env`
`target.target_vendor` -> `target.vendor`
`target.target_family` -> `target.os_family`
`target.target_mcount` -> `target.mcount`

r? `@Mark-Simulacrum`
2020-11-10 14:45:21 +01:00
bjorn3
1a32c542ff Update Cranelift 2020-11-09 18:16:08 +01:00
Dylan DPC
806538fa78 Rollup merge of #78674 - tmiasko:inline-substs-for-mir-body, r=oli-obk
inliner: Use substs_for_mir_body

Changes from 68965 extended the kind of instances that are being
inlined. For some of those, the `instance_mir` returns a MIR body that
is already expressed in terms of the types found in substitution array,
and doesn't need further substitution.

Use `substs_for_mir_body` to take that into account.

Resolves #78529.
Resolves #78560.
2020-11-09 01:13:42 +01:00
bjorn3
cf3aa64c66 Better build dir layout
It now matches the layout used by rustc itself
2020-11-08 17:35:59 +01:00
Vadim Petrochenkov
e9c34b3cf8 Collapse all uses of target.options.foo into target.foo
with an eye on merging `TargetOptions` into `Target`.

`TargetOptions` as a separate structure is mostly an implementation detail of `Target` construction, all its fields logically belong to `Target` and available from `Target` through `Deref` impls.
2020-11-08 17:29:13 +03:00
bjorn3
9e1ac29cc9 Fix ICE (part 2) 2020-11-06 21:29:11 +01:00
bjorn3
4da67855f1 Rustfmt 2020-11-06 19:50:30 +01:00
bjorn3
509054d4de Fix ICE 2020-11-06 19:49:33 +01:00
Tomasz Miąsko
f7e11cba36 inliner: Use substs_for_mir_body
Changes from 68965 extended the kind of instances that are being
inlined. For some of those, the `instance_mir` returns a MIR body that
is already expressed in terms of the types found in substitution array,
and doesn't need further substitution.

Use `substs_for_mir_body` to take that into account.
2020-11-06 00:00:00 +00:00
Guillaume Gomez
d6f457d835 Fix even more URLs 2020-11-05 20:11:29 +01:00
oli
6e96e10f93 u64::try_from will now fail if ScalarInt isn't exactly 64 bits, thus we use to_bits with the correct size 2020-11-04 13:59:11 +00:00
oli
5fa1c8f91a u128 truncation and sign extension are not just interpreter related 2020-11-04 13:41:58 +00:00
oli
0dcf78ba87 s/Scalar::Raw/Scalar::Int 2020-11-04 10:11:31 +00:00
oli
7e8b15e050 Fix cranelift build 2020-11-04 10:10:44 +00:00
bjorn3
285c7c66dc Merge commit '03f01bbe901d60b71cf2c5ec766aef5e532ab79d' into update_cg_clif-2020-11-01 2020-11-03 11:00:04 +01:00
bjorn3
8ec977e763 Replace write with write_all 2020-10-25 13:33:39 +01:00
bjorn3
d2b8406c20 Remove unused trap_unimplemented_ret_value 2020-10-22 12:44:59 +02:00
Kitsu
04091772bc
Use architecture pointer size for AddConstructor (#1094)
* Use architecture pointer size for AddConstructor

* Update src/backend.rs

Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2020-10-16 16:19:22 +02:00
bjorn3
0416f122aa Error on non-constant simd_insert/simd_extract index 2020-10-16 14:03:29 +02:00
bjorn3
4971028775 Rustup to rustc 1.49.0-nightly (dd7fc54eb 2020-10-15) 2020-10-16 09:35:48 +02:00
bjorn3
1c7c591cb8 Fix compilation for non-unix systems 2020-10-15 18:51:49 +02:00
bjorn3
1c272b1224 Fix a compilation error in debug mode 2020-10-15 18:49:50 +02:00
bjorn3
7045b101cc Use MetadataRef in the metadata loader to fix parallel rustc 2020-10-15 16:15:04 +02:00
bjorn3
1c40840738 Fix warning 2020-10-15 15:39:06 +02:00
bjorn3
fed612c75a Output clif ir to output dir instead of hardcoded path
This is necessary for reproducable builds.
2020-10-15 10:57:56 +02:00
bjorn3
a233646dfc Rustup to rustc 1.49.0-nightly (e160e5cb8 2020-10-14) 2020-10-15 10:34:13 +02:00
bjorn3
6258b86c40 Rustup to rustc 1.49.0-nightly (c71248b70 2020-10-11) 2020-10-12 14:23:36 +02:00
bjorn3
2f2d3b2fd4 Avoid iadd for ptr const val with zero offset 2020-10-12 12:04:17 +02:00
bjorn3
cd2fc77b0e Make _rust_extern_with_linkage_* readonly 2020-10-12 12:04:17 +02:00
bjorn3
e0002c1892 Remove MIR dump on panic
I haven't used it for a long time and it adds a lot of noise to the
panic print.
2020-10-11 13:24:14 +02:00