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
bjorn3
720cd94cef
Merge branch 'sync_from_rust'
2021-12-30 14:54:21 +01:00
bjorn3
a5a14258e5
Merge commit '40b00f4200fbdeefd11815398cb46394b8cb0a5e' into sync_cg_clif-2021-12-30
2021-12-30 14:53:41 +01:00
bjorn3
40b00f4200
Disable incremental compilation on CI
...
Fixes #1198
2021-12-30 14:07:58 +01:00
bjorn3
c63d8f3f96
Move incr comp enable to the build system
2021-12-30 13:03:32 +01:00
bjorn3
f97670a315
Don't enable optimizations in the dev profile
...
I rarely use the dev profile anyway.
2021-12-30 13:01:38 +01:00
bjorn3
f6d0e14b79
Fix dead code warning on windows
2021-12-30 12:56:45 +01:00
bjorn3
6b4e640dcb
Only deny warnings for cg_clif build itself
...
cc #1213
2021-12-30 12:40:23 +01:00
bjorn3
304a50b768
Rustup to rustc 1.59.0-nightly ( 78fd0f633
2021-12-29)
2021-12-30 12:23:45 +01:00
bjorn3
4b1a2438f8
Allow false positive unreachable code warning
2021-12-30 12:23:32 +01:00
bjorn3
40e88469ce
Enforce rustfmt on CI
...
Fixes #1214
2021-12-30 12:11:07 +01:00
bjorn3
9bcdb53053
Rustfmt
2021-12-30 12:10:59 +01:00
bjorn3
7c62357bce
Deny warnings on CI
...
Fixes #1213
2021-12-30 12:05:54 +01:00
bjorn3
0dd3d28cff
Rename cargo executable to cargo-clif
...
This allows executing it like cargo clif build if you add it to your
PATH. It also fixes infinite recursion on Windows when invoking it as
Windows includes the current directory in PATH by default.
Fixes #971
2021-12-30 11:39:30 +01:00
bjorn3
0467c6a307
Add y.bin.dSYM to .gitignore
2021-12-28 16:16:49 +01:00
bjorn3
9089c305da
Remove TyCtxt dependency from UnwindContext
2021-12-27 17:54:06 +01:00
bjorn3
ad5966ed4c
Run incremental rustc tests and update broken test list
2021-12-26 14:11:09 +01:00
bjorn3
d3323fe685
Test rustc tests with unstable features disabled
2021-12-26 14:10:30 +01:00
bjorn3
7762c7a75e
Fix schedule time
...
Run at 01:17 UTC instead of 17:01
2021-12-26 11:55:12 +01:00
bjorn3
eb158de811
Merge branch 'sync_from_rust'
2021-12-20 18:57:45 +01:00
bjorn3
799e067912
Merge commit '97e504549371d7640cf011d266e3c17394fdddac' into sync_cg_clif-2021-12-20
2021-12-20 18:56:35 +01:00
bjorn3
97e5045493
Fix taking address of truly unsized type field of unsized adt
2021-12-20 18:49:43 +01:00
bjorn3
f557a7effb
Rustup to rustc 1.59.0-nightly ( e95e084a1
2021-12-19)
2021-12-20 18:21:55 +01:00
bjorn3
bb6d83dac9
Sync from rust 84f962a89b
2021-12-20 18:12:18 +01:00
bors
c3a9a9b424
Auto merge of #91957 - nnethercote:rm-SymbolStr, r=oli-obk
...
Remove `SymbolStr`
This was originally proposed in https://github.com/rust-lang/rust/pull/74554#discussion_r466203544 . As well as removing the icky `SymbolStr` type, it allows the removal of a lot of `&` and `*` occurrences.
Best reviewed one commit at a time.
r? `@oli-obk`
2021-12-19 09:31:37 +00:00
bjorn3
8726625867
Add cron job to test against latest cranelift version every day
...
Fixes #1212
2021-12-18 19:14:52 +01:00
bjorn3
a795a0384b
Remove triple method from FunctionCx
...
Instead use the default_call_conv field on TargetFrontendConfig to get
the default CallConv.
2021-12-18 15:46:30 +01:00
bjorn3
fdd0f8a3b5
Slightly reduce the amount of fx.module references
2021-12-18 15:33:31 +01:00
bjorn3
f505157f2c
Revert "Update Cranelift to 0.79.0"
...
This reverts commit a1037fad7d
.
There are two regressions in Cranelift with respect to small integer
operations. Both have already been fixed on thebmain branch, but we will
have to wait for a new Cranelift release. They have been fixed by
bytecodealliance/wasmtime#3610 and bytecodealliance/wasmtime#3617 .
2021-12-17 23:23:17 +01:00
bjorn3
b532f13ad0
Update cranelift patch section
2021-12-17 10:59:00 +01:00
bjorn3
a1037fad7d
Update Cranelift to 0.79.0
2021-12-16 18:57:25 +01:00