Commit Graph

62 Commits

Author SHA1 Message Date
Antoni Boucher
e5a1bb2f59 Add more SIMD 2022-06-06 22:08:07 -04:00
Antoni Boucher
fe606eb444 Add more SIMD 2022-06-06 22:08:07 -04:00
Antoni Boucher
06073c9dfc Add more SIMD 2022-06-06 22:08:07 -04:00
Antoni Boucher
3b35940443 Implement more SIMD 2022-06-06 22:08:07 -04:00
Antoni Boucher
fb69f73d67 Fix exactudiv 2022-06-06 21:17:14 -04:00
Antoni Boucher
bafdded12b Merge branch 'master' into sync_from_rust2 2022-06-06 20:57:25 -04:00
Tomasz Miąsko
4620b9f823 rustc_codegen_ssa: derive copy and clone for various enums 2022-05-25 10:34:35 +02:00
Tomasz Miąsko
8f0f6e365c rustc_codegen_ssa: cleanup AtomicOrdering
* Remove unused `NotAtomic` ordering.
* Rename `Monotonic` to `Relaxed` - a Rust specific name.
2022-05-25 10:34:35 +02:00
Antoni Boucher
4a9744059f Feature gate call to get_size() for libgccjit 12 2022-05-04 22:20:38 -04:00
Antoni Boucher
603d342e00 Feature-gate for libgccjit 12 2022-05-04 21:26:25 -04:00
Antoni Boucher
4b40ac790d Support more SIMD intrinsics and refactor argument adjustment 2022-05-03 22:35:26 -04:00
Antoni Boucher
6bfe2b0b05 Support more SIMD intrinsics 2022-05-03 17:47:46 -04:00
Antoni Boucher
ace3250da8 Fix shuffle_vector 2022-05-03 17:47:46 -04:00
Antoni Boucher
a65418666f Implement simd_select_bitmask 2022-05-03 17:47:46 -04:00
Antoni Boucher
ddc152b04d Add more SIMD 2022-05-03 17:47:46 -04:00
Antoni Boucher
4636c59df5 Add more SIMD 2022-05-03 17:47:46 -04:00
yvt
351c683674 Use the given pointee type in <Builder as BuilderMethods>::load
This commit updates this method implementation to return an `RValue` of
the given pointee type.

