Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync rustc_codegen_cranelift #116556

Merged
merged 85 commits into from
Oct 9, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
9f562f2
Remove special handling in codegen for some SSE2 "storeu" intrinsics
eduardosm Sep 5, 2023
4cd5177
Remove special handling in codegen for some AVX and SSE2 shift by imm…
eduardosm Sep 5, 2023
f2211c5
Merge commit 'dda103b1e33c4902deca8bccf614991ada781fa6' into sync_cg_…
bjorn3 Sep 6, 2023
d4f12a5
Auto merge of #115580 - eduardosm:stdarch-intrinsics, r=davidtwco,bjorn3
bors Sep 6, 2023
6285086
Auto merge of #115616 - bjorn3:sync_cg_clif-2023-09-06, r=bjorn3
bors Sep 7, 2023
4ecfd30
Use `Freeze` for `SourceFile.lines`
Zoxc Aug 31, 2023
28f12f0
Merge branch 'sync_from_rust'
bjorn3 Sep 7, 2023
5ae94e9
Rustup to rustc 1.74.0-nightly (e3abbd499 2023-09-06)
bjorn3 Sep 7, 2023
d72f710
Update steps to testing rustc changes for upstream changes
bjorn3 Sep 7, 2023
c41e779
Auto merge of #115418 - Zoxc:freeze-source, r=oli-obk
bors Sep 8, 2023
4f6e9fd
Remove `verbose_generic_activity_with_arg`
Zoxc Sep 10, 2023
72fb4b8
add helper method for finding the one non-1-ZST field
RalfJung Sep 12, 2023
8e6f68b
make the eval() functions on our const types return the resulting value
RalfJung Sep 12, 2023
9475cdb
Rollup merge of #115736 - Zoxc:time-cleanup, r=wesleywiser
matthiaskrgr Sep 13, 2023
1956fb8
Rollup merge of #115798 - RalfJung:non_1zst_field, r=wesleywiser
matthiaskrgr Sep 13, 2023
d1ea699
use AllocId instead of Allocation in ConstValue::ByRef
RalfJung Sep 11, 2023
a5b81fa
cleanup op_to_const a bit; rename ConstValue::ByRef → Indirect
RalfJung Sep 12, 2023
90d894e
make it more clear which functions create fresh AllocId
RalfJung Sep 12, 2023
214d474
Sync from rust 8142a319ed5c1d1f96e5a1881a6546e463b77c8f
bjorn3 Sep 14, 2023
b67a1c4
Rustup to rustc 1.74.0-nightly (8142a319e 2023-09-13)
bjorn3 Sep 14, 2023
aab17cc
Fix rustc test suite
bjorn3 Sep 14, 2023
d8c1393
Avoid mir_operand_get_const_val for simd_shuffle and cmpps and cmppd
bjorn3 Sep 14, 2023
02e5f38
Add debug tracing for failed commands
bjorn3 Sep 7, 2023
e048674
organize import sections with rustfmt `group_imports`
onur-ozkan Sep 14, 2023
5c7a87c
Merge pull request #1393 from onur-ozkan/rustfmt-group-imports
bjorn3 Sep 14, 2023
3113fef
move required_consts check to general post-mono-check function
RalfJung Sep 11, 2023
b7cc765
don't point at const usage site for resolution-time errors
RalfJung Sep 11, 2023
89f0d18
clarify PassMode::Indirect as well
RalfJung Sep 8, 2023
f9f8bff
fix gcc, cranelift build
RalfJung Sep 9, 2023
fbb276e
Update some dependencies
bjorn3 Sep 16, 2023
6fd5dc8
Prototype using const generic for simd_shuffle IDX array
oli-obk Sep 18, 2023
46b55ae
Auto merge of #115748 - RalfJung:post-mono, r=oli-obk
bors Sep 18, 2023
247d38d
move ConstValue into mir
RalfJung Sep 16, 2023
5f3b867
Sync from rust 65ea825f4021eaf77f1b25139969712d65b435a4
bjorn3 Sep 19, 2023
baee5ce
Rustup to rustc 1.74.0-nightly (65ea825f4 2023-09-18)
bjorn3 Sep 19, 2023
9b855a9
Add missing with_no_trimmed_paths to CommentWriter::new()
bjorn3 Sep 19, 2023
dd48b5e
adjust constValue::Slice to work for arbitrary slice types
RalfJung Sep 15, 2023
0e02cab
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
RalfJung Sep 20, 2023
1351de3
Rollup merge of #115972 - RalfJung:const-consistency, r=oli-obk
GuillaumeGomez Sep 21, 2023
02dec62
Update to Cranelift 0.100
bjorn3 Sep 21, 2023
8071ec7
Always explicitly set the preserve_frame_pointers value
bjorn3 Sep 20, 2023
159293c
subst -> instantiate
lcnr Sep 25, 2023
b03d0b8
Sync from rust 0288f2e1955b154262e0669ec5f7bb9a4c6cf5aa
bjorn3 Sep 26, 2023
74e9f26
Rustup to rustc 1.74.0-nightly (0288f2e19 2023-09-25)
bjorn3 Sep 26, 2023
ca18301
Fix rustc test suite
bjorn3 Sep 26, 2023
cb55ce1
Fix potential crash on large constant ZST slice
bjorn3 Sep 26, 2023
17d7821
Strip `OpaqueCast` during `RevealAll`.
oli-obk Sep 27, 2023
809cd20
Skip reinterning if nothing changed
oli-obk Sep 27, 2023
81d219a
Auto merge of #115933 - oli-obk:simd_shuffle_const, r=workingjubilee
bors Sep 30, 2023
ffa2d3a
dont call mir.post_mono_checks in codegen
RalfJung Sep 29, 2023
2860a89
implement major change tracking for the bootstrap configuration
onur-ozkan Oct 1, 2023
f04620a
Auto merge of #115898 - onur-ozkan:config-change-tracking, r=Mark-Sim…
bors Oct 2, 2023
aeeed8a
Sync from rust e0d7ed1f453fb54578cc96dfea859b0e7be15016
bjorn3 Oct 2, 2023
5aeae05
Rustup to rustc 1.75.0-nightly (e0d7ed1f4 2023-10-01)
bjorn3 Oct 2, 2023
654bc61
Fix simd_shuffle_generic intrinsic
bjorn3 Oct 2, 2023
b49adfe
Compile cg_clif with -Zallow-features=rustc_private
bjorn3 Sep 2, 2023
cf36f4e
Update rand test
bjorn3 Sep 19, 2023
c974bc8
Update regex and implement necessary AArch64 vendor intrinsics
bjorn3 Sep 19, 2023
9536ec3
Temporarily ignore regex test which gets miscompiled when using an LL…
bjorn3 Oct 2, 2023
f1ede97
Update portable-simd test and implement new simd_* platform intrinsics
bjorn3 Oct 2, 2023
4e9e0aa
subtyping_projections
ouz-a Aug 16, 2023
8c3406f
Add docs, remove code, change subtyper code
ouz-a Aug 28, 2023
646d8d9
change is_subtype to relate_types
ouz-a Sep 30, 2023
27f88ee
have better explanation for `relate_types`
ouz-a Oct 2, 2023
673f447
Auto merge of #115025 - ouz-a:ouz_testing, r=lcnr
bors Oct 3, 2023
f61b14d
Fix misuses of a vs an
cuishuang Sep 28, 2023
ed90087
Rollup merge of #116223 - catandcoder:master, r=cjgillot
workingjubilee Oct 5, 2023
a47b9fd
Remove stub support for 32bit inline assembly
bjorn3 Oct 5, 2023
b1421de
Support inline asm on AArch64
bjorn3 Oct 5, 2023
4577c1d
Temporarily remove riscv64 inline asm support
bjorn3 Oct 5, 2023
e825497
Merge pull request #1396 from bjorn3/aarch64_asm
bjorn3 Oct 5, 2023
2753052
compiler: always use var_os("RUST_BACKTRACE")
tamird Oct 6, 2023
c9f6ac4
Rollup merge of #116277 - RalfJung:post-mono, r=oli-obk
workingjubilee Oct 6, 2023
e759603
Consistently use eprintln inside the build system
bjorn3 Oct 7, 2023
fea943d
Auto merge of #116487 - tamird:avoid-unwrap-absolute, r=bjorn3
bors Oct 8, 2023
1906ec5
Sync from rust 97c81e1b537088f1881c8894ee8579812ed9b6d1
bjorn3 Oct 8, 2023
8109344
Rustup to rustc 1.75.0-nightly (97c81e1b5 2023-10-07)
bjorn3 Oct 8, 2023
07147f3
Fix inline asm on macOS
bjorn3 Oct 7, 2023
91e5bd8
Skip cpuid shim when inline asm support is enabled
bjorn3 Oct 7, 2023
2672876
Run inline asm rustc tests on CI
bjorn3 Oct 7, 2023
cc5db2c
Merge pull request #1397 from bjorn3/inline_asm_tweaks
bjorn3 Oct 8, 2023
88198c7
Sync from rust bf9a1c8a193fc373897196321215794c8bebbeec
bjorn3 Oct 9, 2023
81dc066
Rustup to rustc 1.75.0-nightly (bf9a1c8a1 2023-10-08)
bjorn3 Oct 9, 2023
169055f
Merge commit '81dc066758ec150b43822d4a0c84aae20fe10f40' into sync_cg_…
bjorn3 Oct 9, 2023
3ed3765
Remove no longer used dependency from the list of allowed dependencies
bjorn3 Oct 9, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 72 additions & 94 deletions compiler/rustc_codegen_cranelift/Cargo.lock

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions compiler/rustc_codegen_cranelift/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ crate-type = ["dylib"]

