Commit Graph

2473 Commits

Author SHA1 Message Date
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