diff options
| author | bors <bors@rust-lang.org> | 2024-11-17 23:57:53 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-11-17 23:57:53 +0000 |
| commit | 3fb7e441aecc3c054d71eb4d752d06e7776e8888 (patch) | |
| tree | bba0b25b682b37f1b6040aa63949559619666e9d /compiler/rustc_const_eval/src | |
| parent | 5ec7d6eee7e0f5236ec1559499070eaf836bc608 (diff) | |
| parent | 777003ae9fd4d81ada91f67f388d4f12c9ca220a (diff) | |
| download | rust-3fb7e441aecc3c054d71eb4d752d06e7776e8888.tar.gz rust-3fb7e441aecc3c054d71eb4d752d06e7776e8888.zip | |
Auto merge of #120370 - x17jiri:likely_unlikely_fix, r=saethlin
Likely unlikely fix RFC 1131 ( https://github.com/rust-lang/rust/issues/26179 ) added likely/unlikely intrinsics, but they have been broken for a while: https://github.com/rust-lang/rust/issues/96276 , https://github.com/rust-lang/rust/issues/96275 , https://github.com/rust-lang/rust/issues/88767 . This PR tries to fix them. Changes: - added a new `cold_path()` intrinsic - `likely()` and `unlikely()` changed to regular functions implemented using `cold_path()`
Diffstat (limited to 'compiler/rustc_const_eval/src')
| -rw-r--r-- | compiler/rustc_const_eval/src/interpret/intrinsics.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/rustc_const_eval/src/interpret/intrinsics.rs b/compiler/rustc_const_eval/src/interpret/intrinsics.rs index c7a56a80e81..d89d73824aa 100644 --- a/compiler/rustc_const_eval/src/interpret/intrinsics.rs +++ b/compiler/rustc_const_eval/src/interpret/intrinsics.rs @@ -417,6 +417,9 @@ impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> { // These just return their argument self.copy_op(&args[0], dest)?; } + sym::cold_path => { + // This is a no-op. The intrinsic is just a hint to the optimizer. + } sym::raw_eq => { let result = self.raw_eq_intrinsic(&args[0], &args[1])?; self.write_scalar(result, dest)?; |
