39 Commits

Author SHA1 Message Date
bjorn3
5d85a24442 Merge commit '81dc066758ec150b43822d4a0c84aae20fe10f40' into sync_cg_clif-2023-10-09 2023-10-09 08:52:46 +00:00
Ralf Jung
f9f8bffaec fix gcc, cranelift build 2023-09-15 10:43:44 +02:00
Ralf Jung
89f0d18bc8 clarify PassMode::Indirect as well 2023-09-15 10:43:44 +02:00
bjorn3
8bf550e616 Merge commit 'ef07e8e60f994ec014d049a95591426fb92ebb79' into sync_cg_clif-2023-04-29 2023-04-29 12:00:43 +00:00
Maybe Waffle
106db3ef59 Fix rustc_index imports outside the compiler 2023-04-24 13:53:37 +00:00
bjorn3
7b3bd56ed9 Merge commit 'dec0daa8f6d0a0e1c702f169abb6bf3eee198c67' into sync_cg_clif-2023-03-15 2023-03-15 14:41:48 +00:00
Nicholas Nethercote
2d2a3be651 Move ArgAbi::pad_i32 into PassMode::Cast.
Because it's only needed for that variant. This shrinks the types and
clarifies the logic.
2022-08-26 11:12:36 +10:00
Nicholas Nethercote
1c989472e4 Box CastTarget within PassMode.
Because `PassMode::Cast` is by far the largest variant, but is
relatively rare.

This requires making `PassMode` not impl `Copy`, and `Clone` is no
longer necessary. This causes lots of sigil adjusting, but nothing very
notable.
2022-08-26 09:35:28 +10:00
Jakob Degen
5011ae46a1 Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
bjorn3
d220159810 Merge commit '05677b6bd6c938ed760835d9b1f6514992654ae3' into sync_cg_clif-2021-08-06 2021-08-06 16:26:56 +02:00
bjorn3
07968a001d Merge commit '0969bc6dde001e01e7e1f58c8ccd7750f8a49ae1' into sync_cg_clif-2021-03-29 2021-03-29 10:45:09 +02:00
bjorn3
27886cd6b6 Merge commit '9a0c32934ebe376128230aa8da3275697b2053e7' into sync_cg_clif-2021-03-05 2021-03-05 19:12:59 +01:00
bjorn3
a75f9bc3be Merge commit 'd556c56f792756dd7cfec742b9f2e07612dc10f4' into sync_cg_clif-2021-02-01 2021-02-01 10:11:46 +01:00
bjorn3
0a5968dfd2 Use the new cranelift-module interface
This updates Cranelift to include bytecodealliance/wasmtime#2249
2020-10-08 19:00:21 +02:00
bjorn3
c8699076f9 Document almost all modules
Fixes #1082
2020-09-23 15:13:49 +02:00
bjorn3
934d56a646 Also allow returning PassMode::ByValPair directly into an ssa var
Benchmark #1: ./raytracer_cg_clif_pre
  Time (mean ± σ):      8.251 s ±  0.021 s    [User: 8.245 s, System: 0.005 s]
  Range (min … max):    8.225 s …  8.292 s    10 runs

Benchmark #2: ./raytracer_cg_clif_post
  Time (mean ± σ):      8.206 s ±  0.043 s    [User: 8.199 s, System: 0.007 s]
  Range (min … max):    8.168 s …  8.279 s    10 runs
2020-09-23 14:29:18 +02:00
bjorn3
552991e17e Replace FxHashMap with IndexVec for local_map
Fixes #745
2020-09-16 18:45:19 +02:00
CohenArthur
4e685a512e fmt: Run cargo fmt since it is available 2020-08-28 12:10:48 +02:00
bjorn3
942039b232 Pass ByRef values at fixed stack offset for extern "C"
This makes it possible to build proc macros using cg_clif
2020-07-17 12:41:01 +02:00
bjorn3
3ef6170142 Remove CPlace::NoPlace 2020-04-11 15:01:04 +02:00
bjorn3
291c75d10b Enable the rust_2018_idioms and unused_lifetimes lints and fix all warnings
They are set to deny by default in the rust-lang/rust repo
2020-04-09 12:12:55 +02:00
bjorn3
017a9b7641 Rustup to rustc 1.44.0-nightly (699f83f52 2020-03-29) 2020-03-30 19:00:24 +02:00
bjorn3
f288959c00 Limit publicness to crate where possible and remove unused imports 2020-03-27 12:14:45 +01:00
bjorn3
b113e88ddb Fix warnings 2020-03-24 13:41:19 +01:00
bjorn3
430f738392 Update Cranelift for basic blocks 2020-02-14 18:23:29 +01:00
bjorn3
9cfb9470c5 Allow unsized types as function parameters 2020-01-25 16:23:54 +01:00
bjorn3
09b44f5d25 Reduce visibility 2020-01-14 17:11:06 +01:00
bjorn3
38797f8bad Implement #[track_caller]
Fixes #848
2020-01-11 17:10:42 +01:00
bjorn3
2920cc48e6 Fix SSA analysis for value types with PassMode::ByRef 2019-12-25 14:35:16 +01:00
bjorn3
8f5ef6172c Remove to_addr and to_addr_maybe_unsized 2019-12-20 19:10:08 +01:00
bjorn3
967709f31a [OPT] Use load and store offsets instead of iadd_imm 2019-12-20 16:02:47 +01:00
bjorn3
bfff2a50fd Fix debug build 2019-12-18 20:25:05 +01:00
bjorn3
1c79cf4c0a [OPT] Use RETURN_PLACE instead of fn_sig.output() to get return layout 2019-12-17 18:41:13 +01:00
bjorn3
86cdd1909b [OPT] Use IndexVec instead of HashMap in ssa analysis 2019-12-17 17:49:12 +01:00
bjorn3
82fde5b622 Remove bitflags dependency 2019-10-06 17:52:23 +02:00
Atul Bhosale
f481a4b685
Format code using 'cargo fmt' 2019-08-31 22:58:09 +05:30
bjorn3
76d2e085db Improve abi ir comments a bit 2019-08-30 15:07:15 +02:00
bjorn3
d731c4a6a7 Move ir comments generation to abi/comments.rs
Also list locals stored in ssa vars in the comments
2019-08-30 14:21:24 +02:00
bjorn3
16593d264c Move return handling to abi/returning.rs 2019-08-30 12:30:57 +02:00