diff options
author | Eric Fiselier <eric@efcs.ca> | 2019-06-15 21:16:57 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2019-06-15 21:16:57 +0000 |
commit | 186ca60e51238d464d14d89895f12146df94f204 (patch) | |
tree | 66fc16d73688b2e136d8ccb7ae97dc7e908743a8 /libcxx/test/support | |
parent | 0a29028072fd6c86f25d3892b3b97dc24bed8be4 (diff) | |
download | bcm5719-llvm-186ca60e51238d464d14d89895f12146df94f204.tar.gz bcm5719-llvm-186ca60e51238d464d14d89895f12146df94f204.zip |
add header to help with template testing
llvm-svn: 363503
Diffstat (limited to 'libcxx/test/support')
-rw-r--r-- | libcxx/test/support/template_cost_testing.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libcxx/test/support/template_cost_testing.h b/libcxx/test/support/template_cost_testing.h new file mode 100644 index 00000000000..c964759fcaf --- /dev/null +++ b/libcxx/test/support/template_cost_testing.h @@ -0,0 +1,36 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +#ifndef TEST_SUPPORT_TEMPLATE_COST_TESTING_H +#define TEST_SUPPORT_TEMPLATE_COST_TESTING_H + +// This file contains macros used to repeat an expression many times. +// This is useful for testing the compile time and memory usage +// of templates. + +#define REPEAT_10(DO_IT) \ + DO_IT() DO_IT() DO_IT() DO_IT() DO_IT() \ + DO_IT() DO_IT() DO_IT() DO_IT() DO_IT() +#define REPEAT_100(DO_IT) \ + REPEAT_10(DO_IT) REPEAT_10(DO_IT) REPEAT_10(DO_IT) REPEAT_10(DO_IT) REPEAT_10(DO_IT) \ + REPEAT_10(DO_IT) REPEAT_10(DO_IT) REPEAT_10(DO_IT) REPEAT_10(DO_IT) REPEAT_10(DO_IT) +#define REPEAT_200(DO_IT) \ + REPEAT_100(DO_IT) REPEAT_100(DO_IT) +#define REPEAT_300(DO_IT) \ + REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) +#define REPEAT_500(DO_IT) \ + REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) +#define REPEAT_1000(DO_IT) \ + REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) \ + REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) REPEAT_100(DO_IT) +#define REPEAT_5000(DO_IT) \ + REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) +#define REPEAT_10000(DO_IT) \ + REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) \ + REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) REPEAT_1000(DO_IT) + +#endif // TEST_SUPPORT_TEMPLATE_COST_TESTING_H |