diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-05-20 14:21:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-20 14:21:06 +0200 |
| commit | 5c52f9f9167730cf48c387366be289d53a485754 (patch) | |
| tree | b5d89bd0125c63d75dbe80e4f09b62b5aec65110 /src/test/codegen | |
| parent | 14c439177b779408452fdf2c8f4fc620f27905d1 (diff) | |
| parent | 959bd48887d431a0f30090af18ef40d8c5606d77 (diff) | |
| download | rust-5c52f9f9167730cf48c387366be289d53a485754.tar.gz rust-5c52f9f9167730cf48c387366be289d53a485754.zip | |
Rollup merge of #72139 - nnethercote:standalone-fold, r=cuviper
Make `fold` standalone. `fold` is currently implemented via `try_fold`, but implementing it directly results in slightly less LLVM IR being generated, speeding up compilation of some benchmarks. r? @cuviper
Diffstat (limited to 'src/test/codegen')
| -rw-r--r-- | src/test/codegen/iter-fold-closure-no-dupes.rs | 14 | ||||
| -rw-r--r-- | src/test/codegen/iter-fold-closure-no-iterator.rs | 10 |
2 files changed, 0 insertions, 24 deletions
diff --git a/src/test/codegen/iter-fold-closure-no-dupes.rs b/src/test/codegen/iter-fold-closure-no-dupes.rs deleted file mode 100644 index ec58f7068ab..00000000000 --- a/src/test/codegen/iter-fold-closure-no-dupes.rs +++ /dev/null @@ -1,14 +0,0 @@ -//! Check that fold closures aren't duplicated for each iterator type. -// compile-flags: -C opt-level=0 - -fn main() { - (0i32..10).by_ref().count(); - (0i32..=10).by_ref().count(); -} - -// `count` calls `fold`, which calls `try_fold` -- find the `fold` closure: -// CHECK: {{^define.*Iterator::fold::.*closure}} -// -// Only one closure is needed for both `count` calls, even from different -// monomorphized iterator types, as it's only generic over the item type. -// CHECK-NOT: {{^define.*Iterator::fold::.*closure}} diff --git a/src/test/codegen/iter-fold-closure-no-iterator.rs b/src/test/codegen/iter-fold-closure-no-iterator.rs deleted file mode 100644 index fbeafd5f395..00000000000 --- a/src/test/codegen/iter-fold-closure-no-iterator.rs +++ /dev/null @@ -1,10 +0,0 @@ -//! Check that fold closures aren't generic in the iterator type. -// compile-flags: -C opt-level=0 - -fn main() { - (0i32..10).by_ref().count(); -} - -// `count` calls `fold`, which calls `try_fold` -- that `fold` closure should -// not be generic in the iterator type, only in the item type. -// CHECK-NOT: {{^define.*Iterator::fold::.*closure.*Range}} |
