1 // Copyright 2020 The Marl Authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "marl_bench.h"
16 
17 #include "marl/sanitizers.h"
18 
main(int argc,char ** argv)19 int main(int argc, char** argv) {
20 #if ADDRESS_SANITIZER_ENABLED
21   printf(
22       "***WARNING*** Marl built with address sanitizer enabled. "
23       "Timings will be affected\n");
24 #endif
25 #if MEMORY_SANITIZER_ENABLED
26   printf(
27       "***WARNING*** Marl built with memory sanitizer enabled. "
28       "Timings will be affected\n");
29 #endif
30 #if THREAD_SANITIZER_ENABLED
31   printf(
32       "***WARNING*** Marl built with thread sanitizer enabled. "
33       "Timings will be affected\n");
34 #endif
35   ::benchmark::Initialize(&argc, argv);
36   if (::benchmark::ReportUnrecognizedArguments(argc, argv))
37     return 1;
38   ::benchmark::RunSpecifiedBenchmarks();
39   return 0;
40 }
41 
doSomeWork(uint32_t x)42 uint32_t Schedule::doSomeWork(uint32_t x) {
43   uint32_t q = x;
44   for (uint32_t i = 0; i < 100000; i++) {
45     x = (x << 4) | x;
46     x = x | 0x1020;
47     x = (x >> 2) & q;
48   }
49   return x;
50 }