about summary refs log tree commit diff
path: root/tests/codegen
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-11-05 00:03:41 +0000
committerbors <bors@rust-lang.org>2023-11-05 00:03:41 +0000
commitf5ca57e153afaed818f8be88abf5ce46715c0f9a (patch)
tree9dc9e0381a9643a643075d7160ccdda95db0c1d0 /tests/codegen
parent4b85902b438f791c5bfcb6b1c5b476d5b88e2bef (diff)
parent029fbd67ef65dae50172678033c0762610041a38 (diff)
downloadrust-f5ca57e153afaed818f8be88abf5ce46715c0f9a.tar.gz
rust-f5ca57e153afaed818f8be88abf5ce46715c0f9a.zip
Auto merge of #117503 - kornelski:hint-try-reserved, r=workingjubilee
Hint optimizer about try-reserved capacity

This is #116568, but limited only to the less-common `try_reserve` functions to reduce bloat in debug binaries from debug info, while still addressing the main use-case #116570
Diffstat (limited to 'tests/codegen')
-rw-r--r--tests/codegen/vec-reserve-extend.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/codegen/vec-reserve-extend.rs b/tests/codegen/vec-reserve-extend.rs
new file mode 100644
index 00000000000..d95220104c2
--- /dev/null
+++ b/tests/codegen/vec-reserve-extend.rs
@@ -0,0 +1,14 @@
+// compile-flags: -O
+
+#![crate_type = "lib"]
+
+// CHECK-LABEL: @should_reserve_once
+#[no_mangle]
+pub fn should_reserve_once(v: &mut Vec<u8>) {
+    // CHECK: tail call void @llvm.assume
+    v.try_reserve(3).unwrap();
+    // CHECK-NOT: call {{.*}}reserve
+    // CHECK-NOT: call {{.*}}do_reserve_and_handle
+    // CHECK-NOT: call {{.*}}__rust_alloc(
+    v.extend([1, 2, 3]);
+}