about summary refs log tree commit diff
path: root/compiler/rustc_errors/src
diff options
context:
space:
mode:
authorJacob Pratt <jacob@jhpratt.dev>2025-08-20 00:46:02 -0400
committerGitHub <noreply@github.com>2025-08-20 00:46:02 -0400
commit816f098464054b69153b6a2e5a9ae409e6ad880a (patch)
treece12cdf9a0e2614c196b648c83ba146355c69bcd /compiler/rustc_errors/src
parentef22202db230a47bd82b168684d3580c40531d28 (diff)
parentd25910eaeb3eab25d3bbf9b9815e6d215c202d1f (diff)
downloadrust-816f098464054b69153b6a2e5a9ae409e6ad880a.tar.gz
rust-816f098464054b69153b6a2e5a9ae409e6ad880a.zip
Rollup merge of #145626 - folkertdev:prefetch-fallback, r=Amanieu
add a fallback implementation for the `prefetch_*` intrinsics

related ACP: https://github.com/rust-lang/libs-team/issues/638

The fallback is to just ignore the arguments. That is a valid implementation because this intrinsic is just a hint.

I also added the `miri::intrinsic_fallback_is_spec` annotation, so that miri now supports these operations. A prefetch intrinsic call is valid on any pointer. (specifically LLVM guarantees this https://llvm.org/docs/LangRef.html#llvm-prefetch-intrinsic)

Next, I made the `LOCALITY` argument a const generic. That argument must be const (otherwise LLVM crashes), but that was not reflected in the type.

Finally, with these changes, the intrinsic can be safe and `const` (a prefetch at const evaluation time is just a no-op).

cc `@Amanieu`
r? `@RalfJung`
Diffstat (limited to 'compiler/rustc_errors/src')
0 files changed, 0 insertions, 0 deletions