[dependencies]
# These have to be in sync with each other
cranelift-codegen = { version = "0.98", features = ["unwind", "all-arch"] }
cranelift-frontend = { version = "0.98" }
cranelift-module = { version = "0.98" }
cranelift-native = { version = "0.98" }
cranelift-jit = { version = "0.98", optional = true }
cranelift-object = { version = "0.98" }
cranelift-codegen = { version = "0.100", features = ["unwind", "all-arch"] }
cranelift-frontend = { version = "0.100" }
cranelift-module = { version = "0.100" }
cranelift-native = { version = "0.100" }
cranelift-jit = { version = "0.100", optional = true }
cranelift-object = { version = "0.100" }
target-lexicon = "0.12.0"
gimli = { version = "0.27.2", default-features = false, features = ["write"]}
object = { version = "0.30.3", default-features = false, features = ["std", "read_core", "write", "archive", "coff", "elf", "macho", "pe"] }
gimli = { version = "0.28", default-features = false, features = ["write"]}
object = { version = "0.32", default-features = false, features = ["std", "read_core", "write", "archive", "coff", "elf", "macho", "pe"] }

indexmap = "2.0.0"
libloading = { version = "0.7.3", optional = true }
Expand Down
14 changes: 5 additions & 9 deletions compiler/rustc_codegen_cranelift/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,14 @@ You need to do this steps to successfully compile and use the cranelift backend
2. Run `python x.py setup` and choose option for compiler (`b`).
3. Build compiler and necessary tools: `python x.py build --stage=2 compiler library/std src/tools/rustdoc src/tools/rustfmt`
* (Optional) You can also build cargo by adding `src/tools/cargo` to previous command.
4. Copy exectutable files from `./build/host/stage2-tools/<your hostname triple>/release`
to `./build/host/stage2/bin/`. Note that you would need to do this every time you rebuilt `rust` repository.
5. Copy cargo from another toolchain: `cp $(rustup which cargo) .build/<your hostname triple>/stage2/bin/cargo`
* Another option is to build it at step 3 and copy with other executables at step 4.
6. Link your new `rustc` to toolchain: `rustup toolchain link stage2 ./build/host/stage2/`.
7. (Windows only) compile the build system: `rustc +stage2 -O build_system/main.rs -o y.exe`.
8. You need to prefix every `./y.sh` (or `y` if you built `build_system/main.rs` as `y`) command by `rustup run stage2` to make cg_clif use your local changes in rustc.

