1
Fork 0
rust/compiler/rustc_codegen_llvm/src
bors f42b6fa7ca Auto merge of #103299 - nikic:usub-overflow, r=wesleywiser
Don't use usub.with.overflow intrinsic

The canonical form of a usub.with.overflow check in LLVM are separate sub + icmp instructions, rather than a usub.with.overflow intrinsic. Using usub.with.overflow will generally result in worse optimization potential.

The backend will attempt to form usub.with.overflow when it comes to actual instruction selection. This is not fully reliable, but I believe this is a better tradeoff than using the intrinsic in IR.

Fixes #103285.
2022-10-30 17:45:04 +00:00
..
back Support raw-dylib functions being used inside inlined functions 2022-10-24 16:17:38 -07:00
coverageinfo more dupe word typos 2022-10-14 12:57:56 +08:00
debuginfo Change name of "dataful" variant to "untagged" 2022-09-07 20:12:45 +00:00
llvm Use the existing set_visibility function. 2022-09-28 14:43:58 -07:00
abi.rs Merge apply_attrs_callsite into call and invoke 2022-10-01 17:01:31 +00:00
allocator.rs Rename debugging_opts to unstable_opts 2022-07-13 17:47:06 -05:00
asm.rs Add links to relevant pages to find constraint information 2022-10-13 22:05:49 +02:00
attributes.rs Add inline-llvm option for disabling/enabling LLVM inlining 2022-09-09 08:00:47 -07:00
base.rs Remove several unused methods from MiscMethods 2022-10-01 16:45:07 +00:00
builder.rs Don't use usub.with.overflow intrinsic 2022-10-20 12:47:17 +02:00
callee.rs Get rid of native_library projection queries 2022-10-19 16:21:21 +02:00
common.rs Introduce a fallible variant of LLVMConstIntGetZExtValue 2022-09-09 15:54:14 +02:00
consts.rs Get rid of native_library projection queries 2022-10-19 16:21:21 +02:00
context.rs Remove several unused methods from MiscMethods 2022-10-01 16:45:07 +00:00
declare.rs Change declare_cfn to use the C visibility for all C ABI functions. 2022-09-28 14:50:58 -07:00
intrinsic.rs Merge apply_attrs_callsite into call and invoke 2022-10-01 17:01:31 +00:00
lib.rs Remove unused target_cpu and tune_cpu methods from ExtraBackendMethods 2022-10-01 16:45:33 +00:00
llvm_util.rs Remove support for LLVM's legacy pass manager 2022-09-18 13:25:49 -07:00
mono_item.rs Always import all tracing macros for the entire crate instead of piecemeal by module 2022-09-01 14:54:27 +00:00
type_.rs Add fine-grained LLVM CFI support to the Rust compiler 2022-07-23 10:51:34 -07:00
type_of.rs Always import all tracing macros for the entire crate instead of piecemeal by module 2022-09-01 14:54:27 +00:00
va_arg.rs Introduce Bx::switch_to_block 2022-02-24 12:18:21 +01:00
value.rs