While this parameter does not seem to have much significance at the
moment, it will likely become important as cg_llvm and cg_ssa migrate to
LLVM opaque pointers and get rid of pointercasts.
2022-05-03 13:53:10 +09:00
yvt
a225f0a66b Pass a pointee type to <Builder as BuilderMethods>::load when calling it ourselves
The parameter name isn't very descriptive, but it actually supposed to
take a pointee type. When calling it ourselves, we've been passing a
*pointer* type, which made it impossible to make any meaningful uses of
this parameter in the method implementation. This commit intends to
rectify that.
2022-05-03 13:53:10 +09:00
Antoni Boucher
4d7de81199 Add feature for future libgccjit 12 release 2022-04-13 23:01:01 -04:00
Oli Scherer
d71f633d38 Mark scalar layout unions so that backends that do not support partially initialized scalars can special case them. 2022-04-05 13:18:21 +00:00
Yuri Astrakhan
74edcb8bd1 Spellchecking some comments
This PR attempts to clean up some minor spelling mistakes in comments
2022-03-30 01:39:38 -04:00
Antoni Boucher
267e5e1ea7 Add support for target builtins 2022-03-29 22:50:20 -04:00
Antoni Boucher
02970a6ca8 Add support for target builtins 2022-03-29 21:41:17 -04:00
bjorn3
3888aafe3a Merge commit '39683d8eb7a32a74bea96ecbf1e87675d3338506' into sync_cg_gcc-2022-03-26 2022-03-26 18:29:37 +01:00
bjorn3
6faa6a28ba Rustup to rustc 1.61.0-nightly (d53246fed 2022-03-25) 2022-03-26 14:12:44 +01:00
bjorn3
db591778ac Sync from rust bc881e83d1 2022-03-26 12:52:21 +01:00
cuishuang
8238b91402 all: fix some typos
Signed-off-by: cuishuang <imcusg@gmail.com>
2022-03-03 19:47:23 +08:00
Erik Desjardins
962b8cf38b Revert "Auto merge of #92419 - erikdesjardins:coldland, r=nagisa"
This reverts commit 4f49627c6f, reversing
changes made to 028c6f1454.
2022-02-27 23:11:03 -05:00
Antoni Boucher
dcc0853a34 Add support for on_stack parameters 2022-02-27 22:23:03 -05:00
bjorn3
f7063174a4 Support -Cpanic=unwind without unwinding 2022-02-26 19:35:33 +01:00
bjorn3
3e35fab71e Fix inttoptr 2022-02-26 09:41:37 +01:00
bjorn3
a7c1c47c83 Fix review comments 2022-02-25 17:25:32 +01:00
bjorn3
62e9b50f8d Remove current_block field of CodegenCx
This field often had the wrong value when using multiple builders at the
same time.
2022-02-25 15:38:23 +01:00
bjorn3
07afdb8c0d Use bitcast for ptrtoint and inttoptr
This works now
2022-02-25 15:36:08 +01:00
bjorn3
b48ed38482 Make bx.block non-optional 2022-02-25 15:30:07 +01:00
bjorn3
ff6b398f1b Use bx.switch_to_block where possible 2022-02-25 15:28:56 +01:00
bjorn3
471234f8aa Sync from rust 3d127e2040 2022-02-24 19:25:07 +01:00
bjorn3
18c34e41a4 Introduce Bx::switch_to_block 2022-02-24 12:18:21 +01:00
bjorn3
56b7080bdb Remove build_sibling_block 2022-02-20 13:38:15 +01:00
bjorn3
5067ad9edc Replace unimplemented with todo in apply_attrs_to_cleanup_callsite 2022-02-01 17:58:06 +01:00
bjorn3
28ba4302cc Sync from rust a00e130dae 2022-02-01 17:49:41 +01:00
antoyo
41f20fa3a5
Support 128-bit integers on platforms without native support (#103)
* Use sized integer types

* Add support for integer types not supported on some platforms

* Add feature to test non-native integers in CI
2022-01-30 21:45:14 -05:00
bjorn3
4bdc78436b Merge landing_pad and set_cleanup into cleanup_landing_pad 2022-01-24 14:10:05 +01:00
bjorn3
2eaf0bc20a Merge add_handler into catch_switch
Some codegen backends may require all handlers to be immediately known
2022-01-24 14:10:05 +01:00
bjorn3
81597f2721 Remove unused return values from resume and cleanup_ret
Given that these instructions are diverging, not every codegen backend
may be able to produce a return value for them.
2022-01-24 13:48:09 +01:00
bjorn3
ba419539d5 Reorder unwinding related builder methods to differentiate between dwarf and msvc instructions 2022-01-24 13:45:34 +01:00
bors
da4a39264b Auto merge of #92419 - erikdesjardins:coldland, r=nagisa
Mark drop calls in landing pads `cold` instead of `noinline`

Now that deferred inlining has been disabled in LLVM (#92110), this shouldn't cause catastrophic size blowup.

I confirmed that the test cases from https://github.com/rust-lang/rust/issues/41696#issuecomment-298696944 still compile quickly (<1s) after this change. ~Although note that I wasn't able to reproduce the original issue using a recent rustc/llvm with deferred inlining enabled, so those tests may no longer be representative. I was also unable to create a modified test case that reproduced the original issue.~ (edit: I reproduced it on CI by accident--the first commit timed out on the LLVM 12 builder, because I forgot to make it conditional on LLVM version)

r? `@nagisa`
cc `@arielb1` (this effectively reverts #42771 "mark calls in the unwind path as !noinline")
cc `@RalfJung` (fixes #46515)

edit: also fixes #87055
2022-01-01 13:28:13 +00:00
bjorn3
54d2ec1a82 Merge commit '1411a98352ba6bee8ba3b0131c9243e5db1e6a2e' into sync_cg_clif-2021-12-31 2021-12-31 16:26:32 +01:00
Erik Desjardins
f3e1f33e3c keep noinline for system llvm < 14 2021-12-30 00:15:51 -05:00
Erik Desjardins
2fec53053e Mark drop calls in landing pads cold instead of noinline
Now that deferred inlining has been disabled in LLVM,
this shouldn't cause catastrophic size blowup.
2021-12-29 15:47:49 -05:00