4. Copy cargo from a nightly toolchain: `cp $(rustup +nightly which cargo) ./build/host/stage2/bin/cargo`. Note that you would need to do this every time you rebuilt `rust` repository.
5. Link your new `rustc` to toolchain: `rustup toolchain link stage2 ./build/host/stage2/`.
6. (Windows only) compile the build system: `rustc +stage2 -O build_system/main.rs -o y.exe`.
7. You need to prefix every `./y.sh` (or `y` if you built `build_system/main.rs` as `y`) command by `rustup run stage2` to make cg_clif use your local changes in rustc.
* `rustup run stage2 ./y.sh prepare`
* `rustup run stage2 ./y.sh build`
* (Optional) run tests: `rustup run stage2 ./y.sh test`
9. Now you can use your cg_clif build to compile other Rust programs, e.g. you can open any Rust crate and run commands like `$RustCheckoutDir/compiler/rustc_codegen_cranelift/dist/cargo-clif build --release`.
8. Now you can use your cg_clif build to compile other Rust programs, e.g. you can open any Rust crate and run commands like `$RustCheckoutDir/compiler/rustc_codegen_cranelift/dist/cargo-clif build --release`.

## Configuration

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ pub(crate) fn build_backend(

let mut rustflags = rustflags_from_env("RUSTFLAGS");

rustflags.push("-Zallow-features=rustc_private".to_owned());

if is_ci() {
// Deny warnings on CI
rustflags.push("-Dwarnings".to_owned());
Expand Down
6 changes: 3 additions & 3 deletions compiler/rustc_codegen_cranelift/build_system/prepare.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,10 @@ impl GitRepo {
if download_dir.exists() {
let actual_hash = format!("{:016x}", hash_dir(&download_dir));
if actual_hash == self.content_hash {
println!("[FRESH] {}", download_dir.display());
eprintln!("[FRESH] {}", download_dir.display());
return;
} else {
println!(
eprintln!(
"Mismatched content hash for {download_dir}: {actual_hash} != {content_hash}. Downloading again.",
download_dir = download_dir.display(),
content_hash = self.content_hash,
Expand All @@ -150,7 +150,7 @@ impl GitRepo {

let actual_hash = format!("{:016x}", hash_dir(&download_dir));
if actual_hash != self.content_hash {
println!(
eprintln!(
"Download of {download_dir} failed with mismatched content hash: {actual_hash} != {content_hash}",
download_dir = download_dir.display(),
content_hash = self.content_hash,
Expand Down
67 changes: 23 additions & 44 deletions compiler/rustc_codegen_cranelift/build_system/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::path::{Dirs, RelPath};
use crate::prepare::{apply_patches, GitRepo};
use crate::rustc_info::get_default_sysroot;
use crate::shared_utils::rustflags_from_env;
use crate::utils::{spawn_and_wait, spawn_and_wait_with_input, CargoProject, Compiler, LogGroup};
use crate::utils::{spawn_and_wait, CargoProject, Compiler, LogGroup};
use crate::{CodegenBackend, SysrootKind};

static BUILD_EXAMPLE_OUT_DIR: RelPath = RelPath::BUILD.join("example");
Expand Down Expand Up @@ -101,13 +101,11 @@ const BASE_SYSROOT_SUITE: &[TestCase] = &[
TestCase::build_bin("aot.issue-59326", "example/issue-59326.rs"),
];

// FIXME(rust-random/rand#1293): Newer rand versions fail to test on Windows. Update once this is
// fixed.
pub(crate) static RAND_REPO: GitRepo = GitRepo::github(
"rust-random",
"rand",
"50b9a447410860af8d6db9a208c3576886955874",
"446203b96054891e",
"f3dd0b885c4597b9617ca79987a0dd899ab29fcb",
"3f869e4fcd602b66",
"rand",
);

Expand All @@ -116,8 +114,8 @@ pub(crate) static RAND: CargoProject = CargoProject::new(&RAND_REPO.source_dir()
pub(crate) static REGEX_REPO: GitRepo = GitRepo::github(
"rust-lang",
"regex",
"32fed9429eafba0ae92a64b01796a0c5a75b88c8",
"fcc4df7c5b902633",
"061ee815ef2c44101dba7b0b124600fcb03c1912",
"dc26aefbeeac03ca",
"regex",
);

Expand All @@ -126,8 +124,8 @@ pub(crate) static REGEX: CargoProject = CargoProject::new(&REGEX_REPO.source_dir
pub(crate) static PORTABLE_SIMD_REPO: GitRepo = GitRepo::github(
"rust-lang",
"portable-simd",
"7c7dbe0c505ccbc02ff30c1e37381ab1d47bf46f",
"5bcc9c544f6fa7bd",
"4825b2a64d765317066948867e8714674419359b",
"8b188cc41f5af835",
"portable-simd",
);

Expand Down Expand Up @@ -180,40 +178,6 @@ const EXTENDED_SYSROOT_SUITE: &[TestCase] = &[
spawn_and_wait(build_cmd);
}
}),
TestCase::custom("test.regex-shootout-regex-dna", &|runner| {
REGEX_REPO.patch(&runner.dirs);

REGEX.clean(&runner.dirs);

let mut build_cmd = REGEX.build(&runner.target_compiler, &runner.dirs);
build_cmd.arg("--example").arg("shootout-regex-dna");
spawn_and_wait(build_cmd);

if runner.is_native {
let mut run_cmd = REGEX.run(&runner.target_compiler, &runner.dirs);
run_cmd.arg("--example").arg("shootout-regex-dna");

let input = fs::read_to_string(
REGEX.source_dir(&runner.dirs).join("examples").join("regexdna-input.txt"),
)
.unwrap();
let expected = fs::read_to_string(
REGEX.source_dir(&runner.dirs).join("examples").join("regexdna-output.txt"),
)
.unwrap();

let output = spawn_and_wait_with_input(run_cmd, input);

let output_matches = expected.lines().eq(output.lines());
if !output_matches {
println!("Output files don't match!");
println!("Expected Output:\n{}", expected);
println!("Actual Output:\n{}", output);

std::process::exit(1);
}
}
}),
TestCase::custom("test.regex", &|runner| {
REGEX_REPO.patch(&runner.dirs);

Expand All @@ -223,7 +187,22 @@ const EXTENDED_SYSROOT_SUITE: &[TestCase] = &[
let mut run_cmd = REGEX.test(&runner.target_compiler, &runner.dirs);
// regex-capi and regex-debug don't have any tests. Nor do they contain any code
// that is useful to test with cg_clif. Skip building them to reduce test time.
run_cmd.args(["-p", "regex", "-p", "regex-syntax", "--", "-q"]);
run_cmd.args([
"-p",
"regex",
"-p",
"regex-syntax",
"--release",
"--all-targets",
"--",
"-q",
]);
spawn_and_wait(run_cmd);

let mut run_cmd = REGEX.test(&runner.target_compiler, &runner.dirs);
// don't run integration tests for regex-autonata. they take like 2min each without
// much extra coverage of simd usage.
run_cmd.args(["-p", "regex-automata", "--release", "--lib", "--", "-q"]);
spawn_and_wait(run_cmd);
} else {
eprintln!("Cross-Compiling: Not running tests");
Expand Down
35 changes: 8 additions & 27 deletions compiler/rustc_codegen_cranelift/build_system/utils.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use std::env;
use std::fs;
use std::io::{self, Write};
use std::io;
use std::path::{Path, PathBuf};
use std::process::{self, Command, Stdio};
use std::process::{self, Command};
use std::sync::atomic::{AtomicBool, Ordering};

use crate::path::{Dirs, RelPath};
Expand Down Expand Up @@ -47,7 +47,7 @@ impl Compiler {
self.runner = vec!["wine".to_owned()];
}
_ => {
println!("Unknown non-native platform");
eprintln!("Unknown non-native platform");
}
}
}
Expand Down Expand Up @@ -197,7 +197,9 @@ pub(crate) fn try_hard_link(src: impl AsRef<Path>, dst: impl AsRef<Path>) {

#[track_caller]
pub(crate) fn spawn_and_wait(mut cmd: Command) {
if !cmd.spawn().unwrap().wait().unwrap().success() {
let status = cmd.spawn().unwrap().wait().unwrap();
if !status.success() {
eprintln!("{cmd:?} exited with status {:?}", status);
process::exit(1);
}
}
Expand All @@ -207,38 +209,17 @@ pub(crate) fn spawn_and_wait(mut cmd: Command) {
pub(crate) fn retry_spawn_and_wait(tries: u64, mut cmd: Command) {
for i in 1..tries + 1 {
if i != 1 {
println!("Command failed. Attempt {i}/{tries}:");
eprintln!("Command failed. Attempt {i}/{tries}:");
}
if cmd.spawn().unwrap().wait().unwrap().success() {
return;
}
std::thread::sleep(std::time::Duration::from_secs(i * 5));
}
println!("The command has failed after {tries} attempts.");
eprintln!("The command has failed after {tries} attempts.");
process::exit(1);
}

#[track_caller]
pub(crate) fn spawn_and_wait_with_input(mut cmd: Command, input: String) -> String {
let mut child = cmd
.stdin(Stdio::piped())
.stdout(Stdio::piped())
.spawn()
.expect("Failed to spawn child process");

let mut stdin = child.stdin.take().expect("Failed to open stdin");
std::thread::spawn(move || {
stdin.write_all(input.as_bytes()).expect("Failed to write to stdin");
});

let output = child.wait_with_output().expect("Failed to read stdout");
if !output.status.success() {
process::exit(1);
}

String::from_utf8(output.stdout).unwrap()
}

pub(crate) fn remove_dir_if_exists(path: &Path) {
match fs::remove_dir_all(&path) {
Ok(()) => {}
Expand Down
1 change: 0 additions & 1 deletion compiler/rustc_codegen_cranelift/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,5 @@ aot.issue-59326
testsuite.extended_sysroot
test.rust-random/rand
test.libcore
test.regex-shootout-regex-dna
test.regex
test.portable-simd
6 changes: 6 additions & 0 deletions compiler/rustc_codegen_cranelift/example/mini_core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,12 @@ pub macro cfg() {
/* compiler built-in */
}

#[rustc_builtin_macro]
#[rustc_macro_transparency = "semitransparent"]
pub macro asm() {
/* compiler built-in */
}

#[rustc_builtin_macro]
#[rustc_macro_transparency = "semitransparent"]
pub macro global_asm() {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From 5d4afb8d807d181038b6a004d17ed055a8d191b2 Mon Sep 17 00:00:00 2001
From: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Date: Mon, 2 Oct 2023 13:59:00 +0000
Subject: [PATCH] Ignore test which gets miscompiled with llvm sysroot

---
regex-automata/src/util/pool.rs | 2 ++
1 file changed, 2 insertions(+)

diff --git a/regex-automata/src/util/pool.rs b/regex-automata/src/util/pool.rs
index c03d7b0..28b233b 100644
--- a/regex-automata/src/util/pool.rs
+++ b/regex-automata/src/util/pool.rs
@@ -1081,6 +1081,8 @@ mod tests {
// into the pool. This in turn resulted in this test producing a data race.
#[cfg(feature = "std")]
#[test]
+ // FIXME(rustc_codegen_cranelift#1395) miscompilation of thread::scope with LLVM sysroot
+ #[ignore]
fn thread_owner_sync() {
let pool = Pool::new(|| vec!['a']);
{
--
2.34.1

Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ index 897a5e9..331f66f 100644
#![feature(const_option_ext)]
#![feature(const_result)]
-#![cfg_attr(target_has_atomic = "128", feature(integer_atomics))]
#![cfg_attr(test, feature(cfg_match))]
#![feature(int_roundings)]
#![feature(slice_group_by)]
#![feature(split_array)]
diff --git a/atomic.rs b/atomic.rs
index b735957..ea728b6 100644
--- a/atomic.rs
Expand Down
Loading
Loading