diff options
| author | Nicholas Thompson <NCGThompson@gmail.com> | 2024-01-23 12:02:31 -0500 |
|---|---|---|
| committer | Nicholas Thompson <NCGThompson@gmail.com> | 2024-01-23 12:02:31 -0500 |
| commit | 971e37ff7e80cf2dbf4f95162d5957913803f30d (patch) | |
| tree | d90996132d26fc0f508b6a6273630d1658df5dc6 /compiler/rustc_codegen_gcc/src/intrinsic | |
| parent | 5a4561749a18fa96691f9cf79699e6ab2f1f7b2c (diff) | |
| download | rust-971e37ff7e80cf2dbf4f95162d5957913803f30d.tar.gz rust-971e37ff7e80cf2dbf4f95162d5957913803f30d.zip | |
Further Implement `is_val_statically_known`
Diffstat (limited to 'compiler/rustc_codegen_gcc/src/intrinsic')
| -rw-r--r-- | compiler/rustc_codegen_gcc/src/intrinsic/mod.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs b/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs index 85b891fce3e..eac8cb43779 100644 --- a/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs +++ b/compiler/rustc_codegen_gcc/src/intrinsic/mod.rs @@ -123,6 +123,12 @@ impl<'a, 'gcc, 'tcx> IntrinsicCallMethods<'tcx> for Builder<'a, 'gcc, 'tcx> { sym::unlikely => { self.expect(args[0].immediate(), false) } + sym::is_val_statically_known => { + let a = args[0].immediate(); + let builtin = self.context.get_builtin_function("__builtin_constant_p"); + let res = self.context.new_call(None, builtin, &[a]); + self.icmp(IntPredicate::IntEQ, res, self.const_i32(0)) + } kw::Try => { try_intrinsic( self, |
