summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support
diff options
context:
space:
mode:
authorJordan Rupprecht <rupprecht@google.com>2019-06-19 18:03:36 +0000
committerJordan Rupprecht <rupprecht@google.com>2019-06-19 18:03:36 +0000
commitf5d0d2d0410f34922ff25fb246f49be511bb6f5e (patch)
tree2d2903a05525c641bcf1e444a861ac9f802f01e6 /llvm/unittests/Support
parent6016fb726c7fff99d0ff8667823fbb889b0dc070 (diff)
downloadbcm5719-llvm-f5d0d2d0410f34922ff25fb246f49be511bb6f5e.tar.gz
bcm5719-llvm-f5d0d2d0410f34922ff25fb246f49be511bb6f5e.zip
[test] Fix TargetParserTest runtime.
r363780 fixes extreme memory growth by using a new std::vector every loop iteration, but causes runtime to go up (and occasionally timeout in certain situations) because of constructor cost every loop iteration. Fix this by moving the constructor back out, but clearing contents in the loop. Also apply this to the AArch64 features test case, which seems to use the same pattern. llvm-svn: 363851
Diffstat (limited to 'llvm/unittests/Support')
-rw-r--r--llvm/unittests/Support/TargetParserTest.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp
index c19be4bb8a2..ef7257f4eb0 100644
--- a/llvm/unittests/Support/TargetParserTest.cpp
+++ b/llvm/unittests/Support/TargetParserTest.cpp
@@ -569,13 +569,14 @@ TEST(TargetParserTest, ARMFPURestriction) {
}
TEST(TargetParserTest, ARMExtensionFeatures) {
+ std::vector<StringRef> Features;
unsigned Extensions = ARM::AEK_CRC | ARM::AEK_CRYPTO | ARM::AEK_DSP |
ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB | ARM::AEK_MP |
ARM::AEK_SEC | ARM::AEK_VIRT | ARM::AEK_RAS | ARM::AEK_FP16 |
ARM::AEK_FP16FML | ARM::AEK_FP_DP;
for (unsigned i = 0; i <= Extensions; i++) {
- std::vector<StringRef> Features;
+ Features.clear();
EXPECT_TRUE(i == 0 ? !ARM::getExtensionFeatures(i, Features)
: ARM::getExtensionFeatures(i, Features));
}
@@ -1028,9 +1029,11 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) {
AArch64::AEK_SVE2 | AArch64::AEK_DOTPROD |
AArch64::AEK_RCPC | AArch64::AEK_FP16FML;
- for (unsigned i = 0; i <= Extensions; i++)
+ for (unsigned i = 0; i <= Extensions; i++) {
+ Features.clear();
EXPECT_TRUE(i == 0 ? !AArch64::getExtensionFeatures(i, Features)
: AArch64::getExtensionFeatures(i, Features));
+ }
}
TEST(TargetParserTest, AArch64ArchFeatures) {
OpenPOWER on IntegriCloud