about summary refs log tree commit diff
path: root/src/test/codegen
diff options
context:
space:
mode:
authorkadmin <julianknodt@gmail.com>2020-11-18 22:59:47 +0000
committerkadmin <julianknodt@gmail.com>2020-11-22 22:22:03 +0000
commita9915581d7cb73e7c8fb8193f48dbef36a7d09ac (patch)
tree1ee97f767f67417a36f9d3789a3bb555ec9a7b8a /src/test/codegen
parenta1a13b2bc4fa6370b9501135d97c5fe0bc401894 (diff)
downloadrust-a9915581d7cb73e7c8fb8193f48dbef36a7d09ac.tar.gz
rust-a9915581d7cb73e7c8fb8193f48dbef36a7d09ac.zip
Change slice::to_vec to not use extend_from_slice
This also required adding a loop guard in case clone panics

Add specialization for copy

There is a better version for copy, so I've added specialization for that function
and hopefully that should speed it up even more.

Switch FromIter<slice::Iter> to use `to_vec`

Test different unrolling version for to_vec

Revert to impl

From benchmarking, it appears this version is faster
Diffstat (limited to 'src/test/codegen')
-rw-r--r--src/test/codegen/to_vec.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/test/codegen/to_vec.rs b/src/test/codegen/to_vec.rs
new file mode 100644
index 00000000000..60dc4efcb62
--- /dev/null
+++ b/src/test/codegen/to_vec.rs
@@ -0,0 +1,10 @@
+// compile-flags: -O
+
+#![crate_type = "lib"]
+
+// CHECK-LABEL: @copy_to_vec
+#[no_mangle]
+fn copy_to_vec(s: &[u64]) -> Vec<u64> {
+  s.to_vec()
+  // CHECK: call void @llvm.memcpy
+}