diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d6f8a3e03..88d9ef93f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -40,13 +40,13 @@ jobs: chmod +x bazel sudo mv bazel /usr/local/bin/bazel sudo apt install clang-9 patchelf - python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r leaderboard/requirements.txt -r tests/requirements.txt + python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r tests/requirements.txt if: matrix.os == 'ubuntu-latest' - name: Install dependencies (macOS) run: | brew install bazelisk zlib - python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r leaderboard/requirements.txt -r tests/requirements.txt + python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r tests/requirements.txt env: LDFLAGS: -L/usr/local/opt/zlib/lib CPPFLAGS: -I/usr/local/opt/zlib/include @@ -84,13 +84,13 @@ jobs: chmod +x bazel sudo mv bazel /usr/local/bin/bazel sudo apt install clang-9 patchelf - python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r leaderboard/requirements.txt -r tests/requirements.txt + python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r tests/requirements.txt if: matrix.os == 'ubuntu-latest' - name: Install dependencies (macos) run: | brew install bazelisk zlib - python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r leaderboard/requirements.txt -r tests/requirements.txt + python -m pip install -r compiler_gym/requirements.txt -r examples/requirements.txt -r tests/requirements.txt env: LDFLAGS: -L/usr/local/opt/zlib/lib CPPFLAGS: -I/usr/local/opt/zlib/include @@ -110,6 +110,21 @@ jobs: CC: clang CXX: clang++ BAZEL_BUILD_OPTS: --config=ci + if: matrix.os == 'macos-latest' + + - name: Test with coverage + run: make install-test-cov + env: + CC: clang + CXX: clang++ + BAZEL_BUILD_OPTS: --config=ci + if: matrix.os == 'ubuntu-latest' + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 + with: + files: ./coverage.xml + if: matrix.os == 'ubuntu-latest' - name: Uninstall run: make purge diff --git a/.gitignore b/.gitignore index 82f3e4cfa..3d24ca5d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,13 @@ +__pycache__ .DS_Store .env -/*.egg-info /.act /.clwb /.vscode +/*.egg-info /bazel-* /build +/coverage.xml /dist /node_modules /package-lock.json -__pycache__ diff --git a/BUILD.bazel b/BUILD.bazel index e71d72af8..4558ba5cc 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -14,8 +14,8 @@ exports_files([ py_library( name = "CompilerGym", data = [ - "//compiler_gym/third_party/cBench:benchmarks_list", - "//compiler_gym/third_party/cBench:crc32", + "//compiler_gym/third_party/cbench:benchmarks_list", + "//compiler_gym/third_party/cbench:crc32", ], deps = [ "//compiler_gym", diff --git a/CHANGELOG.md b/CHANGELOG.md index 13032c32b..73776f516 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,90 @@ +## Release 0.1.8 (2021-04-30) + +This release introduces some significant changes to the way that benchmarks are +managed, introducing a new dataset API. This enabled us to add support for +millions of new benchmarks and a more efficient implementation for the LLVM +environment, but this will require some migrating of old code to the new +interfaces (see "Migration Checklist" below). Some of the key changes of this +release are: + +- **[Core API change]** We have added a Python + [Benchmark](https://facebookresearch.github.io/CompilerGym/compiler_gym/datasets.html#compiler_gym.datasets.Benchmark) + class ([#190](https://github.com/facebookresearch/CompilerGym/pull/190)). The + `env.benchmark` attribute is now an instance of this class rather than a + string ([#222](https://github.com/facebookresearch/CompilerGym/pull/222)). +- **[Core behavior change]** Environments will no longer select benchmarks + randomly. Now `env.reset()` will now always select the last-used benchmark, + unless the `benchmark` argument is provided or `env.benchmark` has been set. + If no benchmark is specified, a default is used. +- **[API deprecations]** We have added a new + [Dataset](https://facebookresearch.github.io/CompilerGym/compiler_gym/datasets.html#compiler_gym.datasets.Dataset) + class hierarchy + ([#191](https://github.com/facebookresearch/CompilerGym/pull/191), + [#192](https://github.com/facebookresearch/CompilerGym/pull/192)). All + datasets are now available without needing to be downloaded first, and a new + [Datasets](https://facebookresearch.github.io/CompilerGym/compiler_gym/datasets.html#compiler_gym.datasets.Datasets) + class can be used to iterate over them + ([#200](https://github.com/facebookresearch/CompilerGym/pull/200)). We have + deprecated the old dataset management operations, the + `compiler_gym.bin.datasets` script, and removed the `--dataset` and + `--ls_benchmark` flags from the command line tools. +- **[RPC interface change]** The `StartSession` RPC endpoint now accepts a list + of initial observations to compute. This removes the need for an immediate + call to `Step`, reducing environment reset time by 15-21% + ([#189](https://github.com/facebookresearch/CompilerGym/pull/189)). +- [LLVM] We have added several new datasets of benchmarks, including the Csmith + and llvm-stress program generators + ([#207](https://github.com/facebookresearch/CompilerGym/pull/207)), a dataset + of OpenCL kernels + ([#208](https://github.com/facebookresearch/CompilerGym/pull/208)), and a + dataset of compilable C functions + ([#210](https://github.com/facebookresearch/CompilerGym/pull/210)). See [the + docs](https://facebookresearch.github.io/CompilerGym/llvm/index.html#datasets) + for an overview. +- `CompilerEnv` now takes an optional `Logger` instance at construction time for + fine-grained control over logging output + ([#187](https://github.com/facebookresearch/CompilerGym/pull/187)). +- [LLVM] The ModuleID and source_filename of LLVM-IR modules are now anonymized + to prevent unintentional overfitting to benchmarks by name + ([#171](https://github.com/facebookresearch/CompilerGym/pull/171)). +- [docs] We have added a [Feature + Stability](https://facebookresearch.github.io/CompilerGym/about.html#feature-stability) + section to the documentation + ([#196](https://github.com/facebookresearch/CompilerGym/pull/196)). +- Numerous bug fixes and improvements. + +Please use this checklist when updating code for the previous CompilerGym release: + +* Review code that accesses the `env.benchmark` property and update to + `env.benchmark.uri` if a string name is required. Setting this attribute by + string (`env.benchmark = "benchmark://a-v0/b"`) and comparison to string types + (`env.benchmark == "benchmark://a-v0/b"`) still work. +* Review code that calls `env.reset()` without first setting a benchmark. + Previously, calling `env.reset()` would select a random benchmark. Now, + `env.reset()` always selects the last used benchmark, or a predetermined + default if none is specified. +* Review code that relies on `env.benchmark` being `None` to select benchmarks + randomly. Now, `env.benchmark` is always set to the previously used benchmark, + or a predetermined default benchmark if none has been specified. Setting + `env.benchmark = None` will raise an error. Select a benchmark randomly by + sampling from the `env.datasets.benchmark_uris()` iterator. +* Remove calls to `env.require_dataset()` and related operations. These are no + longer required. +* Remove accesses to `env.benchmarks`. An iterator over available benchmark URIs + is now available at `env.datasets.benchmark_uris()`, but the list of URIs + cannot be relied on to be fully enumerable (the LLVM environments have over + 2^32 URIs). +* Review code that accesses `env.observation_space` and update to + `env.observation_space_spec` where necessary + ([#228](https://github.com/facebookresearch/CompilerGym/pull/228)). +* Update compiler service implementations to support the updated RPC interface + by removing the deprecated `GetBenchmarks` RPC endpoint and replacing it with + `Dataset` classes. See the [example + service](https://github.com/facebookresearch/CompilerGym/tree/development/examples/example_compiler_gym_service) + for details. +* [LLVM] Update references to the `poj104-v0` dataset to `poj104-v1`. +* [LLVM] Update references to the `cBench-v1` dataset to `cbench-v1`. + ## Release 0.1.7 (2021-04-01) This release introduces [public @@ -46,11 +133,11 @@ semantics validation, and improving the datasets. Many thanks to @JD-at-work, - Added default reward spaces for `CompilerEnv` that are derived from scalar observations (thanks @bwasti!) - Added a new Q learning example (thanks @JD-at-work!). -- *Deprecation:* The next release v0.1.5 will introduce a new datasets API that - is easier to use and more flexible. In preparation for this, the `Dataset` - class has been renamed to `LegacyDataset`, the following dataset operations - have been marked deprecated: `activate()`, `deactivate()`, and `delete()`. The - `GetBenchmarks()` RPC interface method has also been marked deprecated.. +- *Deprecation:* The v0.1.8 release will introduce a new datasets API that is + easier to use and more flexible. In preparation for this, the `Dataset` class + has been renamed to `LegacyDataset`, the following dataset operations have + been marked deprecated: `activate()`, `deactivate()`, and `delete()`. The + `GetBenchmarks()` RPC interface method has also been marked deprecated. - [llvm] Improved semantics validation using LLVM's memory, thread, address, and undefined behavior sanitizers. - Numerous bug fixes and improvements. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 86f20bd9e..0d327c510 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,16 @@ -# Contributing +# Contributing + +**Table of Contents** + +- [How to Contribute](#how-to-contribute) +- [Pull Requests](#pull-requests) +- [Leaderboard Submissions](#leaderboard-submissions) +- [Code Style](#code-style) +- [Contributor License Agreement ("CLA")](#contributor-license-agreement-cla) + +--- + +## How to Contribute We want to make contributing to CompilerGym as easy and transparent as possible. The most helpful ways to contribute are: @@ -16,8 +28,10 @@ as possible. The most helpful ways to contribute are: * Pull requests. Please see below for details. The easiest way to get stuck is to grab an [unassigned "Good first issue" ticket](https://github.com/facebookresearch/CompilerGym/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee+label%3A%22Good+first+issue%22)! - * Add new features not on the roadmap. Examples could include adding support - for new compilers, producing research results using CompilerGym, etc. + * Add new features not on [the + roadmap](https://facebookresearch.github.io/CompilerGym/about.html#roadmap). + Examples could include adding support for new compilers, producing research + results using CompilerGym, etc. ## Pull Requests @@ -32,9 +46,9 @@ We actively welcome your pull requests. 3. If you've added code that should be tested, add tests. 4. If you've changed APIs, update the [documentation](/docs/source). 5. Ensure the `make test` suite passes. -6. Make sure your code lints (see "Code Style" below). -7. If you haven't already, complete the Contributor License Agreement - ("CLA"). +6. Make sure your code lints (see [Code Style](#code-style) below). +7. If you haven't already, complete the [Contributor License Agreement + ("CLA")](#contributor-license-agreement-cla). ## Leaderboard Submissions @@ -49,12 +63,13 @@ and file a [Pull Request](#pull-requests). Please include: 3. A write-up of your approach. You may use the [submission template](/leaderboard/SUBMISSION_TEMPLATE.md) as a guide. -We do not require that you submit the source code for your approach. Once you -submit your pull request we will validate your results CSV files and may ask -clarifying questions if we feel that those would be useful to improve -reproducibility. Please [take a look -here](https://github.com/facebookresearch/CompilerGym/pull/117) for an example -of a well-formed pull request submission. +Please make sure to update to the latest CompilerGym release prior to +submission. We do not require that you submit the source code for your approach, +though we encourage that you make it publicly available. Once you submit your +pull request we will validate your results CSV files and may ask clarifying +questions if we feel that those would be useful to improve reproducibility. +[Take a look here](https://github.com/facebookresearch/CompilerGym/pull/117) for +an example of a well-formed pull request submission. ## Code Style @@ -69,15 +84,17 @@ is simple: style](https://google.github.io/styleguide/cppguide.html) with 100 character line length and `camelCaseFunctionNames()`. -We use [pre-commit](/.pre-commit-config.yaml) to format our code to -enforce these rules. Before submitting pull requests, please run -pre-commit to ensure the code is correctly formatted. +We use [pre-commit](https://pre-commit.com/) to ensure that code is formatted +prior to committing. Before submitting pull requests, please run pre-commit. See +the [config file](/.pre-commit-config.yaml) for installation and usage +instructions. Other common sense rules we encourage are: * Prefer descriptive names over short ones. * Split complex code into small units. * When writing new features, add tests. +* Make tests deterministic. * Prefer easy-to-use code over easy-to-read, and easy-to-read code over easy-to-write. diff --git a/Makefile b/Makefile index 85d53ec05..9d852972d 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,12 @@ Post-installation Tests usually not needed for interactive development since `make test` runs the same tests without having to install anything. + make install-test-cov + The same as `make install-test`, but with python test coverage + reporting. A summary of test coverage is printed at the end of execution + and the full details are recorded in a coverage.xml file in the project + root directory. + make install-fuzz Run the fuzz testing suite against an installed CompilerGym package. Fuzz tests are tests that generate their own inputs and run in a loop @@ -185,7 +191,7 @@ docs/source/contributing.rst: CONTRIBUTING.md docs/source/installation.rst: README.md echo "..\n Generated from $<. Do not edit!\n" > $@ - sed -n '/^## Installation/,$$p' $< | sed -n '/^## Trying/q;p' | $(PANDOC) --from=markdown --to=rst >> $@ + sed -n '/^## Installation/,$$p' $< | sed -n '/^### Building/q;p' | $(PANDOC) --from=markdown --to=rst >> $@ GENERATED_DOCS := \ docs/source/changelog.rst \ @@ -215,20 +221,30 @@ test: itest: $(IBAZEL) $(BAZEL_OPTS) test $(BAZEL_TEST_OPTS) //... -install-test-datasets: - cd .. && $(PYTHON) -m compiler_gym.bin.datasets --env=llvm-v0 --download=cBench-v1 >/dev/null -install-test: install-test-datasets +# Since we can't run compiler_gym from the project root we need to jump through +# some hoops to run pytest "out of tree" by creating an empty directory and +# symlinking the test directory into it so that pytest can be invoked. +define run_pytest_suite mkdir -p /tmp/compiler_gym/wheel_tests - rm -f /tmp/compiler_gym/wheel_tests/tests + rm -f /tmp/compiler_gym/wheel_tests/tests /tmp/compiler_gym/wheel_tests/tox.ini ln -s $(ROOT)/tests /tmp/compiler_gym/wheel_tests - cd /tmp/compiler_gym/wheel_tests && pytest tests -n auto -k "not fuzz" + ln -s $(ROOT)/tox.ini /tmp/compiler_gym/wheel_tests + cd /tmp/compiler_gym/wheel_tests && pytest tests $(1) --benchmark-disable -n auto -k "not fuzz" +endef + +install-test: + $(call run_pytest_suite,) + +install-test-cov: + $(call run_pytest_suite,--cov=compiler_gym --cov-report=xml) + @mv /tmp/compiler_gym/wheel_tests/coverage.xml . # The minimum number of seconds to run the fuzz tests in a loop for. Override # this at the commandline, e.g. `FUZZ_SECONDS=1800 make fuzz`. FUZZ_SECONDS ?= 300 -install-fuzz: install-test-datasets +install-fuzz: mkdir -p /tmp/compiler_gym/wheel_fuzz_tests rm -f /tmp/compiler_gym/wheel_fuzz_tests/tests ln -s $(ROOT)/tests /tmp/compiler_gym/wheel_fuzz_tests diff --git a/README.md b/README.md index 95504eeb2..f6ee38e96 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,10 @@ License + + + Colab + CompilerGym is a toolkit for exposing compiler optimization problems for reinforcement learning. It allows machine learning researchers to @@ -32,6 +36,7 @@ developers to expose new optimization problems for AI. **Table of Contents** +- [Features](#features) - [Getting Started](#getting-started) - [Installation](#installation) - [Building from Source](#building-from-source) @@ -42,6 +47,40 @@ developers to expose new optimization problems for AI. - [Citation](#citation) +# Features + +With CompilerGym, building ML models for compiler research problems is as easy +as building ML models to play video games. Here are some highlights of key +features: + +* **API:** uses the popular [Gym](https://gym.openai.com/) interface from OpenAI + — use Python to write your agent. + +* **Datasets:** wraps real world programs (C++ programs, TensorFlow programs, + programs from Github, etc.) and a mainstream compiler + ([LLVM](https://llvm.org/)), providing millions of programs for training. + +* **Tasks and Actions:** interfaces the [LLVM](https://llvm.org/) compiler for + one compiler research problem: phase ordering (more to come). It has a large + discrete action space. + +* **Representations:** provides raw representations of programs, as well as + multiple kinds of pre-computed features: you can focus on end-to-end deep + learning or features + boosted trees, all the way up to graph models. + +* **Rewards:** provides appropriate reward functions and loss functions out of + the box. + +* **Testing:** provides a validation process for correctness of results. + +* **Baselines:** provides some baselines and reports their performance. + +* **Competition:** provides [leaderboards](#leaderboards) for you to submit your + results. + +For a glimpse of what's to come, check out [our +roadmap](https://github.com/facebookresearch/CompilerGym/projects/1). + # Getting Started Starting with CompilerGym is simple. If you not already familiar with the gym @@ -83,7 +122,7 @@ Now proceed to [All platforms](#all-platforms) below. On debian-based linux systems, install the required toolchain using: ```sh -sudo apt install clang libtinfo5 libjpeg-dev patchelf +sudo apt install clang-9 libtinfo5 libjpeg-dev patchelf wget https://github.com/bazelbuild/bazelisk/releases/download/v1.7.5/bazelisk-linux-amd64 -O bazel chmod +x bazel && mkdir -p ~/.local/bin && mv -v bazel ~/.local/bin export PATH="$HOME/.local/bin:$PATH" @@ -106,12 +145,15 @@ Then clone the CompilerGym source code using: git clone https://github.com/facebookresearch/CompilerGym.git cd CompilerGym -Install the python development dependencies using: +There are two primary git branches: `stable` tracks the latest release; +`development` is for bleeding edge features that may not yet be mature. Checkout +your preferred branch and install the python development dependencies using: + git checkout stable make init The `make init` target only needs to be run once on initial setup, or when -upgrading to a different CompilerGym release. +pulling remote changes to the CompilerGym repository. Run the test suite to confirm that everything is working: @@ -140,15 +182,18 @@ In Python, import `compiler_gym` to use the environments: >>> import gym >>> import compiler_gym # imports the CompilerGym environments >>> env = gym.make("llvm-autophase-ic-v0") # starts a new environment ->>> env.require_dataset("npb-v0") # downloads a set of programs ->>> env.reset() # starts a new compilation session with a random program +>>> env.benchmark = "benchmark://cbench-v1/qsort" # select a program to compile +>>> env.reset() # starts a new compilation session >>> env.render() # prints the IR of the program >>> env.step(env.action_space.sample()) # applies a random optimization, updates state/reward/actions ``` -See the -[documentation website](http://facebookresearch.github.io/CompilerGym/) for -tutorials, further details, and API reference. +See the [documentation website](http://facebookresearch.github.io/CompilerGym/) +for tutorials, further details, and API reference. Our +[roadmap](https://facebookresearch.github.io/CompilerGym/about.html#roadmap) of +planned features is public, and the +[changelog](https://github.com/facebookresearch/CompilerGym/blob/development/CHANGELOG.md) +summarizes shipped features. # Leaderboards @@ -169,7 +214,7 @@ count achieved scaled to the reduction achieved by LLVM's builtin `-Oz` pipeline. This leaderboard tracks the results achieved by algorithms on the `llvm-ic-v0` -environment on the 23 benchmarks in the `cBench-v1` dataset. +environment on the 23 benchmarks in the `cbench-v1` dataset. | Author | Algorithm | Links | Date | Walltime (mean) | Codesize Reduction (geomean) | | --- | --- | --- | --- | --- | --- | @@ -178,7 +223,9 @@ environment on the 23 benchmarks in the `cBench-v1` dataset. | Facebook | Greedy search | [write-up](leaderboard/llvm_instcount/e_greedy/README.md), [results](leaderboard/llvm_instcount/e_greedy/results_e0.csv) | 2021-03 | 169.237s | 1.055× | | Facebook | Random search (t=60) | [write-up](leaderboard/llvm_instcount/random_search/README.md), [results](leaderboard/llvm_instcount/random_search/results_p125_t60.csv) | 2021-03 | 91.215s | 1.045× | | Facebook | e-Greedy search (e=0.1) | [write-up](leaderboard/llvm_instcount/e_greedy/README.md), [results](leaderboard/llvm_instcount/e_greedy/results_e10.csv) | 2021-03 | 152.579s | 1.041× | +| Jiadong Guo | Tabular Q (N=5000, H=10) | [write-up](leaderboard/llvm_instcount/tabular_q/README.md), [results](leaderboard/llvm_instcount/tabular_q/results-H10-N5000.csv) | 2021-04 | 2534.305 | 1.036× | | Facebook | Random search (t=10) | [write-up](leaderboard/llvm_instcount/random_search/README.md), [results](leaderboard/llvm_instcount/random_search/results_p125_t10.csv) | 2021-03 | **42.939s** | 1.031× | +| Jiadong Guo | Tabular Q (N=2000, H=5) | [write-up](leaderboard/llvm_instcount/tabular_q/README.md), [results](leaderboard/llvm_instcount/tabular_q/results-H5-N2000.csv) | 2021-04 | 694.105 | 0.988× | # Contributing diff --git a/VERSION b/VERSION index 11808190d..699c6c6d4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.7 +0.1.8 diff --git a/tests/benchmarks/BUILD b/benchmarks/BUILD similarity index 91% rename from tests/benchmarks/BUILD rename to benchmarks/BUILD index c6dda436b..f57da9c96 100644 --- a/tests/benchmarks/BUILD +++ b/benchmarks/BUILD @@ -10,6 +10,7 @@ py_test( shard_count = 8, deps = [ "//compiler_gym", + "//examples/example_compiler_gym_service", "//tests:test_main", "//tests/pytest_plugins:llvm", ], @@ -27,7 +28,9 @@ py_binary( py_test( name = "parallelization_load_test_test", + timeout = "moderate", srcs = ["parallelization_load_test_test.py"], + flaky = 1, deps = [ ":parallelization_load_test", "//tests:test_main", diff --git a/benchmarks/bench_test.py b/benchmarks/bench_test.py new file mode 100644 index 000000000..9a5349358 --- /dev/null +++ b/benchmarks/bench_test.py @@ -0,0 +1,191 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Microbenchmarks for CompilerGym environments. + +To run these benchmarks an optimized build using bazel: + + $ bazel test -c opt --test_output=streamed //benchmarks:bench_test + +A record of the benchmark results is stored in +/tmp/compiler_gym/pytest_benchmark//_bench_test.json. Compare +multiple runs using: + + $ pytest-benchmark compare --group-by=name --sort=fullname \ + /tmp/compiler_gym/pytest_benchmark/*/*_bench_test.json +""" +import gym +import pytest + +import examples.example_compiler_gym_service as dummy +from compiler_gym.envs import CompilerEnv, LlvmEnv, llvm +from compiler_gym.service import CompilerGymServiceConnection +from tests.pytest_plugins.llvm import OBSERVATION_SPACE_NAMES, REWARD_SPACE_NAMES +from tests.test_main import main + + +@pytest.fixture( + params=["llvm-v0", "example-cc-v0", "example-py-v0"], + ids=["llvm", "dummy-cc", "dummy-py"], +) +def env_id(request) -> str: + yield request.param + + +@pytest.fixture( + params=["llvm-v0", "example-cc-v0", "example-py-v0"], + ids=["llvm", "dummy-cc", "dummy-py"], +) +def env(request) -> CompilerEnv: + yield request.param + + +@pytest.mark.parametrize( + "env_id", + ["llvm-v0", "example-cc-v0", "example-py-v0"], + ids=["llvm", "dummy-cc", "dummy-py"], +) +def test_make_local(benchmark, env_id): + benchmark(lambda: gym.make(env_id).close()) + + +@pytest.mark.parametrize( + "args", + [ + (llvm.LLVM_SERVICE_BINARY, LlvmEnv), + (dummy.EXAMPLE_CC_SERVICE_BINARY, CompilerEnv), + (dummy.EXAMPLE_PY_SERVICE_BINARY, CompilerEnv), + ], + ids=["llvm", "dummy-cc", "dummy-py"], +) +def test_make_service(benchmark, args): + service_binary, env_class = args + service = CompilerGymServiceConnection(service_binary) + try: + benchmark(lambda: env_class(service=service.connection.url).close()) + finally: + service.close() + + +@pytest.mark.parametrize( + "make_env", + [ + lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/crc32"), + lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/jpeg-d"), + lambda: gym.make("example-cc-v0"), + lambda: gym.make("example-py-v0"), + ], + ids=["llvm;fast-benchmark", "llvm;slow-benchmark", "dummy-cc", "dummy-py"], +) +def test_reset(benchmark, make_env: CompilerEnv): + with make_env() as env: + benchmark(env.reset) + + +@pytest.mark.parametrize( + "args", + [ + ( + lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/crc32"), + "-globaldce", + ), + (lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/crc32"), "-gvn"), + ( + lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/jpeg-d"), + "-globaldce", + ), + ( + lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/jpeg-d"), + "-gvn", + ), + (lambda: gym.make("example-cc-v0"), "a"), + (lambda: gym.make("example-py-v0"), "a"), + ], + ids=[ + "llvm;fast-benchmark;fast-action", + "llvm;fast-benchmark;slow-action", + "llvm;slow-benchmark;fast-action", + "llvm;slow-benchmark;slow-action", + "dummy-cc", + "dummy-py", + ], +) +def test_step(benchmark, args): + make_env, action_name = args + with make_env() as env: + env.reset() + action = env.action_space[action_name] + benchmark(env.step, action) + + +_args = dict( + { + f"llvm;{obs}": (lambda: gym.make("llvm-v0", benchmark="cbench-v1/qsort"), obs) + for obs in OBSERVATION_SPACE_NAMES + }, + **{ + "dummy-cc": (lambda: gym.make("example-cc-v0"), "ir"), + "dummy-py": (lambda: gym.make("example-py-v0"), "features"), + }, +) + + +@pytest.mark.parametrize("args", _args.values(), ids=_args.keys()) +def test_observation(benchmark, args): + make_env, observation_space = args + with make_env() as env: + env.reset() + benchmark(lambda: env.observation[observation_space]) + + +_args = dict( + { + f"llvm;{reward}": ( + lambda: gym.make("llvm-v0", benchmark="cbench-v1/qsort"), + reward, + ) + for reward in REWARD_SPACE_NAMES + }, + **{ + "dummy-cc": (lambda: gym.make("example-cc-v0"), "runtime"), + "dummy-py": (lambda: gym.make("example-py-v0"), "runtime"), + }, +) + + +@pytest.mark.parametrize("args", _args.values(), ids=_args.keys()) +def test_reward(benchmark, args): + make_env, reward_space = args + with make_env() as env: + env.reset() + benchmark(lambda: env.reward[reward_space]) + + +@pytest.mark.parametrize( + "make_env", + [ + lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/crc32"), + lambda: gym.make("llvm-autophase-ic-v0", benchmark="cbench-v1/jpeg-d"), + # TODO: Example service does not yet support fork() operator. + # lambda: gym.make("example-cc-v0"), + # lambda: gym.make("example-py-v0"), + ], + ids=["llvm;fast-benchmark", "llvm;slow-benchmark"], +) +def test_fork(benchmark, make_env): + with make_env() as env: + env.reset() + benchmark(lambda: env.fork().close()) + + +if __name__ == "__main__": + main( + extra_pytest_args=[ + "--benchmark-storage=/tmp/compiler_gym/pytest_benchmark", + "--benchmark-save=bench_test", + "--benchmark-sort=name", + "-x", + ], + debug_level=0, + ) diff --git a/tests/benchmarks/parallelization_load_test.py b/benchmarks/parallelization_load_test.py similarity index 100% rename from tests/benchmarks/parallelization_load_test.py rename to benchmarks/parallelization_load_test.py diff --git a/tests/benchmarks/parallelization_load_test_test.py b/benchmarks/parallelization_load_test_test.py similarity index 81% rename from tests/benchmarks/parallelization_load_test_test.py rename to benchmarks/parallelization_load_test_test.py index 979990d0f..35d73ad27 100644 --- a/tests/benchmarks/parallelization_load_test_test.py +++ b/benchmarks/parallelization_load_test_test.py @@ -2,14 +2,14 @@ # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -"""Smoke test for //tests/benchmarks:parallelization_load_test.""" +"""Smoke test for //benchmarks:parallelization_load_test.""" from pathlib import Path from absl import flags +from benchmarks.parallelization_load_test import main as load_test from compiler_gym.util.capture_output import capture_output -from tests.benchmarks.parallelization_load_test import main as load_test -from tests.pytest_plugins.common import skip_on_ci +from tests.pytest_plugins.common import set_command_line_flags, skip_on_ci from tests.test_main import main FLAGS = flags.FLAGS @@ -21,12 +21,11 @@ def test_load_test(env, tmpwd): del env # Unused. del tmpwd # Unused. - FLAGS.unparse_flags() - FLAGS( + set_command_line_flags( [ "arv0", "--env=llvm-v0", - "--benchmark=cBench-v1/crc32", + "--benchmark=cbench-v1/crc32", "--max_nproc=3", "--nproc_increment=1", "--num_steps=2", diff --git a/compiler_gym/BUILD b/compiler_gym/BUILD index deeaf4ff6..8b3da5205 100644 --- a/compiler_gym/BUILD +++ b/compiler_gym/BUILD @@ -24,6 +24,10 @@ py_library( name = "compiler_env_state", srcs = ["compiler_env_state.py"], visibility = ["//compiler_gym:__subpackages__"], + deps = [ + "//compiler_gym/datasets:uri", + "//compiler_gym/util", + ], ) py_library( @@ -54,6 +58,7 @@ py_library( srcs = ["validate.py"], visibility = ["//compiler_gym:__subpackages__"], deps = [ + ":validation_error", ":validation_result", "//compiler_gym/envs:compiler_env", "//compiler_gym/spaces", @@ -61,12 +66,19 @@ py_library( ], ) +py_library( + name = "validation_error", + srcs = ["validation_error.py"], + visibility = ["//compiler_gym:__subpackages__"], +) + py_library( name = "validation_result", srcs = ["validation_result.py"], visibility = ["//compiler_gym:__subpackages__"], deps = [ ":compiler_env_state", + ":validation_error", "//compiler_gym/util", ], ) diff --git a/compiler_gym/__init__.py b/compiler_gym/__init__.py index 33ba6a6ea..0110aa9fd 100644 --- a/compiler_gym/__init__.py +++ b/compiler_gym/__init__.py @@ -29,7 +29,11 @@ "compiler_gym` will work." ) from e -from compiler_gym.compiler_env_state import CompilerEnvState +from compiler_gym.compiler_env_state import ( + CompilerEnvState, + CompilerEnvStateReader, + CompilerEnvStateWriter, +) from compiler_gym.envs import COMPILER_GYM_ENVS, CompilerEnv, observation_t, step_t from compiler_gym.random_search import random_search from compiler_gym.util.debug_util import ( @@ -44,7 +48,8 @@ transient_cache_path, ) from compiler_gym.validate import validate_states -from compiler_gym.validation_result import ValidationError, ValidationResult +from compiler_gym.validation_error import ValidationError +from compiler_gym.validation_result import ValidationResult # The top-level compiler_gym API. __all__ = [ @@ -53,6 +58,8 @@ "COMPILER_GYM_ENVS", "CompilerEnv", "CompilerEnvState", + "CompilerEnvStateWriter", + "CompilerEnvStateReader", "download", "get_debug_level", "get_logging_level", diff --git a/compiler_gym/bin/BUILD b/compiler_gym/bin/BUILD index 3ae0fb971..92cfc45a8 100644 --- a/compiler_gym/bin/BUILD +++ b/compiler_gym/bin/BUILD @@ -22,7 +22,8 @@ py_binary( srcs = ["datasets.py"], visibility = ["//visibility:public"], deps = [ - "//compiler_gym/datasets:dataset", + ":service", + "//compiler_gym/datasets", "//compiler_gym/envs", "//compiler_gym/util", "//compiler_gym/util/flags:env_from_flags", @@ -39,7 +40,6 @@ py_binary( "//compiler_gym/util", "//compiler_gym/util/flags:benchmark_from_flags", "//compiler_gym/util/flags:env_from_flags", - "//compiler_gym/util/flags:ls_benchmark", ], ) @@ -60,7 +60,6 @@ py_binary( "//compiler_gym:random_search", "//compiler_gym/util/flags:benchmark_from_flags", "//compiler_gym/util/flags:env_from_flags", - "//compiler_gym/util/flags:ls_benchmark", "//compiler_gym/util/flags:nproc", "//compiler_gym/util/flags:output_dir", ], @@ -83,6 +82,7 @@ py_binary( srcs = ["service.py"], visibility = ["//visibility:public"], deps = [ + "//compiler_gym/datasets", "//compiler_gym/envs", "//compiler_gym/spaces", "//compiler_gym/util", @@ -97,7 +97,6 @@ py_binary( deps = [ "//compiler_gym:validate", "//compiler_gym/util", - "//compiler_gym/util/flags:dataset", "//compiler_gym/util/flags:env_from_flags", "//compiler_gym/util/flags:nproc", ], diff --git a/compiler_gym/bin/datasets.py b/compiler_gym/bin/datasets.py index c6a2495ae..cde0dffce 100644 --- a/compiler_gym/bin/datasets.py +++ b/compiler_gym/bin/datasets.py @@ -6,11 +6,8 @@ .. code-block:: - $ python -m compiler_gym.bin.datasets --env= [command...] - -Where :code:`command` is one of :code:`--download=`, -:code:`--activate=`, :code:`--deactivate=`, -and :code:`--delete=`. + $ python -m compiler_gym.bin.datasets --env= \ + [--download=] [--delete=] Listing installed datasets @@ -22,38 +19,21 @@ .. code-block:: $ python -m comiler_gym.bin.benchmarks --env=llvm-v0 - llvm-v0 benchmarks site dir: /home/user/.local/share/compiler_gym/llvm/10.0.0/bitcode_benchmarks - - +-------------------+--------------+-----------------+----------------+ - | Active Datasets | License | #. Benchmarks | Size on disk | - +===================+==============+=================+================+ - | cBench-v1 | BSD 3-Clause | 23 | 10.1 MB | - +-------------------+--------------+-----------------+----------------+ - | Total | | 23 | 10.1 MB | - +-------------------+--------------+-----------------+----------------+ - These benchmarks are ready for use. Deactivate them using `--deactivate=`. - - +---------------------+-----------+-----------------+----------------+ - | Inactive Datasets | License | #. Benchmarks | Size on disk | - +=====================+===========+=================+================+ - | Total | | 0 | 0 Bytes | - +---------------------+-----------+-----------------+----------------+ - These benchmarks may be activated using `--activate=`. - - +------------------------+---------------------------------+-----------------+----------------+ - | Downloadable Dataset | License | #. Benchmarks | Size on disk | - +========================+=================================+=================+================+ - | blas-v0 | BSD 3-Clause | 300 | 4.0 MB | - +------------------------+---------------------------------+-----------------+----------------+ - | polybench-v0 | BSD 3-Clause | 27 | 162.6 kB | - +------------------------+---------------------------------+-----------------+----------------+ - These benchmarks may be installed using `--download= --activate=`. + + +-------------------+---------------------+-----------------+----------------+ + | Active Datasets | Description | #. Benchmarks | Size on disk | + +===================+=====================+=================+================+ + | cbench-v1 | Runnable C programs | 23 | 10.1 MB | + +-------------------+---------------------+-----------------+----------------+ + | Total | | 23 | 10.1 MB | + +-------------------+---------------------+-----------------+----------------+ Downloading datasets -------------------- -Use :code:`--download` to download a dataset from the list of available datasets: +Use :code:`--download` to download a dataset from the list of available +datasets: .. code-block:: @@ -73,24 +53,12 @@ $ python -m comiler_gym.bin.benchmarks --env=llvm-v0 --download_all -:code:`--download` accepts the URL of any :code:`.tar.bz2` file to support custom datasets: - -.. code-block:: - - $ python -m comiler_gym.bin.benchmarks --env=llvm-v0 --download=https://example.com/dataset.tar.bz2 - Or use the :code:`file:///` URI to install a local archive file: .. code-block:: $ python -m compiler_gym.bin.benchmarks --env=llvm-v0 --download=file:////tmp/dataset.tar.bz2 -The list of datasets that are available to download may be extended by calling -:meth:`CompilerEnv.register_dataset() ` -on a :code:`CompilerEnv` instance. - -To programmatically download datasets, see -:meth:`CompilerEnv.require_dataset() `. Activating and deactivating datasets ------------------------------------ @@ -100,12 +68,12 @@ This be useful if you have many datasets downloaded and you would to limit the benchmarks that can be selected randomly by an environment. -Activate or deactivate datasets using the :code:`--activate` and :code:`--deactivate` -flags, respectively: +Activate or deactivate datasets using the :code:`--activate` and +:code:`--deactivate` flags, respectively: .. code-block:: - $ python -m comiler_gym.bin.benchmarks --env=llvm-v0 --activate=npb-v0,github-v0 --deactivate=cBench-v1 + $ python -m comiler_gym.bin.benchmarks --env=llvm-v0 --activate=npb-v0,github-v0 --deactivate=cbench-v1 The :code:`--activate_all` and :code:`--deactivate_all` flags can be used as a shortcut to activate or deactivate every downloaded: @@ -131,23 +99,14 @@ A :code:`--delete_all` flag can be used to delete all of the locally installed datasets. """ -import os import sys -from pathlib import Path -from typing import Tuple -import humanize from absl import app, flags +from deprecated.sphinx import deprecated -from compiler_gym.datasets.dataset import ( - LegacyDataset, - activate, - deactivate, - delete, - require, -) +from compiler_gym.bin.service import summarize_datasets +from compiler_gym.datasets.dataset import activate, deactivate, delete from compiler_gym.util.flags.env_from_flags import env_from_flags -from compiler_gym.util.tabulate import tabulate flags.DEFINE_list( "download", @@ -175,31 +134,15 @@ FLAGS = flags.FLAGS -def get_count_and_size_of_directory_contents(root: Path) -> Tuple[int, int]: - """Return the number of files and combined size of a directory.""" - count, size = 0, 0 - for root, _, files in os.walk(str(root)): - count += len(files) - size += sum(os.path.getsize(f"{root}/{file}") for file in files) - return count, size - - -def enumerate_directory(name: str, path: Path): - rows = [] - for path in path.iterdir(): - if not path.is_file() or not path.name.endswith(".json"): - continue - dataset = LegacyDataset.from_json_file(path) - rows.append( - (dataset.name, dataset.license, dataset.file_count, dataset.size_bytes) - ) - rows.append(("Total", "", sum(r[2] for r in rows), sum(r[3] for r in rows))) - return tabulate( - [(n, l, humanize.intcomma(f), humanize.naturalsize(s)) for n, l, f, s in rows], - headers=(name, "License", "#. Benchmarks", "Size on disk"), - ) - - +@deprecated( + version="0.1.8", + reason=( + "Command-line management of datasets is deprecated. Please use " + ":mod:`compiler_gym.bin.service` to print a tabular overview of the " + "available datasets. For management of datasets, use the " + ":class:`env.datasets ` property." + ), +) def main(argv): """Main entry point.""" if len(argv) != 1: @@ -207,28 +150,20 @@ def main(argv): env = env_from_flags() try: - if not env.datasets_site_path: - raise app.UsageError("Environment has no benchmarks site path") - - env.datasets_site_path.mkdir(parents=True, exist_ok=True) - env.inactive_datasets_site_path.mkdir(parents=True, exist_ok=True) - invalidated_manifest = False for name_or_url in FLAGS.download: - require(env, name_or_url) + env.datasets.install(name_or_url) if FLAGS.download_all: - for dataset in env.available_datasets: - require(env, dataset) + for dataset in env.datasets: + dataset.install() for name in FLAGS.activate: activate(env, name) invalidated_manifest = True if FLAGS.activate_all: - for path in env.inactive_datasets_site_path.iterdir(): - activate(env, path.name) invalidated_manifest = True for name in FLAGS.deactivate: @@ -236,8 +171,6 @@ def main(argv): invalidated_manifest = True if FLAGS.deactivate_all: - for path in env.datasets_site_path.iterdir(): - deactivate(env, path.name) invalidated_manifest = True for name in FLAGS.delete: @@ -246,41 +179,8 @@ def main(argv): if invalidated_manifest: env.make_manifest_file() - print(f"{env.spec.id} benchmarks site dir: {env.datasets_site_path}") - print() - print( - enumerate_directory("Active Datasets", env.datasets_site_path), - ) - print( - "These benchmarks are ready for use. Deactivate them using `--deactivate=`." - ) - print() - print(enumerate_directory("Inactive Datasets", env.inactive_datasets_site_path)) - print("These benchmarks may be activated using `--activate=`.") - print() - print( - tabulate( - sorted( - [ - ( - d.name, - d.license, - humanize.intcomma(d.file_count), - humanize.naturalsize(d.size_bytes), - ) - for d in env.available_datasets.values() - ] - ), - headers=( - "Downloadable Dataset", - "License", - "#. Benchmarks", - "Size on disk", - ), - ) - ) print( - "These benchmarks may be installed using `--download= --activate=`." + summarize_datasets(env.datasets), ) finally: env.close() diff --git a/compiler_gym/bin/manual_env.py b/compiler_gym/bin/manual_env.py index dd1dce7a2..45df0b0a1 100644 --- a/compiler_gym/bin/manual_env.py +++ b/compiler_gym/bin/manual_env.py @@ -16,33 +16,11 @@ CompilerGym Shell Tutorial ************************** -This program gives a basic shell through which many of commands from -CompilerGym can be executed. CompilerGym provides a simple Python interface to -various compiler functions, enabling programs to be compiled in different ways -and to make queries about those programs. The goal is to have a simple system -for machine learning in compilers. - -Downloading a Dataset ---------------------- -When entering the Shell, the environment (compiler choice) will have already -been made on the command line. The benchmark or program to be compiled may not -yet be set. Before setting a benchmark, however, the corresponding dataset must -be downloaded. You may have already downloaded a dataset through the -compiler_gym.bin.datasets command, but if not, you can do that from this shell. - -To download a dataset, call: - -.. code-block:: - - compilergym:NO-BENCHMARK> require_dataset - -The command and the dataset name should tab-complete for you (most things will -tab-complete in the shell). You can also see what datasets are available with -this command: - -.. code-block:: - - compilergym:NO-BENCHMARK> list_datasets +This program gives a basic shell through which many of commands from CompilerGym +can be executed. CompilerGym provides a simple Python interface to various +compiler functions, enabling programs to be compiled in different ways and to +make queries about those programs. The goal is to have a simple system for +machine learning in compilers. Setting a Benchmark, Reward and Observation ------------------------------------------- @@ -51,34 +29,41 @@ .. code-block:: - compilergym:NO-BENCHMARK> set_benchmark + compiler_gym:cbench-v1/qsort> set_benchmark When a benchmark is set, the prompt will update with the name of the benchmark. Supposing that is "bench", then the prompt would be: .. code-block:: - compilergym:bench> + compiler_gym:bench> -The list of available benchmarks can be shown with: +The list of available benchmarks can be shown with, though this is limited to +the first 200 benchmarks: .. code-block:: - compilergym:bench> list_benchmarks + compiler_gym:bench> list_benchmarks + +You can also see what datasets are available with this command: + +.. code-block:: + + compiler_gym:cbench-v1/qsort> list_datasets The default reward and observation can be similarly set with: .. code-block:: - compilergym:bench> set_default_reward - compilergym:bench> set_default_observation + compiler_gym:bench> set_default_reward + compiler_gym:bench> set_default_observation And lists of the choices are available with: .. code-block:: - compilergym:bench> list_rewards - compilergym:bench> list_observations + compiler_gym:bench> list_rewards + compiler_gym:bench> list_observations The default rewards and observations will be reported every time an action is taken. So, if, for example, you want to see how the instruction count of the @@ -95,27 +80,26 @@ (currently an LLVM opt pass) on the intermediate representation of the program. Each action acts on the result of the previous action and so on. -So, for example, to apply first the 'tail call elimination' pass, then the -'loop unrolling' pass we call two actions: +So, for example, to apply first the 'tail call elimination' pass, then the 'loop +unrolling' pass we call two actions: .. code-block:: - compilergym:bench> action -tailcallelim - compilergym:bench> action -loop-unroll + compiler_gym:bench> action -tailcallelim + compiler_gym:bench> action -loop-unroll -Each action will report its default reward. -Note that multiple actions can be placed on a single line, so that the above is -equivalent to: +Each action will report its default reward. Note that multiple actions can be +placed on a single line, so that the above is equivalent to: .. code-block:: - compilergym:bench> action -tailcallelim -loop-unroll + compiler_gym:bench> action -tailcallelim -loop-unroll You can choose a random action, by using just a '-' as the action name: .. code-block:: - compilergym:bench> action - + compiler_gym:bench> action - Since an empty line on the shell repeats the last action, you can execute many random actions by typing that line first then holding down return. @@ -125,7 +109,7 @@ .. code-block:: - compilergym:bench> stack + compiler_gym:bench> stack This will show for each action if it had an effect (as computed by the underlying compiler), whether this terminated compiler, and what the per action @@ -135,20 +119,20 @@ .. code-block:: - compilergym:bench> undo + compiler_gym:bench> undo All actions in the stack can be undone at once by: .. code-block:: - compilergym:bench> reset + compiler_gym:bench> reset You can find out what the effect of each action would be by calling this command: .. code-block:: - compilergym:bench> try_all_actions + compiler_gym:bench> try_all_actions This will show a table with the reward for each action, sorted by best first. @@ -157,12 +141,12 @@ .. code-block:: - compilergym:bench> simplify_stack + compiler_gym:bench> simplify_stack This will redo the entire stack, keeping only those actions which previously gave good rewards. (Note this doesn't mean that the simplified stack will only -have positive rewards, some negative actions may be necessary set up for a -later positive reward.) +have positive rewards, some negative actions may be necessary set up for a later +positive reward.) Current Status -------------- @@ -174,20 +158,20 @@ .. code-block:: - compilergym:bench> reward + compiler_gym:bench> reward You can see various observations with: .. code-block:: - compilergym:bench> observation + compiler_gym:bench> observation Finally, you can print the equivalent command line for achieving the same behaviour as the actions through the standard system shell: .. code-block:: - compilergym:bench> commandline + compiler_gym:bench> commandline Searching --------- @@ -198,7 +182,7 @@ .. code-block:: - compilergym:bench> action - + compiler_gym:bench> action - Multiple steps can be taken by holding down the return key. @@ -207,14 +191,14 @@ .. code-block:: - compilergym:bench> hill_climb + compiler_gym:bench> hill_climb A simple greedy search tries all possible actions and takes the one with the highest reward, stopping when no action has a positive reward: .. code-block:: - compilergym:bench> greedy + compiler_gym:bench> greedy Miscellaneous ------------- @@ -222,7 +206,7 @@ .. code-block:: - compilergym:bench> breakpoint + compiler_gym:bench> breakpoint Which drops into the python debugger. This is very useful if you want to see what is going on internally. There is a 'self.env' object that represents the @@ -232,7 +216,7 @@ .. code-block:: - compilergym:bench> exit + compiler_gym:bench> exit Drops out of the shell. :code:`Ctrl-D` should have the same effect. """ @@ -240,10 +224,10 @@ import random import readline import sys +from itertools import islice from absl import app, flags -import compiler_gym.util.flags.ls_benchmark # noqa Flag definition. from compiler_gym.envs import CompilerEnv from compiler_gym.util.flags.benchmark_from_flags import benchmark_from_flags from compiler_gym.util.flags.env_from_flags import env_from_flags @@ -301,10 +285,12 @@ def __init__(self, env: CompilerEnv): self.env = env - self.init_benchmarks() - # Get the benchmarks - self.benchmarks = sorted(self.env.benchmarks) + self.benchmarks = [] + for dataset in self.env.datasets: + self.benchmarks += islice(dataset.benchmark_uris(), 50) + self.benchmarks.sort() + # Strip default benchmark:// protocol. for i, benchmark in enumerate(self.benchmarks): if benchmark.startswith("benchmark://"): @@ -320,6 +306,12 @@ def __init__(self, env: CompilerEnv): self.set_prompt() + def __del__(self): + """Tidy up in case postloop() is not called.""" + if self.env: + self.env.close() + self.env = None + def do_tutorial(self, arg): """Print the turorial""" print(tutorial) @@ -335,24 +327,12 @@ def postloop(self): self.env.close() self.env = None - def init_benchmarks(self): - """Initialise the set of benchmarks""" - # Get the benchmarks - self.benchmarks = sorted(self.env.benchmarks) - # Strip default benchmark:// protocol. - for i, benchmark in enumerate(self.benchmarks): - if benchmark.startswith("benchmark://"): - self.benchmarks[i] = benchmark[len("benchmark://") :] - def set_prompt(self): """Set the prompt - shows the benchmark name""" - if self.env.benchmark: - bname = self.env.benchmark - if bname.startswith("benchmark://"): - bname = bname[len("benchmark://") :] - else: - bname = "NO-BENCHMARK" - prompt = f"compilergym:{bname}>" + benchmark_name = self.env.benchmark.uri + if benchmark_name.startswith("benchmark://"): + benchmark_name = benchmark_name[len("benchmark://") :] + prompt = f"compiler_gym:{benchmark_name}>" self.prompt = f"\n{emph(prompt)} " def simple_complete(self, text, options): @@ -363,38 +343,16 @@ def simple_complete(self, text, options): return options def get_datasets(self): - """Get the list of available datasets""" - return sorted([k for k in self.env.available_datasets]) + """Get the list of datasets""" + return sorted([k.name for k in self.env.datasets.datasets()]) def do_list_datasets(self, arg): - """List all of the available datasets""" + """List all of the datasets""" print(", ".join(self.get_datasets())) - def complete_require_dataset(self, text, line, begidx, endidx): - """Complete the require_benchmark argument""" - return self.simple_complete(text, self.get_datasets()) - - def do_require_dataset(self, arg): - """Require dataset - The argument is the name of the dataset to require. - """ - if self.get_datasets().count(arg): - with Timer(f"Downloaded dataset {arg}"): - self.env.require_dataset(arg) - self.init_benchmarks() - else: - print("Unknown dataset, '" + arg + "'") - print("Available datasets are listed with command, list_available_datasets") - def do_list_benchmarks(self, arg): - """List all of the available benchmarks""" - if not self.benchmarks: - doc_root_url = "https://facebookresearch.github.io/CompilerGym/" - install_url = doc_root_url + "getting_started.html#installing-benchmarks" - print("No benchmarks available. See " + install_url) - print("Datasets can be installed with command, require_dataset") - else: - print(", ".join(self.benchmarks)) + """List the benchmarks""" + print(", ".join(self.benchmarks)) def complete_set_benchmark(self, text, line, begidx, endidx): """Complete the set_benchmark argument""" @@ -409,27 +367,27 @@ def do_set_benchmark(self, arg): Use '-' for a random benchmark. """ if arg == "-": - arg = random.choice(self.benchmarks) + arg = self.env.datasets.benchmark().uri print(f"set_benchmark {arg}") - if self.benchmarks.count(arg): + try: + benchmark = self.env.datasets.benchmark(arg) self.stack.clear() # Set the current benchmark with Timer() as timer: - observation = self.env.reset(benchmark=arg) + observation = self.env.reset(benchmark=benchmark) print(f"Reset {self.env.benchmark} environment in {timer}") if self.env.observation_space and observation is not None: print( - f"Observation: {self.env.observation_space.to_string(observation)}" + f"Observation: {self.env.observation_space_spec.to_string(observation)}" ) self.set_prompt() - - else: + except LookupError: print("Unknown benchmark, '" + arg + "'") - print("Bencmarks are listed with command, list_benchmarks") + print("Benchmarks are listed with command, list_benchmarks") def get_actions(self): """Get the list of actions""" @@ -451,10 +409,6 @@ def do_action(self, arg): Tab completion will be used if available. Use '-' for a random action. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - if self.stack and self.stack[-1].done: print( "No action possible, last action ended by the environment with error:", @@ -497,7 +451,7 @@ def do_action(self, arg): # Print the observation, if available. if self.env.observation_space and observation is not None: print( - f"Observation: {self.env.observation_space.to_string(observation)}" + f"Observation: {self.env.observation_space_spec.to_string(observation)}" ) # Print the reward, if available. @@ -557,10 +511,6 @@ def do_hill_climb(self, arg): An argument, if given, should be the number of steps to take. The search will try to improve the default reward. Please call set_default_reward if needed. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - if not self.env.reward_space: print("No default reward set. Call set_default_reward") return @@ -617,10 +567,6 @@ def get_action_rewards(self): def do_try_all_actions(self, args): """Tries all actions from this position and reports the results in sorted order by reward""" - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - if not self.env.reward_space: print("No default reward set. Call set_default_reward") return @@ -646,10 +592,6 @@ def do_greedy(self, arg): An argument, if given, should be the number of steps to take. The search will try to improve the default reward. Please call set_default_reward if needed. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - if not self.env.reward_space: print("No default reward set. Call set_default_reward") return @@ -690,12 +632,8 @@ def do_observation(self, arg): The name should come from the list of observations printed by the command list_observations. Tab completion will be used if available. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - if arg == "" and self.env.observation_space: - arg = self.env.observation_space.id + arg = self.env.observation_space_spec.id if self.observations.count(arg): with Timer() as timer: @@ -718,10 +656,6 @@ def do_set_default_observation(self, arg): With no argument it will set to None. This command will rerun the actions on the stack. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - arg = arg.strip() if not arg or self.observations.count(arg): with Timer() as timer: @@ -746,10 +680,6 @@ def do_reward(self, arg): The name should come from the list of rewards printed by the command list_rewards. Tab completion will be used if available. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - if arg == "" and self.env.reward_space: arg = self.env.reward_space.id @@ -772,10 +702,6 @@ def do_set_default_reward(self, arg): With no argument it will set to None. This command will rerun the actions on the stack. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - arg = arg.strip() if not arg or self.rewards.count(arg): with Timer(f"Reward {arg}"): @@ -791,10 +717,6 @@ def do_commandline(self, arg): def do_stack(self, arg): """Show the environments on the stack. The current environment is the first shown.""" - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - rows = [] total = 0 for i, hist in enumerate(self.stack): @@ -821,10 +743,6 @@ def do_simplify_stack(self, arg): being removed that previously had a negative reward being necessary for a later action to have a positive reward. This means you might see non-positive rewards on the stack afterwards. """ - if not self.env.benchmark: - print("No benchmark set, please call the set_benchmark command") - return - self.env.reset() old_stack = self.stack self.stack = [] @@ -889,15 +807,7 @@ def main(argv): if len(argv) != 1: raise app.UsageError(f"Unknown command line arguments: {argv[1:]}") - if FLAGS.ls_benchmark: - benchmark = benchmark_from_flags() - env = env_from_flags(benchmark) - print("\n".join(sorted(env.benchmarks))) - env.close() - return - with Timer("Initialized environment"): - # FIXME Chris, I don't seem to actually get a benchmark benchmark = benchmark_from_flags() env = env_from_flags(benchmark) diff --git a/compiler_gym/bin/random_search.py b/compiler_gym/bin/random_search.py index 1f9ff9cf6..c0e3f4927 100644 --- a/compiler_gym/bin/random_search.py +++ b/compiler_gym/bin/random_search.py @@ -17,8 +17,8 @@ .. code-block:: - $ python -m compiler_gym.bin.random_search --env=llvm-ic-v0 --benchmark=cBench-v1/dijkstra --runtime=60 - Started 16 worker threads for benchmark benchmark://cBench-v1/dijkstra (410 instructions) using reward IrInstructionCountOz. + $ python -m compiler_gym.bin.random_search --env=llvm-ic-v0 --benchmark=cbench-v1/dijkstra --runtime=60 + Started 16 worker threads for benchmark benchmark://cbench-v1/dijkstra (410 instructions) using reward IrInstructionCountOz. === Running for a minute === Runtime: a minute. Num steps: 470,407 (7,780 / sec). Num episodes: 4,616 (76 / sec). Num restarts: 0. Best reward: 101.59% (96 passes, found after 35 seconds) @@ -58,7 +58,6 @@ from absl import app, flags -import compiler_gym.util.flags.ls_benchmark # noqa Flag definition. import compiler_gym.util.flags.nproc # noqa Flag definition. import compiler_gym.util.flags.output_dir # noqa Flag definition. from compiler_gym.random_search import random_search @@ -93,11 +92,6 @@ def main(argv): if len(argv) != 1: raise app.UsageError(f"Unknown command line arguments: {argv[1:]}") - if FLAGS.ls_benchmark: - env = env_from_flags() - print("\n".join(sorted(env.benchmarks))) - env.close() - return if FLAGS.ls_reward: env = env_from_flags() print("\n".join(sorted(env.reward.indices.keys()))) @@ -112,8 +106,6 @@ def make_env(): env = make_env() try: env.reset() - if not env.benchmark: - raise app.UsageError("No benchmark specified.") finally: env.close() diff --git a/compiler_gym/bin/service.py b/compiler_gym/bin/service.py index 259d62ecf..ec83b4866 100644 --- a/compiler_gym/bin/service.py +++ b/compiler_gym/bin/service.py @@ -20,87 +20,154 @@ .. code-block:: - $ python -m compiler_gym.bin.service --env= [--heading_level=] + $ python -m compiler_gym.bin.service --env= For example: .. code-block:: $ python -m compiler_gym.bin.service --env=llvm-v0 - # CompilerGym Service `/path/to/compiler_gym/envs/llvm/service/compiler_gym-llvm-service` - ## Programs - - +------------------------+ - | Benchmark | - +========================+ - | benchmark://npb-v0/1 | - +------------------------+ + Datasets + -------- + +----------------------------+--------------------------+------------------------------+ + | Dataset | Num. Benchmarks [#f1]_ | Description | + +============================+==========================+==============================+ + | benchmark://anghabench-v0 | 1,042,976 | Compile-only C/C++ functions | + +----------------------------+--------------------------+------------------------------+ + | benchmark://blas-v0 | 300 | Basic linear algebra kernels | + +----------------------------+--------------------------+------------------------------+ ... - ## Action Spaces - - - ### `PassesAll` (Commandline) - - +---------------------------------------+-----------------------------------+-------------------------------+ - | Action | Flag | Description | - +=======================================+===================================+===============================+ - | AddDiscriminatorsPass | `-add-discriminators` | Add DWARF path discriminators | - +---------------------------------------+-----------------------------------+-------------------------------+ + Observation Spaces + ------------------ + + +--------------------------+----------------------------------------------+ + | Observation space | Shape | + +==========================+==============================================+ + | Autophase | `Box(0, 9223372036854775807, (56,), int64)` | + +--------------------------+----------------------------------------------+ + | AutophaseDict | `Dict(ArgsPhi:int<0,inf>, BB03Phi:int<0,...` | + +--------------------------+----------------------------------------------+ + | BitcodeFile | `str_list<>[0,4096.0])` | + +--------------------------+----------------------------------------------+ ... -The capabilities of an unmanaged service can be queried using the -:code:`--service` flag. For example, query a service running at -:code:`localhost:8080`: +The output is tabular summaries of the environment's datasets, observation +spaces, reward spaces, and action spaces, using reStructuredText syntax +(https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#tables). + +To query the capabilities of an unmanaged service, use :code:`--service`. For +example, query a service running at :code:`localhost:8080` using: .. code-block:: $ python -m compiler_gym.bin.service --service=localhost:8080 -Or query the capabilities of a binary that implements the RPC service interface -using: +To query the capability of a binary that implements the RPC service interface, +use the :code:`--local_service_binary` flag: .. code-block:: $ python -m compiler_gym.bin.service --local_service_binary=/path/to/service/binary """ +import sys +from typing import Iterable + +import humanize from absl import app, flags +from compiler_gym.datasets import Dataset from compiler_gym.envs import CompilerEnv from compiler_gym.spaces import Commandline from compiler_gym.util.flags.env_from_flags import env_from_flags from compiler_gym.util.tabulate import tabulate from compiler_gym.util.truncate import truncate -flags.DEFINE_integer( - "heading_level", - 1, - "The base level for generated markdown headers, in the range [1,4].", +flags.DEFINE_string( + "heading_underline_char", + "-", + "The character to repeat to underline headings.", ) FLAGS = flags.FLAGS -def header(message: str, level: int): - prefix = "#" * level - return f"\n\n{prefix} {message}\n" +def header(message: str): + underline = FLAGS.heading_underline_char * ( + len(message) // len(FLAGS.heading_underline_char) + ) + return f"\n\n{message}\n{underline}\n" + + +def shape2str(shape, n: int = 80): + string = str(shape) + if len(string) > n: + return f"`{string[:n-4]}` ..." + return f"`{string}`" + + +def summarize_datasets(datasets: Iterable[Dataset]) -> str: + rows = [] + # Override the default iteration order of datasets. + for dataset in sorted(datasets, key=lambda d: d.name): + # Raw numeric values here, formatted below. + description = truncate(dataset.description, max_line_len=60) + links = ", ".join( + f"`{name} <{url}>`__" for name, url in sorted(dataset.references.items()) + ) + if links: + description = f"{description} [{links}]" + rows.append( + ( + dataset.name, + dataset.size, + description, + dataset.validatable, + ) + ) + rows.append(("Total", sum(r[1] for r in rows), "", "")) + return ( + tabulate( + [ + ( + n, + humanize.intcomma(f) if f >= 0 else "∞", + l, + v, + ) + for n, f, l, v in rows + ], + headers=( + "Dataset", + "Num. Benchmarks [#f1]_", + "Description", + "Validatable [#f2]_", + ), + ) + + f""" + +.. [#f1] Values obtained on {sys.platform}. Datasets are platform-specific. +.. [#f2] A **validatable** dataset is one where the behavior of the benchmarks + can be checked by compiling the programs to binaries and executing + them. If the benchmarks crash, or are found to have different behavior, + then validation fails. This type of validation is used to check that + the compiler has not broken the semantics of the program. + See :mod:`compiler_gym.bin.validate`. +""" + ) -def print_service_capabilities(env: CompilerEnv, base_heading_level: int = 1): +def print_service_capabilities(env: CompilerEnv): """Discover and print the capabilities of a CompilerGym service. :param env: An environment. """ - print(header(f"CompilerGym Service `{env.service}`", base_heading_level).strip()) - print(header("Programs", base_heading_level + 1)) + print(header("Datasets")) print( - tabulate( - [(p,) for p in sorted(env.benchmarks)], - headers=("Benchmark",), - ) + summarize_datasets(env.datasets), ) - print(header("Observation Spaces", base_heading_level + 1)) + print(header("Observation Spaces")) print( tabulate( sorted( @@ -112,7 +179,7 @@ def print_service_capabilities(env: CompilerEnv, base_heading_level: int = 1): headers=("Observation space", "Shape"), ) ) - print(header("Reward Spaces", base_heading_level + 1)) + print(header("Reward Spaces")) print( tabulate( [ @@ -135,14 +202,8 @@ def print_service_capabilities(env: CompilerEnv, base_heading_level: int = 1): ) ) - print(header("Action Spaces", base_heading_level + 1).rstrip()) for action_space in env.action_spaces: - print( - header( - f"`{action_space.name}` ({type(action_space).__name__})", - base_heading_level + 2, - ) - ) + print(header(f"{action_space.name} Action Space")) # Special handling for commandline action spaces to print additional # information. if isinstance(action_space, Commandline): @@ -167,11 +228,10 @@ def print_service_capabilities(env: CompilerEnv, base_heading_level: int = 1): def main(argv): """Main entry point.""" assert len(argv) == 1, f"Unrecognized flags: {argv[1:]}" - assert 0 < FLAGS.heading_level <= 4, "--heading_level must be in range [1,4]" env = env_from_flags() try: - print_service_capabilities(env, base_heading_level=FLAGS.heading_level) + print_service_capabilities(env) finally: env.close() diff --git a/compiler_gym/bin/validate.py b/compiler_gym/bin/validate.py index 6fc19b0e6..ba498b349 100644 --- a/compiler_gym/bin/validate.py +++ b/compiler_gym/bin/validate.py @@ -10,7 +10,7 @@ $ cat << EOF | benchmark,reward,walltime,commandline - cBench-v1/crc32,0,1.2,opt input.bc -o output.bc + cbench-v1/crc32,0,1.2,opt input.bc -o output.bc EOF python -m compiler_gym.bin.validate --env=llvm-ic-v0 - @@ -25,21 +25,15 @@ ------------ The correct format for generating input states can be generated using -:func:`env.state.to_csv() `. The -input CSV must start with a header row. A valid header row can be generated -using -:func:`env.state.csv_header() `. - -Full example: - ->>> env = gym.make("llvm-v0") ->>> env.reset() ->>> env.step(0) ->>> print(env.state.csv_header()) -benchmark,reward,walltime,commandline ->>> print(env.state.to_csv()) -benchmark://cBench-v1/rijndael,,20.53565216064453,opt -add-discriminators input.bc -o output.bc -% +:class:`CompilerEnvStateWriter `. For +example: + + >>> env = gym.make("llvm-autophase-ic-v0") + >>> env.reset() + >>> env.step(env.action_space.sample()) + >>> with CompilerEnvStateWriter(open("results.csv", "wb")) as writer: + ... writer.write_state(env.state) + Output Format ------------- @@ -60,17 +54,15 @@ import json import re import sys -from typing import Iterable import numpy as np from absl import app, flags -import compiler_gym.util.flags.dataset # noqa Flag definition. import compiler_gym.util.flags.nproc # noqa Flag definition. -from compiler_gym.envs.compiler_env import CompilerEnvState +from compiler_gym.compiler_env_state import CompilerEnvState, CompilerEnvStateReader from compiler_gym.util.flags.env_from_flags import env_from_flags from compiler_gym.util.shell_format import emph, plural -from compiler_gym.util.statistics import geometric_mean +from compiler_gym.util.statistics import arithmetic_mean, geometric_mean, stdev from compiler_gym.validate import ValidationResult, validate_states flags.DEFINE_boolean( @@ -122,31 +114,10 @@ def to_string(result: ValidationResult, name_col_width: int) -> str: return f"✅ {name:<{name_col_width}} {result.state.reward:9.4f}" -def arithmetic_mean(values): - """Zero-length-safe arithmetic mean.""" - if not values: - return 0 - return sum(values) / len(values) - - -def stdev(values): - """Zero-length-safe standard deviation.""" - return np.std(values or [0]) - - -def read_states_from_paths(paths: Iterable[str]) -> Iterable[CompilerEnvState]: - for path in paths: - if path == "-": - yield from CompilerEnvState.read_csv_file(sys.stdin) - else: - with open(path) as f: - yield from CompilerEnvState.read_csv_file(f) - - def main(argv): """Main entry point.""" try: - states = list(read_states_from_paths(argv[1:])) + states = list(CompilerEnvStateReader.read_paths(argv[1:])) except ValueError as e: print(e, file=sys.stderr) sys.exit(1) @@ -177,7 +148,6 @@ def main(argv): validation_results = validate_states( env_from_flags, states, - datasets=FLAGS.dataset, nproc=FLAGS.nproc, inorder=FLAGS.inorder, ) @@ -238,16 +208,16 @@ def progress_message(i): ) progress_message(len(states)) - json_log = [] + result_dicts = [] - def dump_json_log(): + def dump_result_dicst_to_json(): with open(FLAGS.validation_logfile, "w") as f: - json.dump(json_log, f) + json.dump(result_dicts, f) for i, result in enumerate(validation_results, start=1): intermediate_print("\r\033[K", to_string(result, name_col_width), sep="") progress_message(len(states) - i) - json_log.append(result.json()) + result_dicts.append(result.dict()) if not result.okay(): error_count += 1 @@ -256,9 +226,9 @@ def dump_json_log(): walltimes.append(result.state.walltime) if not i % 10: - dump_json_log() + dump_result_dicst_to_json() - dump_json_log() + dump_result_dicst_to_json() # Print a summary footer. intermediate_print("\r\033[K----", "-" * name_col_width, "-----------", sep="") diff --git a/compiler_gym/compiler_env_state.py b/compiler_gym/compiler_env_state.py index 43bd6dfc3..90c7ea80e 100644 --- a/compiler_gym/compiler_env_state.py +++ b/compiler_gym/compiler_env_state.py @@ -4,18 +4,16 @@ # LICENSE file in the root directory of this source tree. """This module defines a class to represent a compiler environment state.""" import csv -from io import StringIO -from typing import Any, Dict, Iterable, NamedTuple, Optional +import sys +from typing import Iterable, List, Optional, TextIO +from pydantic import BaseModel, Field, validator -def _to_csv(*columns) -> str: - buf = StringIO() - writer = csv.writer(buf) - writer.writerow(columns) - return buf.getvalue().rstrip() +from compiler_gym.datasets.uri import BENCHMARK_URI_PATTERN +from compiler_gym.util.truncate import truncate -class CompilerEnvState(NamedTuple): +class CompilerEnvState(BaseModel): """The representation of a compiler environment state. The state of an environment is defined as a benchmark and a sequence of @@ -23,88 +21,40 @@ class CompilerEnvState(NamedTuple): contains the information required to reproduce the result. """ - benchmark: str - """The name of the benchmark used for this episode.""" + benchmark: str = Field( + allow_mutation=False, + regex=BENCHMARK_URI_PATTERN, + examples=[ + "benchmark://cbench-v1/crc32", + "generator://csmith-v0/0", + ], + ) + """The URI of the benchmark used for this episode.""" commandline: str """The list of actions that produced this state, as a commandline.""" walltime: float - """The walltime of the episode.""" + """The walltime of the episode in seconds. Must be non-negative.""" - reward: Optional[float] = None - """The cumulative reward for this episode.""" + reward: Optional[float] = Field( + required=False, + default=None, + allow_mutation=True, + ) + """The cumulative reward for this episode. Optional.""" + + @validator("walltime") + def walltime_nonnegative(cls, v): + if v is not None: + assert v >= 0, "Walltime cannot be negative" + return v @property def has_reward(self) -> bool: """Return whether the state has a reward value.""" return self.reward is not None - @staticmethod - def csv_header() -> str: - """Return the header string for the CSV-format. - - :return: A comma-separated string. - """ - return _to_csv("benchmark", "reward", "walltime", "commandline") - - def json(self): - """Return the state as JSON.""" - return self._asdict() # pylint: disable=no-member - - def to_csv(self) -> str: - """Serialize a state to a comma separated list of values. - - :return: A comma-separated string. - """ - return _to_csv(self.benchmark, self.reward, self.walltime, self.commandline) - - @classmethod - def from_json(cls, data: Dict[str, Any]) -> "CompilerEnvState": - """Construct a state from a JSON dictionary.""" - return cls(**data) - - @classmethod - def from_csv(cls, csv_string: str) -> "CompilerEnvState": - """Construct a state from a comma separated list of values.""" - reader = csv.reader(StringIO(csv_string)) - for line in reader: - try: - benchmark, reward, walltime, commandline = line - break - except ValueError as e: - raise ValueError(f"Failed to parse input: `{csv_string}`: {e}") from e - else: - raise ValueError(f"Failed to parse input: `{csv_string}`") - return cls( - benchmark=benchmark, - reward=None if reward == "" else float(reward), - walltime=0 if walltime == "" else float(walltime), - commandline=commandline, - ) - - @classmethod - def read_csv_file(cls, in_file) -> Iterable["CompilerEnvState"]: - """Read states from a CSV file. - - :param in_file: A file object. - :returns: A generator of :class:`CompilerEnvState` instances. - :raises ValueError: If input parsing fails. - """ - # TODO(cummins): Check schema of DictReader and, on failure, fallback - # to from_csv() per-line. - # TODO(cummins): Accept a URL for in_file and read from web. - data = in_file.readlines() - for line in csv.DictReader(data): - try: - line["reward"] = float(line["reward"]) if line.get("reward") else None - line["walltime"] = ( - float(line["walltime"]) if line.get("walltime") else None - ) - yield CompilerEnvState(**line) - except (TypeError, KeyError) as e: - raise ValueError(f"Failed to parse input: `{e}`") from e - def __eq__(self, rhs) -> bool: if not isinstance(rhs, CompilerEnvState): return False @@ -125,3 +75,155 @@ def __eq__(self, rhs) -> bool: def __ne__(self, rhs) -> bool: return not self == rhs + + class Config: + validate_assignment = True + + +class CompilerEnvStateWriter: + """Serialize compiler environment states to CSV. + + Example use: + + >>> with CompilerEnvStateWriter(open("results.csv", "wb")) as writer: + ... writer.write_state(env.state) + """ + + def __init__(self, f: TextIO, header: bool = True): + """Constructor. + + :param f: The file to write to. + :param header: Whether to include a header row. + """ + self.f = f + self.writer = csv.writer(self.f, lineterminator="\n") + self.header = header + + def write_state(self, state: CompilerEnvState, flush: bool = False) -> None: + """Write the state to file. + + :param state: A compiler environment state. + + :param flush: Write to file immediately. + """ + if self.header: + self.writer.writerow(("benchmark", "reward", "walltime", "commandline")) + self.header = False + self.writer.writerow( + (state.benchmark, state.reward, state.walltime, state.commandline) + ) + if flush: + self.f.flush() + + def __enter__(self): + """Support with-statement for the writer.""" + return self + + def __exit__(self, *args): + """Support with-statement for the writer.""" + self.f.close() + + +class CompilerEnvStateReader: + """Read states from a CSV file. + + Example usage: + + >>> with CompilerEnvStateReader(open("results.csv", "rb")) as reader: + ... for state in reader: + ... print(state) + """ + + def __init__(self, f: TextIO): + """Constructor. + + :param f: The file to read. + """ + self.f = f + self.reader = csv.reader(self.f) + + def __iter__(self) -> Iterable[CompilerEnvState]: + """Read the states from the file.""" + columns_in_order = ["benchmark", "reward", "walltime", "commandline"] + # Read the CSV and coerce the columns into the expected order. + for ( + benchmark, + reward, + walltime, + commandline, + ) in self._iterate_columns_in_order(self.reader, columns_in_order): + yield CompilerEnvState( + benchmark=benchmark, + reward=None if reward == "" else float(reward), + walltime=0 if walltime == "" else float(walltime), + commandline=commandline, + ) + + @staticmethod + def _iterate_columns_in_order( + reader: csv.reader, columns: List[str] + ) -> Iterable[List[str]]: + """Read the input CSV and return each row in the given column order. + + Supports CSVs both with and without a header. If no header, columns are + expected to be in the correct order. Else the header row is used to + determine column order. + + Header row detection is case insensitive. + + :param reader: The CSV file to read. + + :param columns: A list of column names in the order that they are + expected. + + :return: An iterator over rows. + """ + try: + row = next(reader) + except StopIteration: + # Empty file. + return + + if len(row) != len(columns): + raise ValueError( + f"Expected {len(columns)} columns in the first row of CSV: {truncate(row)}" + ) + + # Convert the maybe-header columns to lowercase for case-insensitive + # comparison. + maybe_header = [v.lower() for v in row] + if set(maybe_header) == set(columns): + # The first row matches the expected columns names, so use it to + # determine the column order. + column_order = [maybe_header.index(v) for v in columns] + yield from ([row[v] for v in column_order] for row in reader) + else: + # The first row isn't a header, so assume that all rows are in + # expected column order. + yield row + yield from reader + + def __enter__(self): + """Support with-statement for the reader.""" + return self + + def __exit__(self, *args): + """Support with-statement for the reader.""" + self.f.close() + + @staticmethod + def read_paths(paths: Iterable[str]) -> Iterable[CompilerEnvState]: + """Read a states from a list of file paths. + + Read states from stdin using a special path :code:`"-"`. + + :param: A list of paths. + + :return: A generator of compiler env states. + """ + for path in paths: + if path == "-": + yield from iter(CompilerEnvStateReader(sys.stdin)) + else: + with open(path) as f: + yield from iter(CompilerEnvStateReader(f)) diff --git a/compiler_gym/datasets/BUILD b/compiler_gym/datasets/BUILD index 6bd60d690..994045993 100644 --- a/compiler_gym/datasets/BUILD +++ b/compiler_gym/datasets/BUILD @@ -6,18 +6,25 @@ load("@rules_python//python:defs.bzl", "py_library") py_library( name = "datasets", - srcs = ["__init__.py"], + srcs = [ + "__init__.py", + "benchmark.py", + "dataset.py", + "datasets.py", + "files_dataset.py", + "tar_dataset.py", + ], visibility = ["//visibility:public"], deps = [ - ":dataset", + ":uri", + "//compiler_gym:validation_result", + "//compiler_gym/service/proto", + "//compiler_gym/util", ], ) py_library( - name = "dataset", - srcs = ["dataset.py"], + name = "uri", + srcs = ["uri.py"], visibility = ["//compiler_gym:__subpackages__"], - deps = [ - "//compiler_gym/util", - ], ) diff --git a/compiler_gym/datasets/__init__.py b/compiler_gym/datasets/__init__.py index b0dc9440c..df9b009a4 100644 --- a/compiler_gym/datasets/__init__.py +++ b/compiler_gym/datasets/__init__.py @@ -3,12 +3,35 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Manage datasets of benchmarks.""" +from compiler_gym.datasets.benchmark import ( + Benchmark, + BenchmarkInitError, + BenchmarkSource, +) from compiler_gym.datasets.dataset import ( - LegacyDataset, + Dataset, + DatasetInitError, activate, deactivate, delete, require, ) +from compiler_gym.datasets.datasets import Datasets +from compiler_gym.datasets.files_dataset import FilesDataset +from compiler_gym.datasets.tar_dataset import TarDataset, TarDatasetWithManifest -__all__ = ["LegacyDataset", "require", "activate", "deactivate", "delete"] +__all__ = [ + "activate", + "Benchmark", + "BenchmarkInitError", + "BenchmarkSource", + "Dataset", + "DatasetInitError", + "Datasets", + "deactivate", + "delete", + "FilesDataset", + "require", + "TarDataset", + "TarDatasetWithManifest", +] diff --git a/compiler_gym/datasets/benchmark.py b/compiler_gym/datasets/benchmark.py new file mode 100644 index 000000000..7a50c21c2 --- /dev/null +++ b/compiler_gym/datasets/benchmark.py @@ -0,0 +1,339 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +from concurrent.futures import as_completed +from pathlib import Path +from typing import Callable, Iterable, List, NamedTuple, Optional, Union + +from compiler_gym.service.proto import Benchmark as BenchmarkProto +from compiler_gym.service.proto import File +from compiler_gym.util import thread_pool +from compiler_gym.util.decorators import memoized_property +from compiler_gym.validation_error import ValidationError + +# A validation callback is a function that takes a single CompilerEnv instance +# as its argument and returns an iterable sequence of zero or more +# ValidationError tuples. +ValidationCallback = Callable[["CompilerEnv"], Iterable[ValidationError]] # noqa: F821 + + +class BenchmarkSource(NamedTuple): + """A source file that is used to generate a benchmark. A benchmark may + comprise many source files. + + .. warning:: + + The :class:`BenchmarkSource ` + class is new and is likely to change in the future. + """ + + filename: str + """The name of the file.""" + + contents: bytes + """The contents of the file as a byte array.""" + + def __repr__(self) -> str: + return str(self.filename) + + +class Benchmark(object): + """A benchmark represents a particular program that is being compiled. + + A benchmark is a program that can be used by a :class:`CompilerEnv + ` as a program to optimize. A benchmark + comprises the data that is fed into the compiler, identified by a URI. + + Benchmarks are not normally instantiated directly. Instead, benchmarks are + instantiated using :meth:`env.datasets.benchmark(uri) + `: + + >>> env.datasets.benchmark("benchmark://npb-v0/20") + benchmark://npb-v0/20 + + The available benchmark URIs can be queried using + :meth:`env.datasets.benchmark_uris() + `. + + >>> next(env.datasets.benchmark_uris()) + 'benchmark://cbench-v1/adpcm' + + Compiler environments may provide additional helper functions for generating + benchmarks, such as :meth:`env.make_benchmark() + ` for LLVM. + + A Benchmark instance wraps an instance of the :code:`Benchmark` protocol + buffer from the `RPC interface + `_ + with additional functionality. The data underlying benchmarks should be + considered immutable. New attributes cannot be assigned to Benchmark + instances. + + The benchmark for an environment can be set during :meth:`env.reset() + `. The currently active benchmark can + be queried using :attr:`env.benchmark + `: + + >>> env = gym.make("llvm-v0") + >>> env.reset(benchmark="benchmark://cbench-v1/crc32") + >>> env.benchmark + benchmark://cbench-v1/crc32 + + + """ + + __slots__ = ["_proto", "_validation_callbacks", "_sources"] + + def __init__( + self, + proto: BenchmarkProto, + validation_callbacks: Optional[List[ValidationCallback]] = None, + sources: Optional[List[BenchmarkSource]] = None, + ): + self._proto = proto + self._validation_callbacks = validation_callbacks or [] + self._sources = list(sources or []) + + def __repr__(self) -> str: + return str(self.uri) + + @property + def uri(self) -> str: + """The URI of the benchmark. + + Benchmark URIs should be unique, that is, that two URIs with the same + value should resolve to the same benchmark. However, URIs do not have + uniquely describe a benchmark. That is, multiple identical benchmarks + could have different URIs. + + :return: A URI string. :type: string + """ + return self._proto.uri + + @property + def proto(self) -> BenchmarkProto: + """The protocol buffer representing the benchmark. + + :return: A Benchmark message. + :type: :code:`Benchmark` + """ + return self._proto + + @property + def sources(self) -> Iterable[BenchmarkSource]: + """The original source code used to produce this benchmark, as a list of + :class:`BenchmarkSource ` + instances. + + :return: A sequence of source files. + + :type: :code:`Iterable[BenchmarkSource]` + + .. warning:: + + The :meth:`Benchmark.sources + ` property is new and is + likely to change in the future. + """ + return (BenchmarkSource(*x) for x in self._sources) + + def is_validatable(self) -> bool: + """Whether the benchmark has any validation callbacks registered. + + :return: :code:`True` if the benchmark has at least one validation + callback. + """ + return self._validation_callbacks != [] + + def validate(self, env: "CompilerEnv") -> List[ValidationError]: # noqa: F821 + """Run the validation callbacks and return any errors. + + If no errors are returned, validation has succeeded: + + >>> benchmark.validate(env) + [] + + If an error occurs, a :class:`ValidationError + ` tuple will describe the type of the + error, and optionally contain other data: + + >>> benchmark.validate(env) + [ValidationError(type="RuntimeError")] + + Multiple :class:`ValidationError ` errors + may be returned to indicate multiple errors. + + This is a synchronous version of :meth:`ivalidate() + ` that blocks until all + results are ready: + + >>> benchmark.validate(env) == list(benchmark.ivalidate(env)) + True + + :param env: The :class:`CompilerEnv ` + instance that is being validated. + + :return: A list of zero or more :class:`ValidationError + ` tuples that occurred during + validation. + """ + return list(self.ivalidate(env)) + + def ivalidate(self, env: "CompilerEnv") -> Iterable[ValidationError]: # noqa: F821 + """Run the validation callbacks and return a generator of errors. + + This is an asynchronous version of :meth:`validate() + ` that returns immediately. + + :parameter env: A :class:`CompilerEnv ` + instance to validate. + + :return: A generator of :class:`ValidationError + ` tuples that occur during validation. + """ + executor = thread_pool.get_thread_pool_executor() + futures = ( + executor.submit(validator, env) for validator in self.validation_callbacks() + ) + for future in as_completed(futures): + result: Iterable[ValidationError] = future.result() + if result: + yield from result + + def validation_callbacks( + self, + ) -> List[ValidationCallback]: + """Return the list of registered validation callbacks. + + :return: A list of callables. See :meth:`add_validation_callback() + `. + """ + return self._validation_callbacks + + def add_source(self, source: BenchmarkSource) -> None: + """Register a new source file for this benchmark. + + :param source: The :class:`BenchmarkSource + ` to register. + """ + self._sources.append(source) + + def add_validation_callback( + self, + validation_callback: ValidationCallback, + ) -> None: + """Register a new validation callback that will be executed on + :meth:`validate() `. + + :param validation_callback: A callback that accepts a single + :class:`CompilerEnv ` argument and + returns an iterable sequence of zero or more :class:`ValidationError + ` tuples. Validation callbacks must be + thread safe and must not modify the environment. + """ + self._validation_callbacks.append(validation_callback) + + def write_sources_to_directory(self, directory: Path) -> int: + """Write the source files for this benchmark to the given directory. + + This writes each of the :attr:`benchmark.sources + ` files to disk. + + If the benchmark has no sources, no files are written. + + :param directory: The directory to write results to. If it does not + exist, it is created. + + :return: The number of files written. + """ + directory = Path(directory) + directory.mkdir(exist_ok=True, parents=True) + uniq_paths = set() + for filename, contents in self.sources: + path = directory / filename + uniq_paths.add(path) + path.parent.mkdir(exist_ok=True, parents=True) + with open(path, "wb") as f: + f.write(contents) + + return len(uniq_paths) + + @classmethod + def from_file(cls, uri: str, path: Path): + """Construct a benchmark from a file. + + :param uri: The URI of the benchmark. + + :param path: A filesystem path. + + :raise FileNotFoundError: If the path does not exist. + + :return: A :class:`Benchmark ` + instance. + """ + path = Path(path) + if not path.is_file(): + raise FileNotFoundError(path) + return cls( + proto=BenchmarkProto( + uri=uri, program=File(uri=f"file:///{path.absolute()}") + ), + ) + + @classmethod + def from_file_contents(cls, uri: str, data: bytes): + """Construct a benchmark from raw data. + + :param uri: The URI of the benchmark. + + :param data: An array of bytes that will be passed to the compiler + service. + """ + return cls(proto=BenchmarkProto(uri=uri, program=File(contents=data))) + + def __eq__(self, other: Union[str, "Benchmark"]): + if isinstance(other, Benchmark): + return self.uri == other.uri + else: + return self.uri == other + + def __ne__(self, other: Union[str, "Benchmark"]): + return not self == other + + +class BenchmarkInitError(OSError): + """Base class for errors raised if a benchmark fails to initialize.""" + + +class BenchmarkWithSource(Benchmark): + """A benchmark which has a single source file.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._src_name = None + self._src_path = None + + @classmethod + def create( + cls, uri: str, input_path: Path, src_name: str, src_path: Path + ) -> Benchmark: + """Create a benchmark from paths.""" + benchmark = cls.from_file(uri, input_path) + benchmark._src_name = src_name # pylint: disable=protected-access + benchmark._src_path = src_path # pylint: disable=protected-access + return benchmark + + @memoized_property + def sources( # pylint: disable=invalid-overridden-method + self, + ) -> Iterable[BenchmarkSource]: + with open(self._src_path, "rb") as f: + return [ + BenchmarkSource(filename=self._src_name, contents=f.read()), + ] + + @property + def source(self) -> str: + """Return the single source file contents as a string.""" + return list(self.sources)[0].contents.decode("utf-8") diff --git a/compiler_gym/datasets/dataset.py b/compiler_gym/datasets/dataset.py index 72608d63e..2045a42b5 100644 --- a/compiler_gym/datasets/dataset.py +++ b/compiler_gym/datasets/dataset.py @@ -2,280 +2,469 @@ # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -import io -import json +import logging import os import shutil -import tarfile import warnings from pathlib import Path -from typing import List, NamedTuple, Optional, Union +from typing import Dict, Iterable, Optional, Union -import fasteners -from deprecated.sphinx import deprecated +from deprecated.sphinx import deprecated as mark_deprecated -from compiler_gym.util.download import download +from compiler_gym.datasets.benchmark import Benchmark +from compiler_gym.datasets.uri import DATASET_NAME_RE +from compiler_gym.util.debug_util import get_logging_level -class LegacyDataset(NamedTuple): - """A collection of benchmarks for use by an environment. +class Dataset(object): + """A dataset is a collection of benchmarks. - .. deprecated:: 0.1.4 - The next release of CompilerGym will introduce a new API for describing - datasets with extended functionality. See - `here `_ for - more information. + The Dataset class has methods for installing and managing groups of + benchmarks, for listing the available benchmark URIs, and for instantiating + :class:`Benchmark ` objects. + + The Dataset class is an abstract base for implementing datasets. At a + minimum, subclasses must implement the :meth:`benchmark() + ` and :meth:`benchmark_uris() + ` methods, and :meth:`size + `. Other methods such as + :meth:`install() ` may be used where + helpful. """ - name: str - """The name of the dataset.""" + def __init__( + self, + name: str, + description: str, + license: str, # pylint: disable=redefined-builtin + site_data_base: Path, + benchmark_class=Benchmark, + references: Optional[Dict[str, str]] = None, + deprecated: Optional[str] = None, + sort_order: int = 0, + logger: Optional[logging.Logger] = None, + validatable: str = "No", + ): + """Constructor. + + :param name: The name of the dataset. Must conform to the pattern + :code:`{{protocol}}://{{name}}-v{{version}}`. + + :param description: A short human-readable description of the dataset. + + :param license: The name of the dataset's license. + + :param site_data_base: The base path of a directory that will be used to + store installed files. + + :param benchmark_class: The class to use when instantiating benchmarks. + It must have the same constructor signature as :class:`Benchmark + `. + + :param references: A dictionary of useful named URLs for this dataset + containing extra information, download links, papers, etc. + + :param deprecated: Mark the dataset as deprecated and issue a warning + when :meth:`install() `, + including the given method. Deprecated datasets are excluded from + the :meth:`datasets() ` + iterator by default. + + :param sort_order: An optional numeric value that should be used to + order this dataset relative to others. Lowest value sorts first. + + :param validatable: Whether the dataset is validatable. A validatable + dataset is one where the behavior of the benchmarks can be checked + by compiling the programs to binaries and executing them. If the + benchmarks crash, or are found to have different behavior, then + validation fails. This type of validation is used to check that the + compiler has not broken the semantics of the program. This value + takes a string and is used for documentation purposes only. + Suggested values are "Yes", "No", or "Partial". + + :raises ValueError: If :code:`name` does not match the expected type. + """ + self._name = name + components = DATASET_NAME_RE.match(name) + if not components: + raise ValueError( + f"Invalid dataset name: '{name}'. " + "Dataset name must be in the form: '{{protocol}}://{{name}}-v{{version}}'" + ) + self._description = description + self._license = license + self._protocol = components.group("dataset_protocol") + self._version = int(components.group("dataset_version")) + self._references = references or {} + self._deprecation_message = deprecated + self._validatable = validatable - license: str - """The license of the dataset.""" + self._logger = logger + self.sort_order = sort_order + self.benchmark_class = benchmark_class - file_count: int - """The number of files in the unpacked dataset.""" + # Set up the site data name. + basename = components.group("dataset_name") + self._site_data_path = Path(site_data_base).resolve() / self.protocol / basename - size_bytes: int - """The size of the unpacked dataset in bytes.""" + def __repr__(self): + return self.name - url: str = "" - """A URL where the dataset can be downloaded from. May be an empty string.""" + @property + def logger(self) -> logging.Logger: + """The logger for this dataset. - sha256: str = "" - """The sha256 checksum of the dataset archive. If provided, this is used to - verify the contents of the dataset upon download. - """ + :type: logging.Logger + """ + # NOTE(cummins): Default logger instantiation is deferred since in + # Python 3.6 the Logger instance contains an un-pickle-able Rlock() + # which can prevent gym.make() from working. This is a workaround that + # can be removed once Python 3.6 support is dropped. + if self._logger is None: + self._logger = logging.getLogger("compiler_gym.datasets") + self._logger.setLevel(get_logging_level()) + return self._logger + + @property + def name(self) -> str: + """The name of the dataset. + + :type: str + """ + return self._name + + @property + def description(self) -> str: + """A short human-readable description of the dataset. + + :type: str + """ + return self._description - compiler: str = "" - """The name of the compiler that this dataset supports.""" + @property + def license(self) -> str: + """The name of the license of the dataset. + + :type: str + """ + return self._license + + @property + def protocol(self) -> str: + """The URI protocol that is used to identify benchmarks in this dataset. + + :type: str + """ + return self._protocol - description: str = "" - """An optional human-readable description of the dataset.""" + @property + def version(self) -> int: + """The version tag for this dataset. + + :type: int + """ + return self._version - platforms: List[str] = ["macos", "linux"] - """A list of platforms supported by this dataset. Allowed platforms 'macos' and 'linux'.""" + @property + def references(self) -> Dict[str, str]: + """A dictionary of useful named URLs for this dataset containing extra + information, download links, papers, etc. - deprecated_since: str = "" - """The CompilerGym release in which this dataset was deprecated.""" + For example: + + >>> dataset.references + {'Paper': 'https://arxiv.org/pdf/1407.3487.pdf', + 'Homepage': 'https://ctuning.org/wiki/index.php/CTools:CBench'} + + :type: Dict[str, str] + """ + return self._references @property def deprecated(self) -> bool: - """Whether the dataset is deprecated.""" - return bool(self.deprecated_since) + """Whether the dataset is included in the iterable sequence of datasets + of a containing :class:`Datasets ` + collection. - @classmethod - def from_json_file(cls, path: Path) -> "LegacyDataset": - """Construct a dataset form a JSON metadata file. + :type: bool + """ + return self._deprecation_message is not None + + @property + def validatable(self) -> str: + """Whether the dataset is validatable. A validatable dataset is one + where the behavior of the benchmarks can be checked by compiling the + programs to binaries and executing them. If the benchmarks crash, or are + found to have different behavior, then validation fails. This type of + validation is used to check that the compiler has not broken the + semantics of the program. + + This property takes a string and is used for documentation purposes + only. Suggested values are "Yes", "No", or "Partial". + + :type: str + """ + return self._validatable + + @property + def site_data_path(self) -> Path: + """The filesystem path used to store persistent dataset files. + + This directory may not exist. - :param path: Path of the JSON metadata. - :return: A LegacyDataset instance. + :type: Path """ - try: - with open(str(path), "rb") as f: - data = json.load(f) - except json.decoder.JSONDecodeError as e: - raise OSError( - f"Failed to read dataset metadata file:\n" - f"Path: {path}\n" - f"Error: {e}" + return self._site_data_path + + @property + def site_data_size_in_bytes(self) -> int: + """The total size of the on-disk data used by this dataset. + + :type: int + """ + if not self.site_data_path.is_dir(): + return 0 + + total_size = 0 + for dirname, _, filenames in os.walk(self.site_data_path): + total_size += sum( + os.path.getsize(os.path.join(dirname, f)) for f in filenames ) - return cls(**data) + return total_size + + # We use Union[int, float] to represent the size because infinite size is + # represented by math.inf, which is a float. For all other sizes this should + # be an int. + @property + def size(self) -> Union[int, float]: + """The number of benchmarks in the dataset. If the number of benchmarks + is unbounded, for example because the dataset represents a program + generator that can produce an infinite number of programs, the value is + :code:`math.inf`. - def to_json_file(self, path: Path) -> Path: - """Write the dataset metadata to a JSON file. + :type: Union[int, float] + """ + return 0 + + def __len__(self) -> Union[int, float]: + """The number of benchmarks in the dataset. + + This is the same as :meth:`Dataset.size + `: + + >>> len(dataset) == dataset.size + True + + :return: An integer, or :code:`math.float`. + """ + return self.size + + @property + def installed(self) -> bool: + """Whether the dataset is installed locally. Installation occurs + automatically on first use, or by calling :meth:`install() + `. - :param path: Path of the file to write. - :return: The path of the written file. + :type: bool """ - with open(str(path), "wb") as f: - json.dump(self._asdict(), f) - return path + return True + + def install(self) -> None: + """Install this dataset locally. + + Implementing this method is optional. If implementing this method, you + must call :code:`super().install()` first. + This method should not perform redundant work. This method should first + detect whether any work needs to be done so that repeated calls to + :code:`install()` will complete quickly. + """ + if self.deprecated: + warnings.warn( + f"Dataset '{self.name}' is marked as deprecated. {self._deprecation_message}", + category=DeprecationWarning, + stacklevel=2, + ) -@deprecated( + def uninstall(self) -> None: + """Remove any local data for this benchmark. + + This method undoes the work of :meth:`install() + `. The dataset can still be used + after calling this method. + """ + if self.site_data_path.is_dir(): + shutil.rmtree(self.site_data_path) + + def benchmarks(self) -> Iterable[Benchmark]: + """Enumerate the (possibly infinite) benchmarks lazily. + + Iteration order is consistent across runs. The order of + :meth:`benchmarks() ` and + :meth:`benchmark_uris() ` + is the same. + + If the number of benchmarks in the dataset is infinite + (:code:`len(dataset) == math.inf`), the iterable returned by this method + will continue indefinitely. + + :return: An iterable sequence of :class:`Benchmark + ` instances. + """ + # Default implementation. Subclasses may wish to provide an alternative + # implementation that is optimized to specific use cases. + yield from (self.benchmark(uri) for uri in self.benchmark_uris()) + + def __iter__(self) -> Iterable[Benchmark]: + """Enumerate the (possibly infinite) benchmarks lazily. + + This is the same as :meth:`Dataset.benchmarks() + `: + + >>> from itertools import islice + >>> list(islice(dataset, 100)) == list(islice(datset.benchmarks(), 100)) + True + + :return: An iterable sequence of :meth:`Benchmark + ` instances. + """ + yield from self.benchmarks() + + def benchmark_uris(self) -> Iterable[str]: + """Enumerate the (possibly infinite) benchmark URIs. + + Iteration order is consistent across runs. The order of + :meth:`benchmarks() ` and + :meth:`benchmark_uris() ` + is the same. + + If the number of benchmarks in the dataset is infinite + (:code:`len(dataset) == math.inf`), the iterable returned by this method + will continue indefinitely. + + :return: An iterable sequence of benchmark URI strings. + """ + raise NotImplementedError("abstract class") + + def benchmark(self, uri: str) -> Benchmark: + """Select a benchmark. + + :param uri: The URI of the benchmark to return. + + :return: A :class:`Benchmark ` + instance. + + :raise LookupError: If :code:`uri` is not found. + """ + raise NotImplementedError("abstract class") + + def __getitem__(self, uri: str) -> Benchmark: + """Select a benchmark by URI. + + This is the same as :meth:`Dataset.benchmark(uri) + `: + + >>> dataset["benchmark://cbench-v1/crc32"] == dataset.benchmark("benchmark://cbench-v1/crc32") + True + + :return: A :class:`Benchmark ` + instance. + + :raise LookupError: If :code:`uri` does not exist. + """ + return self.benchmark(uri) + + +class DatasetInitError(OSError): + """Base class for errors raised if a dataset fails to initialize.""" + + +@mark_deprecated( version="0.1.4", reason=( - "Activating datasets will be removed in v0.1.5. " + "Datasets are now automatically activated. " "`More information `_." ), ) -def activate(env, name: str) -> bool: - """Move a directory from the inactive to active benchmark directory. +def activate(env, dataset: Union[str, Dataset]) -> bool: + """Deprecated function for managing datasets. + + :param dataset: The name of the dataset to download, or a :class:`Dataset + ` instance. - :param: The name of a dataset. :return: :code:`True` if the dataset was activated, else :code:`False` if already active. + :raises ValueError: If there is no dataset with that name. """ - with fasteners.InterProcessLock(env.datasets_site_path / "LOCK"): - if (env.datasets_site_path / name).exists(): - # There is already an active benchmark set with this name. - return False - if not (env.inactive_datasets_site_path / name).exists(): - raise ValueError(f"Inactive dataset not found: {name}") - os.rename(env.inactive_datasets_site_path / name, env.datasets_site_path / name) - os.rename( - env.inactive_datasets_site_path / f"{name}.json", - env.datasets_site_path / f"{name}.json", - ) - return True + return False -@deprecated( +@mark_deprecated( version="0.1.4", reason=( - "Deleting datasets will be removed in v0.1.5. " + "Please use :meth:`del env.datasets[dataset] `. " "`More information `_." ), ) -def delete(env, name: str) -> bool: - """Delete a directory in the inactive benchmark directory. +def delete(env, dataset: Union[str, Dataset]) -> bool: + """Deprecated function for managing datasets. + + Please use :meth:`del env.datasets[dataset] + `. + + :param dataset: The name of the dataset to download, or a :class:`Dataset + ` instance. - :param: The name of a dataset. :return: :code:`True` if the dataset was deleted, else :code:`False` if already deleted. """ - with fasteners.InterProcessLock(env.datasets_site_path / "LOCK"): - deleted = False - if (env.datasets_site_path / name).exists(): - shutil.rmtree(str(env.datasets_site_path / name)) - os.unlink(str(env.datasets_site_path / f"{name}.json")) - deleted = True - if (env.inactive_datasets_site_path / name).exists(): - shutil.rmtree(str(env.inactive_datasets_site_path / name)) - os.unlink(str(env.inactive_datasets_site_path / f"{name}.json")) - deleted = True - return deleted - - -@deprecated( + del env.datasets[dataset] + return False + + +@mark_deprecated( version="0.1.4", reason=( - "Deactivating datasets will be removed in v0.1.5. " + "Please use :meth:`env.datasets.deactivate() `. " "`More information `_." ), ) -def deactivate(env, name: str) -> bool: - """Move a directory from active to the inactive benchmark directory. +def deactivate(env, dataset: Union[str, Dataset]) -> bool: + """Deprecated function for managing datasets. + + Please use :meth:`del env.datasets[dataset] + `. + + :param dataset: The name of the dataset to download, or a :class:`Dataset + ` instance. - :param: The name of a dataset. :return: :code:`True` if the dataset was deactivated, else :code:`False` if already inactive. """ - with fasteners.InterProcessLock(env.datasets_site_path / "LOCK"): - if not (env.datasets_site_path / name).exists(): - return False - os.rename(env.datasets_site_path / name, env.inactive_datasets_site_path / name) - os.rename( - env.datasets_site_path / f"{name}.json", - env.inactive_datasets_site_path / f"{name}.json", - ) - return True + del env.datasets[dataset] + return False -def require(env, dataset: Union[str, LegacyDataset]) -> bool: - """Require that the given dataset is available to the environment. +@mark_deprecated( + version="0.1.7", + reason=( + "Datasets are now installed automatically, there is no need to call :code:`require()`. " + "`More information `_." + ), +) +def require(env, dataset: Union[str, Dataset]) -> bool: + """Deprecated function for managing datasets. - This will download and activate the dataset if it is not already installed. - After calling this function, benchmarks from the dataset will be available - to use. + Datasets are now installed automatically. See :class:`env.datasets + `. - Example usage: + :param env: The environment that this dataset is required for. - >>> env = gym.make("llvm-v0") - >>> require(env, "blas-v0") - >>> env.reset(benchmark="blas-v0/1") + :param dataset: The name of the dataset to download, or a :class:`Dataset + ` instance. - :param env: The environment that this dataset is required for. - :param dataset: The name of the dataset to download, the URL of the dataset, - or a :class:`LegacyDataset` instance. :return: :code:`True` if the dataset was downloaded, or :code:`False` if the dataset was already available. """ - - def download_and_unpack_archive( - url: str, sha256: Optional[str] = None - ) -> LegacyDataset: - json_files_before = { - f - for f in env.inactive_datasets_site_path.iterdir() - if f.is_file() and f.name.endswith(".json") - } - tar_data = io.BytesIO(download(url, sha256)) - with tarfile.open(fileobj=tar_data, mode="r:bz2") as arc: - arc.extractall(str(env.inactive_datasets_site_path)) - json_files_after = { - f - for f in env.inactive_datasets_site_path.iterdir() - if f.is_file() and f.name.endswith(".json") - } - new_json = json_files_after - json_files_before - if not len(new_json): - raise OSError(f"Downloaded dataset {url} contains no metadata JSON file") - return LegacyDataset.from_json_file(list(new_json)[0]) - - def unpack_local_archive(path: Path) -> LegacyDataset: - if not path.is_file(): - raise FileNotFoundError(f"File not found: {path}") - json_files_before = { - f - for f in env.inactive_datasets_site_path.iterdir() - if f.is_file() and f.name.endswith(".json") - } - with tarfile.open(str(path), "r:bz2") as arc: - arc.extractall(str(env.inactive_datasets_site_path)) - json_files_after = { - f - for f in env.inactive_datasets_site_path.iterdir() - if f.is_file() and f.name.endswith(".json") - } - new_json = json_files_after - json_files_before - if not len(new_json): - raise OSError(f"Downloaded dataset {url} contains no metadata JSON file") - return LegacyDataset.from_json_file(list(new_json)[0]) - - with fasteners.InterProcessLock(env.datasets_site_path / "LOCK"): - # Resolve the name and URL of the dataset. - sha256 = None - if isinstance(dataset, LegacyDataset): - name, url = dataset.name, dataset.url - elif isinstance(dataset, str): - # Check if we have already downloaded the dataset. - if "://" in dataset: - name, url = None, dataset - dataset: Optional[LegacyDataset] = None - else: - try: - dataset: Optional[LegacyDataset] = env.available_datasets[dataset] - except KeyError: - raise ValueError(f"Dataset not found: {dataset}") - name, url, sha256 = dataset.name, dataset.url, dataset.sha256 - else: - raise TypeError( - f"require() called with unsupported type: {type(dataset).__name__}" - ) - - if dataset and dataset.deprecated: - warnings.warn( - f"Dataset '{dataset.name}' is deprecated as of CompilerGym " - f"release {dataset.deprecated_since}, please update to the " - "latest available version", - DeprecationWarning, - ) - - # Check if we have already downloaded the dataset. - if name: - if (env.datasets_site_path / name).is_dir(): - # Dataset is already downloaded and active. - return False - elif not (env.inactive_datasets_site_path / name).is_dir(): - # Dataset is downloaded but inactive. - name = download_and_unpack_archive(url, sha256=sha256).name - elif url.startswith("file:///"): - name = unpack_local_archive(Path(url[len("file:///") :])).name - else: - name = download_and_unpack_archive(url, sha256=sha256).name - - activate(env, name) - return True + return False diff --git a/compiler_gym/datasets/datasets.py b/compiler_gym/datasets/datasets.py new file mode 100644 index 000000000..adc97818e --- /dev/null +++ b/compiler_gym/datasets/datasets.py @@ -0,0 +1,260 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +from collections import deque +from typing import Dict, Iterable, Set, TypeVar + +from compiler_gym.datasets.benchmark import Benchmark +from compiler_gym.datasets.dataset import Dataset +from compiler_gym.datasets.uri import BENCHMARK_URI_RE, resolve_uri_protocol + +T = TypeVar("T") + + +def round_robin_iterables(iters: Iterable[Iterable[T]]) -> Iterable[T]: + """Yield from the given iterators in round robin order.""" + # Use a queue of iterators to iterate over. Repeatedly pop an iterator from + # the queue, yield the next value from it, then put it at the back of the + # queue. The iterator is discarded once exhausted. + iters = deque(iters) + while len(iters) > 1: + it = iters.popleft() + try: + yield next(it) + iters.append(it) + except StopIteration: + pass + # Once we have only a single iterator left, return it directly rather + # continuing with the round robin. + if len(iters) == 1: + yield from iters.popleft() + + +class Datasets(object): + """A collection of datasets. + + This class provides a dictionary-like interface for indexing and iterating + over multiple :class:`Dataset ` objects. + Select a dataset by URI using: + + >>> env.datasets["benchmark://cbench-v1"] + + Check whether a dataset exists using: + + >>> "benchmark://cbench-v1" in env.datasets + True + + Or iterate over the datasets using: + + >>> for dataset in env.datasets: + ... print(dataset.name) + benchmark://cbench-v1 + benchmark://github-v0 + benchmark://npb-v0 + + To select a benchmark from the datasets, use :meth:`benchmark()`: + + >>> env.datasets.benchmark("benchmark://a-v0/a") + + Use the :meth:`benchmarks()` method to iterate over every benchmark in the + datasets in a stable round robin order: + + >>> for benchmark in env.datasets.benchmarks(): + ... print(benchmark) + benchmark://cbench-v1/1 + benchmark://github-v0/1 + benchmark://npb-v0/1 + benchmark://cbench-v1/2 + ... + + If you want to exclude a dataset, delete it: + + >>> del env.datasets["benchmark://b-v0"] + """ + + def __init__( + self, + datasets: Iterable[Dataset], + ): + self._datasets: Dict[str, Dataset] = {d.name: d for d in datasets} + self._visible_datasets: Set[str] = set( + name for name, dataset in self._datasets.items() if not dataset.deprecated + ) + + def datasets(self, with_deprecated: bool = False) -> Iterable[Dataset]: + """Enumerate the datasets. + + Dataset order is consistent across runs. + + :param with_deprecated: If :code:`True`, include datasets that have been + marked as deprecated. + + :return: An iterable sequence of :meth:`Dataset + ` instances. + """ + datasets = self._datasets.values() + if not with_deprecated: + datasets = (d for d in datasets if not d.deprecated) + yield from sorted(datasets, key=lambda d: (d.sort_order, d.name)) + + def __iter__(self) -> Iterable[Dataset]: + """Iterate over the datasets. + + Dataset order is consistent across runs. + + Equivalent to :meth:`datasets.datasets() + `, but without the ability to + iterate over the deprecated datasets. + + If the number of benchmarks in any of the datasets is infinite + (:code:`len(dataset) == math.inf`), the iterable returned by this method + will continue indefinitely. + + :return: An iterable sequence of :meth:`Dataset + ` instances. + """ + return self.datasets() + + def dataset(self, dataset: str) -> Dataset: + """Get a dataset. + + Return the corresponding :meth:`Dataset + `. Name lookup will succeed whether or + not the dataset is deprecated. + + :param dataset: A dataset name. + + :return: A :meth:`Dataset ` instance. + + :raises LookupError: If :code:`dataset` is not found. + """ + dataset_name = resolve_uri_protocol(dataset) + + if dataset_name not in self._datasets: + raise LookupError(f"Dataset not found: {dataset_name}") + + return self._datasets[dataset_name] + + def __getitem__(self, dataset: str) -> Dataset: + """Lookup a dataset. + + :param dataset: A dataset name. + + :return: A :meth:`Dataset ` instance. + + :raises LookupError: If :code:`dataset` is not found. + """ + return self.dataset(dataset) + + def __setitem__(self, key: str, dataset: Dataset): + """Add a dataset to the collection. + + :param key: The name of the dataset. + :param dataset: The dataset to add. + """ + dataset_name = resolve_uri_protocol(key) + + self._datasets[dataset_name] = dataset + if not dataset.deprecated: + self._visible_datasets.add(dataset_name) + + def __delitem__(self, dataset: str): + """Remove a dataset from the collection. + + This does not affect any underlying storage used by dataset. See + :meth:`uninstall() ` to clean + up. + + :param dataset: The name of a dataset. + + :return: :code:`True` if the dataset was removed, :code:`False` if it + was already removed. + """ + dataset_name = resolve_uri_protocol(dataset) + if dataset_name in self._visible_datasets: + self._visible_datasets.remove(dataset_name) + del self._datasets[dataset_name] + + def __contains__(self, dataset: str) -> bool: + """Returns whether the dataset is contained.""" + try: + self.dataset(dataset) + return True + except LookupError: + return False + + def benchmarks(self, with_deprecated: bool = False) -> Iterable[Benchmark]: + """Enumerate the (possibly infinite) benchmarks lazily. + + Benchmarks order is consistent across runs. One benchmark from each + dataset is returned in round robin order until all datasets have been + fully enumerated. The order of :meth:`benchmarks() + ` and :meth:`benchmark_uris() + ` is the same. + + If the number of benchmarks in any of the datasets is infinite + (:code:`len(dataset) == math.inf`), the iterable returned by this method + will continue indefinitely. + + :param with_deprecated: If :code:`True`, include benchmarks from + datasets that have been marked deprecated. + + :return: An iterable sequence of :class:`Benchmark + ` instances. + """ + return round_robin_iterables( + (d.benchmarks() for d in self.datasets(with_deprecated=with_deprecated)) + ) + + def benchmark_uris(self, with_deprecated: bool = False) -> Iterable[str]: + """Enumerate the (possibly infinite) benchmark URIs. + + Benchmark URI order is consistent across runs. URIs from datasets are + returned in round robin order. The order of :meth:`benchmarks() + ` and :meth:`benchmark_uris() + ` is the same. + + If the number of benchmarks in any of the datasets is infinite + (:code:`len(dataset) == math.inf`), the iterable returned by this method + will continue indefinitely. + + :param with_deprecated: If :code:`True`, include benchmarks from + datasets that have been marked deprecated. + + :return: An iterable sequence of benchmark URI strings. + """ + return round_robin_iterables( + (d.benchmark_uris() for d in self.datasets(with_deprecated=with_deprecated)) + ) + + def benchmark(self, uri: str) -> Benchmark: + """Select a benchmark. + + Returns the corresponding :class:`Benchmark + `, regardless of whether the containing + dataset is installed or deprecated. + + :param uri: The URI of the benchmark to return. + + :return: A :class:`Benchmark ` + instance. + """ + uri = resolve_uri_protocol(uri) + + match = BENCHMARK_URI_RE.match(uri) + if not match: + raise ValueError(f"Invalid benchmark URI: '{uri}'") + + dataset_name = match.group("dataset") + dataset = self._datasets[dataset_name] + + return dataset.benchmark(uri) + + @property + def size(self) -> int: + return len(self._visible_datasets) + + def __len__(self) -> int: + """The number of datasets in the collection.""" + return self.size diff --git a/compiler_gym/datasets/files_dataset.py b/compiler_gym/datasets/files_dataset.py new file mode 100644 index 000000000..4c522912c --- /dev/null +++ b/compiler_gym/datasets/files_dataset.py @@ -0,0 +1,119 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import os +from pathlib import Path +from typing import Iterable, List + +from compiler_gym.datasets.dataset import Benchmark, Dataset +from compiler_gym.util.decorators import memoized_property + + +class FilesDataset(Dataset): + """A dataset comprising a directory tree of files. + + A FilesDataset is a root directory that contains (a possibly nested tree of) + files, where each file represents a benchmark. The directory contents can be + filtered by specifying a filename suffix that files must match. + + The URI of benchmarks is the relative path of each file, stripped of a + required filename suffix, if specified. For example, given the following + file tree: + + .. code-block:: + + /tmp/dataset/a.txt + /tmp/dataset/LICENSE + /tmp/dataset/subdir/subdir/b.txt + /tmp/dataset/subdir/subdir/c.txt + + a FilesDataset :code:`benchmark://ds-v0` rooted at :code:`/tmp/dataset` with + filename suffix :code:`.txt` will contain the following URIs: + + >>> list(dataset.benchmark_uris()) + [ + "benchmark://ds-v0/a", + "benchmark://ds-v0/subdir/subdir/b", + "benchmark://ds-v0/subdir/subdir/c", + ] + """ + + def __init__( + self, + dataset_root: Path, + benchmark_file_suffix: str = "", + memoize_uris: bool = True, + **dataset_args, + ): + """Constructor. + + :param dataset_root: The root directory to look for benchmark files. + + :param benchmark_file_suffix: A file extension that must be matched for + a file to be used as a benchmark. + + :param memoize_uris: Whether to memoize the list of URIs contained in + the dataset. Memoizing the URIs enables faster repeated iteration + over :meth:`dataset.benchmark_uris() + ` at the expense of + increased memory overhead as the file list must be kept in memory. + + :param dataset_args: See :meth:`Dataset.__init__() + `. + """ + super().__init__(**dataset_args) + self.dataset_root = dataset_root + self.benchmark_file_suffix = benchmark_file_suffix + self.memoize_uris = memoize_uris + self._memoized_uris = None + + @memoized_property + def size(self) -> int: # pylint: disable=invalid-overriden-method + self.install() + return sum( + sum(1 for f in files if f.endswith(self.benchmark_file_suffix)) + for (_, _, files) in os.walk(self.dataset_root) + ) + + @property + def _benchmark_uris_iter(self) -> Iterable[str]: + """Return an iterator over benchmark URIs that is consistent across runs.""" + self.install() + for root, dirs, files in os.walk(self.dataset_root): + # Sort the subdirectories so that os.walk() order is stable between + # runs. + dirs.sort() + reldir = root[len(str(self.dataset_root)) + 1 :] + for filename in sorted(files): + # If we have an expected file suffix then ignore files that do + # not match, and strip the suffix from files that do match. + if self.benchmark_file_suffix: + if not filename.endswith(self.benchmark_file_suffix): + continue + filename = filename[: -len(self.benchmark_file_suffix)] + # Use os.path.join() rather than simple '/' concatenation as + # reldir may be empty. + yield os.path.join(self.name, reldir, filename) + + @property + def _benchmark_uris(self) -> List[str]: + return list(self._benchmark_uris_iter) + + def benchmark_uris(self) -> Iterable[str]: + if self._memoized_uris: + yield from self._memoized_uris + elif self.memoize_uris: + self._memoized_uris = self._benchmark_uris + yield from self._memoized_uris + else: + yield from self._benchmark_uris_iter + + def benchmark(self, uri: str) -> Benchmark: + self.install() + + relpath = f"{uri[len(self.name) + 1:]}{self.benchmark_file_suffix}" + abspath = self.dataset_root / relpath + if not abspath.is_file(): + raise LookupError(f"Benchmark not found: {uri} (file not found: {abspath})") + return self.benchmark_class.from_file(uri, abspath) diff --git a/compiler_gym/datasets/tar_dataset.py b/compiler_gym/datasets/tar_dataset.py new file mode 100644 index 000000000..55b15c73b --- /dev/null +++ b/compiler_gym/datasets/tar_dataset.py @@ -0,0 +1,219 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import bz2 +import gzip +import io +import shutil +import tarfile +from threading import Lock +from typing import Iterable, List, Optional + +from fasteners import InterProcessLock + +from compiler_gym.datasets.files_dataset import FilesDataset +from compiler_gym.util.decorators import memoized_property +from compiler_gym.util.download import download +from compiler_gym.util.filesystem import atomic_file_write + + +class TarDataset(FilesDataset): + """A dataset comprising a files tree stored in a tar archive. + + This extends the :class:`FilesDataset ` + class by adding support for compressed archives of files. The archive is + downloaded and unpacked on-demand. + """ + + def __init__( + self, + tar_urls: List[str], + tar_sha256: Optional[str] = None, + tar_compression: str = "bz2", + strip_prefix: str = "", + **dataset_args, + ): + """Constructor. + + :param tar_urls: A list of redundant URLS to download the tar archive from. + + :param tar_sha256: The SHA256 checksum of the downloaded tar archive. + + :param tar_compression: The tar archive compression type. One of + {"bz2", "gz"}. + + :param strip_prefix: An optional path prefix to strip. Only files that + match this path prefix will be used as benchmarks. + + :param dataset_args: See :meth:`FilesDataset.__init__() + `. + """ + super().__init__( + dataset_root=None, # Set below once site_data_path is resolved. + **dataset_args, + ) + self.dataset_root = self.site_data_path / "contents" / strip_prefix + + self.tar_urls = tar_urls + self.tar_sha256 = tar_sha256 + self.tar_compression = tar_compression + self.strip_prefix = strip_prefix + + self._installed = False + self._tar_extracted_marker = self.site_data_path / ".extracted" + self._tar_lock = Lock() + self._tar_lockfile = self.site_data_path / ".install_lock" + + @property + def installed(self) -> bool: + # Fast path for repeated checks to 'installed' without a disk op. + if not self._installed: + self._installed = self._tar_extracted_marker.is_file() + return self._installed + + def install(self) -> None: + super().install() + + if self.installed: + return + + # Thread-level and process-level locks to prevent races. + with self._tar_lock, InterProcessLock(self._tar_lockfile): + # Repeat the check to see if we have already installed the + # dataset now that we have acquired the lock. + if self.installed: + return + + # Remove any partially-completed prior extraction. + shutil.rmtree(self.site_data_path / "contents", ignore_errors=True) + + self.logger.info("Downloading %s dataset", self.name) + tar_data = io.BytesIO(download(self.tar_urls, self.tar_sha256)) + self.logger.info("Unpacking %s dataset", self.name) + with tarfile.open( + fileobj=tar_data, mode=f"r:{self.tar_compression}" + ) as arc: + arc.extractall(str(self.site_data_path / "contents")) + + # We're done. The last thing we do is create the marker file to + # signal to any other install() invocations that the dataset is + # ready. + self._tar_extracted_marker.touch() + + if self.strip_prefix and not self.dataset_root.is_dir(): + raise FileNotFoundError( + f"Directory prefix '{self.strip_prefix}' not found in dataset '{self.name}'" + ) + + +class TarDatasetWithManifest(TarDataset): + """A tarball-based dataset that reads the benchmark URIs from a separate + manifest file. + + A manifest file is a plain text file containing a list of benchmark names, + one per line, and is shipped separately from the tar file. The idea is to + allow the list of benchmark URIs to be enumerated in a more lightweight + manner than downloading and unpacking the entire dataset. It does this by + downloading and unpacking only the manifest to iterate over the URIs. + + The manifest file is assumed to be correct and is not validated. + """ + + def __init__( + self, + manifest_urls: List[str], + manifest_sha256: str, + manifest_compression: str = "bz2", + **dataset_args, + ): + """Constructor. + + :param manifest_urls: A list of redundant URLS to download the + compressed text file containing a list of benchmark URI suffixes, + one per line. + + :param manifest_sha256: The sha256 checksum of the compressed manifest + file. + + :param manifest_compression: The manifest compression type. One of + {"bz2", "gz"}. + + :param dataset_args: See :meth:`TarDataset.__init__() + `. + """ + super().__init__(**dataset_args) + self.manifest_urls = manifest_urls + self.manifest_sha256 = manifest_sha256 + self.manifest_compression = manifest_compression + self._manifest_path = self.site_data_path / f"manifest-{manifest_sha256}.txt" + + self._manifest_lock = Lock() + self._manifest_lockfile = self.site_data_path / ".manifest_lock" + + def _read_manifest(self, manifest_data: str) -> List[str]: + """Read the manifest data into a list of URIs. Does not validate the + manifest contents. + """ + lines = manifest_data.rstrip().split("\n") + return [f"{self.name}/{line}" for line in lines] + + def _read_manifest_file(self) -> List[str]: + """Read the benchmark URIs from an on-disk manifest file. + + Does not check that the manifest file exists. + """ + with open(self._manifest_path, encoding="utf-8") as f: + uris = self._read_manifest(f.read()) + self.logger.debug("Read %s manifest, %d entries", self.name, len(uris)) + return uris + + @memoized_property + def _benchmark_uris(self) -> List[str]: + """Fetch or download the URI list.""" + if self._manifest_path.is_file(): + return self._read_manifest_file() + + # Thread-level and process-level locks to prevent races. + with self._manifest_lock, InterProcessLock(self._manifest_lockfile): + # Now that we have acquired the lock, repeat the check, since + # another thread may have downloaded the manifest. + if self._manifest_path.is_file(): + return self._read_manifest_file() + + # Determine how to decompress the manifest data. + decompressor = { + "bz2": lambda compressed_data: bz2.BZ2File(compressed_data), + "gz": lambda compressed_data: gzip.GzipFile(compressed_data), + }.get(self.manifest_compression, None) + if not decompressor: + raise TypeError( + f"Unknown manifest compression: {self.manifest_compression}" + ) + + # Decompress the manifest data. + self.logger.debug("Downloading %s manifest", self.name) + manifest_data = io.BytesIO( + download(self.manifest_urls, self.manifest_sha256) + ) + with decompressor(manifest_data) as f: + manifest_data = f.read() + + # Although we have exclusive-execution locks, we still need to + # create the manifest atomically to prevent calls to _benchmark_uris + # racing to read an incompletely written manifest. + with atomic_file_write(self._manifest_path, fileobj=True) as f: + f.write(manifest_data) + + uris = self._read_manifest(manifest_data.decode("utf-8")) + self.logger.debug( + "Downloaded %s manifest, %d entries", self.name, len(uris) + ) + return uris + + @memoized_property + def size(self) -> int: + return len(self._benchmark_uris) + + def benchmark_uris(self) -> Iterable[str]: + yield from iter(self._benchmark_uris) diff --git a/compiler_gym/datasets/uri.py b/compiler_gym/datasets/uri.py new file mode 100644 index 000000000..350e224df --- /dev/null +++ b/compiler_gym/datasets/uri.py @@ -0,0 +1,30 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""This module contains utility code for working with URIs.""" +import re + +# Regular expression that matches the full two-part URI prefix of a dataset: +# {{protocol}}://{{dataset}} +# +# An optional trailing slash is permitted. +# +# Example matches: "benchmark://foo-v0", "generator://bar-v0/". +DATASET_NAME_PATTERN = r"(?P(?P[a-zA-z0-9-_]+)://(?P[a-zA-z0-9-_]+-v(?P[0-9]+)))/?" +DATASET_NAME_RE = re.compile(DATASET_NAME_PATTERN) + +# Regular expression that matches the full three-part format of a benchmark URI: +# {{protocol}}://{{dataset}}/{{id}} +# +# Example matches: "benchmark://foo-v0/foo" or "generator://bar-v1/foo/bar.txt". +BENCHMARK_URI_PATTERN = r"(?P(?P[a-zA-z0-9-_]+)://(?P[a-zA-z0-9-_]+-v(?P[0-9]+)))/(?P[^\s]+)$" +BENCHMARK_URI_RE = re.compile(BENCHMARK_URI_PATTERN) + + +def resolve_uri_protocol(uri: str) -> str: + """Require that the URI has a protocol by applying a default "benchmark" + protocol if none is set.""" + if "://" not in uri: + return f"benchmark://{uri}" + return uri diff --git a/compiler_gym/envs/BUILD b/compiler_gym/envs/BUILD index ba75aca0e..63519efbe 100644 --- a/compiler_gym/envs/BUILD +++ b/compiler_gym/envs/BUILD @@ -21,7 +21,7 @@ py_library( deps = [ "//compiler_gym:compiler_env_state", "//compiler_gym:validation_result", - "//compiler_gym/datasets:dataset", + "//compiler_gym/datasets", "//compiler_gym/service", "//compiler_gym/service/proto", "//compiler_gym/spaces", diff --git a/compiler_gym/envs/compiler_env.py b/compiler_gym/envs/compiler_env.py index a514f5144..9db13b4f3 100644 --- a/compiler_gym/envs/compiler_env.py +++ b/compiler_gym/envs/compiler_env.py @@ -5,8 +5,6 @@ """This module defines the OpenAI gym interface for compilers.""" import logging import numbers -import os -import sys import warnings from collections.abc import Iterable as IterableType from copy import deepcopy @@ -15,38 +13,39 @@ from time import time from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union -import fasteners import gym import numpy as np +from deprecated.sphinx import deprecated from gym.spaces import Space from compiler_gym.compiler_env_state import CompilerEnvState -from compiler_gym.datasets.dataset import LegacyDataset, require +from compiler_gym.datasets import Benchmark, Dataset, Datasets from compiler_gym.service import ( CompilerGymServiceConnection, ConnectionOpts, ServiceError, ServiceOSError, ServiceTransportError, + SessionNotFound, observation_t, ) from compiler_gym.service.proto import ( AddBenchmarkRequest, - Benchmark, EndSessionReply, EndSessionRequest, ForkSessionReply, ForkSessionRequest, - GetBenchmarksRequest, GetVersionReply, GetVersionRequest, StartSessionRequest, + StepReply, StepRequest, ) -from compiler_gym.spaces import NamedDiscrete, Reward +from compiler_gym.spaces import DefaultRewardFromObservation, NamedDiscrete, Reward from compiler_gym.util.debug_util import get_logging_level from compiler_gym.util.timer import Timer -from compiler_gym.validation_result import ValidationError, ValidationResult +from compiler_gym.validation_error import ValidationError +from compiler_gym.validation_result import ValidationResult from compiler_gym.views import ObservationSpaceSpec, ObservationView, RewardView # Type hints. @@ -54,31 +53,16 @@ step_t = Tuple[Optional[observation_t], Optional[float], bool, info_t] -class DefaultRewardFromObservation(Reward): - def __init__(self, observation_name: str, **kwargs): - super().__init__( - observation_spaces=[observation_name], id=observation_name, **kwargs - ) - self.previous_value: Optional[observation_t] = None - - def reset(self, benchmark: str) -> None: - """Called on env.reset(). Reset incremental progress.""" - del benchmark # unused - self.previous_value = None - - def update( - self, - action: int, - observations: List[observation_t], - observation_view: ObservationView, - ) -> float: - """Called on env.step(). Compute and return new reward.""" - value: float = observations[0] - if self.previous_value is None: - self.previous_value = 0 - reward = float(value - self.previous_value) - self.previous_value = value - return reward +def _wrapped_step( + service: CompilerGymServiceConnection, request: StepRequest +) -> StepReply: + """Call the Step() RPC endpoint.""" + try: + return service(service.stub.Step, request) + except FileNotFoundError as e: + if str(e).startswith("Session not found"): + raise SessionNotFound(str(e)) + raise class CompilerEnv(gym.Env): @@ -128,14 +112,6 @@ class CompilerEnv(gym.Env): Default range is (-inf, +inf). :vartype reward_range: Tuple[float, float] - :ivar datasets_site_path: The filesystem path used by the service - to store benchmarks. - :vartype datasets_site_path: Optional[Path] - - :ivar available_datasets: A mapping from dataset name to :class:`LegacyDataset` - objects that are available to download. - :vartype available_datasets: Dict[str, LegacyDataset] - :ivar observation: A view of the available observation spaces that permits on-demand computation of observations. :vartype observation: compiler_gym.views.ObservationView @@ -154,67 +130,77 @@ def __init__( self, service: Union[str, Path], rewards: Optional[List[Reward]] = None, + datasets: Optional[Iterable[Dataset]] = None, benchmark: Optional[Union[str, Benchmark]] = None, observation_space: Optional[Union[str, ObservationSpaceSpec]] = None, reward_space: Optional[Union[str, Reward]] = None, action_space: Optional[str] = None, connection_settings: Optional[ConnectionOpts] = None, service_connection: Optional[CompilerGymServiceConnection] = None, - logging_level: Optional[int] = None, + logger: Optional[logging.Logger] = None, ): """Construct and initialize a CompilerGym service environment. :param service: The hostname and port of a service that implements the - CompilerGym service interface, or the path of a binary file - which provides the CompilerGym service interface when executed. - See :doc:`/compiler_gym/service` for details. + CompilerGym service interface, or the path of a binary file which + provides the CompilerGym service interface when executed. See + :doc:`/compiler_gym/service` for details. + :param rewards: The reward spaces that this environment supports. - Rewards are typically calculated based on observations generated - by the service. See :class:`Reward ` for + Rewards are typically calculated based on observations generated by + the service. See :class:`Reward ` for details. - :param benchmark: The name of the benchmark to use for this environment. - The choice of benchmark can be deferred by not providing this - argument and instead passing by choosing from the - :code:`CompilerEnv.benchmarks` attribute and passing it to - :func:`reset()` when called. + + :param benchmark: The benchmark to use for this environment. Either a + URI string, or a :class:`Benchmark + ` instance. If not provided, the + first benchmark as returned by + :code:`next(env.datasets.benchmarks())` will be used as the default. + :param observation_space: Compute and return observations at each :func:`step()` from this space. Accepts a string name or an - :class:`ObservationSpaceSpec `. - If not provided, :func:`step()` returns :code:`None` for the - observation value. Can be set later using - :meth:`env.observation_space `. - For available spaces, see - :class:`env.observation.spaces `. + :class:`ObservationSpaceSpec + `. If not provided, + :func:`step()` returns :code:`None` for the observation value. Can + be set later using :meth:`env.observation_space + `. For available + spaces, see :class:`env.observation.spaces + `. + :param reward_space: Compute and return reward at each :func:`step()` - from this space. Accepts a string name or a - :class:`Reward `. If - not provided, :func:`step()` returns :code:`None` for the reward - value. Can be set later using - :meth:`env.reward_space `. - For available spaces, see - :class:`env.reward.spaces `. + from this space. Accepts a string name or a :class:`Reward + `. If not provided, :func:`step()` + returns :code:`None` for the reward value. Can be set later using + :meth:`env.reward_space + `. For available spaces, + see :class:`env.reward.spaces `. + :param action_space: The name of the action space to use. If not specified, the default action space for this compiler is used. + :param connection_settings: The settings used to establish a connection with the remote service. + :param service_connection: An existing compiler gym service connection to use. - :param logging_level: The integer logging level to use for logging. By - default, the value reported by - :func:`get_logging_level() ` is - used. + + :param logger: The logger to use for this environment. If not provided, + a :code:`compiler_gym.envs` logger is used and assigned the + verbosity returned by :func:`get_logging_level() + `. + :raises FileNotFoundError: If service is a path to a file that is not found. - :raises TimeoutError: If the compiler service fails to initialize - within the parameters provided in :code:`connection_settings`. + + :raises TimeoutError: If the compiler service fails to initialize within + the parameters provided in :code:`connection_settings`. """ self.metadata = {"render.modes": ["human", "ansi"]} - # Set up logging. - self.logger = logging.getLogger("compiler_gym.envs") - if logging_level is None: - logging_level = get_logging_level() - self.logger.setLevel(logging_level) + if logger is None: + logger = logging.getLogger("compiler_gym.envs") + logger.setLevel(get_logging_level()) + self.logger = logger # A compiler service supports multiple simultaneous environments. This # session ID is used to identify this environment. @@ -222,8 +208,6 @@ def __init__( self._service_endpoint: Union[str, Path] = service self._connection_settings = connection_settings or ConnectionOpts() - self.datasets_site_path: Optional[Path] = None - self.available_datasets: Dict[str, LegacyDataset] = {} self.action_space_name = action_space @@ -232,6 +216,7 @@ def __init__( opts=self._connection_settings, logger=self.logger, ) + self.datasets = Datasets(datasets or []) # If no reward space is specified, generate some from numeric observation spaces rewards = rewards or [ @@ -245,17 +230,14 @@ def __init__( ] # The benchmark that is currently being used, and the benchmark that - # the user requested. Those do not always correlate, since the user - # could request a random benchmark. - self._benchmark_in_use_uri: Optional[str] = None - self._user_specified_benchmark_uri: Optional[str] = None - # A map from benchmark URIs to Benchmark messages. We keep track of any - # user-provided custom benchmarks so that we can register them with a - # reset service. - self._custom_benchmarks: Dict[str, Benchmark] = {} + # will be used on the next call to reset(). These are equal except in + # the gap between the user setting the env.benchmark property while in + # an episode and the next call to env.reset(). + self._benchmark_in_use: Optional[Benchmark] = None + self._next_benchmark: Optional[Benchmark] = None # Normally when the benchmark is changed the updated value is not - # reflected until the next call to reset(). We make an exception for - # constructor-time arguments as otherwise the behavior of the benchmark + # reflected until the next call to reset(). We make an exception for the + # constructor-time benchmark as otherwise the behavior of the benchmark # property is counter-intuitive: # # >>> env = gym.make("example-v0", benchmark="foo") @@ -265,10 +247,17 @@ def __init__( # >>> env.benchmark # "foo" # - # By forcing the benchmark-in-use URI at constructor time, the first - # env.benchmark returns the name as expected. - self.benchmark = benchmark - self._benchmark_in_use_uri = self._user_specified_benchmark_uri + # By forcing the _benchmark_in_use URI at constructor time, the first + # env.benchmark above returns the benchmark as expected. + try: + self.benchmark = benchmark or next(self.datasets.benchmarks()) + self._benchmark_in_use = self._next_benchmark + except StopIteration: + # StopIteration raised on next(self.datasets.benchmarks()) if there + # are no benchmarks available. This is to allow CompilerEnv to be + # used without any datasets by setting a benchmark before/during the + # first reset() call. + pass # Process the available action, observation, and reward spaces. self.action_spaces = [ @@ -276,7 +265,7 @@ def __init__( for space in self.service.action_spaces ] self.observation = self._observation_view_type( - get_observation=lambda req: self.service(self.service.stub.Step, req), + get_observation=lambda req: _wrapped_step(self.service, req), spaces=self.service.observation_spaces, ) self.reward = self._reward_view_type(rewards, self.observation) @@ -284,20 +273,33 @@ def __init__( # Lazily evaluated version strings. self._versions: Optional[GetVersionReply] = None - # Mutable state initialized in reset(). self.action_space: Optional[Space] = None self.observation_space: Optional[Space] = None + + # Mutable state initialized in reset(). self.reward_range: Tuple[float, float] = (-np.inf, np.inf) self.episode_reward: Optional[float] = None self.episode_start_time: float = time() self.actions: List[int] = [] # Initialize the default observation/reward spaces. - self._default_observation_space: Optional[ObservationSpaceSpec] = None - self._default_reward_space: Optional[Reward] = None + self.observation_space_spec: Optional[ObservationSpaceSpec] = None + self.reward_space_spec: Optional[Reward] = None self.observation_space = observation_space self.reward_space = reward_space + @property + @deprecated( + version="0.1.8", + reason=( + "Use :meth:`env.datasets.datasets() ` instead. " + "`More information `_." + ), + ) + def available_datasets(self) -> Dict[str, Dataset]: + """A dictionary of datasets.""" + return {d.name: d for d in self.datasets} + @property def versions(self) -> GetVersionReply: """Get the version numbers from the compiler service.""" @@ -318,13 +320,15 @@ def compiler_version(self) -> str: return self.versions.compiler_version def commandline(self) -> str: - """Interface for :class:`CompilerEnv` subclasses to provide an equivalent - commandline invocation to the current environment state. + """Interface for :class:`CompilerEnv ` + subclasses to provide an equivalent commandline invocation to the + current environment state. - See also - :meth:`commandline_to_actions() `. + See also :meth:`commandline_to_actions() + `. - Calling this method on a :class:`CompilerEnv` instance raises + Calling this method on a :class:`CompilerEnv + ` instance raises :code:`NotImplementedError`. :return: A string commandline invocation. @@ -332,13 +336,15 @@ def commandline(self) -> str: raise NotImplementedError("abstract method") def commandline_to_actions(self, commandline: str) -> List[int]: - """Interface for :class:`CompilerEnv` subclasses to convert from a - commandline invocation to a sequence of actions. + """Interface for :class:`CompilerEnv ` + subclasses to convert from a commandline invocation to a sequence of + actions. - See also - :meth:`commandline() `. + See also :meth:`commandline() + `. - Calling this method on a :class:`CompilerEnv` instance raises + Calling this method on a :class:`CompilerEnv + ` instance raises :code:`NotImplementedError`. :return: A list of actions. @@ -356,23 +362,12 @@ def episode_walltime(self) -> float: def state(self) -> CompilerEnvState: """The tuple representation of the current environment state.""" return CompilerEnvState( - benchmark=self.benchmark, + benchmark=str(self.benchmark) if self.benchmark else None, reward=self.episode_reward, walltime=self.episode_walltime, commandline=self.commandline(), ) - @property - def inactive_datasets_site_path(self) -> Optional[Path]: - """The filesystem path used to store inactive benchmarks.""" - if self.datasets_site_path: - return ( - self.datasets_site_path.parent - / f"{self.datasets_site_path.name}.inactive" - ) - else: - return None - @property def action_space(self) -> NamedDiscrete: """The current action space. @@ -395,69 +390,41 @@ def action_space(self, action_space: Optional[str]): self._action_space: NamedDiscrete = self.action_spaces[index] @property - def benchmark(self) -> Optional[str]: - """Get or set the name of the benchmark to use. - - :getter: Get the name of the current benchmark. Returns :code:`None` if - :func:`__init__` was not provided a benchmark and :func:`reset` has - not yet been called. - :setter: Set the benchmark to use. If :code:`None`, a random benchmark - is selected by the service on each call to :func:`reset`. Else, - the same benchmark is used for every episode. - - By default, a benchmark will be selected randomly by the service - from the available :func:`benchmarks` on a call to :func:`reset`. To - force a specific benchmark to be chosen, set this property (or pass - the benchmark as an argument to :func:`reset`): - - >>> env.benchmark = "benchmark://foo" - >>> env.reset() - >>> env.benchmark - "benchmark://foo" + def benchmark(self) -> Benchmark: + """Get or set the benchmark to use. - Once set, all subsequent calls to :func:`reset` will select the same - benchmark. + :getter: Get :class:`Benchmark ` that + is currently in use. - >>> env.benchmark = None - >>> env.reset() # random benchmark is chosen + :setter: Set the benchmark to use. Either a :class:`Benchmark + ` instance, or the URI of a + benchmark as in :meth:`env.datasets.benchmark_uris() + `. .. note:: - Setting a new benchmark has no effect until :func:`~reset()` is - called. - To return to random benchmark selection, set this property to - :code:`None`: + Setting a new benchmark has no effect until + :func:`env.reset() ` is called. """ - return self._benchmark_in_use_uri + return self._benchmark_in_use @benchmark.setter - def benchmark(self, benchmark: Optional[Union[str, Benchmark]]): + def benchmark(self, benchmark: Union[str, Benchmark]): if self.in_episode: warnings.warn( - "Changing the benchmark has no effect until reset() is called." + "Changing the benchmark has no effect until reset() is called" ) - if benchmark is None: - self.logger.debug("Unsetting the forced benchmark") - self._user_specified_benchmark_uri = None - elif isinstance(benchmark, str): - self.logger.debug("Setting benchmark by name: %s", benchmark) - # If the user requested a benchmark by URI, e.g. - # benchmark://cBench-v1/dijkstra, require the dataset (cBench-v1) - # automatically. - if self.datasets_site_path: - components = benchmark.split("://") - if len(components) == 1 or components[0] == "benchmark": - components = components[-1].split("/") - if len(components) > 1: - self.logger.info("Requiring dataset %s", components[0]) - self.require_dataset(components[0]) - self._user_specified_benchmark_uri = benchmark + if isinstance(benchmark, str): + benchmark_object = self.datasets.benchmark(benchmark) + self.logger.debug("Setting benchmark by name: %s", benchmark_object) + self._next_benchmark = benchmark_object elif isinstance(benchmark, Benchmark): - self.logger.debug("Setting benchmark data: %s", benchmark.uri) - self._user_specified_benchmark_uri = benchmark.uri - self._add_custom_benchmarks([benchmark]) + self.logger.debug("Setting benchmark: %s", benchmark.uri) + self._next_benchmark = benchmark else: - raise TypeError(f"Unsupported benchmark type: {type(benchmark).__name__}") + raise TypeError( + f"Expected a Benchmark or str, received: '{type(benchmark).__name__}'" + ) @property def reward_space(self) -> Optional[Reward]: @@ -468,26 +435,27 @@ def reward_space(self) -> Optional[Reward]: or :code:`None` if not set. :setter: Set the default reward space. """ - return self._default_reward_space + return self.reward_space_spec @reward_space.setter def reward_space(self, reward_space: Optional[Union[str, Reward]]) -> None: - if isinstance(reward_space, str) and reward_space not in self.reward.spaces: - raise LookupError(f"Reward space not found: {reward_space}") - - reward_space_name = ( + # Coerce the observation space into a string. + reward_space: Optional[str] = ( reward_space.id if isinstance(reward_space, Reward) else reward_space ) - self._default_reward: bool = reward_space is not None - self._default_reward_space: Optional[Reward] = None - if self._default_reward: - self._default_reward_space = self.reward.spaces[reward_space_name] + if reward_space: + if reward_space not in self.reward.spaces: + raise LookupError(f"Reward space not found: {reward_space}") + self.reward_space_spec = self.reward.spaces[reward_space] self.reward_range = ( - self._default_reward_space.min, - self._default_reward_space.max, + self.reward_space_spec.min, + self.reward_space_spec.max, ) else: + # If no reward space is being used then set the reward range to + # unbounded. + self.reward_space_spec = None self.reward_range = (-np.inf, np.inf) @property @@ -508,30 +476,26 @@ def observation_space(self) -> Optional[ObservationSpaceSpec]: :code:`None` if not set. :setter: Set the default observation space. """ - return self._default_observation_space + if self.observation_space_spec: + return self.observation_space_spec.space @observation_space.setter def observation_space( self, observation_space: Optional[Union[str, ObservationSpaceSpec]] ) -> None: - if ( - isinstance(observation_space, str) - and observation_space not in self.observation.spaces - ): - raise LookupError(f"Observation space not found: {observation_space}") - - observation_space_name = ( + # Coerce the observation space into a string. + observation_space: Optional[str] = ( observation_space.id if isinstance(observation_space, ObservationSpaceSpec) else observation_space ) - self._default_observation = observation_space is not None - self._default_observation_space: Optional[ObservationSpaceSpec] = None - if self._default_observation: - self._default_observation_space = self.observation.spaces[ - observation_space_name - ] + if observation_space: + if observation_space not in self.observation.spaces: + raise LookupError(f"Observation space not found: {observation_space}") + self.observation_space_spec = self.observation.spaces[observation_space] + else: + self.observation_space_spec = None def fork(self) -> "CompilerEnv": """Fork a new environment with exactly the same state. @@ -541,33 +505,30 @@ def fork(self) -> "CompilerEnv": The user must call :meth:`close() ` on the original and new environments. - :meth:`reset() ` must be called - before :code:`fork()`. + If not already in an episode, :meth:`reset() + ` is called. Example usage: - >>> env = gym.make("llvm-v0") - >>> env.reset() - # ... use env - >>> new_env = env.fork() - >>> new_env.state == env.state - True - >>> new_env.step(1) == env.step(1) - True + >>> env = gym.make("llvm-v0") + >>> env.reset() + # ... use env + >>> new_env = env.fork() + >>> new_env.state == env.state + True + >>> new_env.step(1) == env.step(1) + True :return: A new environment instance. """ if not self.in_episode: - if self.actions: - state_to_replay = self.state + if self.actions and not self.in_episode: self.logger.warning( "Parent service of fork() has died, replaying state" ) + self.apply(self.state) else: - state_to_replay = None - self.reset() - if state_to_replay: - self.apply(state_to_replay) + self.reset() request = ForkSessionRequest(session_id=self._session_id) reply: ForkSessionReply = self.service(self.service.stub.ForkSession, request) @@ -584,23 +545,16 @@ def fork(self) -> "CompilerEnv": new_env._session_id = reply.session_id # pylint: disable=protected-access new_env.observation.session_id = reply.session_id - # Re-register any custom benchmarks with the new environment. - if self._custom_benchmarks: - new_env._add_custom_benchmarks( # pylint: disable=protected-access - list(self._custom_benchmarks.values()).copy() - ) - # Now that we have initialized the environment with the current state, # set the benchmark so that calls to new_env.reset() will correctly # revert the environment to the initial benchmark state. - new_env._user_specified_benchmark_uri = ( # pylint: disable=protected-access - self.benchmark - ) + # + # pylint: disable=protected-access + new_env._next_benchmark = self._benchmark_in_use + # Set the "visible" name of the current benchmark to hide the fact that # we loaded from a custom bitcode file. - new_env._benchmark_in_use_uri = ( # pylint: disable=protected-access - self.benchmark - ) + new_env._benchmark_in_use = self._benchmark_in_use # Create copies of the mutable reward and observation spaces. This # is required to correctly calculate incremental updates. @@ -610,7 +564,7 @@ def fork(self) -> "CompilerEnv": # Set the default observation and reward types. Note the use of IDs here # to prevent passing the spaces by reference. if self.observation_space: - new_env.observation_space = self.observation_space.id + new_env.observation_space = self.observation_space_spec.id if self.reward_space: new_env.reward_space = self.reward_space.id @@ -625,7 +579,26 @@ def close(self): """Close the environment. Once closed, :func:`reset` must be called before the environment is used - again.""" + again. + + .. note:: + + Internally, CompilerGym environments may launch subprocesses and use + temporary files to communicate between the environment and the + underlying compiler (see :ref:`compiler_gym.service + ` for details). This + means it is important to call :meth:`env.close() + ` after use to free up + resources and prevent orphan subprocesses or files. We recommend + using the :code:`with`-statement pattern for creating environments: + + >>> with gym.make("llvm-autophase-ic-v0") as env: + ... env.reset() + ... # use env how you like + + This removes the need to call :meth:`env.close() + ` yourself. + """ # Try and close out the episode, but errors are okay. close_service = True if self.in_episode: @@ -670,19 +643,32 @@ def reset( # pylint: disable=arguments-differ If no benchmark is provided, and no benchmark was provided to :func:`__init___`, the service will randomly select a benchmark to use. + :param action_space: The name of the action space to use. If provided, it overrides any value that set during :func:`__init__`, and - subsequent calls to :code:`reset()` will use this action space. - If no aciton space is provided, the default action space is used. + subsequent calls to :code:`reset()` will use this action space. If + no action space is provided, the default action space is used. + :return: The initial observation. + + :raises BenchmarkInitError: If the benchmark is invalid. In this case, + another benchmark must be used. + + :raises TypeError: If no benchmark has been set, and the environment + does not have a default benchmark to select from. """ + if not self._next_benchmark: + raise TypeError( + "No benchmark set. Set a benchmark using " + "`env.reset(benchmark=benchmark)`. Use `env.datasets` to " + "access the available benchmarks." + ) + # Start a new service if required. if self.service is None: self.service = CompilerGymServiceConnection( self._service_endpoint, self._connection_settings ) - # Re-register the custom benchmarks with the new service. - self._add_custom_benchmarks(self._custom_benchmarks.values()) self.action_space_name = action_space or self.action_space_name @@ -694,29 +680,38 @@ def reset( # pylint: disable=arguments-differ ) self._session_id = None - # Update the user requested benchmark, if provided. NOTE: This means - # that env.reset(benchmark=None) does NOT unset a forced benchmark. + # Update the user requested benchmark, if provided. if benchmark: self.benchmark = benchmark + self._benchmark_in_use = self._next_benchmark + + start_session_request = StartSessionRequest( + benchmark=self._benchmark_in_use.uri, + action_space=( + [a.name for a in self.action_spaces].index(self.action_space_name) + if self.action_space_name + else 0 + ), + observation_space=( + [self.observation_space_spec.index] if self.observation_space else None + ), + ) try: - reply = self.service( - self.service.stub.StartSession, - StartSessionRequest( - benchmark=self._user_specified_benchmark_uri, - action_space=( - [a.name for a in self.action_spaces].index( - self.action_space_name - ) - if self.action_space_name - else 0 - ), - ), + reply = self.service(self.service.stub.StartSession, start_session_request) + except FileNotFoundError: + # The benchmark was not found, so try adding it and repeating the + # request. + self.service( + self.service.stub.AddBenchmark, + AddBenchmarkRequest(benchmark=[self._benchmark_in_use.proto]), ) + reply = self.service(self.service.stub.StartSession, start_session_request) except (ServiceError, ServiceTransportError, TimeoutError) as e: # Abort and retry on error. self.logger.warning("%s on reset(): %s", type(e).__name__, e) - self.service.close() + if self.service: + self.service.close() self.service = None if retry_count >= self._connection_settings.init_max_attempts: @@ -731,7 +726,6 @@ def reset( # pylint: disable=arguments-differ retry_count=retry_count + 1, ) - self._benchmark_in_use_uri = reply.benchmark self._session_id = reply.session_id self.observation.session_id = reply.session_id self.reward.get_cost = self.observation.__getitem__ @@ -749,32 +743,43 @@ def reset( # pylint: disable=arguments-differ self.episode_reward = 0 if self.observation_space: - return self.observation[self.observation_space.id] + if len(reply.observation) != 1: + raise OSError( + f"Expected one observation from service, received {len(reply.observation)}" + ) + return self.observation.spaces[self.observation_space_spec.id].translate( + reply.observation[0] + ) def step(self, action: Union[int, Iterable[int]]) -> step_t: """Take a step. :param action: An action, or a sequence of actions. When multiple - actions are provided the observation and reward are returned - after running all of the actions. + actions are provided the observation and reward are returned after + running all of the actions. + :return: A tuple of observation, reward, done, and info. Observation and - reward are None if default observation/reward is not set. If done - is True, observation and reward may also be None (e.g. because the + reward are None if default observation/reward is not set. If done is + True, observation and reward may also be None (e.g. because the service failed). + + :raises SessionNotFound: If :meth:`reset() + ` has not been called. """ - assert self.in_episode, "Must call reset() before step()" + if not self.in_episode: + raise SessionNotFound("Must call reset() before step()") actions = action if isinstance(action, IterableType) else [action] observation, reward = None, None # Build the list of observations that must be computed by the backend # service to generate the user-requested observation and reward. - # TODO(cummins): We could de-duplicate this list to improve effiency + # TODO(cummins): We could de-duplicate this list to improve efficiency # when multiple redundant copies of the same observation space are # requested. observation_indices, observation_spaces = [], [] if self.observation_space: - observation_indices.append(self.observation_space.index) - observation_spaces.append(self.observation_space.id) + observation_indices.append(self.observation_space_spec.index) + observation_spaces.append(self.observation_space_spec.id) if self.reward_space: observation_indices += [ self.observation.spaces[obs].index @@ -792,14 +797,26 @@ def step(self, action: Union[int, Iterable[int]]) -> step_t: observation_space=observation_indices, ) try: - reply = self.service(self.service.stub.Step, request) - except (ServiceError, ServiceTransportError, ServiceOSError, TimeoutError) as e: + reply = _wrapped_step(self.service, request) + except ( + ServiceError, + ServiceTransportError, + ServiceOSError, + TimeoutError, + SessionNotFound, + ) as e: + # Gracefully handle "expected" error types. These non-fatal errors + # end the current episode and provide some diagnostic information to + # the user through the `info` dict. self.close() - info = {"error_details": str(e)} + info = { + "error_type": type(e).__name__, + "error_details": str(e), + } if self.reward_space: reward = self.reward_space.reward_on_error(self.episode_reward) if self.observation_space: - observation = self.observation_space.default_value + observation = self.observation_space_spec.default_value return observation, reward, True, info # If the action space has changed, update it. @@ -853,7 +870,7 @@ def render( """ if not self.observation_space: raise ValueError("Cannot call render() when no observation space is used") - observation = self.observation[self.observation_space.id] + observation = self.observation[self.observation_space_spec.id] if mode == "human": print(observation) elif mode == "ansi": @@ -862,10 +879,16 @@ def render( raise ValueError(f"Invalid mode: {mode}") @property - def benchmarks(self) -> List[str]: - """Enumerate the list of available benchmarks.""" - reply = self.service(self.service.stub.GetBenchmarks, GetBenchmarksRequest()) - return list(reply.benchmark) + @deprecated( + version="0.1.8", + reason=( + "Use :meth:`env.datasets.benchmarks() ` instead. " + "`More information `_." + ), + ) + def benchmarks(self) -> Iterable[str]: + """Enumerate a (possible unbounded) list of available benchmarks.""" + return self.datasets.benchmark_uris() def _make_action_space(self, name: str, entries: List[str]) -> Space: """Create an action space from the given values. @@ -895,131 +918,82 @@ def _reward_view_type(self): """ return RewardView - def require_datasets(self, datasets: List[Union[str, LegacyDataset]]) -> bool: - """Require that the given datasets are available to the environment. - - Example usage: - - >>> env = gym.make("llvm-v0") - >>> env.require_dataset(["npb-v0"]) - >>> env.benchmarks - ["npb-v0/1", "npb-v0/2", ...] + @deprecated( + version="0.1.8", + reason=( + "Datasets are now installed automatically, there is no need to call :code:`require()`. " + "`More information `_." + ), + ) + def require_datasets(self, datasets: List[Union[str, Dataset]]) -> bool: + """Deprecated function for managing datasets. - This is equivalent to calling - :meth:`require(self, dataset) ` on - the list of datasets. + Datasets are now installed automatically. See :class:`env.datasets + `. :param datasets: A list of datasets to require. Each dataset is the name of an available dataset, the URL of a dataset to download, or a - :class:`LegacyDataset` instance. + :class:`Dataset ` instance. + :return: :code:`True` if one or more datasets were downloaded, or :code:`False` if all datasets were already available. """ - self.logger.debug("Requiring datasets: %s", datasets) - dataset_installed = False - for dataset in datasets: - dataset_installed |= require(self, dataset) - if dataset_installed: - # Signal to the compiler service that the contents of the site data - # directory has changed. - self.logger.debug("Initiating service-side scan of dataset directory") - self.service( - self.service.stub.AddBenchmark, - AddBenchmarkRequest( - benchmark=[Benchmark(uri="service://scan-site-data")] - ), - ) - self.make_manifest_file() - return dataset_installed + return False + + @deprecated( + version="0.1.8", + reason=( + "Use :meth:`env.datasets.require() ` instead. " + "`More information `_." + ), + ) + def require_dataset(self, dataset: Union[str, Dataset]) -> bool: + """Deprecated function for managing datasets. - def require_dataset(self, dataset: Union[str, LegacyDataset]) -> bool: - """Require that the given dataset is available to the environment. + Datasets are now installed automatically. See :class:`env.datasets + `. - Alias for - :meth:`env.require_datasets([dataset]) `. + :param dataset: The name of the dataset to download, the URL of the + dataset, or a :class:`Dataset ` + instance. - :param dataset: The name of the dataset to download, the URL of the dataset, or a - :class:`LegacyDataset` instance. :return: :code:`True` if the dataset was downloaded, or :code:`False` if the dataset was already available. """ - return self.require_datasets([dataset]) - - def make_manifest_file(self) -> Path: - """Create the MANIFEST file. - - :return: The path of the manifest file. - """ - with fasteners.InterProcessLock(self.datasets_site_path / "LOCK"): - manifest_path = ( - self.datasets_site_path.parent - / f"{self.datasets_site_path.name}.MANIFEST" - ) - with open(str(manifest_path), "w") as f: - for root, _, files in os.walk(self.datasets_site_path): - print( - "\n".join( - [ - f"{root[len(str(self.datasets_site_path)) + 1:]}/{f}" - for f in files - if not f.endswith(".json") and f != "LOCK" - ] - ), - file=f, - ) - return manifest_path - - def register_dataset(self, dataset: LegacyDataset) -> bool: + return False + + @deprecated( + version="0.1.8", + reason=( + "Use :meth:`env.datasets.add() ` instead. " + "`More information `_." + ), + ) + def register_dataset(self, dataset: Dataset) -> bool: """Register a new dataset. - After registering, the dataset name may be used by - :meth:`require_dataset() ` - to install and activate it. - Example usage: - >>> my_dataset = LegacyDataset(name="my-dataset-v0", ...) + >>> my_dataset = Dataset(name="my-dataset-v0", ...) >>> env = gym.make("llvm-v0") >>> env.register_dataset(my_dataset) - >>> env.require_dataset("my-dataset-v0") >>> env.benchmark = "my-dataset-v0/1" - :param dataset: A :class:`LegacyDataset` instance describing the new dataset. + :param dataset: A :class:`Dataset ` + instance describing the new dataset. + :return: :code:`True` if the dataset was added, else :code:`False`. + :raises ValueError: If a dataset with this name is already registered. """ - platform = {"darwin": "macos"}.get(sys.platform, sys.platform) - if platform not in dataset.platforms: - return False - if dataset.name in self.available_datasets: - raise ValueError(f"Dataset already registered with name: {dataset.name}") - self.available_datasets[dataset.name] = dataset - return True - - def _add_custom_benchmarks(self, benchmarks: List[Benchmark]) -> None: - """Register custom benchmarks with the compiler service. - - Benchmark registration occurs automatically using the - :meth:`env.benchmark ` - property, there is usually no need to call this method yourself. - - :param benchmarks: The benchmarks to register. - """ - if not benchmarks: - return - - for benchmark in benchmarks: - self._custom_benchmarks[benchmark.uri] = benchmark - - self.service( - self.service.stub.AddBenchmark, - AddBenchmarkRequest(benchmark=benchmarks), - ) + return self.datasets.add(dataset) def apply(self, state: CompilerEnvState) -> None: # noqa """Replay this state on the given an environment. - :param env: A :class:`CompilerEnv` instance. + :param env: A :class:`CompilerEnv ` + instance. + :raises ValueError: If this state cannot be applied. """ if not self.in_episode: @@ -1039,8 +1013,21 @@ def apply(self, state: CompilerEnvState) -> None: # noqa ) def validate(self, state: Optional[CompilerEnvState] = None) -> ValidationResult: - in_place = state is not None - state = state or self.state + """Validate an environment's state. + + :param state: A state to environment. If not provided, the current state + is validated. + + :returns: A :class:`ValidationResult `. + """ + if state: + self.reset(benchmark=state.benchmark) + in_place = False + else: + state = self.state + in_place = True + + assert self.in_episode errors: ValidationError = [] validation = { @@ -1108,13 +1095,10 @@ def validate(self, state: Optional[CompilerEnvState] = None) -> ValidationResult ) ) - # TODO(https://github.com/facebookresearch/CompilerGym/issues/45): - # Call the new self.benchmark.validation_callback() method - # once implemented. - validate_semantics = self.get_benchmark_validation_callback() - if validate_semantics: + benchmark = replay_target.benchmark + if benchmark.is_validatable(): validation["benchmark_semantics_validated"] = True - semantics_errors = list(validate_semantics(self)) + semantics_errors = benchmark.validate(replay_target) if semantics_errors: validation["benchmark_semantics_validation_failed"] = True errors += semantics_errors @@ -1124,19 +1108,30 @@ def validate(self, state: Optional[CompilerEnvState] = None) -> ValidationResult finally: fkd.close() - return ValidationResult( + return ValidationResult.construct( walltime=walltime.time, errors=errors, **validation, ) + @deprecated( + version="0.1.8", + reason=( + "Use :meth:`env.validate() " + "` instead. " + "`More information `_." + ), + ) def get_benchmark_validation_callback( self, ) -> Optional[Callable[["CompilerEnv"], Iterable[ValidationError]]]: - """Return a callback that validates benchmark semantics, if available. + """Return a callback that validates benchmark semantics, if available.""" - TODO(https://github.com/facebookresearch/CompilerGym/issues/45): This is - a temporary placeholder for what will eventually become a method on a - new Benchmark class. - """ - return None + def composed(env): + for validation_cb in self.benchmark.validation_callbacks(): + errors = validation_cb(env) + if errors: + yield from errors + + if self.benchmark.validation_callbacks(): + return composed diff --git a/compiler_gym/envs/llvm/BUILD b/compiler_gym/envs/llvm/BUILD index aff87007d..e819ac523 100644 --- a/compiler_gym/envs/llvm/BUILD +++ b/compiler_gym/envs/llvm/BUILD @@ -11,36 +11,26 @@ py_library( ":specs.py", ], data = ["//compiler_gym/envs/llvm/service"], - visibility = ["//compiler_gym:__subpackages__"], + visibility = ["//visibility:public"], deps = [ - ":benchmarks", + ":llvm_benchmark", ":llvm_env", "//compiler_gym/util", ], ) py_library( - name = "benchmarks", - srcs = ["benchmarks.py"], + name = "llvm_benchmark", + srcs = ["llvm_benchmark.py"], visibility = ["//compiler_gym:__subpackages__"], deps = [ + "//compiler_gym/datasets", "//compiler_gym/service/proto", "//compiler_gym/third_party/llvm", "//compiler_gym/util", ], ) -py_library( - name = "legacy_datasets", - srcs = ["legacy_datasets.py"], - visibility = ["//tests:__subpackages__"], - deps = [ - "//compiler_gym/datasets:dataset", - "//compiler_gym/third_party/llvm", - "//compiler_gym/util", - ], -) - py_library( name = "llvm_env", srcs = ["llvm_env.py"], @@ -48,10 +38,11 @@ py_library( "//compiler_gym/envs/llvm/service/passes:actions_genfiles", ], deps = [ - ":benchmarks", - ":legacy_datasets", + ":llvm_benchmark", ":llvm_rewards", + "//compiler_gym/datasets", "//compiler_gym/envs:compiler_env", + "//compiler_gym/envs/llvm/datasets", "//compiler_gym/spaces", "//compiler_gym/third_party/autophase", "//compiler_gym/third_party/inst2vec", diff --git a/compiler_gym/envs/llvm/__init__.py b/compiler_gym/envs/llvm/__init__.py index 3311282d2..451f8efc0 100644 --- a/compiler_gym/envs/llvm/__init__.py +++ b/compiler_gym/envs/llvm/__init__.py @@ -5,7 +5,7 @@ """Register the LLVM environments.""" from itertools import product -from compiler_gym.envs.llvm.benchmarks import ( +from compiler_gym.envs.llvm.llvm_benchmark import ( ClangInvocation, get_system_includes, make_benchmark, diff --git a/compiler_gym/envs/llvm/datasets/BUILD b/compiler_gym/envs/llvm/datasets/BUILD new file mode 100644 index 000000000..cd18149a0 --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/BUILD @@ -0,0 +1,26 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +load("@rules_python//python:defs.bzl", "py_library") + +py_library( + name = "datasets", + srcs = [ + "__init__.py", + "anghabench.py", + "cbench.py", + "clgen.py", + "csmith.py", + "llvm_stress.py", + "poj104.py", + ], + visibility = ["//visibility:public"], + deps = [ + "//compiler_gym/datasets", + "//compiler_gym/envs/llvm:llvm_benchmark", + "//compiler_gym/service/proto", + "//compiler_gym/third_party/llvm", + "//compiler_gym/util", + ], +) diff --git a/compiler_gym/envs/llvm/datasets/__init__.py b/compiler_gym/envs/llvm/datasets/__init__.py new file mode 100644 index 000000000..e83cf0d6a --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/__init__.py @@ -0,0 +1,262 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import sys +from pathlib import Path +from typing import Iterable, Optional + +from compiler_gym.datasets import Dataset, TarDatasetWithManifest +from compiler_gym.envs.llvm.datasets.anghabench import AnghaBenchDataset +from compiler_gym.envs.llvm.datasets.cbench import CBenchDataset, CBenchLegacyDataset +from compiler_gym.envs.llvm.datasets.clgen import CLgenDataset +from compiler_gym.envs.llvm.datasets.csmith import CsmithBenchmark, CsmithDataset +from compiler_gym.envs.llvm.datasets.llvm_stress import LlvmStressDataset +from compiler_gym.envs.llvm.datasets.poj104 import POJ104Dataset, POJ104LegacyDataset +from compiler_gym.util.runfiles_path import site_data_path + + +class BlasDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://blas-v0", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-blas-v0.tar.bz2" + ], + tar_sha256="e724a8114709f8480adeb9873d48e426e8d9444b00cddce48e342b9f0f2b096d", + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-blas-v0-manifest.bz2" + ], + manifest_sha256="6946437dcb0da5fad3ed8a7fd83eb4294964198391d5537b1310e22d7ceebff4", + references={ + "Paper": "https://strum355.netsoc.co/books/PDF/Basic%20Linear%20Algebra%20Subprograms%20for%20Fortran%20Usage%20-%20BLAS%20(1979).pdf", + "Homepage": "http://www.netlib.org/blas/", + }, + license="BSD 3-Clause", + strip_prefix="blas-v0", + description="Basic linear algebra kernels", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +class GitHubDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + manifest_url, manifest_sha256 = { + "darwin": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-github-v0-macos-manifest.bz2", + "10d933a7d608248be286d756b27813794789f7b87d8561c241d0897fb3238503", + ), + "linux": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-github-v0-linux-manifest.bz2", + "aede9ca78657b4694ada9a4592d93f0bbeb3b3bd0fff3b537209850228480d3b", + ), + }[sys.platform] + super().__init__( + name="benchmark://github-v0", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-github-v0.tar.bz2" + ], + tar_sha256="880269dd7a5c2508ea222a2e54c318c38c8090eb105c0a87c595e9dd31720764", + manifest_urls=[manifest_url], + manifest_sha256=manifest_sha256, + license="CC BY 4.0", + references={ + "Paper": "https://arxiv.org/pdf/2012.01470.pdf", + }, + strip_prefix="github-v0", + description="Compile-only C/C++ objects from GitHub", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +class LinuxDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + manifest_url, manifest_sha256 = { + "darwin": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-linux-v0-macos-manifest.bz2", + "dfc87b94c7a43e899e76507398a5af22178aebaebcb5d7e24e82088aeecb0690", + ), + "linux": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-linux-v0-linux-manifest.bz2", + "32ceb8576f683798010816ac605ee496f386ddbbe64be9e0796015d247a73f92", + ), + }[sys.platform] + super().__init__( + name="benchmark://linux-v0", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-linux-v0.tar.bz2" + ], + tar_sha256="a1ae5c376af30ab042c9e54dc432f89ce75f9ebaee953bc19c08aff070f12566", + manifest_urls=[manifest_url], + manifest_sha256=manifest_sha256, + references={"Homepage": "https://www.linux.org/"}, + license="GPL-2.0", + strip_prefix="linux-v0", + description="Compile-only object files from C Linux kernel", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +class MibenchDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://mibench-v0", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-mibench-v0.tar.bz2" + ], + tar_sha256="128c090c40b955b99fdf766da167a5f642018fb35c16a1d082f63be2e977eb13", + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-mibench-v0-manifest.bz2" + ], + manifest_sha256="8ed985d685b48f444a3312cd84ccc5debda4a839850e442a3cdc93910ba0dc5f", + references={ + "Paper": "http://vhosts.eecs.umich.edu/mibench/Publications/MiBench.pdf" + }, + license="BSD 3-Clause", + strip_prefix="mibench-v0", + description="C benchmarks", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +class NPBDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://npb-v0", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-npb-v0.tar.bz2" + ], + tar_sha256="793ac2e7a4f4ed83709e8a270371e65b724da09eaa0095c52e7f4209f63bb1f2", + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-npb-v0-manifest.bz2" + ], + manifest_sha256="89eccb7f1b0b9e1f82b9b900b9f686ff5b189a2a67a4f8969a15901cd315dba2", + references={ + "Paper": "http://optout.csc.ncsu.edu/~mueller/codeopt/codeopt05/projects/www4.ncsu.edu/~pgauria/csc791a/papers/NAS-95-020.pdf" + }, + license="NASA Open Source Agreement v1.3", + strip_prefix="npb-v0", + description="NASA Parallel Benchmarks", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +class OpenCVDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://opencv-v0", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-opencv-v0.tar.bz2" + ], + tar_sha256="003df853bd58df93572862ca2f934c7b129db2a3573bcae69a2e59431037205c", + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-opencv-v0-manifest.bz2" + ], + manifest_sha256="8de96f722fab18f3a2a74db74b4038c7947fe8b3da867c9260206fdf5338cd81", + references={ + "Paper": "https://mipro-proceedings.com/sites/mipro-proceedings.com/files/upload/sp/sp_008.pdf", + "Homepage": "https://opencv.org/", + }, + license="Apache 2.0", + strip_prefix="opencv-v0", + description="Compile-only object files from C++ OpenCV library", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +class TensorFlowDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://tensorflow-v0", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-tensorflow-v0.tar.bz2" + ], + tar_sha256="f77dd1988c772e8359e1303cc9aba0d73d5eb27e0c98415ac3348076ab94efd1", + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-tensorflow-v0-manifest.bz2" + ], + manifest_sha256="cffc45cd10250d483cb093dec913c8a7da64026686284cccf404623bd1da6da8", + references={ + "Paper": "https://www.usenix.org/system/files/conference/osdi16/osdi16-abadi.pdf", + "Homepage": "https://www.tensorflow.org/", + }, + license="Apache 2.0", + strip_prefix="tensorflow-v0", + description="Compile-only object files from C++ TensorFlow library", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + +def get_llvm_datasets(site_data_base: Optional[Path] = None) -> Iterable[Dataset]: + """Instantiate the builtin LLVM datasets. + + :param site_data_base: The root of the site data path. + + :return: An iterable sequence of :class:`Dataset + ` instances. + """ + site_data_base = site_data_base or site_data_path("llvm-v0") + + yield AnghaBenchDataset(site_data_base=site_data_base, sort_order=0) + yield BlasDataset(site_data_base=site_data_base, sort_order=0) + yield CLgenDataset(site_data_base=site_data_base, sort_order=0) + yield CBenchDataset(site_data_base=site_data_base, sort_order=-1) + # Add legacy version of cbench-v1 in which the 'b' was capitalized. This + # is deprecated and will be removed no earlier than v0.1.10. + yield CBenchDataset( + site_data_base=site_data_base, + name="benchmark://cBench-v1", + deprecated=( + "Please use 'benchmark://cbench-v1' (note the lowercase name). " + "The dataset is the same, only the name has changed" + ), + manifest_url="https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-cBench-v1-manifest.bz2", + manifest_sha256="635b94eeb2784dfedb3b53fd8f84517c3b4b95d851ddb662d4c1058c72dc81e0", + sort_order=100, + ) + yield CBenchLegacyDataset(site_data_base=site_data_base) + yield CsmithDataset(site_data_base=site_data_base, sort_order=0) + yield GitHubDataset(site_data_base=site_data_base, sort_order=0) + yield LinuxDataset(site_data_base=site_data_base, sort_order=0) + yield LlvmStressDataset(site_data_base=site_data_base, sort_order=0) + yield MibenchDataset(site_data_base=site_data_base, sort_order=0) + yield NPBDataset(site_data_base=site_data_base, sort_order=0) + yield OpenCVDataset(site_data_base=site_data_base, sort_order=0) + yield POJ104Dataset(site_data_base=site_data_base, sort_order=0) + yield POJ104LegacyDataset(site_data_base=site_data_base, sort_order=100) + yield TensorFlowDataset(site_data_base=site_data_base, sort_order=0) + + +__all__ = [ + "AnghaBenchDataset", + "BlasDataset", + "CBenchDataset", + "CBenchLegacyDataset", + "CLgenDataset", + "CsmithBenchmark", + "CsmithDataset", + "get_llvm_datasets", + "GitHubDataset", + "LinuxDataset", + "LlvmStressDataset", + "MibenchDataset", + "NPBDataset", + "OpenCVDataset", + "POJ104Dataset", + "POJ104LegacyDataset", + "TensorFlowDataset", +] diff --git a/compiler_gym/envs/llvm/datasets/anghabench.py b/compiler_gym/envs/llvm/datasets/anghabench.py new file mode 100644 index 000000000..bfcb46a65 --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/anghabench.py @@ -0,0 +1,121 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import subprocess +import sys +from concurrent.futures import as_completed +from pathlib import Path + +from compiler_gym.datasets import Benchmark, TarDatasetWithManifest +from compiler_gym.datasets.benchmark import BenchmarkWithSource +from compiler_gym.envs.llvm.llvm_benchmark import ClangInvocation +from compiler_gym.util import thread_pool +from compiler_gym.util.filesystem import atomic_file_write + + +class AnghaBenchDataset(TarDatasetWithManifest): + """A dataset of C programs curated from GitHub source code. + + The dataset is from: + + da Silva, Anderson Faustino, Bruno Conde Kind, José Wesley de Souza + Magalhaes, Jerônimo Nunes Rocha, Breno Campos Ferreira Guimaraes, and + Fernando Magno Quinão Pereira. "ANGHABENCH: A Suite with One Million + Compilable C Benchmarks for Code-Size Reduction." In 2021 IEEE/ACM + International Symposium on Code Generation and Optimization (CGO), + pp. 378-390. IEEE, 2021. + + And is available at: + + http://cuda.dcc.ufmg.br/angha/home + + Installation + ------------ + + The AnghaBench dataset consists of C functions that are compiled to LLVM-IR + on-demand and cached. The first time each benchmark is used there is an + overhead of compiling it from C to bitcode. This is a one-off cost. + """ + + def __init__(self, site_data_base: Path, sort_order: int = 0): + manifest_url, manifest_sha256 = { + "darwin": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-anghabench-v0-macos-manifest.bz2", + "39464256405aacefdb7550a7f990c9c578264c132804eec3daac091fa3c21bd1", + ), + "linux": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-anghabench-v0-linux-manifest.bz2", + "a038d25d39ee9472662a9704dfff19c9e3512ff6a70f1067af85c5cb3784b477", + ), + }[sys.platform] + super().__init__( + name="benchmark://anghabench-v0", + description="Compile-only C/C++ functions extracted from GitHub", + references={ + "Paper": "https://homepages.dcc.ufmg.br/~fernando/publications/papers/FaustinoCGO21.pdf", + "Homepage": "http://cuda.dcc.ufmg.br/angha/", + }, + license="Unknown. See: https://github.com/brenocfg/AnghaBench/issues/1", + site_data_base=site_data_base, + manifest_urls=[manifest_url], + manifest_sha256=manifest_sha256, + tar_urls=[ + "https://github.com/brenocfg/AnghaBench/archive/d8034ac8562b8c978376008f4b33df01b8887b19.tar.gz" + ], + tar_sha256="85d068e4ce44f2581e3355ee7a8f3ccb92568e9f5bd338bc3a918566f3aff42f", + strip_prefix="AnghaBench-d8034ac8562b8c978376008f4b33df01b8887b19", + tar_compression="gz", + benchmark_file_suffix=".bc", + sort_order=sort_order, + ) + + def benchmark(self, uri: str) -> Benchmark: + self.install() + + benchmark_name = uri[len(self.name) + 1 :] + if not benchmark_name: + raise LookupError(f"No benchmark specified: {uri}") + + # The absolute path of the file, without an extension. + path_stem = self.dataset_root / benchmark_name + + bitcode_abspath = Path(f"{path_stem}.bc") + c_file_abspath = Path(f"{path_stem}.c") + + # If the file does not exist, compile it on-demand. + if not bitcode_abspath.is_file(): + if not c_file_abspath.is_file(): + raise LookupError( + f"Benchmark not found: {uri} (file not found: {c_file_abspath})" + ) + + with atomic_file_write(bitcode_abspath) as tmp_path: + compile_cmd = ClangInvocation.from_c_file( + c_file_abspath, + copt=[ + "-ferror-limit=1", # Stop on first error. + "-w", # No warnings. + ], + ).command(outpath=tmp_path) + subprocess.check_call(compile_cmd, timeout=300) + + return BenchmarkWithSource.create( + uri, bitcode_abspath, "function.c", c_file_abspath + ) + + def compile_all(self): + n = self.size + executor = thread_pool.get_thread_pool_executor() + # Since the dataset is lazily compiled, simply iterating over the full + # set of URIs will compile everything. Do this in parallel. + futures = ( + executor.submit(self.benchmark, uri) for uri in self.benchmark_uris() + ) + for i, future in enumerate(as_completed(futures), start=1): + future.result() + print( + f"\r\033[KCompiled {i} of {n} programs ({i/n:.1%} complete)", + flush=True, + end="", + ) diff --git a/compiler_gym/envs/llvm/datasets/cbench.py b/compiler_gym/envs/llvm/datasets/cbench.py new file mode 100644 index 000000000..f8587ae2d --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/cbench.py @@ -0,0 +1,846 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import enum +import io +import logging +import os +import re +import shutil +import subprocess +import sys +import tarfile +import tempfile +from collections import defaultdict +from pathlib import Path +from threading import Lock +from typing import Callable, Dict, List, NamedTuple, Optional + +import fasteners + +from compiler_gym.datasets import Benchmark, TarDatasetWithManifest +from compiler_gym.third_party import llvm +from compiler_gym.util.download import download +from compiler_gym.util.runfiles_path import cache_path, site_data_path +from compiler_gym.util.timer import Timer +from compiler_gym.validation_result import ValidationError + +_CBENCH_TARS = { + "macos": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-cBench-v1-macos.tar.bz2", + "90b312b40317d9ee9ed09b4b57d378879f05e8970bb6de80dc8581ad0e36c84f", + ), + "linux": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-cBench-v1-linux.tar.bz2", + "601fff3944c866f6617e653b6eb5c1521382c935f56ca1f36a9f5cf1a49f3de5", + ), +} + +_CBENCH_RUNTOME_DATA = ( + "https://dl.fbaipublicfiles.com/compiler_gym/cBench-v0-runtime-data.tar.bz2", + "a1b5b5d6b115e5809ccaefc2134434494271d184da67e2ee43d7f84d07329055", +) + + +if sys.platform == "darwin": + _COMPILE_ARGS = [ + "-L", + "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib", + ] +else: + _COMPILE_ARGS = [] + + +class LlvmSanitizer(enum.IntEnum): + """The LLVM sanitizers.""" + + ASAN = 1 + TSAN = 2 + MSAN = 3 + UBSAN = 4 + + +# Compiler flags that are enabled by sanitizers. +_SANITIZER_FLAGS = { + LlvmSanitizer.ASAN: ["-O1", "-g", "-fsanitize=address", "-fno-omit-frame-pointer"], + LlvmSanitizer.TSAN: ["-O1", "-g", "-fsanitize=thread"], + LlvmSanitizer.MSAN: ["-O1", "-g", "-fsanitize=memory"], + LlvmSanitizer.UBSAN: ["-fsanitize=undefined"], +} + + +class BenchmarkExecutionResult(NamedTuple): + """The result of running a benchmark.""" + + walltime_seconds: float + """The execution time in seconds.""" + + error: Optional[ValidationError] = None + """An error.""" + + output: Optional[str] = None + """The output generated by the benchmark.""" + + def json(self): + return self._asdict() # pylint: disable=no-member + + +def _compile_and_run_bitcode_file( + bitcode_file: Path, + cmd: str, + cwd: Path, + linkopts: List[str], + env: Dict[str, str], + num_runs: int, + logger: logging.Logger, + sanitizer: Optional[LlvmSanitizer] = None, + timeout_seconds: float = 300, + compilation_timeout_seconds: float = 60, +) -> BenchmarkExecutionResult: + """Run the given cBench benchmark.""" + # cBench benchmarks expect that a file _finfo_dataset exists in the + # current working directory and contains the number of benchmark + # iterations in it. + with open(cwd / "_finfo_dataset", "w") as f: + print(num_runs, file=f) + + # Create a barebones execution environment for the benchmark. + run_env = { + "TMPDIR": os.environ.get("TMPDIR", ""), + "HOME": os.environ.get("HOME", ""), + "USER": os.environ.get("USER", ""), + # Disable all logging from GRPC. In the past I have had false-positive + # "Wrong output" errors caused by GRPC error messages being logged to + # stderr. + "GRPC_VERBOSITY": "NONE", + } + run_env.update(env) + + error_data = {} + + if sanitizer: + clang_path = llvm.clang_path() + binary = cwd / "a.out" + error_data["run_cmd"] = cmd.replace("$BIN", "./a.out") + # Generate the a.out binary file. + compile_cmd = ( + [clang_path.name, str(bitcode_file), "-o", str(binary)] + + _COMPILE_ARGS + + list(linkopts) + + _SANITIZER_FLAGS.get(sanitizer, []) + ) + error_data["compile_cmd"] = compile_cmd + logger.debug("compile: %s", compile_cmd) + assert not binary.is_file() + clang = subprocess.Popen( + compile_cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + universal_newlines=True, + env={"PATH": f"{clang_path.parent}:{os.environ.get('PATH', '')}"}, + ) + try: + output, _ = clang.communicate(timeout=compilation_timeout_seconds) + except subprocess.TimeoutExpired: + clang.kill() + error_data["timeout"] = compilation_timeout_seconds + return BenchmarkExecutionResult( + walltime_seconds=timeout_seconds, + error=ValidationError( + type="Compilation timeout", + data=error_data, + ), + ) + if clang.returncode: + error_data["output"] = output + return BenchmarkExecutionResult( + walltime_seconds=timeout_seconds, + error=ValidationError( + type="Compilation failed", + data=error_data, + ), + ) + assert binary.is_file() + else: + lli_path = llvm.lli_path() + error_data["run_cmd"] = cmd.replace("$BIN", f"{lli_path.name} benchmark.bc") + run_env["PATH"] = str(lli_path.parent) + + try: + logger.debug("exec: %s", error_data["run_cmd"]) + process = subprocess.Popen( + error_data["run_cmd"], + shell=True, + stderr=subprocess.STDOUT, + stdout=subprocess.PIPE, + env=run_env, + cwd=cwd, + ) + + with Timer() as timer: + stdout, _ = process.communicate(timeout=timeout_seconds) + except subprocess.TimeoutExpired: + process.kill() + error_data["timeout_seconds"] = timeout_seconds + return BenchmarkExecutionResult( + walltime_seconds=timeout_seconds, + error=ValidationError( + type="Execution timeout", + data=error_data, + ), + ) + finally: + if sanitizer: + binary.unlink() + + try: + output = stdout.decode("utf-8") + except UnicodeDecodeError: + output = "" + + if process.returncode: + # Runtime error. + if sanitizer == LlvmSanitizer.ASAN and "LeakSanitizer" in output: + error_type = "Memory leak" + elif sanitizer == LlvmSanitizer.ASAN and "AddressSanitizer" in output: + error_type = "Memory error" + elif sanitizer == LlvmSanitizer.MSAN and "MemorySanitizer" in output: + error_type = "Memory error" + elif "Segmentation fault" in output: + error_type = "Segmentation fault" + elif "Illegal Instruction" in output: + error_type = "Illegal Instruction" + else: + error_type = f"Runtime error ({process.returncode})" + + error_data["return_code"] = process.returncode + error_data["output"] = output + return BenchmarkExecutionResult( + walltime_seconds=timer.time, + error=ValidationError( + type=error_type, + data=error_data, + ), + ) + return BenchmarkExecutionResult(walltime_seconds=timer.time, output=output) + + +def download_cBench_runtime_data() -> bool: + """Download and unpack the cBench runtime dataset.""" + cbench_data = site_data_path("llvm-v0/cbench-v1-runtime-data/runtime_data") + if (cbench_data / "unpacked").is_file(): + return False + else: + # Clean up any partially-extracted data directory. + if cbench_data.is_dir(): + shutil.rmtree(cbench_data) + + url, sha256 = _CBENCH_RUNTOME_DATA + tar_contents = io.BytesIO(download(url, sha256)) + with tarfile.open(fileobj=tar_contents, mode="r:bz2") as tar: + cbench_data.parent.mkdir(parents=True, exist_ok=True) + tar.extractall(cbench_data.parent) + assert cbench_data.is_dir() + # Create the marker file to indicate that the directory is unpacked + # and ready to go. + (cbench_data / "unpacked").touch() + return True + + +# Thread lock to prevent race on download_cBench_runtime_data() from +# multi-threading. This works in tandem with the inter-process file lock - both +# are required. +_CBENCH_DOWNLOAD_THREAD_LOCK = Lock() + + +def _make_cBench_validator( + cmd: str, + linkopts: List[str], + os_env: Dict[str, str], + num_runs: int = 1, + compare_output: bool = True, + input_files: Optional[List[Path]] = None, + output_files: Optional[List[Path]] = None, + validate_result: Optional[ + Callable[[BenchmarkExecutionResult], Optional[str]] + ] = None, + pre_execution_callback: Optional[Callable[[Path], None]] = None, + sanitizer: Optional[LlvmSanitizer] = None, + flakiness: int = 5, +) -> Callable[["LlvmEnv"], Optional[ValidationError]]: # noqa: F821 + """Construct a validation callback for a cBench benchmark. See validator() for usage.""" + input_files = input_files or [] + output_files = output_files or [] + + def validator_cb(env: "LlvmEnv") -> Optional[ValidationError]: # noqa: F821 + """The validation callback.""" + with _CBENCH_DOWNLOAD_THREAD_LOCK: + with fasteners.InterProcessLock(cache_path("cbench-v1-runtime-data.LOCK")): + download_cBench_runtime_data() + + cbench_data = site_data_path("llvm-v0/cbench-v1-runtime-data/runtime_data") + for input_file_name in input_files: + path = cbench_data / input_file_name + if not path.is_file(): + raise FileNotFoundError(f"Required benchmark input not found: {path}") + + # Create a temporary working directory to execute the benchmark in. + with tempfile.TemporaryDirectory(dir=env.service.connection.working_dir) as d: + cwd = Path(d) + + # Expand shell variable substitutions in the benchmark command. + expanded_command = cmd.replace("$D", str(cbench_data)) + + # Translate the output file names into paths inside the working + # directory. + output_paths = [cwd / o for o in output_files] + + if pre_execution_callback: + pre_execution_callback(cwd) + + # Produce a gold-standard output using a reference version of + # the benchmark. + if compare_output or output_files: + gs_env = env.fork() + try: + # Reset to the original benchmark state and compile it. + gs_env.reset(benchmark=env.benchmark) + gs_env.write_bitcode(cwd / "benchmark.bc") + gold_standard = _compile_and_run_bitcode_file( + bitcode_file=cwd / "benchmark.bc", + cmd=expanded_command, + cwd=cwd, + num_runs=1, + # Use default optimizations for gold standard. + linkopts=linkopts + ["-O2"], + # Always assume safe. + sanitizer=None, + logger=env.logger, + env=os_env, + ) + if gold_standard.error: + return ValidationError( + type=f"Gold standard: {gold_standard.error.type}", + data=gold_standard.error.data, + ) + finally: + gs_env.close() + + # Check that the reference run produced the expected output + # files. + for path in output_paths: + if not path.is_file(): + try: + output = gold_standard.output + except UnicodeDecodeError: + output = "" + raise FileNotFoundError( + f"Expected file '{path.name}' not generated\n" + f"Benchmark: {env.benchmark}\n" + f"Command: {cmd}\n" + f"Output: {output}" + ) + path.rename(f"{path}.gold_standard") + + # Serialize the benchmark to a bitcode file that will then be + # compiled to a binary. + env.write_bitcode(cwd / "benchmark.bc") + outcome = _compile_and_run_bitcode_file( + bitcode_file=cwd / "benchmark.bc", + cmd=expanded_command, + cwd=cwd, + num_runs=num_runs, + linkopts=linkopts, + sanitizer=sanitizer, + logger=env.logger, + env=os_env, + ) + + if outcome.error: + return outcome.error + + # Run a user-specified validation hook. + if validate_result: + validate_result(outcome) + + # Difftest the console output. + if compare_output and gold_standard.output != outcome.output: + return ValidationError( + type="Wrong output", + data={"expected": gold_standard.output, "actual": outcome.output}, + ) + + # Difftest the output files. + for path in output_paths: + if not path.is_file(): + return ValidationError( + type="Output not generated", + data={"path": path.name, "command": cmd}, + ) + diff = subprocess.Popen( + ["diff", str(path), f"{path}.gold_standard"], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + ) + stdout, _ = diff.communicate() + if diff.returncode: + try: + stdout = stdout.decode("utf-8") + return ValidationError( + type="Wrong output (file)", + data={"path": path.name, "diff": stdout}, + ) + except UnicodeDecodeError: + return ValidationError( + type="Wrong output (file)", + data={"path": path.name, "diff": ""}, + ) + + def flaky_wrapped_cb(env: "LlvmEnv") -> Optional[ValidationError]: # noqa: F821 + """Wrap the validation callback in a flakiness retry loop.""" + for j in range(1, max(flakiness, 1) + 1): + try: + error = validator_cb(env) + if not error: + return + except TimeoutError: + # Timeout errors can be raised by the environment in case of a + # slow step / observation, and should be retried. + pass + env.logger.warning( + "Validation callback failed, attempt=%d/%d", j, flakiness + ) + return error + + return flaky_wrapped_cb + + +def validator( + benchmark: str, + cmd: str, + data: Optional[List[str]] = None, + outs: Optional[List[str]] = None, + platforms: Optional[List[str]] = None, + compare_output: bool = True, + validate_result: Optional[ + Callable[[BenchmarkExecutionResult], Optional[str]] + ] = None, + linkopts: Optional[List[str]] = None, + env: Optional[Dict[str, str]] = None, + pre_execution_callback: Optional[Callable[[], None]] = None, + sanitizers: Optional[List[LlvmSanitizer]] = None, +) -> bool: + """Declare a new benchmark validator. + + TODO(cummins): Pull this out into a public API. + + :param benchmark: The name of the benchmark that this validator supports. + :cmd: The shell command to run the validation. Variable substitution is + applied to this value as follows: :code:`$BIN` is replaced by the path + of the compiled binary and :code:`$D` is replaced with the path to the + benchmark's runtime data directory. + :data: A list of paths to input files. + :outs: A list of paths to output files. + :return: :code:`True` if the new validator was registered, else :code:`False`. + """ + platforms = platforms or ["linux", "macos"] + if {"darwin": "macos"}.get(sys.platform, sys.platform) not in platforms: + return False + infiles = data or [] + outfiles = [Path(p) for p in outs or []] + linkopts = linkopts or [] + env = env or {} + if sanitizers is None: + sanitizers = LlvmSanitizer + + VALIDATORS[benchmark].append( + _make_cBench_validator( + cmd=cmd, + input_files=infiles, + output_files=outfiles, + compare_output=compare_output, + validate_result=validate_result, + linkopts=linkopts, + os_env=env, + pre_execution_callback=pre_execution_callback, + ) + ) + + # Register additional validators using the sanitizers. + if sys.platform.startswith("linux"): + for sanitizer in sanitizers: + VALIDATORS[benchmark].append( + _make_cBench_validator( + cmd=cmd, + input_files=infiles, + output_files=outfiles, + compare_output=compare_output, + validate_result=validate_result, + linkopts=linkopts, + os_env=env, + pre_execution_callback=pre_execution_callback, + sanitizer=sanitizer, + ) + ) + + return True + + +class CBenchBenchmark(Benchmark): + """A cBench benchmmark.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + for val in VALIDATORS.get(self.uri, []): + self.add_validation_callback(val) + + +class CBenchDataset(TarDatasetWithManifest): + def __init__( + self, + site_data_base: Path, + sort_order: int = 0, + name="benchmark://cbench-v1", + manifest_url="https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-cbench-v1-manifest.bz2", + manifest_sha256="eeffd7593aeb696a160fd22e6b0c382198a65d0918b8440253ea458cfe927741", + deprecated=None, + ): + platform = {"darwin": "macos"}.get(sys.platform, sys.platform) + url, sha256 = _CBENCH_TARS[platform] + super().__init__( + name=name, + description="Runnable C benchmarks", + license="BSD 3-Clause", + references={ + "Paper": "https://arxiv.org/pdf/1407.3487.pdf", + "Homepage": "https://ctuning.org/wiki/index.php/CTools:CBench", + }, + tar_urls=[url], + tar_sha256=sha256, + manifest_urls=[manifest_url], + manifest_sha256=manifest_sha256, + strip_prefix="cBench-v1", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + benchmark_class=CBenchBenchmark, + deprecated=deprecated, + validatable="Partially", + ) + + +# URLs of the deprecated cBench datasets. +_CBENCH_LEGACY_TARS = { + "macos": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-cBench-v0-macos.tar.bz2", + "072a730c86144a07bba948c49afe543e4f06351f1cb17f7de77f91d5c1a1b120", + ), + "linux": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-cBench-v0-linux.tar.bz2", + "9b5838a90895579aab3b9375e8eeb3ed2ae58e0ad354fec7eb4f8b31ecb4a360", + ), +} + + +class CBenchLegacyDataset(TarDatasetWithManifest): + # The difference between cbench-v0 and cbench-v1 is the arguments passed to + # clang when preparing the LLVM bitcodes: + # + # - v0: `-O0 -Xclang -disable-O0-optnone`. + # - v1: `-O1 -Xclang -Xclang -disable-llvm-passes`. + # + # The key difference with is that in v0, the generated IR functions were + # annotated with a `noinline` attribute that prevented inline. In v1 that is + # no longer the case. + def __init__(self, site_data_base: Path): + platform = {"darwin": "macos"}.get(sys.platform, sys.platform) + url, sha256 = _CBENCH_LEGACY_TARS[platform] + super().__init__( + name="benchmark://cBench-v0", + description="Runnable C benchmarks", + license="BSD 3-Clause", + references={ + "Paper": "https://arxiv.org/pdf/1407.3487.pdf", + "Homepage": "https://ctuning.org/wiki/index.php/CTools:CBench", + }, + tar_urls=[url], + tar_sha256=sha256, + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-cBench-v0-manifest.bz2" + ], + manifest_sha256="635b94eeb2784dfedb3b53fd8f84517c3b4b95d851ddb662d4c1058c72dc81e0", + strip_prefix="cBench-v0", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + deprecated="Please use 'benchmark://cbench-v1'", + ) + + +# =============================== +# Definition of cBench validators +# =============================== + + +# A map from benchmark name to validation callbacks. +VALIDATORS: Dict[ + str, List[Callable[["LlvmEnv"], Optional[str]]] # noqa: F821 +] = defaultdict(list) + + +def validate_sha_output(result: BenchmarkExecutionResult) -> Optional[str]: + """SHA benchmark prints 5 random hex strings. Normally these hex strings are + 16 characters but occasionally they are less (presumably because of a + leading zero being omitted). + """ + try: + if not re.match( + r"[0-9a-f]{0,16} [0-9a-f]{0,16} [0-9a-f]{0,16} [0-9a-f]{0,16} [0-9a-f]{0,16}", + result.output.rstrip(), + ): + return "Failed to parse hex output" + except UnicodeDecodeError: + return "Failed to parse unicode output" + + +def setup_ghostscript_library_files(dataset_id: int) -> Callable[[Path], None]: + """Make a pre-execution setup hook for ghostscript.""" + + def setup(cwd: Path): + cbench_data = site_data_path("llvm-v0/cbench-v1-runtime-data/runtime_data") + # Copy the input data file into the current directory since ghostscript + # doesn't like long input paths. + shutil.copyfile( + cbench_data / "office_data" / f"{dataset_id}.ps", cwd / "input.ps" + ) + # Ghostscript doesn't like the library files being symlinks so copy them + # into the working directory as regular files. + for path in (cbench_data / "ghostscript").iterdir(): + if path.name.endswith(".ps"): + shutil.copyfile(path, cwd / path.name) + + return setup + + +validator( + benchmark="benchmark://cbench-v1/bitcount", + cmd="$BIN 1125000", +) + +validator( + benchmark="benchmark://cbench-v1/bitcount", + cmd="$BIN 512", +) + +for i in range(1, 21): + + # NOTE(cummins): Disabled due to timeout errors, further investigation + # needed. + # + # validator( + # benchmark="benchmark://cbench-v1/adpcm", + # cmd=f"$BIN $D/telecom_data/{i}.adpcm", + # data=[f"telecom_data/{i}.adpcm"], + # ) + # + # validator( + # benchmark="benchmark://cbench-v1/adpcm", + # cmd=f"$BIN $D/telecom_data/{i}.pcm", + # data=[f"telecom_data/{i}.pcm"], + # ) + + validator( + benchmark="benchmark://cbench-v1/blowfish", + cmd=f"$BIN d $D/office_data/{i}.benc output.txt 1234567890abcdeffedcba0987654321", + data=[f"office_data/{i}.benc"], + outs=["output.txt"], + ) + + validator( + benchmark="benchmark://cbench-v1/bzip2", + cmd=f"$BIN -d -k -f -c $D/bzip2_data/{i}.bz2", + data=[f"bzip2_data/{i}.bz2"], + ) + + validator( + benchmark="benchmark://cbench-v1/crc32", + cmd=f"$BIN $D/telecom_data/{i}.pcm", + data=[f"telecom_data/{i}.pcm"], + ) + + validator( + benchmark="benchmark://cbench-v1/dijkstra", + cmd=f"$BIN $D/network_dijkstra_data/{i}.dat", + data=[f"network_dijkstra_data/{i}.dat"], + ) + + validator( + benchmark="benchmark://cbench-v1/gsm", + cmd=f"$BIN -fps -c $D/telecom_gsm_data/{i}.au", + data=[f"telecom_gsm_data/{i}.au"], + ) + + # NOTE(cummins): ispell fails with returncode 1 and no output when run + # under safe optimizations. + # + # validator( + # benchmark="benchmark://cbench-v1/ispell", + # cmd=f"$BIN -a -d americanmed+ $D/office_data/{i}.txt", + # data = [f"office_data/{i}.txt"], + # ) + + validator( + benchmark="benchmark://cbench-v1/jpeg-c", + cmd=f"$BIN -dct int -progressive -outfile output.jpeg $D/consumer_jpeg_data/{i}.ppm", + data=[f"consumer_jpeg_data/{i}.ppm"], + outs=["output.jpeg"], + # NOTE(cummins): AddressSanitizer disabled because of + # global-buffer-overflow in regular build. + sanitizers=[LlvmSanitizer.TSAN, LlvmSanitizer.UBSAN], + ) + + validator( + benchmark="benchmark://cbench-v1/jpeg-d", + cmd=f"$BIN -dct int -outfile output.ppm $D/consumer_jpeg_data/{i}.jpg", + data=[f"consumer_jpeg_data/{i}.jpg"], + outs=["output.ppm"], + ) + + validator( + benchmark="benchmark://cbench-v1/patricia", + cmd=f"$BIN $D/network_patricia_data/{i}.udp", + data=[f"network_patricia_data/{i}.udp"], + env={ + # NOTE(cummins): Benchmark leaks when executed with safe optimizations. + "ASAN_OPTIONS": "detect_leaks=0", + }, + ) + + validator( + benchmark="benchmark://cbench-v1/qsort", + cmd=f"$BIN $D/automotive_qsort_data/{i}.dat", + data=[f"automotive_qsort_data/{i}.dat"], + outs=["sorted_output.dat"], + linkopts=["-lm"], + ) + + # NOTE(cummins): Rijndael benchmark disabled due to memory errors under + # basic optimizations. + # + # validator(benchmark="benchmark://cbench-v1/rijndael", cmd=f"$BIN + # $D/office_data/{i}.enc output.dec d + # 1234567890abcdeffedcba09876543211234567890abcdeffedcba0987654321", + # data=[f"office_data/{i}.enc"], outs=["output.dec"], + # ) + # + # validator(benchmark="benchmark://cbench-v1/rijndael", cmd=f"$BIN + # $D/office_data/{i}.txt output.enc e + # 1234567890abcdeffedcba09876543211234567890abcdeffedcba0987654321", + # data=[f"office_data/{i}.txt"], outs=["output.enc"], + # ) + + validator( + benchmark="benchmark://cbench-v1/sha", + cmd=f"$BIN $D/office_data/{i}.txt", + data=[f"office_data/{i}.txt"], + compare_output=False, + validate_result=validate_sha_output, + ) + + validator( + benchmark="benchmark://cbench-v1/stringsearch", + cmd=f"$BIN $D/office_data/{i}.txt $D/office_data/{i}.s.txt output.txt", + data=[f"office_data/{i}.txt"], + outs=["output.txt"], + env={ + # NOTE(cummins): Benchmark leaks when executed with safe optimizations. + "ASAN_OPTIONS": "detect_leaks=0", + }, + linkopts=["-lm"], + ) + + # NOTE(cummins): The stringsearch2 benchmark has a very long execution time. + # Use only a single input to keep the validation time reasonable. I have + # also observed Segmentation fault on gold standard using 4.txt and 6.txt. + if i == 1: + validator( + benchmark="benchmark://cbench-v1/stringsearch2", + cmd=f"$BIN $D/office_data/{i}.txt $D/office_data/{i}.s.txt output.txt", + data=[f"office_data/{i}.txt"], + outs=["output.txt"], + env={ + # NOTE(cummins): Benchmark leaks when executed with safe optimizations. + "ASAN_OPTIONS": "detect_leaks=0", + }, + # TSAN disabled because of extremely long execution leading to + # timeouts. + sanitizers=[LlvmSanitizer.ASAN, LlvmSanitizer.MSAN, LlvmSanitizer.UBSAN], + ) + + validator( + benchmark="benchmark://cbench-v1/susan", + cmd=f"$BIN $D/automotive_susan_data/{i}.pgm output_large.corners.pgm -c", + data=[f"automotive_susan_data/{i}.pgm"], + outs=["output_large.corners.pgm"], + linkopts=["-lm"], + ) + + validator( + benchmark="benchmark://cbench-v1/tiff2bw", + cmd=f"$BIN $D/consumer_tiff_data/{i}.tif output.tif", + data=[f"consumer_tiff_data/{i}.tif"], + outs=["output.tif"], + linkopts=["-lm"], + env={ + # NOTE(cummins): Benchmark leaks when executed with safe optimizations. + "ASAN_OPTIONS": "detect_leaks=0", + }, + ) + + validator( + benchmark="benchmark://cbench-v1/tiff2rgba", + cmd=f"$BIN $D/consumer_tiff_data/{i}.tif output.tif", + data=[f"consumer_tiff_data/{i}.tif"], + outs=["output.tif"], + linkopts=["-lm"], + ) + + validator( + benchmark="benchmark://cbench-v1/tiffdither", + cmd=f"$BIN $D/consumer_tiff_data/{i}.bw.tif out.tif", + data=[f"consumer_tiff_data/{i}.bw.tif"], + outs=["out.tif"], + linkopts=["-lm"], + ) + + validator( + benchmark="benchmark://cbench-v1/tiffmedian", + cmd=f"$BIN $D/consumer_tiff_data/{i}.nocomp.tif output.tif", + data=[f"consumer_tiff_data/{i}.nocomp.tif"], + outs=["output.tif"], + linkopts=["-lm"], + ) + + # NOTE(cummins): On macOS the following benchmarks abort with an illegal + # hardware instruction error. + # if sys.platform != "darwin": + # validator( + # benchmark="benchmark://cbench-v1/lame", + # cmd=f"$BIN $D/consumer_data/{i}.wav output.mp3", + # data=[f"consumer_data/{i}.wav"], + # outs=["output.mp3"], + # compare_output=False, + # linkopts=["-lm"], + # ) + + # NOTE(cummins): Segfault on gold standard. + # + # validator( + # benchmark="benchmark://cbench-v1/ghostscript", + # cmd="$BIN -sDEVICE=ppm -dNOPAUSE -dQUIET -sOutputFile=output.ppm -- input.ps", + # data=[f"office_data/{i}.ps"], + # outs=["output.ppm"], + # linkopts=["-lm", "-lz"], + # pre_execution_callback=setup_ghostscript_library_files(i), + # ) diff --git a/compiler_gym/envs/llvm/datasets/clgen.py b/compiler_gym/envs/llvm/datasets/clgen.py new file mode 100644 index 000000000..cb000b262 --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/clgen.py @@ -0,0 +1,168 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import io +import shutil +import subprocess +import tarfile +from pathlib import Path +from typing import List + +from fasteners import InterProcessLock + +from compiler_gym.datasets import Benchmark, BenchmarkInitError, TarDatasetWithManifest +from compiler_gym.datasets.benchmark import BenchmarkWithSource +from compiler_gym.envs.llvm.llvm_benchmark import ClangInvocation +from compiler_gym.util.download import download +from compiler_gym.util.filesystem import atomic_file_write +from compiler_gym.util.truncate import truncate + + +class CLgenDataset(TarDatasetWithManifest): + """The CLgen dataset contains 1000 synthetically generated OpenCL kernels. + + The dataset is from: + + Cummins, Chris, Pavlos Petoumenos, Zheng Wang, and Hugh Leather. + "Synthesizing benchmarks for predictive modeling." In 2017 IEEE/ACM + International Symposium on Code Generation and Optimization (CGO), + pp. 86-99. IEEE, 2017. + + And is available at: + + https://github.com/ChrisCummins/paper-synthesizing-benchmarks + + Installation + ------------ + + The CLgen dataset consists of OpenCL kernels that are compiled to LLVM-IR + on-demand and cached. The first time each benchmark is used there is an + overhead of compiling it from OpenCL to bitcode. This is a one-off cost. + Compiling OpenCL to bitcode requires third party headers that are downloaded + on the first call to :code:`install()`. + """ + + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://clgen-v0", + description="Synthetically generated OpenCL kernels", + references={ + "Paper": "https://chriscummins.cc/pub/2017-cgo.pdf", + "Homepage": "https://github.com/ChrisCummins/clgen", + }, + license="GNU General Public License v3.0", + site_data_base=site_data_base, + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-clgen-v0-manifest.bz2" + ], + manifest_sha256="d2bbc1da5a24a8cb03b604d1d8e59227b33bdfcd964ebe741ca8339f1c8d65cc", + tar_urls=[ + "https://github.com/ChrisCummins/paper-synthesizing-benchmarks/raw/e45b6dffe9998f612624f05a6c4878ab4bcc84ec/data/clgen-1000.tar.bz2" + ], + tar_sha256="0bbd1b737f2537305e4db09b2971a5fa848b7c3a978bff6b570f45d1a488a72c", + strip_prefix="clgen-1000/kernels", + tar_compression="bz2", + benchmark_file_suffix=".bc", + sort_order=sort_order, + ) + + self._opencl_installed = False + self._opencl_headers_installed_marker = ( + self._site_data_path / ".opencl-installed" + ) + self.libclc_dir = self.site_data_path / "libclc" + self.opencl_h_path = self.site_data_path / "opencl.h" + + def install(self): + super().install() + + if not self._opencl_installed: + self._opencl_installed = self._opencl_headers_installed_marker.is_file() + + if self._opencl_installed: + return + + with self._tar_lock, InterProcessLock(self._tar_lockfile): + # Repeat install check now that we are in the locked region. + if self._opencl_headers_installed_marker.is_file(): + return + + # Download the libclc headers. + shutil.rmtree(self.libclc_dir, ignore_errors=True) + self.logger.info("Downloading OpenCL headers") + tar_data = io.BytesIO( + download( + "https://dl.fbaipublicfiles.com/compiler_gym/libclc-v0.tar.bz2", + sha256="f1c511f2ac12adf98dcc0fbfc4e09d0f755fa403c18f1fb1ffa5547e1fa1a499", + ) + ) + with tarfile.open(fileobj=tar_data, mode="r:bz2") as arc: + arc.extractall(str(self.site_data_path / "libclc")) + + # Download the OpenCL header. + with open(self.opencl_h_path, "wb") as f: + f.write( + download( + "https://github.com/ChrisCummins/clgen/raw/463c0adcd8abcf2432b24df0aca594b77a69e9d3/deeplearning/clgen/data/include/opencl.h", + sha256="f95b9f4c8b1d09114e491846d0d41425d24930ac167e024f45dab8071d19f3f7", + ) + ) + + self._opencl_headers_installed_marker.touch() + + def benchmark(self, uri: str) -> Benchmark: + self.install() + + benchmark_name = uri[len(self.name) + 1 :] + if not benchmark_name: + raise LookupError(f"No benchmark specified: {uri}") + + # The absolute path of the file, without an extension. + path_stem = self.dataset_root / uri[len(self.name) + 1 :] + + bc_path, cl_path = Path(f"{path_stem}.bc"), Path(f"{path_stem}.cl") + + # If the file does not exist, compile it on-demand. + if not bc_path.is_file(): + if not cl_path.is_file(): + raise LookupError( + f"Benchmark not found: {uri} (file not found: {cl_path}, path_stem {path_stem})" + ) + + # Compile the OpenCL kernel into a bitcode file. + with atomic_file_write(bc_path) as tmp_bc_path: + compile_command: List[str] = ClangInvocation.from_c_file( + cl_path, + copt=[ + "-isystem", + str(self.libclc_dir), + "-include", + str(self.opencl_h_path), + "-target", + "nvptx64-nvidia-nvcl", + "-ferror-limit=1", # Stop on first error. + "-w", # No warnings. + ], + ).command(outpath=tmp_bc_path) + self.logger.debug("Exec %s", compile_command) + clang = subprocess.Popen( + compile_command, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + _, stderr = clang.communicate(timeout=300) + + if clang.returncode: + compile_command = " ".join(compile_command) + error = truncate( + stderr.decode("utf-8"), max_lines=20, max_line_len=20000 + ) + raise BenchmarkInitError( + f"Compilation job failed!\n" + f"Command: {compile_command}\n" + f"Error: {error}" + ) + + return BenchmarkWithSource.create(uri, bc_path, "kernel.cl", cl_path) diff --git a/compiler_gym/envs/llvm/datasets/csmith.py b/compiler_gym/envs/llvm/datasets/csmith.py new file mode 100644 index 000000000..dfe51e435 --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/csmith.py @@ -0,0 +1,275 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import io +import logging +import subprocess +import sys +import tarfile +import tempfile +from pathlib import Path +from threading import Lock +from typing import Iterable, List + +from fasteners import InterProcessLock + +from compiler_gym.datasets import Benchmark, BenchmarkSource, Dataset +from compiler_gym.datasets.benchmark import BenchmarkInitError, BenchmarkWithSource +from compiler_gym.datasets.dataset import DatasetInitError +from compiler_gym.envs.llvm.llvm_benchmark import ClangInvocation +from compiler_gym.util.decorators import memoized_property +from compiler_gym.util.download import download +from compiler_gym.util.runfiles_path import transient_cache_path +from compiler_gym.util.truncate import truncate + +# The maximum value for the --seed argument to csmith. +UINT_MAX = (2 ** 32) - 1 + + +class CsmithBenchmark(BenchmarkWithSource): + """A CSmith benchmark.""" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self._src = None + + @classmethod + def create(cls, uri: str, bitcode: bytes, src: bytes) -> Benchmark: + """Create a benchmark from paths.""" + benchmark = cls.from_file_contents(uri, bitcode) + benchmark._src = src # pylint: disable=protected-access + return benchmark + + @memoized_property + def sources(self) -> Iterable[BenchmarkSource]: + return [ + BenchmarkSource(filename="source.c", contents=self._src), + ] + + @property + def source(self) -> str: + """Return the single source file contents as a string.""" + return self._src.decode("utf-8") + + +class CsmithBuildError(DatasetInitError): + """Error raised if :meth:`CsmithDataset.install() + ` fails.""" + + def __init__(self, failing_stage: str, stdout: str, stderr: str): + install_instructions = { + "linux": "sudo apt install g++ m4", + "darwin": "brew install m4", + }[sys.platform] + + super().__init__( + "\n".join( + [ + f"Failed to build Csmith from source, `{failing_stage}` failed.", + "You may be missing installation dependencies. Install them using:", + f" {install_instructions}", + "See https://github.com/csmith-project/csmith#install-csmith for more details", + f"--- Start `{failing_stage}` logs: ---\n", + stdout, + stderr, + ] + ) + ) + + +class CsmithDataset(Dataset): + """A dataset which uses Csmith to generate programs. + + Csmith is a tool that can generate random conformant C99 programs. It is + described in the publication: + + Yang, Xuejun, Yang Chen, Eric Eide, and John Regehr. "Finding and + understanding bugs in C compilers." In Proceedings of the 32nd ACM + SIGPLAN conference on Programming Language Design and Implementation + (PLDI), pp. 283-294. 2011. + + For up-to-date information about Csmith, see: + + https://embed.cs.utah.edu/csmith/ + + Note that Csmith is a tool that is used to find errors in compilers. As + such, there is a higher likelihood that the benchmark cannot be used for an + environment and that :meth:`env.reset() + ` will raise :class:`BenchmarkInitError + `. + + Installation + ------------ + + Using the CsmithDataset requires building the Csmith binary from source. + This is done automatically on the first call to :code:`install()`. Building + Csmith requires a working C++ toolchain. Install the required dependencies + using: :code:`sudo apt install -y g++ m4` on Linux, or :code:`brew install + m4` on macOS. :class:`DatasetInitError + ` is raised if compilation fails. + See the `Csmith repo + `_ for further + details. + """ + + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="generator://csmith-v0", + description="Random conformant C99 programs", + references={ + "Paper": "http://web.cse.ohio-state.edu/~rountev.1/5343/pdf/pldi11.pdf", + "Homepage": "https://embed.cs.utah.edu/csmith/", + }, + license="BSD", + site_data_base=site_data_base, + sort_order=sort_order, + benchmark_class=CsmithBenchmark, + ) + self.csmith_path = self.site_data_path / "bin" / "csmith" + csmith_include_dir = self.site_data_path / "include" / "csmith-2.3.0" + + self._installed = False + self._build_lock = Lock() + self._build_lockfile = self.site_data_path / ".build.LOCK" + self._build_markerfile = self.site_data_path / ".built" + + # The command that is used to compile an LLVM-IR bitcode file from a + # Csmith input. Reads from stdin, writes to stdout. + self.clang_compile_command: List[str] = ClangInvocation.from_c_file( + "-", # Read from stdin. + copt=[ + "-xc", + "-ferror-limit=1", # Stop on first error. + "-w", # No warnings. + f"-I{csmith_include_dir}", # Include the Csmith headers. + ], + ).command( + outpath="-" + ) # Write to stdout. + + @property + def installed(self) -> bool: + # Fast path for repeated checks to 'installed' without a disk op. + if not self._installed: + self._installed = self._build_markerfile.is_file() + return self._installed + + def install(self) -> None: + """Download and build the Csmith binary.""" + super().install() + + if self.installed: + return + + with self._build_lock, InterProcessLock(self._build_lockfile): + # Repeat the check to see if we have already installed the dataset + # now that we have acquired the lock. + if not self.installed: + self.logger.info("Downloading and building Csmith") + self._build_csmith(self.site_data_path, self.logger) + self._build_markerfile.touch() + + @staticmethod + def _build_csmith(install_root: Path, logger: logging.Logger): + """Download, build, and install Csmith to the given directory.""" + tar_data = io.BytesIO( + download( + urls=[ + "https://github.com/csmith-project/csmith/archive/refs/tags/csmith-2.3.0.tar.gz", + ], + sha256="ba871c1e5a05a71ecd1af514fedba30561b16ee80b8dd5ba8f884eaded47009f", + ) + ) + # Csmith uses a standard `configure` + `make install` build process. + with tempfile.TemporaryDirectory( + dir=transient_cache_path("."), prefix="csmith-" + ) as d: + with tarfile.open(fileobj=tar_data, mode="r:gz") as arc: + arc.extractall(d) + + # The path of the extracted sources. + src_dir = Path(d) / "csmith-csmith-2.3.0" + + logger.debug("Configuring Csmith at %s", d) + configure = subprocess.Popen( + ["./configure", f"--prefix={install_root}"], + cwd=src_dir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + stdout, stderr = configure.communicate(timeout=600) + if configure.returncode: + raise CsmithBuildError("./configure", stdout, stderr) + + logger.debug("Installing Csmith to %s", install_root) + make = subprocess.Popen( + ["make", "-j", "install"], + cwd=src_dir, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + stdout, stderr = make.communicate(timeout=600) + if make.returncode: + raise CsmithBuildError("make install", stdout, stderr) + + @property + def size(self) -> int: + # Actually 2^32 - 1, but practically infinite for all intents and + # purposes. + return float("inf") + + def benchmark_uris(self) -> Iterable[str]: + return (f"{self.name}/{i}" for i in range(UINT_MAX)) + + def benchmark(self, uri: str) -> CsmithBenchmark: + return self.benchmark_from_seed(int(uri.split("/")[-1])) + + def benchmark_from_seed(self, seed: int) -> CsmithBenchmark: + """Get a benchmark from a uint32 seed. + + :param seed: A number in the range 0 <= n < 2^32. + + :return: A benchmark instance. + """ + self.install() + + # Run csmith with the given seed and pipe the output to clang to + # assemble a bitcode. + self.logger.debug("Exec csmith --seed %d", seed) + csmith = subprocess.Popen( + [str(self.csmith_path), "--seed", str(seed)], + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + ) + + # Generate the C source. + src, stderr = csmith.communicate(timeout=300) + if csmith.returncode: + error = truncate(stderr.decode("utf-8"), max_lines=20, max_line_len=100) + raise OSError(f"Csmith failed with seed {seed}\nError: {error}") + + # Compile to IR. + clang = subprocess.Popen( + self.clang_compile_command, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + stdout, stderr = clang.communicate(src, timeout=300) + + if csmith.returncode: + raise OSError(f"Csmith failed with seed {seed}") + if clang.returncode: + compile_cmd = " ".join(self.clang_compile_command) + error = truncate(stderr.decode("utf-8"), max_lines=20, max_line_len=100) + raise BenchmarkInitError( + f"Compilation job failed!\n" + f"Csmith seed: {seed}\n" + f"Command: {compile_cmd}\n" + f"Error: {error}" + ) + + return self.benchmark_class.create(f"{self.name}/{seed}", stdout, src) diff --git a/compiler_gym/envs/llvm/datasets/llvm_stress.py b/compiler_gym/envs/llvm/datasets/llvm_stress.py new file mode 100644 index 000000000..02d948bb2 --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/llvm_stress.py @@ -0,0 +1,86 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import subprocess +from pathlib import Path +from typing import Iterable + +from compiler_gym.datasets import Benchmark, Dataset +from compiler_gym.datasets.benchmark import BenchmarkInitError +from compiler_gym.third_party import llvm + +# The maximum value for the --seed argument to llvm-stress. +UINT_MAX = (2 ** 32) - 1 + + +class LlvmStressDataset(Dataset): + """A dataset which uses llvm-stress to generate programs. + + `llvm-stress `_ is a + tool for generating random LLVM-IR files. + + This dataset forces reproducible results by setting the input seed to the + generator. The benchmark's URI is the seed, e.g. + "generator://llvm-stress-v0/10" is the benchmark generated by llvm-stress + using seed 10. The total number of unique seeds is 2^32 - 1. + + Note that llvm-stress is a tool that is used to find errors in LLVM. As + such, there is a higher likelihood that the benchmark cannot be used for an + environment and that :meth:`env.reset() + ` will raise + :class:`BenchmarkInitError `. + """ + + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="generator://llvm-stress-v0", + description="Randomly generated LLVM-IR", + references={ + "Documentation": "https://llvm.org/docs/CommandGuide/llvm-stress.html" + }, + license="Apache License v2.0 with LLVM Exceptions", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + @property + def size(self) -> int: + # Actually 2^32 - 1, but practically infinite for all intents and + # purposes. + return float("inf") + + def benchmark_uris(self) -> Iterable[str]: + return (f"{self.name}/{i}" for i in range(UINT_MAX)) + + def benchmark(self, uri: str) -> Benchmark: + return self.benchmark_from_seed(int(uri.split("/")[-1])) + + def benchmark_from_seed(self, seed: int) -> Benchmark: + """Get a benchmark from a uint32 seed. + + :param seed: A number in the range 0 <= n < 2^32. + + :return: A benchmark instance. + """ + self.install() + + # Run llvm-stress with the given seed and pipe the output to llvm-as to + # assemble a bitcode. + llvm_stress = subprocess.Popen( + [str(llvm.llvm_stress_path()), f"--seed={seed}"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + llvm_as = subprocess.Popen( + [str(llvm.llvm_as_path()), "-"], + stdin=llvm_stress.stdout, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + + stdout, _ = llvm_as.communicate(timeout=60) + if llvm_stress.returncode or llvm_as.returncode: + raise BenchmarkInitError("Failed to generate benchmark") + + return Benchmark.from_file_contents(f"{self.name}/{seed}", stdout) diff --git a/compiler_gym/envs/llvm/datasets/poj104.py b/compiler_gym/envs/llvm/datasets/poj104.py new file mode 100644 index 000000000..39fc8e9c1 --- /dev/null +++ b/compiler_gym/envs/llvm/datasets/poj104.py @@ -0,0 +1,193 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import subprocess +import sys +from concurrent.futures import as_completed +from pathlib import Path +from typing import Optional + +from compiler_gym.datasets import Benchmark, BenchmarkInitError, TarDatasetWithManifest +from compiler_gym.datasets.benchmark import BenchmarkWithSource +from compiler_gym.envs.llvm.llvm_benchmark import ClangInvocation +from compiler_gym.util import thread_pool +from compiler_gym.util.download import download +from compiler_gym.util.filesystem import atomic_file_write +from compiler_gym.util.truncate import truncate + + +class POJ104Dataset(TarDatasetWithManifest): + """The POJ-104 dataset contains 52000 C++ programs implementing 104 + different algorithms with 500 examples of each. + + The dataset is from: + + Lili Mou, Ge Li, Lu Zhang, Tao Wang, Zhi Jin. "Convolutional neural + networks over tree structures for programming language processing." To + appear in Proceedings of 30th AAAI Conference on Artificial + Intelligence, 2016. + + And is available at: + + https://sites.google.com/site/treebasedcnn/ + """ + + def __init__(self, site_data_base: Path, sort_order: int = 0): + manifest_url, manifest_sha256 = { + "darwin": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-poj104-v1-macos-manifest.bz2", + "74db443f225478933dd0adf3f821fd4e615089eeaa90596c19d9d1af7006a801", + ), + "linux": ( + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-poj104-v1-linux-manifest.bz2", + "ee6253ee826e171816105e76fa78c0d3cbd319ef66e10da4bcf9cf8a78e12ab9", + ), + }[sys.platform] + super().__init__( + name="benchmark://poj104-v1", + tar_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-poj104-v1.tar.gz", + "https://drive.google.com/u/0/uc?id=0B2i-vWnOu7MxVlJwQXN6eVNONUU&export=download", + ], + tar_sha256="c0b8ef3ee9c9159c882dc9337cb46da0e612a28e24852a83f8a1cd68c838f390", + tar_compression="gz", + manifest_urls=[manifest_url], + manifest_sha256=manifest_sha256, + references={ + "Paper": "https://ojs.aaai.org/index.php/AAAI/article/download/10139/9998", + "Homepage": "https://sites.google.com/site/treebasedcnn/", + }, + license="BSD 3-Clause", + strip_prefix="ProgramData", + description="Solutions to programming programs", + benchmark_file_suffix=".txt", + site_data_base=site_data_base, + sort_order=sort_order, + ) + + def benchmark(self, uri: Optional[str] = None) -> Benchmark: + self.install() + if uri is None or len(uri) <= len(self.name) + 1: + return self._get_benchmark_by_index(self.random.integers(self.size)) + + # The absolute path of the file, without an extension. + path_stem = self.dataset_root / uri[len(self.name) + 1 :] + + # If the file does not exist, compile it on-demand. + bitcode_path = Path(f"{path_stem}.bc") + cc_file_path = Path(f"{path_stem}.txt") + + if not bitcode_path.is_file(): + if not cc_file_path.is_file(): + raise LookupError( + f"Benchmark not found: {uri} (file not found: {cc_file_path})" + ) + + # Load the C++ source into memory and pre-process it. + with open(cc_file_path) as f: + src = self.preprocess_poj104_source(f.read()) + + # Compile the C++ source into a bitcode file. + with atomic_file_write(bitcode_path) as tmp_bitcode_path: + compile_cmd = ClangInvocation.from_c_file( + "-", + copt=[ + "-xc++", + "-ferror-limit=1", # Stop on first error. + "-w", # No warnings. + # Some of the programs use the gets() function that was + # deprecated in C++11 and removed in C++14. + "-std=c++11", + ], + ).command(outpath=tmp_bitcode_path) + self.logger.debug("Exec %s", compile_cmd) + clang = subprocess.Popen( + compile_cmd, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + _, stderr = clang.communicate(src.encode("utf-8"), timeout=300) + + if clang.returncode: + compile_cmd = " ".join(compile_cmd) + error = truncate(stderr.decode("utf-8"), max_lines=20, max_line_len=100) + raise BenchmarkInitError( + f"Compilation job failed!\n" + f"Command: {compile_cmd}\n" + f"Error: {error}" + ) + if not bitcode_path.is_file(): + raise BenchmarkInitError( + f"Compilation job failed to produce output file!\nCommand: {compile_cmd}" + ) + + return BenchmarkWithSource.create(uri, bitcode_path, "source.cc", cc_file_path) + + @staticmethod + def preprocess_poj104_source(src: str) -> str: + """Pre-process a POJ-104 C++ source file for compilation.""" + # Clean up declaration of main function. Many are missing a return type + # declaration, or use an incorrect void return type. + src = src.replace("void main", "int main") + src = src.replace("\nmain", "int main") + if src.startswith("main"): + src = f"int {src}" + + # Pull in the standard library. + if sys.platform == "linux": + header = "#include \n" "using namespace std;\n" + else: + # Download a bits/stdc++ implementation for macOS. + header = download( + "https://github.com/raw/tekfyl/bits-stdc-.h-for-mac/e1193f4470514d82ea19c3cc1357116fadaa2a4e/stdc%2B%2B.h", + sha256="b4d9b031d56d89a2b58b5ed80fa9943aa92420d6aed0835747c9a5584469afeb", + ).decode("utf-8") + + # These defines provide values for commonly undefined symbols. Defining + # these macros increases the number of POJ-104 programs that compile + # from 49,302 to 49,821 (+519) on linux. + defines = "#define LEN 128\n" "#define MAX_LENGTH 1024\n" "#define MAX 1024\n" + + return header + defines + src + + def compile_all(self): + n = self.size + executor = thread_pool.get_thread_pool_executor() + # Since the dataset is lazily compiled, simply iterating over the full + # set of URIs will compile everything. Do this in parallel. + futures = ( + executor.submit(self.benchmark, uri) for uri in self.benchmark_uris() + ) + for i, future in enumerate(as_completed(futures), start=1): + future.result() + print( + f"\r\033[KCompiled {i} of {n} programs ({i/n:.2%} complete)", + flush=True, + end="", + ) + + +class POJ104LegacyDataset(TarDatasetWithManifest): + def __init__(self, site_data_base: Path, sort_order: int = 0): + super().__init__( + name="benchmark://poj104-v0", + tar_urls="https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-poj104-v0.tar.bz2", + tar_sha256="6254d629887f6b51efc1177788b0ce37339d5f3456fb8784415ed3b8c25cce27", + manifest_urls=[ + "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-poj104-v0-manifest.bz2" + ], + manifest_sha256="ac3eaaad7d2878d871ed2b5c72a3f39c058ea6694989af5c86cd162414db750b", + references={ + "Paper": "https://ojs.aaai.org/index.php/AAAI/article/download/10139/9998", + "Homepage": "https://sites.google.com/site/treebasedcnn/", + }, + license="BSD 3-Clause", + strip_prefix="poj104-v0", + description="Solutions to programming programs", + benchmark_file_suffix=".bc", + site_data_base=site_data_base, + sort_order=sort_order, + deprecated="Please update to benchmark://poj104-v1.", + ) diff --git a/compiler_gym/envs/llvm/legacy_datasets.py b/compiler_gym/envs/llvm/legacy_datasets.py index fb12dc868..fe1090b88 100644 --- a/compiler_gym/envs/llvm/legacy_datasets.py +++ b/compiler_gym/envs/llvm/legacy_datasets.py @@ -27,7 +27,7 @@ from compiler_gym.util.download import download from compiler_gym.util.runfiles_path import cache_path, site_data_path from compiler_gym.util.timer import Timer -from compiler_gym.validation_result import ValidationError +from compiler_gym.validation_error import ValidationError _CBENCH_DATA_URL = ( "https://dl.fbaipublicfiles.com/compiler_gym/cBench-v0-runtime-data.tar.bz2" @@ -419,7 +419,7 @@ def _make_cBench_validator( def validator_cb(env: "LlvmEnv") -> Optional[ValidationError]: # noqa: F821 """The validation callback.""" with _CBENCH_DOWNLOAD_THREAD_LOCK: - with fasteners.InterProcessLock(cache_path("cBench-v1-runtime-data.LOCK")): + with fasteners.InterProcessLock(cache_path(".cBench-v1-runtime-data.lock")): download_cBench_runtime_data() cbench_data = site_data_path("llvm/cBench-v1-runtime-data/runtime_data") @@ -643,10 +643,11 @@ def get_llvm_benchmark_validation_callback( If there is no valid callback, returns :code:`None`. - :param env: An :class:`LlvmEnv` instance. - :return: An optional callback that takes an :class:`LlvmEnv` instance as - argument and returns an optional string containing a validation error - message. + :param env: An :class:`LlvmEnv ` instance. + + :return: An optional callback that takes an :class:`LlvmEnv + ` instance as argument and returns an + optional string containing a validation error message. """ validators = VALIDATORS.get(env.benchmark) diff --git a/compiler_gym/envs/llvm/benchmarks.py b/compiler_gym/envs/llvm/llvm_benchmark.py similarity index 73% rename from compiler_gym/envs/llvm/benchmarks.py rename to compiler_gym/envs/llvm/llvm_benchmark.py index 0416a85b8..31d510c3e 100644 --- a/compiler_gym/envs/llvm/benchmarks.py +++ b/compiler_gym/envs/llvm/llvm_benchmark.py @@ -8,16 +8,16 @@ import subprocess import sys import tempfile -from concurrent.futures import ThreadPoolExecutor, as_completed +from concurrent.futures import as_completed from datetime import datetime -from multiprocessing import cpu_count from pathlib import Path from signal import Signals from typing import Iterable, List, Optional, Union -from compiler_gym.service.proto import Benchmark, File +from compiler_gym.datasets import Benchmark, BenchmarkInitError from compiler_gym.third_party import llvm -from compiler_gym.util.runfiles_path import cache_path +from compiler_gym.util.runfiles_path import transient_cache_path +from compiler_gym.util.thread_pool import get_thread_pool_executor def _communicate(process, input=None, timeout=None): @@ -137,6 +137,42 @@ def command(self, outpath: Path) -> List[str]: return cmd + @classmethod + def from_c_file( + cls, + path: Path, + copt: Optional[List[str]] = None, + system_includes: bool = True, + timeout: int = 600, + ) -> "ClangInvocation": + copt = copt or [] + # NOTE(cummins): There is some discussion about the best way to create a + # bitcode that is unoptimized yet does not hinder downstream + # optimization opportunities. Here we are using a configuration based on + # -O1 in which we prevent the -O1 optimization passes from running. This + # is because LLVM produces different function attributes dependening on + # the optimization level. E.g. "-O0 -Xclang -disable-llvm-optzns -Xclang + # -disable-O0-optnone" will generate code with "noinline" attributes set + # on the functions, wheras "-Oz -Xclang -disable-llvm-optzns" will + # generate functions with "minsize" and "optsize" attributes set. + # + # See also: + # + # + DEFAULT_COPT = [ + "-O1", + "-Xclang", + "-disable-llvm-passes", + "-Xclang", + "-disable-llvm-optzns", + ] + + return cls( + DEFAULT_COPT + copt + [str(path)], + system_includes=system_includes, + timeout=timeout, + ) + def _run_command(cmd: List[str], timeout: int): process = subprocess.Popen( @@ -151,7 +187,7 @@ def _run_command(cmd: List[str], timeout: int): returncode = f"{returncode} ({Signals(abs(returncode)).name})" except ValueError: pass - raise OSError( + raise BenchmarkInitError( f"Compilation job failed with returncode {returncode}\n" f"Command: {' '.join(cmd)}\n" f"Stderr: {stderr.strip()}" @@ -171,9 +207,9 @@ def make_benchmark( For single-source C/C++ programs, you can pass the path of the source file: - >>> benchmark = make_benchmark('my_app.c') - >>> env = gym.make("llvm-v0") - >>> env.reset(benchmark=benchmark) + >>> benchmark = make_benchmark('my_app.c') + >>> env = gym.make("llvm-v0") + >>> env.reset(benchmark=benchmark) The clang invocation used is roughly equivalent to: @@ -184,81 +220,76 @@ def make_benchmark( Additional compile-time arguments to clang can be provided using the :code:`copt` argument: - >>> benchmark = make_benchmark('/path/to/my_app.cpp', copt=['-O2']) + >>> benchmark = make_benchmark('/path/to/my_app.cpp', copt=['-O2']) If you need more fine-grained control over the options, you can directly - construct a :class:`ClangInvocation ` - to pass a list of arguments to clang: + construct a :class:`ClangInvocation + ` to pass a list of arguments to + clang: - >>> benchmark = make_benchmark( - ClangInvocation(['/path/to/my_app.c'], timeout=10) - ) + >>> benchmark = make_benchmark( + ClangInvocation(['/path/to/my_app.c'], timeout=10) + ) For multi-file programs, pass a list of inputs that will be compiled separately and then linked to a single module: - >>> benchmark = make_benchmark([ - 'main.c', - 'lib.cpp', - 'lib2.bc', - ]) + >>> benchmark = make_benchmark([ + 'main.c', + 'lib.cpp', + 'lib2.bc', + ]) If you already have prepared bitcode files, those can be linked and used directly: - >>> benchmark = make_benchmark([ - 'bitcode1.bc', - 'bitcode2.bc', - ]) + >>> benchmark = make_benchmark([ + 'bitcode1.bc', + 'bitcode2.bc', + ]) + + Text-format LLVM assembly can also be used: + + >>> benchmark = make_benchmark('module.ll') .. note:: + LLVM bitcode compatibility is `not guaranteed `_, so you must ensure that any precompiled bitcodes are compatible with the LLVM version used by CompilerGym, which can be queried using - :func:`LlvmEnv.compiler_version `. + :func:`env.compiler_version `. :param inputs: An input, or list of inputs. + :param copt: A list of command line options to pass to clang when compiling source files. + :param system_includes: Whether to include the system standard libraries during compilation jobs. This requires a system toolchain. See :func:`get_system_includes`. + :param timeout: The maximum number of seconds to allow clang to run before terminating. - :return: A :code:`Benchmark` message. + + :return: A :code:`Benchmark` instance. + :raises FileNotFoundError: If any input sources are not found. + :raises TypeError: If the inputs are of unsupported types. + :raises OSError: If a compilation job fails. - :raises TimeoutExpired: If a compilation job exceeds :code:`timeout` seconds. + + :raises TimeoutExpired: If a compilation job exceeds :code:`timeout` + seconds. """ copt = copt or [] bitcodes: List[Path] = [] clang_jobs: List[ClangInvocation] = [] + ll_paths: List[Path] = [] def _add_path(path: Path): - # NOTE(cummins): There is some discussion about the best way to create a - # bitcode that is unoptimized yet does not hinder downstream - # optimization opportunities. Here we are using a configuration based on - # -O1 in which we prevent the -O1 optimization passes from running. This - # is because LLVM produces different function attributes dependening on - # the optimization level. E.g. "-O0 -Xclang -disable-llvm-optzns -Xclang - # -disable-O0-optnone" will generate code with "noinline" attributes set - # on the functions, wheras "-Oz -Xclang -disable-llvm-optzns" will - # generate functions with "minsize" and "optsize" attributes set. - # - # See also: - # - # - DEFAULT_COPT = [ - "-O1", - "-Xclang", - "-disable-llvm-passes", - "-Xclang", - "-disable-llvm-optzns", - ] - if not path.is_file(): raise FileNotFoundError(path) @@ -266,12 +297,12 @@ def _add_path(path: Path): bitcodes.append(path) elif path.suffix in {".c", ".cxx", ".cpp", ".cc"}: clang_jobs.append( - ClangInvocation( - [str(path)] + DEFAULT_COPT + copt, - system_includes=system_includes, - timeout=timeout, + ClangInvocation.from_c_file( + path, copt=copt, system_includes=system_includes, timeout=timeout ) ) + elif path.suffix == ".ll": + ll_paths.append(path) else: raise ValueError(f"Unrecognized file type: {path.name}") @@ -290,40 +321,66 @@ def _add_path(path: Path): else: raise TypeError(f"Invalid input type: {type(input).__name__}") - if not bitcodes and not clang_jobs: - raise ValueError("No inputs") - # Shortcut if we only have a single pre-compiled bitcode. if len(bitcodes) == 1 and not clang_jobs: bitcode = bitcodes[0] - return Benchmark( - uri=f"file:///{bitcode}", program=File(uri=f"file:///{bitcode}") - ) + return Benchmark.from_file(uri=f"file:///{bitcode}", path=bitcode) - tmpdir_root = cache_path(".") + tmpdir_root = transient_cache_path(".") tmpdir_root.mkdir(exist_ok=True, parents=True) - with tempfile.TemporaryDirectory(dir=tmpdir_root) as d: + with tempfile.TemporaryDirectory( + dir=tmpdir_root, prefix="llvm-make_benchmark-" + ) as d: working_dir = Path(d) - # Run the clang invocations in parallel. clang_outs = [ - working_dir / f"out-{i}.bc" for i in range(1, len(clang_jobs) + 1) + working_dir / f"clang-out-{i}.bc" for i in range(1, len(clang_jobs) + 1) + ] + llvm_as_outs = [ + working_dir / f"llvm-as-out-{i}.bc" for i in range(1, len(ll_paths) + 1) ] - with ThreadPoolExecutor(max_workers=cpu_count()) as executor: - futures = ( + + # Run the clang and llvm-as invocations in parallel. Avoid running this + # code path if possible as get_thread_pool_executor() requires locking. + if clang_jobs or ll_paths: + llvm_as_path = str(llvm.llvm_as_path()) + executor = get_thread_pool_executor() + + llvm_as_commands = [ + [llvm_as_path, str(ll_path), "-o", bc_path] + for ll_path, bc_path in zip(ll_paths, llvm_as_outs) + ] + + # Fire off the clang and llvm-as jobs. + futures = [ executor.submit(_run_command, job.command(out), job.timeout) for job, out in zip(clang_jobs, clang_outs) - ) - list(future.result() for future in as_completed(futures)) + ] + [ + executor.submit(_run_command, command, timeout) + for command in llvm_as_commands + ] - # Check that the expected files were generated. - for i, b in enumerate(clang_outs): - if not b.is_file(): - raise OSError( - f"Clang invocation failed to produce a file: {' '.join(clang_jobs[i].command(clang_outs[i]))}" - ) + # Block until finished. + list(future.result() for future in as_completed(futures)) - if len(bitcodes + clang_outs) > 1: + # Check that the expected files were generated. + for clang_job, bc_path in zip(clang_jobs, clang_outs): + if not bc_path.is_file(): + raise BenchmarkInitError( + f"clang failed: {' '.join(clang_job.command(bc_path))}" + ) + for command, bc_path in zip(llvm_as_commands, llvm_as_outs): + if not bc_path.is_file(): + raise BenchmarkInitError(f"llvm-as failed: {command}") + + all_outs = bitcodes + clang_outs + llvm_as_outs + if not all_outs: + raise ValueError("No inputs") + elif len(all_outs) == 1: + # We only have a single bitcode so read it. + with open(str(all_outs[0]), "rb") as f: + bitcode = f.read() + else: # Link all of the bitcodes into a single module. llvm_link_cmd = [str(llvm.llvm_link_path()), "-o", "-"] + [ str(path) for path in bitcodes + clang_outs @@ -333,15 +390,10 @@ def _add_path(path: Path): ) bitcode, stderr = _communicate(llvm_link, timeout=timeout) if llvm_link.returncode: - raise OSError( + raise BenchmarkInitError( f"Failed to link LLVM bitcodes with error: {stderr.decode('utf-8')}" ) - else: - # We only have a single bitcode so read it. - with open(str(list(bitcodes + clang_outs)[0]), "rb") as f: - bitcode = f.read() - timestamp = datetime.now().strftime(f"%Y%m%HT%H%M%S-{random.randrange(16**4):04x}") - return Benchmark( - uri=f"benchmark://user/{timestamp}", program=File(contents=bitcode) - ) + timestamp = datetime.now().strftime("%Y%m%HT%H%M%S") + uri = f"benchmark://user/{timestamp}-{random.randrange(16**4):04x}" + return Benchmark.from_file_contents(uri, bitcode) diff --git a/compiler_gym/envs/llvm/llvm_env.py b/compiler_gym/envs/llvm/llvm_env.py index 284cf7aa3..02cab0459 100644 --- a/compiler_gym/envs/llvm/llvm_env.py +++ b/compiler_gym/envs/llvm/llvm_env.py @@ -7,18 +7,16 @@ import os import shutil from pathlib import Path -from typing import Callable, Iterable, List, Optional, Union, cast +from typing import Iterable, List, Optional, Union, cast import numpy as np from gym.spaces import Box from gym.spaces import Dict as DictSpace +from compiler_gym.datasets import Benchmark, BenchmarkInitError, Dataset from compiler_gym.envs.compiler_env import CompilerEnv -from compiler_gym.envs.llvm.benchmarks import make_benchmark -from compiler_gym.envs.llvm.legacy_datasets import ( - LLVM_DATASETS, - get_llvm_benchmark_validation_callback, -) +from compiler_gym.envs.llvm.datasets import get_llvm_datasets +from compiler_gym.envs.llvm.llvm_benchmark import ClangInvocation, make_benchmark from compiler_gym.envs.llvm.llvm_rewards import ( BaselineImprovementNormalizedReward, CostFunctionReward, @@ -29,8 +27,7 @@ from compiler_gym.third_party.inst2vec import Inst2vecEncoder from compiler_gym.third_party.llvm import download_llvm_files from compiler_gym.third_party.llvm.instcount import INST_COUNT_FEATURE_NAMES -from compiler_gym.util.runfiles_path import runfiles_path, site_data_path -from compiler_gym.validation_result import ValidationError +from compiler_gym.util.runfiles_path import runfiles_path _ACTIONS_LIST = Path( runfiles_path("compiler_gym/envs/llvm/service/passes/actions_list.txt") @@ -58,35 +55,58 @@ def _read_list_file(path: Path) -> Iterable[str]: _FLAGS = dict(zip(_ACTIONS, _read_list_file(_FLAGS_LIST))) _DESCRIPTIONS = dict(zip(_ACTIONS, _read_list_file(_DESCRIPTIONS_LIST))) -# TODO(github.com/facebookresearch/CompilerGym/issues/122): Lazily instantiate -# inst2vec encoder. _INST2VEC_ENCODER = Inst2vecEncoder() +_LLVM_DATASETS: Optional[List[Dataset]] = None + + +def _get_llvm_datasets(site_data_base: Optional[Path] = None) -> Iterable[Dataset]: + """Get the LLVM datasets. Use a singleton value when site_data_base is the + default value. + """ + global _LLVM_DATASETS + if site_data_base is None: + if _LLVM_DATASETS is None: + _LLVM_DATASETS = list(get_llvm_datasets(site_data_base=site_data_base)) + return _LLVM_DATASETS + return get_llvm_datasets(site_data_base=site_data_base) + + class LlvmEnv(CompilerEnv): """A specialized CompilerEnv for LLVM. - This extends the default :class:`CompilerEnv` environment, adding extra LLVM - functionality. Specifically, the actions use the - :class:`CommandlineFlag ` space, which - is a type of :code:`Discrete` space that provides additional documentation - about each action, and the - :meth:`LlvmEnv.commandline() ` method - can be used to produce an equivalent LLVM opt invocation for the current - environment state. + This extends the default :class:`CompilerEnv + ` environment, adding extra LLVM + functionality. Specifically, the actions use the :class:`CommandlineFlag + ` space, which is a type of + :code:`Discrete` space that provides additional documentation about each + action, and the :meth:`LlvmEnv.commandline() + ` method can be used to produce an + equivalent LLVM opt invocation for the current environment state. :ivar actions: The list of actions that have been performed since the previous call to :func:`reset`. + :vartype actions: List[int] """ - def __init__(self, *args, **kwargs): + def __init__( + self, + *args, + benchmark: Optional[Union[str, Benchmark]] = None, + datasets_site_path: Optional[Path] = None, + **kwargs, + ): # First perform a one-time download of LLVM binaries that are needed by # the LLVM service and are not included by the pip-installed package. download_llvm_files() super().__init__( *args, **kwargs, + # Set a default benchmark for use. + benchmark=benchmark or "cbench-v1/qsort", + datasets=_get_llvm_datasets(site_data_base=datasets_site_path), rewards=[ CostFunctionReward( id="IrInstructionCount", @@ -164,13 +184,6 @@ def __init__(self, *args, **kwargs): ), ], ) - self.datasets_site_path = site_data_path("llvm/10.0.0/bitcode_benchmarks") - - # Register the LLVM datasets. - self.datasets_site_path.mkdir(parents=True, exist_ok=True) - self.inactive_datasets_site_path.mkdir(parents=True, exist_ok=True) - for dataset in LLVM_DATASETS: - self.register_dataset(dataset) self.inst2vec = _INST2VEC_ENCODER @@ -279,27 +292,112 @@ def __init__(self, *args, **kwargs): ) def reset(self, *args, **kwargs): - # The BenchmarkFactory::getBenchmark() method raises an error if there - # are no benchmarks to select from. Install the cBench dataset as a - # fallback. - # - # TODO(github.com/facebookresearch/CompilerGym/issues/45): Remove this - # once the dataset API has been refactored so that service-side datasets - # are no longer an issue. try: return super().reset(*args, **kwargs) - except FileNotFoundError: - self.logger.warning( - "reset() called on servie with no benchmarks available. " - "Installing cBench-v1" + except ValueError as e: + # Catch and re-raise a compilation error with a more informative + # error type. + if "Failed to compute .text size cost" in str(e): + raise BenchmarkInitError( + f"Failed to initialize benchmark {self._benchmark_in_use.uri}: {e}" + ) from e + raise + + def make_benchmark( + self, + inputs: Union[ + str, Path, ClangInvocation, List[Union[str, Path, ClangInvocation]] + ], + copt: Optional[List[str]] = None, + system_includes: bool = True, + timeout: int = 600, + ) -> Benchmark: + """Create a benchmark for use with this environment. + + This function takes one or more inputs and uses them to create a + benchmark that can be passed to :meth:`compiler_gym.envs.LlvmEnv.reset`. + + For single-source C/C++ programs, you can pass the path of the source + file: + + >>> benchmark = make_benchmark('my_app.c') + >>> env = gym.make("llvm-v0") + >>> env.reset(benchmark=benchmark) + + The clang invocation used is roughly equivalent to: + + .. code-block:: + + $ clang my_app.c -O0 -c -emit-llvm -o benchmark.bc + + Additional compile-time arguments to clang can be provided using the + :code:`copt` argument: + + >>> benchmark = make_benchmark('/path/to/my_app.cpp', copt=['-O2']) + + If you need more fine-grained control over the options, you can directly + construct a :class:`ClangInvocation + ` to pass a list of arguments to + clang: + + >>> benchmark = make_benchmark( + ClangInvocation(['/path/to/my_app.c'], timeout=10) ) - self.require_dataset("cBench-v1") - super().reset(*args, **kwargs) - @staticmethod - def make_benchmark(*args, **kwargs): - """Alias to :func:`llvm.make_benchmark() `.""" - return make_benchmark(*args, **kwargs) + For multi-file programs, pass a list of inputs that will be compiled + separately and then linked to a single module: + + >>> benchmark = make_benchmark([ + 'main.c', + 'lib.cpp', + 'lib2.bc', + ]) + + If you already have prepared bitcode files, those can be linked and used + directly: + + >>> benchmark = make_benchmark([ + 'bitcode1.bc', + 'bitcode2.bc', + ]) + + .. note:: + + LLVM bitcode compatibility is + `not guaranteed `_, + so you must ensure that any precompiled bitcodes are compatible with the + LLVM version used by CompilerGym, which can be queried using + :func:`LlvmEnv.compiler_version `. + + :param inputs: An input, or list of inputs. + + :param copt: A list of command line options to pass to clang when + compiling source files. + + :param system_includes: Whether to include the system standard libraries + during compilation jobs. This requires a system toolchain. See + :func:`get_system_includes`. + + :param timeout: The maximum number of seconds to allow clang to run + before terminating. + + :return: A :code:`Benchmark` instance. + + :raises FileNotFoundError: If any input sources are not found. + + :raises TypeError: If the inputs are of unsupported types. + + :raises OSError: If a compilation job fails. + + :raises TimeoutExpired: If a compilation job exceeds :code:`timeout` + seconds. + """ + return make_benchmark( + inputs=inputs, + copt=copt, + system_includes=system_includes, + timeout=timeout, + ) def _make_action_space(self, name: str, entries: List[str]) -> Commandline: flags = [ @@ -361,7 +459,7 @@ def ir_sha1(self) -> str: Equivalent to: :code:`hashlib.sha1(env.ir.encode("utf-8")).hexdigest()`. - :return: A 40-character hexademical sha1 string. + :return: A 40-character hexadecimal sha1 string. """ # TODO(cummins): Compute this on the service-side and add it as an # observation space. @@ -400,17 +498,3 @@ def render( print(self.ir) else: return super().render(mode) - - def get_benchmark_validation_callback( - self, - ) -> Optional[Callable[[CompilerEnv], Iterable[ValidationError]]]: - """Return a callback for validating a given environment state. - - If there is no valid callback, returns :code:`None`. - - :param env: An :class:`LlvmEnv` instance. - :return: An optional callback that takes an :class:`LlvmEnv` instance as - argument and returns an optional string containing a validation error - message. - """ - return get_llvm_benchmark_validation_callback(self) diff --git a/compiler_gym/envs/llvm/llvm_rewards.py b/compiler_gym/envs/llvm/llvm_rewards.py index 121474847..d746b092a 100644 --- a/compiler_gym/envs/llvm/llvm_rewards.py +++ b/compiler_gym/envs/llvm/llvm_rewards.py @@ -5,6 +5,7 @@ """This module defines reward spaces used by the LLVM environment.""" from typing import List, Optional +from compiler_gym.datasets import Benchmark from compiler_gym.service import observation_t from compiler_gym.spaces.reward import Reward from compiler_gym.views.observation import ObservationView @@ -35,7 +36,7 @@ def __init__(self, cost_function: str, init_cost_function: str, **kwargs): self.init_cost_function: str = init_cost_function self.previous_cost: Optional[observation_t] = None - def reset(self, benchmark: str) -> None: + def reset(self, benchmark: Benchmark) -> None: """Called on env.reset(). Reset incremental progress.""" del benchmark # unused self.previous_cost = None @@ -64,13 +65,13 @@ def __init__(self, **kwargs): """Constructor.""" super().__init__(**kwargs) self.cost_norm: Optional[observation_t] = None - self.benchmark = None + self.benchmark: Benchmark = None def reset(self, benchmark: str) -> None: """Called on env.reset(). Reset incremental progress.""" super().reset(benchmark) # The benchmark has changed so we must compute a new cost normalization - # value. If the benchamrk has not changed then the previously computed + # value. If the benchmark has not changed then the previously computed # value is still valid. if self.benchmark != benchmark: self.cost_norm = None diff --git a/compiler_gym/envs/llvm/service/BUILD b/compiler_gym/envs/llvm/service/BUILD index 8e42a1668..4f08d1dd5 100644 --- a/compiler_gym/envs/llvm/service/BUILD +++ b/compiler_gym/envs/llvm/service/BUILD @@ -104,6 +104,7 @@ cc_library( ], deps = [ ":Benchmark", + ":Cost", "//compiler_gym/util:GrpcStatusMacros", "//compiler_gym/util:RunfilesPath", "//compiler_gym/util:StrLenConstexpr", diff --git a/compiler_gym/envs/llvm/service/Benchmark.cc b/compiler_gym/envs/llvm/service/Benchmark.cc index c889eb63d..9f136dffc 100644 --- a/compiler_gym/envs/llvm/service/Benchmark.cc +++ b/compiler_gym/envs/llvm/service/Benchmark.cc @@ -22,13 +22,6 @@ namespace compiler_gym::llvm_service { namespace { -BaselineCosts getBaselineCosts(const llvm::Module& unoptimizedModule, - const fs::path& workingDirectory) { - BaselineCosts baselineCosts; - setbaselineCosts(unoptimizedModule, &baselineCosts, workingDirectory); - return baselineCosts; -} - BenchmarkHash getModuleHash(const llvm::Module& module) { BenchmarkHash hash; llvm::SmallVector buffer; @@ -51,8 +44,10 @@ std::unique_ptr makeModuleOrDie(llvm::LLVMContext& context, const } // anonymous namespace Status readBitcodeFile(const fs::path& path, Bitcode* bitcode) { - std::ifstream ifs; - ifs.open(path.string()); + std::ifstream ifs(path.string()); + if (ifs.fail()) { + return Status(StatusCode::NOT_FOUND, fmt::format("File not found: \"{}\"", path.string())); + } ifs.seekg(0, std::ios::end); if (ifs.fail()) { @@ -83,7 +78,15 @@ std::unique_ptr makeModule(llvm::LLVMContext& context, const Bitco llvm::parseBitcodeFile(buffer, context); if (moduleOrError) { *status = Status::OK; - return std::move(moduleOrError.get()); + std::unique_ptr module = std::move(moduleOrError.get()); + + // Strip the module identifiers and source file names from the module to + // anonymize them. This is to deter learning algorithms from overfitting to + // benchmarks by their name. + module->setModuleIdentifier("-"); + module->setSourceFileName("-"); + + return module; } else { *status = Status(StatusCode::INVALID_ARGUMENT, fmt::format("Failed to parse LLVM bitcode: \"{}\"", name)); @@ -93,35 +96,30 @@ std::unique_ptr makeModule(llvm::LLVMContext& context, const Bitco // A benchmark is an LLVM module and the LLVM context that owns it. Benchmark::Benchmark(const std::string& name, const Bitcode& bitcode, - const fs::path& workingDirectory, std::optional bitcodePath, - const BaselineCosts* baselineCosts) + const fs::path& workingDirectory, const BaselineCosts& baselineCosts) : context_(std::make_unique()), module_(makeModuleOrDie(*context_, bitcode, name)), - baselineCosts_(baselineCosts ? *baselineCosts : getBaselineCosts(*module_, workingDirectory)), + baselineCosts_(baselineCosts), hash_(getModuleHash(*module_)), name_(name), - bitcodeSize_(bitcode.size()), - bitcodePath_(bitcodePath) {} + bitcodeSize_(bitcode.size()) {} Benchmark::Benchmark(const std::string& name, std::unique_ptr context, std::unique_ptr module, size_t bitcodeSize, - const fs::path& workingDirectory, std::optional bitcodePath, - const BaselineCosts* baselineCosts) + const fs::path& workingDirectory, const BaselineCosts& baselineCosts) : context_(std::move(context)), module_(std::move(module)), - baselineCosts_(baselineCosts ? *baselineCosts : getBaselineCosts(*module_, workingDirectory)), + baselineCosts_(baselineCosts), hash_(getModuleHash(*module_)), name_(name), - bitcodeSize_(bitcodeSize), - bitcodePath_(bitcodePath) {} + bitcodeSize_(bitcodeSize) {} std::unique_ptr Benchmark::clone(const fs::path& workingDirectory) const { Bitcode bitcode; llvm::raw_svector_ostream ostream(bitcode); llvm::WriteBitcodeToFile(module(), ostream); - return std::make_unique(name(), bitcode, workingDirectory, bitcodePath(), - &baselineCosts()); + return std::make_unique(name(), bitcode, workingDirectory, baselineCosts()); } } // namespace compiler_gym::llvm_service diff --git a/compiler_gym/envs/llvm/service/Benchmark.h b/compiler_gym/envs/llvm/service/Benchmark.h index 377063e8f..713c65b99 100644 --- a/compiler_gym/envs/llvm/service/Benchmark.h +++ b/compiler_gym/envs/llvm/service/Benchmark.h @@ -28,7 +28,8 @@ using Bitcode = llvm::SmallString<0>; grpc::Status readBitcodeFile(const boost::filesystem::path& path, Bitcode* bitcode); -// Returns nullptr on error and sets status. +// Parses the given bitcode into a module and strips the identifying ModuleID +// and source_filename attributes. Returns nullptr on error and sets status. std::unique_ptr makeModule(llvm::LLVMContext& context, const Bitcode& bitcode, const std::string& name, grpc::Status* status); @@ -37,23 +38,17 @@ std::unique_ptr makeModule(llvm::LLVMContext& context, const Bitco class Benchmark { public: Benchmark(const std::string& name, const Bitcode& bitcode, - const boost::filesystem::path& workingDirectory, - std::optional bitcodePath = std::nullopt, - const BaselineCosts* baselineCosts = nullptr); + const boost::filesystem::path& workingDirectory, const BaselineCosts& baselineCosts); Benchmark(const std::string& name, std::unique_ptr context, std::unique_ptr module, size_t bitcodeSize, - const boost::filesystem::path& workingDirectory, - std::optional bitcodePath = std::nullopt, - const BaselineCosts* baselineCosts = nullptr); + const boost::filesystem::path& workingDirectory, const BaselineCosts& baselineCosts); // Make a copy of the benchmark. std::unique_ptr clone(const boost::filesystem::path& workingDirectory) const; inline const std::string& name() const { return name_; } - inline const std::optional bitcodePath() const { return bitcodePath_; } - inline const size_t bitcodeSize() const { return bitcodeSize_; } inline llvm::Module& module() { return *module_; } @@ -90,9 +85,6 @@ class Benchmark { const std::string name_; // The length of the bitcode string for this benchmark. const size_t bitcodeSize_; - // The path of the bitcode file for this benchmark. This is optional - - // benchmarks do not have to be backed by a file. - const std::optional bitcodePath_; }; } // namespace compiler_gym::llvm_service diff --git a/compiler_gym/envs/llvm/service/BenchmarkFactory.cc b/compiler_gym/envs/llvm/service/BenchmarkFactory.cc index 0ef0584c8..73509654c 100644 --- a/compiler_gym/envs/llvm/service/BenchmarkFactory.cc +++ b/compiler_gym/envs/llvm/service/BenchmarkFactory.cc @@ -11,6 +11,7 @@ #include #include +#include "compiler_gym/envs/llvm/service/Cost.h" #include "compiler_gym/util/GrpcStatusMacros.h" #include "compiler_gym/util/RunfilesPath.h" #include "compiler_gym/util/StrLenConstexpr.h" @@ -24,10 +25,6 @@ using grpc::StatusCode; namespace compiler_gym::llvm_service { -static const std::string kExpectedExtension = ".bc"; - -static const fs::path kSiteBenchmarksDir = util::getSiteDataPath("llvm/10.0.0/bitcode_benchmarks"); - BenchmarkFactory::BenchmarkFactory(const boost::filesystem::path& workingDirectory, std::optional rand, size_t maxLoadedBenchmarkSize) @@ -35,18 +32,22 @@ BenchmarkFactory::BenchmarkFactory(const boost::filesystem::path& workingDirecto rand_(rand.has_value() ? *rand : std::mt19937_64(std::random_device()())), loadedBenchmarksSize_(0), maxLoadedBenchmarkSize_(maxLoadedBenchmarkSize) { - // Register all benchmarks from the site data directory. - if (fs::is_directory(kSiteBenchmarksDir)) { - CRASH_IF_ERROR(scanSiteDataDirectory()); - } else { - LOG(INFO) << "LLVM site benchmark directory not found: " << kSiteBenchmarksDir.string(); + VLOG(2) << "BenchmarkFactory initialized"; +} + +Status BenchmarkFactory::getBenchmark(const std::string& uri, + std::unique_ptr* benchmark) { + // Check if the benchmark has already been loaded into memory. + auto loaded = benchmarks_.find(uri); + if (loaded != benchmarks_.end()) { + *benchmark = loaded->second.clone(workingDirectory_); + return Status::OK; } - VLOG(2) << "BenchmarkFactory initialized with " << numBenchmarks() << " benchmarks"; + return Status(StatusCode::NOT_FOUND, "Benchmark not found"); } -Status BenchmarkFactory::addBitcode(const std::string& uri, const Bitcode& bitcode, - std::optional bitcodePath) { +Status BenchmarkFactory::addBitcode(const std::string& uri, const Bitcode& bitcode) { Status status; std::unique_ptr context = std::make_unique(); std::unique_ptr module = makeModule(*context, bitcode, uri, &status); @@ -59,34 +60,17 @@ Status BenchmarkFactory::addBitcode(const std::string& uri, const Bitcode& bitco << " exceeds maximum in-memory cache capacity " << maxLoadedBenchmarkSize_ << ", " << benchmarks_.size() << " bitcodes"; int evicted = 0; - // Evict benchmarks until we have reduced capacity below 50%. Use a - // bounded for loop to prevent infinite loop if we get "unlucky" and - // have no valid candidates to unload. + // Evict benchmarks until we have reduced capacity below 50%. const size_t targetCapacity = maxLoadedBenchmarkSize_ / 2; - for (size_t i = 0; i < benchmarks_.size() * 2; ++i) { - // We have run out of benchmarks to evict, or have freed up - // enough capacity. - if (!benchmarks_.size() || loadedBenchmarksSize_ < targetCapacity) { - break; - } - + while (benchmarks_.size() && loadedBenchmarksSize_ > targetCapacity) { // Select a cached benchmark randomly. std::uniform_int_distribution distribution(0, benchmarks_.size() - 1); size_t index = distribution(rand_); auto iterator = std::next(std::begin(benchmarks_), index); - // Check that the benchmark has an on-disk bitcode file which - // can be loaded to re-cache this bitcode. If not, we cannot - // evict it. - if (!iterator->second.bitcodePath().has_value()) { - continue; - } - - // Evict the benchmark: add it to the pool of unloaded benchmarks and - // delete it from the pool of loaded benchmarks. + // Evict the benchmark from the pool of loaded benchmarks. ++evicted; loadedBenchmarksSize_ -= iterator->second.bitcodeSize(); - unloadedBitcodePaths_.insert({iterator->first, *iterator->second.bitcodePath()}); benchmarks_.erase(iterator); } @@ -94,241 +78,22 @@ Status BenchmarkFactory::addBitcode(const std::string& uri, const Bitcode& bitco << loadedBenchmarksSize_ << ", " << benchmarks_.size() << " bitcodes"; } + BaselineCosts baselineCosts; + RETURN_IF_ERROR(setBaselineCosts(*module, &baselineCosts, workingDirectory_)); + benchmarks_.insert({uri, Benchmark(uri, std::move(context), std::move(module), bitcodeSize, - workingDirectory_, bitcodePath)}); + workingDirectory_, baselineCosts)}); loadedBenchmarksSize_ += bitcodeSize; return Status::OK; } -Status BenchmarkFactory::addBitcodeFile(const std::string& uri, - const boost::filesystem::path& path) { - if (!fs::exists(path)) { - return Status(StatusCode::NOT_FOUND, fmt::format("File not found: \"{}\"", path.string())); - } - unloadedBitcodePaths_[uri] = path; - return Status::OK; -} - -Status BenchmarkFactory::addBitcodeUriAlias(const std::string& src, const std::string& dst) { - // TODO(github.com/facebookresearch/CompilerGym/issues/2): Add support - // for additional protocols, e.g. http://. - if (dst.rfind("file:////", 0) != 0) { - return Status(StatusCode::INVALID_ARGUMENT, - fmt::format("Unsupported benchmark URI protocol: \"{}\"", dst)); - } - - // Resolve path from file:/// protocol URI. - const boost::filesystem::path path{dst.substr(util::strLen("file:///"))}; - return addBitcodeFile(src, path); -} - -namespace { - -bool endsWith(const std::string& str, const std::string& suffix) { - return str.size() >= suffix.size() && - str.compare(str.size() - suffix.size(), suffix.size(), suffix) == 0; -} - -} // anonymous namespace - -Status BenchmarkFactory::addDirectoryOfBitcodes(const boost::filesystem::path& root) { - VLOG(3) << "addDirectoryOfBitcodes(" << root.string() << ")"; - if (!fs::is_directory(root)) { - return Status(StatusCode::INVALID_ARGUMENT, - fmt::format("Directory not found: \"{}\"", root.string())); - } - - // Check if there is a manifest file that we can read, rather than having to - // enumerate the directory ourselves. - const auto manifestPath = fs::path(root.string() + ".MANIFEST"); - if (fs::is_regular_file(manifestPath)) { - VLOG(3) << "Reading manifest file: " << manifestPath; - return addDirectoryOfBitcodes(root, manifestPath); - } - - const auto rootPathSize = root.string().size(); - for (auto it : fs::recursive_directory_iterator(root, fs::symlink_option::recurse)) { - if (!fs::is_regular_file(it)) { - continue; - } - const std::string& path = it.path().string(); - - if (!endsWith(path, kExpectedExtension)) { - continue; - } - - // The name of the benchmark is path, relative to the root, without the - // file extension. - const std::string name = - path.substr(rootPathSize + 1, path.size() - rootPathSize - kExpectedExtension.size() - 1); - const std::string uri = fmt::format("benchmark://{}", name); - - RETURN_IF_ERROR(addBitcodeFile(uri, path)); - } - - return Status::OK; -} - -Status BenchmarkFactory::addDirectoryOfBitcodes(const boost::filesystem::path& root, - const boost::filesystem::path& manifestPath) { - std::ifstream infile(manifestPath.string()); - std::string relPath; - while (std::getline(infile, relPath)) { - if (!endsWith(relPath, kExpectedExtension)) { - continue; - } - - const fs::path path = root / relPath; - const std::string name = relPath.substr(0, relPath.size() - kExpectedExtension.size()); - const std::string uri = fmt::format("benchmark://{}", name); - - RETURN_IF_ERROR(addBitcodeFile(uri, path)); - } - - return Status::OK; -} - -Status BenchmarkFactory::getBenchmark(std::unique_ptr* benchmark) { - if (!benchmarks_.size() && !unloadedBitcodePaths_.size()) { - return Status(StatusCode::NOT_FOUND, - fmt::format("No benchmarks registered. Site data directory: `{}`", - kSiteBenchmarksDir.string())); - } - - const size_t unloadedBenchmarkCount = unloadedBitcodePaths_.size(); - const size_t loadedBenchmarkCount = benchmarks_.size(); - - const size_t benchmarkCount = unloadedBenchmarkCount + loadedBenchmarkCount; - - std::uniform_int_distribution distribution(0, benchmarkCount - 1); - size_t index = distribution(rand_); - - if (index < unloadedBenchmarkCount) { - // Select a random unloaded benchmark to load and move to the loaded - // benchmark collection. - auto unloadedBenchmark = std::next(std::begin(unloadedBitcodePaths_), index); - CHECK(unloadedBenchmark != unloadedBitcodePaths_.end()); - RETURN_IF_ERROR(loadBenchmark(unloadedBenchmark, benchmark)); - } else { - auto loadedBenchmark = std::next(std::begin(benchmarks_), index - unloadedBenchmarkCount); - CHECK(loadedBenchmark != benchmarks_.end()); - *benchmark = loadedBenchmark->second.clone(workingDirectory_); - } - - return Status::OK; -} - -Status BenchmarkFactory::getBenchmark(const std::string& uri, - std::unique_ptr* benchmark) { - std::string resolvedUri = uri; - // Prepend benchmark:// protocol if not specified. E.g. "foo/bar" resolves to - // "benchmark://foo/bar", but "file:///foo/bar" is not changed. - if (uri.find("://") == std::string::npos) { - resolvedUri = fmt::format("benchmark://{}", uri); - } - - auto loaded = benchmarks_.find(resolvedUri); - if (loaded != benchmarks_.end()) { - *benchmark = loaded->second.clone(workingDirectory_); - return Status::OK; - } - - auto unloaded = unloadedBitcodePaths_.find(resolvedUri); - if (unloaded != unloadedBitcodePaths_.end()) { - RETURN_IF_ERROR(loadBenchmark(unloaded, benchmark)); - return Status::OK; - } - - // No exact name match - attempt to match the URI prefix. - return getBenchmarkByUriPrefix(uri, resolvedUri, benchmark); -} - -Status BenchmarkFactory::getBenchmarkByUriPrefix(const std::string& uriPrefix, - const std::string& resolvedUriPrefix, - std::unique_ptr* benchmark) { - // Make a list of all of the known benchmarks which match this prefix. - std::vector candidateBenchmarks; - for (const auto& it : unloadedBitcodePaths_) { - const std::string& uri = it.first; - if (uri.rfind(resolvedUriPrefix, 0) == 0) { - candidateBenchmarks.push_back(uri.c_str()); - } - } - for (const auto& it : benchmarks_) { - const std::string& uri = it.first; - if (uri.rfind(resolvedUriPrefix, 0) == 0) { - candidateBenchmarks.push_back(uri.c_str()); - } - } - - const size_t candidatesCount = candidateBenchmarks.size(); - if (!candidatesCount) { - return Status(StatusCode::INVALID_ARGUMENT, fmt::format("Unknown benchmark \"{}\"", uriPrefix)); - } - - // Select randomly from the list of candidates. - std::uniform_int_distribution distribution(0, candidatesCount - 1); - size_t index = distribution(rand_); - return getBenchmark(candidateBenchmarks[index], benchmark); -} - -std::vector BenchmarkFactory::getBenchmarkNames() const { - std::vector names; - names.reserve(unloadedBitcodePaths_.size() + benchmarks_.size()); - for (const auto& it : unloadedBitcodePaths_) { - names.push_back(it.first); - } - for (const auto& it : benchmarks_) { - names.push_back(it.first); - } - return names; -} - -Status BenchmarkFactory::loadBenchmark( - std::unordered_map::const_iterator iterator, - std::unique_ptr* benchmark) { - const std::string uri = iterator->first; - const char* path = iterator->second.string().c_str(); - - VLOG(2) << "loadBenchmark(" << path << ")"; +Status BenchmarkFactory::addBitcode(const std::string& uri, const fs::path& path) { + VLOG(2) << "addBitcode(" << path.string() << ")"; Bitcode bitcode; - std::ifstream ifs(path); - if (ifs.fail()) { - return Status(StatusCode::NOT_FOUND, fmt::format("File not found: \"{}\"", path)); - } - - ifs.seekg(0, std::ios::end); - if (ifs.fail()) { - return Status(StatusCode::NOT_FOUND, fmt::format("Error reading file: \"{}\"", path)); - } - - std::streampos fileSize = ifs.tellg(); - if (!fileSize) { - return Status(StatusCode::INVALID_ARGUMENT, fmt::format("File is empty: \"{}\"", path)); - } - - bitcode.resize(fileSize); - ifs.seekg(0); - ifs.read(&bitcode[0], bitcode.size()); - if (ifs.fail()) { - return Status(StatusCode::NOT_FOUND, fmt::format("Error reading file: \"{}\"", path)); - } - - RETURN_IF_ERROR(addBitcode(uri, bitcode, fs::path(path))); - - unloadedBitcodePaths_.erase(iterator); - *benchmark = benchmarks_.find(uri)->second.clone(workingDirectory_); - return Status::OK; -} - -size_t BenchmarkFactory::numBenchmarks() const { - return benchmarks_.size() + unloadedBitcodePaths_.size(); -} - -Status BenchmarkFactory::scanSiteDataDirectory() { - return addDirectoryOfBitcodes(kSiteBenchmarksDir); + RETURN_IF_ERROR(readBitcodeFile(path, &bitcode)); + return addBitcode(uri, bitcode); } } // namespace compiler_gym::llvm_service diff --git a/compiler_gym/envs/llvm/service/BenchmarkFactory.h b/compiler_gym/envs/llvm/service/BenchmarkFactory.h index 11ecf7148..8aef66dbd 100644 --- a/compiler_gym/envs/llvm/service/BenchmarkFactory.h +++ b/compiler_gym/envs/llvm/service/BenchmarkFactory.h @@ -31,10 +31,8 @@ constexpr size_t kMaxLoadedBenchmarkSize = 512 * 1024 * 1024; // sessions. Example usage: // // BenchmarkFactory factory; -// for (int i = 0; i < 10; ++i) { -// auto benchmark = factory.getBenchmark(); -// // ... do fun stuff -// } +// auto benchmark = factory.getBenchmark("file:////tmp/my_bitcode.bc"); +// // ... do fun stuff class BenchmarkFactory { public: // Construct a benchmark factory. rand is a random seed used to control the @@ -46,69 +44,16 @@ class BenchmarkFactory { std::optional rand = std::nullopt, size_t maxLoadedBenchmarkSize = kMaxLoadedBenchmarkSize); - // Add a new bitcode. bitcodePath is optional. If provided, it allows the - // newly added benchmark to be evicted from the in-memory cache. - [[nodiscard]] grpc::Status addBitcode( - const std::string& uri, const Bitcode& bitcode, - std::optional bitcodePath = std::nullopt); - - // Add a bitcode URI alias. For example, - // addBitcodeFile("benchmark://foo", "file:///tmp/foo.bc") - // adds a new benchmark "benchmark://foo" which resolves to the path - // "/tmp/foo.bc". - [[nodiscard]] grpc::Status addBitcodeUriAlias(const std::string& src, const std::string& dst); - - // Add a directory of bitcode files. The format for added benchmark URIs is - // `benchmark://`, where relStem is the path of the file, relative - // to the root of the directory, without the file extension. - // - // Note that if any of the bitcodes are invalid, this error will be latent - // until a call to getBenchmark() attempts to load it. - [[nodiscard]] grpc::Status addDirectoryOfBitcodes(const boost::filesystem::path& path); - - // Get a random benchmark. - [[nodiscard]] grpc::Status getBenchmark(std::unique_ptr* benchmark); - // Get the requested named benchmark. [[nodiscard]] grpc::Status getBenchmark(const std::string& uri, std::unique_ptr* benchmark); - // Enumerate the list of available benchmark names that can be - // passed to getBenchmark(). - [[nodiscard]] std::vector getBenchmarkNames() const; - - // Scan the site data directory for new files. This is used to indicate that - // the directory has changed. - [[nodiscard]] grpc::Status scanSiteDataDirectory(); + [[nodiscard]] grpc::Status addBitcode(const std::string& uri, const Bitcode& bitcode); - size_t numBenchmarks() const; - - // Register the path of a new bitcode file using the given URI. If the URI - // already exists, it is replaced. - [[nodiscard]] grpc::Status addBitcodeFile(const std::string& uri, - const boost::filesystem::path& path); + [[nodiscard]] grpc::Status addBitcode(const std::string& uri, + const boost::filesystem::path& path); private: - // Add a directory of bitcode files by reading a MANIFEST file. The manifest - // file must consist of a single relative path per line. - [[nodiscard]] grpc::Status addDirectoryOfBitcodes(const boost::filesystem::path& path, - const boost::filesystem::path& manifestPath); - - // Fetch a random benchmark matching a given URI prefix. - [[nodiscard]] grpc::Status getBenchmarkByUriPrefix(const std::string& uriPrefix, - const std::string& resolvedUriPrefix, - std::unique_ptr* benchmark); - - [[nodiscard]] grpc::Status loadBenchmark( - std::unordered_map::const_iterator iterator, - std::unique_ptr* benchmark); - - // A map from benchmark name to the path of a bitcode file. This is used to - // store the paths of benchmarks w - // hich have not yet been loaded into memory. - // Once loaded, they are removed from this map and replaced by an entry in - // benchmarks_. - std::unordered_map unloadedBitcodePaths_; // A mapping from URI to benchmarks which have been loaded into memory. std::unordered_map benchmarks_; diff --git a/compiler_gym/envs/llvm/service/Cost.cc b/compiler_gym/envs/llvm/service/Cost.cc index 337314f93..54c785389 100644 --- a/compiler_gym/envs/llvm/service/Cost.cc +++ b/compiler_gym/envs/llvm/service/Cost.cc @@ -70,14 +70,10 @@ Status getTextSizeInBytes(llvm::Module& module, int64_t* value, #else Status getTextSizeInBytes(llvm::Module& module, int64_t* value, const fs::path& workingDirectory) { #endif - const auto clangPath = util::getSiteDataPath("llvm/10.0.0/bin/clang"); - const auto llvmSizePath = util::getSiteDataPath("llvm/10.0.0/bin/llvm-size"); - if (!fs::exists(clangPath)) { - return Status(StatusCode::INTERNAL, fmt::format("File not found: {}", clangPath.string())); - } - if (!fs::exists(llvmSizePath)) { - return Status(StatusCode::INTERNAL, fmt::format("File not found: {}", llvmSizePath.string())); - } + const auto clangPath = util::getSiteDataPath("llvm-v0/bin/clang"); + const auto llvmSizePath = util::getSiteDataPath("llvm-v0/bin/llvm-size"); + DCHECK(fs::exists(clangPath)) << fmt::format("File not found: {}", clangPath.string()); + DCHECK(fs::exists(llvmSizePath)) << fmt::format("File not found: {}", llvmSizePath.string()); // Lower the module to an object file using clang and extract the .text // section size using llvm-size. @@ -86,14 +82,14 @@ Status getTextSizeInBytes(llvm::Module& module, int64_t* value, const fs::path& const auto tmpFile = fs::unique_path(workingDirectory / "obj-%%%%"); #ifdef COMPILER_GYM_EXPERIMENTAL_TEXT_SIZE_COST - std::vector clangCmd{clangPath.string(), "-xir", "-", "-o", tmpFile.string()}; + std::vector clangCmd{clangPath.string(), "-w", "-xir", "-", "-o", tmpFile.string()}; clangCmd.insert(clangCmd.end(), clangArgs.begin(), clangArgs.end()); auto clang = subprocess::Popen(clangCmd, subprocess::input{subprocess::PIPE}, subprocess::output{subprocess::PIPE}, subprocess::error{subprocess::PIPE}); #else auto clang = - subprocess::Popen({clangPath.string(), "-xir", "-", "-o", tmpFile.string(), "-c"}, + subprocess::Popen({clangPath.string(), "-w", "-xir", "-", "-o", tmpFile.string(), "-c"}, subprocess::input{subprocess::PIPE}, subprocess::output{subprocess::PIPE}, subprocess::error{subprocess::PIPE}); #endif @@ -101,7 +97,8 @@ Status getTextSizeInBytes(llvm::Module& module, int64_t* value, const fs::path& if (clang.retcode()) { fs::remove(tmpFile); const std::string error(clangOutput.second.buf.begin(), clangOutput.second.buf.end()); - return Status(StatusCode::INTERNAL, error); + return Status(StatusCode::INVALID_ARGUMENT, + fmt::format("Failed to compute .text size cost.\nError from clang:\n{}", error)); } auto llvmSize = @@ -111,7 +108,9 @@ Status getTextSizeInBytes(llvm::Module& module, int64_t* value, const fs::path& fs::remove(tmpFile); if (llvmSize.retcode()) { const std::string error(sizeOutput.second.buf.begin(), sizeOutput.second.buf.end()); - return Status(StatusCode::INTERNAL, error); + return Status( + StatusCode::INVALID_ARGUMENT, + fmt::format("Failed to compute .text size cost.\nError from llvm-size:\n{}", error)); } // The output of llvm-size is in berkley format, e.g.: @@ -145,20 +144,22 @@ inline size_t getBaselineCostIndex(LlvmBaselinePolicy policy, LlvmCostFunction c } // anonymous namespace -double getCost(const LlvmCostFunction& cost, llvm::Module& module, - const fs::path& workingDirectory) { - switch (cost) { - case LlvmCostFunction::IR_INSTRUCTION_COUNT: - return static_cast(module.getInstructionCount()); +Status setCost(const LlvmCostFunction& costFunction, llvm::Module& module, + const fs::path& workingDirectory, double* cost) { + switch (costFunction) { + case LlvmCostFunction::IR_INSTRUCTION_COUNT: { + *cost = static_cast(module.getInstructionCount()); + break; + } case LlvmCostFunction::OBJECT_TEXT_SIZE_BYTES: { int64_t size; #ifdef COMPILER_GYM_EXPERIMENTAL_TEXT_SIZE_COST - const auto status = getTextSizeInBytes(module, &size, {"-c"}, workingDirectory); + RETURN_IF_ERROR(getTextSizeInBytes(module, &size, {"-c"}, workingDirectory)); #else - const auto status = getTextSizeInBytes(module, &size, workingDirectory); + RETURN_IF_ERROR(getTextSizeInBytes(module, &size, workingDirectory)); #endif - CHECK(status.ok()) << status.error_message(); - return static_cast(size); + *cost = static_cast(size); + break; } #ifdef COMPILER_GYM_EXPERIMENTAL_TEXT_SIZE_COST @@ -171,14 +172,15 @@ double getCost(const LlvmCostFunction& cost, llvm::Module& module, #endif case LlvmCostFunction::TEXT_SIZE_BYTES: { int64_t size; - const auto status = getTextSizeInBytes(module, &size, {SYSTEM_LIBRARIES}, workingDirectory); - CHECK(status.ok()) << status.error_message(); - return static_cast(size); + RETURN_IF_ERROR(getTextSizeInBytes(module, &size, {SYSTEM_LIBRARIES}, workingDirectory)); + *cost = static_cast(size); + break; } #endif + default: + UNREACHABLE(fmt::format("Unhandled cost function: {}", costFunction)); } - - UNREACHABLE("Unhandled cost"); + return Status::OK; } double getBaselineCost(const BaselineCosts& baselineCosts, LlvmBaselinePolicy policy, @@ -186,12 +188,12 @@ double getBaselineCost(const BaselineCosts& baselineCosts, LlvmBaselinePolicy po return baselineCosts[getBaselineCostIndex(policy, cost)]; } -void setbaselineCosts(const llvm::Module& unoptimizedModule, BaselineCosts* baselineCosts, - const fs::path& workingDirectory) { +Status setBaselineCosts(llvm::Module& unoptimizedModule, BaselineCosts* baselineCosts, + const fs::path& workingDirectory) { + llvm::Module* moduleO0 = &unoptimizedModule; + // Create a copy of the unoptimized module and apply the default set of LLVM // optimizations. - std::unique_ptr moduleO0 = llvm::CloneModule(unoptimizedModule); - std::unique_ptr moduleOz = llvm::CloneModule(unoptimizedModule); applyBaselineOptimizations(moduleOz.get(), /*optLevel=*/2, /*sizeLevel=*/2); @@ -203,7 +205,7 @@ void setbaselineCosts(const llvm::Module& unoptimizedModule, BaselineCosts* base llvm::Module* baselineModule{nullptr}; switch (policy) { case LlvmBaselinePolicy::O0: - baselineModule = moduleO0.get(); + baselineModule = moduleO0; break; case LlvmBaselinePolicy::O3: baselineModule = moduleO3.get(); @@ -211,16 +213,19 @@ void setbaselineCosts(const llvm::Module& unoptimizedModule, BaselineCosts* base case LlvmBaselinePolicy::Oz: baselineModule = moduleOz.get(); break; + default: + UNREACHABLE("Unknown baseline policy"); } DCHECK(baselineModule); // Compute and set the baseline costs. for (const auto cost : magic_enum::enum_values()) { const auto idx = getBaselineCostIndex(policy, cost); - const auto cc = getCost(cost, *baselineModule, workingDirectory); - (*baselineCosts)[idx] = cc; + RETURN_IF_ERROR(setCost(cost, *baselineModule, workingDirectory, &(*baselineCosts)[idx])); } } + + return Status::OK; } } // namespace compiler_gym::llvm_service diff --git a/compiler_gym/envs/llvm/service/Cost.h b/compiler_gym/envs/llvm/service/Cost.h index f6c60cffa..4b520cc97 100644 --- a/compiler_gym/envs/llvm/service/Cost.h +++ b/compiler_gym/envs/llvm/service/Cost.h @@ -4,6 +4,8 @@ // LICENSE file in the root directory of this source tree. #pragma once +#include + #include #include @@ -40,15 +42,18 @@ using PreviousCosts = std::array, numCosts>; // by returning a grpc::Status. // Compute the cost using a given cost function. A lower cost is better. -double getCost(const LlvmCostFunction& cost, llvm::Module& module, - const boost::filesystem::path& workingDirectory); +[[nodiscard]] grpc::Status setCost(const LlvmCostFunction& costFunction, llvm::Module& module, + const boost::filesystem::path& workingDirectory, double* cost); // Return a baseline cost. double getBaselineCost(const BaselineCosts& baselineCosts, LlvmBaselinePolicy policy, LlvmCostFunction cost); -// Compute the costs of baseline policies. -void setbaselineCosts(const llvm::Module& unoptimizedModule, BaselineCosts* baselineCosts, - const boost::filesystem::path& workingDirectory); +// Compute the costs of baseline policies. The unoptimizedModule parameter is +// unmodified, but is not const because various LLVM API calls require a mutable +// reference. +[[nodiscard]] grpc::Status setBaselineCosts(llvm::Module& unoptimizedModule, + BaselineCosts* baselineCosts, + const boost::filesystem::path& workingDirectory); } // namespace compiler_gym::llvm_service diff --git a/compiler_gym/envs/llvm/service/LlvmService.cc b/compiler_gym/envs/llvm/service/LlvmService.cc index 068ba5ef3..5627deb8b 100644 --- a/compiler_gym/envs/llvm/service/LlvmService.cc +++ b/compiler_gym/envs/llvm/service/LlvmService.cc @@ -14,6 +14,7 @@ #include "compiler_gym/service/proto/compiler_gym_service.pb.h" #include "compiler_gym/util/EnumUtil.h" #include "compiler_gym/util/GrpcStatusMacros.h" +#include "compiler_gym/util/StrLenConstexpr.h" #include "compiler_gym/util/Version.h" #include "llvm/ADT/Triple.h" #include "llvm/Config/llvm-config.h" @@ -53,13 +54,13 @@ Status LlvmService::StartSession(ServerContext* /* unused */, const StartSession StartSessionReply* reply) { const std::lock_guard lock(sessionsMutex_); - std::unique_ptr benchmark; - if (request->benchmark().size()) { - RETURN_IF_ERROR(benchmarkFactory_.getBenchmark(request->benchmark(), &benchmark)); - } else { - RETURN_IF_ERROR(benchmarkFactory_.getBenchmark(&benchmark)); + if (!request->benchmark().size()) { + return Status(StatusCode::INVALID_ARGUMENT, "No benchmark URI set for StartSession()"); } + std::unique_ptr benchmark; + RETURN_IF_ERROR(benchmarkFactory_.getBenchmark(request->benchmark(), &benchmark)); + reply->set_benchmark(benchmark->name()); VLOG(1) << "StartSession(" << benchmark->name() << "), [" << nextSessionId_ << "]"; @@ -67,9 +68,19 @@ Status LlvmService::StartSession(ServerContext* /* unused */, const StartSession RETURN_IF_ERROR(util::intToEnum(request->action_space(), &actionSpace)); // Construct the environment. - reply->set_session_id(nextSessionId_); - sessions_[nextSessionId_] = + auto session = std::make_unique(std::move(benchmark), actionSpace, workingDirectory_); + + // Compute the initial observations. + for (int i = 0; i < request->observation_space_size(); ++i) { + LlvmObservationSpace observationSpace; + RETURN_IF_ERROR(util::intToEnum(request->observation_space(i), &observationSpace)); + auto observation = reply->add_observation(); + RETURN_IF_ERROR(session->getObservation(observationSpace, observation)); + } + + reply->set_session_id(nextSessionId_); + sessions_[nextSessionId_] = std::move(session); ++nextSessionId_; return Status::OK; @@ -138,19 +149,23 @@ Status LlvmService::addBenchmark(const ::compiler_gym::Benchmark& request) { return Status(StatusCode::INVALID_ARGUMENT, "Benchmark must have a URI"); } - if (uri == "service://scan-site-data") { - return benchmarkFactory_.scanSiteDataDirectory(); - } - const auto& programFile = request.program(); switch (programFile.data_case()) { case ::compiler_gym::File::DataCase::kContents: - RETURN_IF_ERROR(benchmarkFactory_.addBitcode( - uri, llvm::SmallString<0>(programFile.contents().begin(), programFile.contents().end()))); - break; - case ::compiler_gym::File::DataCase::kUri: - RETURN_IF_ERROR(benchmarkFactory_.addBitcodeUriAlias(uri, programFile.uri())); - break; + return benchmarkFactory_.addBitcode( + uri, llvm::SmallString<0>(programFile.contents().begin(), programFile.contents().end())); + case ::compiler_gym::File::DataCase::kUri: { + // Check that protocol of the benmchmark URI. + if (programFile.uri().find("file:///") != 0) { + return Status(StatusCode::INVALID_ARGUMENT, + fmt::format("Invalid benchmark data URI. " + "Only the file:/// protocol is supported: \"{}\"", + programFile.uri())); + } + + const fs::path path(programFile.uri().substr(util::strLen("file:///"), std::string::npos)); + return benchmarkFactory_.addBitcode(uri, path); + } case ::compiler_gym::File::DataCase::DATA_NOT_SET: return Status(StatusCode::INVALID_ARGUMENT, "No program set"); } @@ -158,20 +173,10 @@ Status LlvmService::addBenchmark(const ::compiler_gym::Benchmark& request) { return Status::OK; } -Status LlvmService::GetBenchmarks(ServerContext* /* unused */, - const GetBenchmarksRequest* /* unused */, - GetBenchmarksReply* reply) { - for (const auto& benchmark : benchmarkFactory_.getBenchmarkNames()) { - reply->add_benchmark(benchmark); - } - - return Status::OK; -} - Status LlvmService::session(uint64_t id, LlvmSession** environment) { auto it = sessions_.find(id); if (it == sessions_.end()) { - return Status(StatusCode::INVALID_ARGUMENT, fmt::format("Session not found: {}", id)); + return Status(StatusCode::NOT_FOUND, fmt::format("Session not found: {}", id)); } *environment = it->second.get(); @@ -181,7 +186,7 @@ Status LlvmService::session(uint64_t id, LlvmSession** environment) { Status LlvmService::session(uint64_t id, const LlvmSession** environment) const { auto it = sessions_.find(id); if (it == sessions_.end()) { - return Status(StatusCode::INVALID_ARGUMENT, fmt::format("Session not found: {}", id)); + return Status(StatusCode::NOT_FOUND, fmt::format("Session not found: {}", id)); } *environment = it->second.get(); diff --git a/compiler_gym/envs/llvm/service/LlvmService.h b/compiler_gym/envs/llvm/service/LlvmService.h index 3f85a438b..4e321e1f9 100644 --- a/compiler_gym/envs/llvm/service/LlvmService.h +++ b/compiler_gym/envs/llvm/service/LlvmService.h @@ -48,9 +48,6 @@ class LlvmService final : public CompilerGymService::Service { grpc::Status AddBenchmark(grpc::ServerContext* context, const AddBenchmarkRequest* request, AddBenchmarkReply* reply) final override; - grpc::Status GetBenchmarks(grpc::ServerContext* context, const GetBenchmarksRequest* request, - GetBenchmarksReply* reply) final override; - protected: grpc::Status session(uint64_t id, LlvmSession** environment); grpc::Status session(uint64_t id, const LlvmSession** environment) const; diff --git a/compiler_gym/envs/llvm/service/LlvmSession.cc b/compiler_gym/envs/llvm/service/LlvmSession.cc index e38b2491c..5a1c281f3 100644 --- a/compiler_gym/envs/llvm/service/LlvmSession.cc +++ b/compiler_gym/envs/llvm/service/LlvmSession.cc @@ -218,7 +218,7 @@ Status LlvmSession::runOptWithArgs(const std::vector& optArgs) { RETURN_IF_ERROR(writeBitcodeToFile(benchmark().module(), before_path)); // Build a command line invocation: `opt input.bc -o output.bc `. - const auto optPath = util::getSiteDataPath("llvm/10.0.0/bin/opt"); + const auto optPath = util::getSiteDataPath("llvm-v0/bin/opt"); if (!fs::exists(optPath)) { return Status(StatusCode::INTERNAL, fmt::format("File not found: {}", optPath.string())); } @@ -331,8 +331,9 @@ Status LlvmSession::getObservation(LlvmObservationSpace space, Observation* repl break; } case LlvmObservationSpace::IR_INSTRUCTION_COUNT: { - const auto cost = - getCost(LlvmCostFunction::IR_INSTRUCTION_COUNT, benchmark().module(), workingDirectory_); + double cost; + RETURN_IF_ERROR(setCost(LlvmCostFunction::IR_INSTRUCTION_COUNT, benchmark().module(), + workingDirectory_, &cost)); reply->set_scalar_int64(static_cast(cost)); break; } @@ -355,8 +356,9 @@ Status LlvmSession::getObservation(LlvmObservationSpace space, Observation* repl break; } case LlvmObservationSpace::OBJECT_TEXT_SIZE_BYTES: { - const auto cost = getCost(LlvmCostFunction::OBJECT_TEXT_SIZE_BYTES, benchmark().module(), - workingDirectory_); + double cost; + RETURN_IF_ERROR(setCost(LlvmCostFunction::OBJECT_TEXT_SIZE_BYTES, benchmark().module(), + workingDirectory_, &cost)); reply->set_scalar_int64(static_cast(cost)); break; } @@ -380,8 +382,9 @@ Status LlvmSession::getObservation(LlvmObservationSpace space, Observation* repl } #ifdef COMPILER_GYM_EXPERIMENTAL_TEXT_SIZE_COST case LlvmObservationSpace::TEXT_SIZE_BYTES: { - const auto cost = - getCost(LlvmCostFunction::TEXT_SIZE_BYTES, benchmark().module(), workingDirectory_); + double cost; + RETURN_IF_ERROR(setCost(LlvmCostFunction::TEXT_SIZE_BYTES, benchmark().module(), + workingDirectory_, &cost)); reply->set_scalar_int64(static_cast(cost)); break; } diff --git a/compiler_gym/envs/llvm/service/LlvmSession.h b/compiler_gym/envs/llvm/service/LlvmSession.h index 2667397a7..e9d55e3b1 100644 --- a/compiler_gym/envs/llvm/service/LlvmSession.h +++ b/compiler_gym/envs/llvm/service/LlvmSession.h @@ -51,13 +51,13 @@ class LlvmSession { // since the start of the session. This is just for logging and has no effect. inline int actionCount() const { return actionCount_; } - protected: // Run the requested action. [[nodiscard]] grpc::Status runAction(LlvmAction action, StepReply* reply); // Compute the requested observation. [[nodiscard]] grpc::Status getObservation(LlvmObservationSpace space, Observation* reply); + protected: // Run the given pass, possibly modifying the underlying LLVM module. void runPass(llvm::Pass* pass, StepReply* reply); void runPass(llvm::FunctionPass* pass, StepReply* reply); diff --git a/compiler_gym/leaderboard/llvm_instcount.py b/compiler_gym/leaderboard/llvm_instcount.py index a8dad1066..9d913bb4a 100644 --- a/compiler_gym/leaderboard/llvm_instcount.py +++ b/compiler_gym/leaderboard/llvm_instcount.py @@ -27,36 +27,38 @@ ` to automatically evaluate their agent on the test set. """ -import platform -import sys -from collections import Counter +import logging +import os +from itertools import islice from pathlib import Path from threading import Thread from time import sleep -from typing import Callable, Iterable +from typing import Callable, List -import GPUtil import gym import humanize -import psutil from absl import app, flags -from cpuinfo import get_cpu_info -from tqdm import tqdm import compiler_gym.envs # noqa Register environments. from compiler_gym.bin.validate import main as validate -from compiler_gym.compiler_env_state import CompilerEnvState +from compiler_gym.compiler_env_state import ( + CompilerEnvState, + CompilerEnvStateReader, + CompilerEnvStateWriter, +) from compiler_gym.envs import LlvmEnv -from compiler_gym.util.tabulate import tabulate -from compiler_gym.util.timer import Timer +from compiler_gym.util.statistics import arithmetic_mean, geometric_mean +from compiler_gym.util.timer import Timer, humanize_duration_hms flags.DEFINE_string( - "results_logfile", "results.csv", "The path of the file to write results to." + "leaderboard_results", + "llvm_instcount-results.csv", + "The path of the file to write results to.", ) flags.DEFINE_string( - "hardware_info", - "hardware.txt", - "The path of the file to write a hardware summary to.", + "leaderboard_logfile", + "llvm_instcount-results.log", + "The path of a file to stream CompilerGym logs to.", ) flags.DEFINE_integer( "max_benchmarks", @@ -68,13 +70,13 @@ flags.DEFINE_integer( "n", 10, "The number of repetitions of the search to run for each benchmark." ) -flags.DEFINE_string("test_dataset", "cBench-v1", "The dataset to use for the search.") +flags.DEFINE_string("test_dataset", "cbench-v1", "The dataset to use for the search.") flags.DEFINE_boolean("validate", True, "Run validation on the results.") flags.DEFINE_boolean( "resume", False, - "If true, read the --results_logfile first and run only the policy " - "evaluations not already in the logfile.", + "If true, read the --leaderboard_results file first and run only the " + "evaluations not already in the results file.", ) FLAGS = flags.FLAGS @@ -83,66 +85,32 @@ Policy = Callable[[LlvmEnv], None] -def _get_gpus() -> Iterable[str]: - """Return GPU info strings.""" - gpus = GPUtil.getGPUs() - if gpus: - yield from (gpu.name for gpu in gpus) - else: - yield "None" - - -def _get_cpu() -> str: - """Return CPU info string.""" - cpuinfo = get_cpu_info() - brand = cpuinfo["brand_raw"].replace("(R)", "") - return f"{brand} ({cpuinfo['count']}x core)" - - -def _get_memory() -> str: - """Return system memory info string.""" - return humanize.naturalsize(psutil.virtual_memory().total, binary=True) - - -def _get_os() -> str: - """Return operating system name as a string.""" - return platform.platform() - - -def _summarize_duplicates(iterable: Iterable[str]) -> Iterable[str]: - """Aggregate duplicates in a list of strings.""" - freq = sorted(Counter(iterable).items(), key=lambda x: -x[1]) - for gpu, count in freq: - if count > 1: - yield f"{count}x {gpu}" - else: - yield gpu - - -def _get_hardarwe_info() -> str: - """Print a summary of system hardware to file.""" - return tabulate( - [ - ("OS", _get_os()), - ("CPU", _get_cpu()), - ("Memory", _get_memory()), - ("GPU", ", ".join(_summarize_duplicates(_get_gpus()))), - ], - headers=("", "Hardware Specification"), - ) +class _EvalPolicyWorker(Thread): + """Worker thread to evaluate a policy.""" - -class _BenchmarkRunner(Thread): - def __init__(self, env, benchmarks, policy, print_header): + def __init__( + self, + env: LlvmEnv, + benchmarks: List[str], + policy: Policy, + init_states: List[CompilerEnvState], + ): super().__init__() self.env = env self.benchmarks = benchmarks self.policy = policy - self.print_header = print_header - self.n = 0 + self.states: List[CompilerEnvState] = init_states + self.alive = True def run(self): - with open(FLAGS.results_logfile, "a") as logfile: + # Determine if we need to print a header. + header = ( + not Path(FLAGS.leaderboard_results).is_file() + or os.stat(FLAGS.leaderboard_results).st_size == 0 + ) + with CompilerEnvStateWriter( + open(FLAGS.leaderboard_results, "a"), header=header + ) as writer: for benchmark in self.benchmarks: self.env.reset(benchmark=benchmark) with Timer() as timer: @@ -151,7 +119,7 @@ def run(self): # Sanity check that the policy didn't change the expected # experimental setup. assert self.env.in_episode, "Environment is no longer in an episode" - assert ( + assert self.env.benchmark and ( self.env.benchmark == benchmark ), "Policy changed environment benchmark" assert self.env.reward_space, "Policy unset environment reward space" @@ -160,17 +128,14 @@ def run(self): ), "Policy changed environment reward space" # Override walltime in the generated state. - state = CompilerEnvState( - benchmark=self.env.state.benchmark, - reward=self.env.state.reward, - walltime=timer.time, - commandline=self.env.state.commandline, - ) - if self.print_header: - print(self.env.state.csv_header(), file=logfile) - self.print_header = False - print(state.to_csv(), file=logfile, flush=True) - self.n += 1 + state = self.env.state.copy() + state.walltime = timer.time + + writer.write_state(state) + self.states.append(state) + + if not self.alive: + return def eval_llvm_instcount_policy(policy: Policy) -> None: @@ -238,11 +203,11 @@ def my_policy(env: LlvmEnv) -> None: defines a number of commandline flags that can be overriden to control the behavior of the evaluation. For example the flag :code:`--n` determines the number of times the policy is run on each benchmark (default is 10), and - :code:`--results_logfile` determines the path of the generated results file: + :code:`--leaderboard_results` determines the path of the generated results file: .. code-block:: - $ python my_policy.py --n=5 --results_logfile=my_policy_results.csv + $ python my_policy.py --n=5 --leaderboard_results=my_policy_results.csv You can use :code:`--helpfull` flag to list all of the flags that are defined: @@ -260,58 +225,87 @@ def main(argv): assert len(argv) == 1, f"Unknown args: {argv[:1]}" assert FLAGS.n > 0, "n must be > 0" - print( - f"Writing inference results to '{FLAGS.results_logfile}' and " - f"hardware summary to '{FLAGS.hardware_info}'" - ) + env = gym.make("llvm-ic-v0") - with open(FLAGS.hardware_info, "w") as f: - print(_get_hardarwe_info(), file=f) + # Stream verbose CompilerGym logs to file. + logger = logging.getLogger("compiler_gym") + logger.setLevel(logging.DEBUG) + env.logger.setLevel(logging.DEBUG) + log_handler = logging.FileHandler(FLAGS.leaderboard_logfile) + logger.addHandler(log_handler) + logger.propagate = False + + print(f"Writing results to {FLAGS.leaderboard_results}") + print(f"Writing logs to {FLAGS.leaderboard_logfile}") - env = gym.make("llvm-ic-v0") try: - # Install the required dataset and build the list of benchmarks to - # evaluate. - env.require_dataset(FLAGS.test_dataset) - benchmarks = sorted([b for b in env.benchmarks if FLAGS.test_dataset in b]) + # Build the list of benchmarks to evaluate. + benchmarks = env.datasets[FLAGS.test_dataset].benchmark_uris() if FLAGS.max_benchmarks: - benchmarks = benchmarks[: FLAGS.max_benchmarks] + benchmarks = islice(benchmarks, FLAGS.max_benchmarks) + benchmarks = list(benchmarks) # Repeat the searches for the requested number of iterations. benchmarks *= FLAGS.n benchmarks = sorted(benchmarks) - total = len(benchmarks) + total_count = len(benchmarks) # If we are resuming from a previous job, read the states that have # already been proccessed and remove those benchmarks from the list # of benchmarks to evaluate. - print_header = True - init = 0 - if Path(FLAGS.results_logfile).is_file(): - if FLAGS.resume: - with open(FLAGS.results_logfile, "r") as f: - for state in CompilerEnvState.read_csv_file(f): - if state.benchmark in benchmarks: - init += 1 - benchmarks.remove(state.benchmark) - print_header = False - else: - Path(FLAGS.results_logfile).unlink() + init_states = [] + if FLAGS.resume and Path(FLAGS.leaderboard_results).is_file(): + with CompilerEnvStateReader(open(FLAGS.leaderboard_results)) as reader: + for state in reader: + init_states.append(state) + if state.benchmark in benchmarks: + benchmarks.remove(state.benchmark) # Run the benchmark loop in background so that we can asynchronously # log progress. - pbar = tqdm(initial=init, total=total, file=sys.stderr, unit=" benchmark") - benchmark_runner = _BenchmarkRunner(env, benchmarks, policy, print_header) - benchmark_runner.start() - while benchmark_runner.is_alive(): - pbar.n = benchmark_runner.n + init - pbar.refresh() - sleep(1) + worker = _EvalPolicyWorker(env, benchmarks, policy, init_states) + worker.start() + timer = Timer().reset() + try: + print( + f"=== Evaluating policy on " + f"{humanize.intcomma(total_count)} " + f"{FLAGS.test_dataset} benchmarks ===" + "\n\n" # Blank lines will be filled below + ) + while worker.is_alive(): + done_count = len(worker.states) + remaining_count = total_count - done_count + time = timer.time + gmean_reward = geometric_mean([s.reward for s in worker.states]) + mean_walltime = ( + arithmetic_mean([s.walltime for s in worker.states]) or time + ) + print( + "\r\033[2A" + "\033[K" + f"Runtime: {humanize_duration_hms(time)}. " + f"Estimated completion: {humanize_duration_hms(time + mean_walltime * remaining_count)}. " + f"Completed: {humanize.intcomma(done_count)} / {humanize.intcomma(total_count)} " + f"({done_count / total_count:.1%})." + "\n\033[K" + f"Current mean walltime: {mean_walltime:.3f}s / benchmark." + "\n\033[K" + f"Current geomean reward: {gmean_reward:.4f}.", + flush=True, + end="", + ) + sleep(1) + except KeyboardInterrupt: + print("\nkeyboard interrupt", flush=True) + worker.alive = False + # User interrupt, don't validate. + FLAGS.validate = False finally: env.close() if FLAGS.validate: FLAGS.env = "llvm-ic-v0" - validate(["argv0", FLAGS.results_logfile]) + validate(["argv0", FLAGS.leaderboard_results]) app.run(main) diff --git a/compiler_gym/random_search.py b/compiler_gym/random_search.py index bdc51f872..87c60d6de 100644 --- a/compiler_gym/random_search.py +++ b/compiler_gym/random_search.py @@ -121,10 +121,10 @@ def random_search( f"random_search() requires CompilerEnv. Called with: {type(env).__name__}" ) - benchmark_name = env.benchmark + benchmark_uri = env.benchmark.uri if not outdir: - sanitized_benchmark_name = "/".join(benchmark_name.split("/")[-2:]) - outdir = create_logging_dir(f"random/{sanitized_benchmark_name}") + sanitized_benchmark_uri = "/".join(benchmark_uri.split("/")[-2:]) + outdir = create_logging_dir(f"random/{sanitized_benchmark_uri}") outdir = Path(outdir) if not env.reward_space: @@ -145,7 +145,7 @@ def random_search( # Write a metadata file. metadata = { "env": env.spec.id if env.spec else "", - "benchmark": benchmark_name, + "benchmark": benchmark_uri, "reward": reward_space_name, "patience": patience, } diff --git a/compiler_gym/requirements.txt b/compiler_gym/requirements.txt index 501676372..bcb9e852e 100644 --- a/compiler_gym/requirements.txt +++ b/compiler_gym/requirements.txt @@ -1,12 +1,12 @@ absl-py>=0.10.0 deprecated>=1.2.12 -fasteners==0.15 -# Version should be kept in step with @com_github_grpc_grpc in WORKSPACE. -grpcio>=1.36.0 +fasteners>=0.15 +grpcio>=1.32.0 gym>=0.18.0 humanize>=2.6.0 -networkx==2.5 +networkx>=2.5 numpy>=1.19.3 -protobuf==3.13.0 +protobuf>=3.13.0 +pydantic>=1.8.0 requests>=2.24.0 -tabulate==0.8.7 +tabulate>=0.8.7 diff --git a/compiler_gym/service/__init__.py b/compiler_gym/service/__init__.py index 9669ad0c8..d3f61f792 100644 --- a/compiler_gym/service/__init__.py +++ b/compiler_gym/service/__init__.py @@ -10,17 +10,19 @@ ServiceIsClosed, ServiceOSError, ServiceTransportError, + SessionNotFound, ) from compiler_gym.service.proto2py import observation_t, scalar_range2tuple __all__ = [ + "CompilerGymServiceConnection", + "ConnectionOpts", + "observation_t", + "scalar_range2tuple", "ServiceError", "ServiceInitError", "ServiceIsClosed", - "ServiceTransportError", "ServiceOSError", - "CompilerGymServiceConnection", - "ConnectionOpts", - "scalar_range2tuple", - "observation_t", + "ServiceTransportError", + "SessionNotFound", ] diff --git a/compiler_gym/service/connection.py b/compiler_gym/service/connection.py index 3b1f7c2e3..ba123cd28 100644 --- a/compiler_gym/service/connection.py +++ b/compiler_gym/service/connection.py @@ -13,9 +13,10 @@ from pathlib import Path from signal import Signals from time import sleep, time -from typing import Iterable, List, NamedTuple, Optional, TypeVar, Union +from typing import Iterable, List, Optional, TypeVar, Union import grpc +from pydantic import BaseModel from compiler_gym.service.proto import ( ActionSpace, @@ -42,7 +43,7 @@ ] -class ConnectionOpts(NamedTuple): +class ConnectionOpts(BaseModel): """The options used to configure a connection to a service.""" rpc_call_max_seconds: float = 300 @@ -86,6 +87,10 @@ class ServiceError(Exception): """Error raised from the service.""" +class SessionNotFound(ServiceError): + """Requested session ID not found in service.""" + + class ServiceOSError(ServiceError, OSError): """System error raised from the service.""" @@ -243,13 +248,12 @@ def loglines(self) -> Iterable[str]: yield from () -def make_working_dir(): - """Make a working directory for a service. The calling code is responsible for - removing this directory when done. +def make_working_dir() -> Path: + """Make a working directory for a service. The calling code is responsible + for removing this directory when done. """ - timestamp = datetime.now().isoformat() random_hash = random.getrandbits(16) - service_name = f"service-{timestamp}-{random_hash:04x}" + service_name = datetime.now().strftime(f"s/%m%dT%H%M%S-%f-{random_hash:04x}") working_dir = transient_cache_path(service_name) (working_dir / "logs").mkdir(parents=True, exist_ok=False) return working_dir @@ -306,6 +310,12 @@ def __init__( # value to disable buffering of logging messages. This makes it # easier to `LOG(INFO) << "..."` debug things. cmd.append("--logbuflevel=-1") + else: + # Silence the gRPC logs as we will do our own error reporting, but + # don't override any existing value so that the user may debug the + # gRPC backend by setting GRPC_VERBOSITY to ERROR, INFO, or DEBUG. + if not os.environ.get("GRPC_VERBOSITY"): + os.environ["GRPC_VERBOSITY"] = "NONE" logger.debug("Exec %s", cmd) self.process = subprocess.Popen( @@ -390,7 +400,7 @@ def __init__( shutil.rmtree(self.working_dir) raise TimeoutError( "Failed to connect to RPC service after " - f"{process_exit_max_seconds:.1f} seconds.{logs_message}" + f"{rpc_init_max_seconds:.1f} seconds.{logs_message}" ) super().__init__(channel, url, logger) diff --git a/compiler_gym/service/proto/__init__.py b/compiler_gym/service/proto/__init__.py index a7d22620f..2db9c7f91 100644 --- a/compiler_gym/service/proto/__init__.py +++ b/compiler_gym/service/proto/__init__.py @@ -13,8 +13,6 @@ File, ForkSessionReply, ForkSessionRequest, - GetBenchmarksReply, - GetBenchmarksRequest, GetSpacesReply, GetSpacesRequest, GetVersionReply, @@ -50,8 +48,6 @@ "File", "ForkSessionReply", "ForkSessionRequest", - "GetBenchmarksReply", - "GetBenchmarksRequest", "GetSpacesReply", "GetSpacesRequest", "GetVersionReply", diff --git a/compiler_gym/service/proto/compiler_gym_service.proto b/compiler_gym/service/proto/compiler_gym_service.proto index ef126e076..7916af741 100644 --- a/compiler_gym/service/proto/compiler_gym_service.proto +++ b/compiler_gym/service/proto/compiler_gym_service.proto @@ -23,7 +23,8 @@ service CompilerGymService { rpc GetSpaces(GetSpacesRequest) returns (GetSpacesReply); // Start a new CompilerGym service session. This allocates a new session on // the service and returns a session ID. To terminate the session, call - // EndSession() once done. + // EndSession() once done. Raises grpc::StatusCode::NOT_FOUND if the requested + // benchmark URI is not found. rpc StartSession(StartSessionRequest) returns (StartSessionReply); // Fork a session. This creates a new session in exactly the same state. The // new session must be terminated with EndSession() once done. This returns @@ -38,12 +39,6 @@ service CompilerGymService { // are queried using GetSpaces(). This returns an error if the requested // session does not exist. rpc Step(StepRequest) returns (StepReply); - // Enumerate the list of available benchmarks. - // - // DEPRECATED(https://github.com/facebookresearch/CompilerGym/issues/45): The - // GetBenchmarks() operation is deprecated as of CompilerGym v0.1.4 and will - // be removed in CompilerGym v0.1.5. - rpc GetBenchmarks(GetBenchmarksRequest) returns (GetBenchmarksReply); // Register a new benchmark. rpc AddBenchmark(AddBenchmarkRequest) returns (AddBenchmarkReply); } @@ -71,6 +66,8 @@ message StartSessionRequest { // space that is to be used for this session. Once set, the action space // cannot be changed for the duration of the session. int32 action_space = 2; + // A list of indices into the GetSpacesReply.observation_space_list + repeated int32 observation_space = 3; } message StartSessionReply { @@ -85,6 +82,8 @@ message StartSessionReply { // space and replace it with this one. Else, the action space remains // unchanged. ActionSpace new_action_space = 3; + // Observed states after completing the action. + repeated Observation observation = 4; } // =========================================================================== @@ -248,16 +247,6 @@ message GetSpacesReply { repeated ObservationSpace observation_space_list = 2; } -// =========================================================================== -// GetBenchmarks(). - -message GetBenchmarksRequest {} - -message GetBenchmarksReply { - // A list of URIs of available benchmarks. - repeated string benchmark = 1; -} - // =========================================================================== // AddBenchmark(). diff --git a/compiler_gym/spaces/__init__.py b/compiler_gym/spaces/__init__.py index fd9e83e54..72dc9fc4f 100644 --- a/compiler_gym/spaces/__init__.py +++ b/compiler_gym/spaces/__init__.py @@ -4,11 +4,12 @@ # LICENSE file in the root directory of this source tree. from compiler_gym.spaces.commandline import Commandline, CommandlineFlag from compiler_gym.spaces.named_discrete import NamedDiscrete -from compiler_gym.spaces.reward import Reward +from compiler_gym.spaces.reward import DefaultRewardFromObservation, Reward from compiler_gym.spaces.scalar import Scalar from compiler_gym.spaces.sequence import Sequence __all__ = [ + "DefaultRewardFromObservation", "Scalar", "Sequence", "NamedDiscrete", diff --git a/compiler_gym/spaces/commandline.py b/compiler_gym/spaces/commandline.py index 07442688c..f9f47eb0a 100644 --- a/compiler_gym/spaces/commandline.py +++ b/compiler_gym/spaces/commandline.py @@ -21,31 +21,32 @@ class CommandlineFlag(NamedTuple): class Commandline(NamedDiscrete): - """A :class:`NamedDiscrete` space where each element represents a - commandline flag. + """A :class:`NamedDiscrete ` space where + each element represents a commandline flag. Example usage: - >>> space = Commandline([ - CommandlineFlag("a", "-a", "A flag"), - CommandlineFlag("b", "-b", "Another flag"), - ]) - >>> space.n - 2 - >>> space["a"] - 0 - >>> space.names[0] - a - >>> space.flags[0] - -a - >>> space.descriptions[0] - A flag - >>> space.sample() - 1 - >>> space.commandline([0, 1]) - -a -b + >>> space = Commandline([ + CommandlineFlag("a", "-a", "A flag"), + CommandlineFlag("b", "-b", "Another flag"), + ]) + >>> space.n + 2 + >>> space["a"] + 0 + >>> space.names[0] + a + >>> space.flags[0] + -a + >>> space.descriptions[0] + A flag + >>> space.sample() + 1 + >>> space.commandline([0, 1]) + -a -b :ivar flags: A list of flag strings. + :ivar descriptions: A list of flag descriptions. """ diff --git a/compiler_gym/spaces/reward.py b/compiler_gym/spaces/reward.py index d22ec5a5e..2518a3971 100644 --- a/compiler_gym/spaces/reward.py +++ b/compiler_gym/spaces/reward.py @@ -98,7 +98,10 @@ def reset(self, benchmark: str) -> None: pass def update( - self, action: int, observations: List[observation_t], observation_view + self, + action: int, + observations: List[observation_t], + observation_view: "compiler_gym.views.ObservationView", # noqa: F821 ) -> float: """Calculate a reward for the given action. @@ -133,3 +136,32 @@ def range(self) -> Tuple[float, float]: def __repr__(self): return self.id + + +class DefaultRewardFromObservation(Reward): + def __init__(self, observation_name: str, **kwargs): + super().__init__( + observation_spaces=[observation_name], id=observation_name, **kwargs + ) + self.previous_value: Optional[observation_t] = None + + def reset(self, benchmark: str) -> None: + """Called on env.reset(). Reset incremental progress.""" + del benchmark # unused + self.previous_value = None + + def update( + self, + action: int, + observations: List[observation_t], + observation_view: "compiler_gym.views.ObservationView", # noqa: F821 + ) -> float: + """Called on env.step(). Compute and return new reward.""" + del action # unused + del observation_view # unused + value: float = observations[0] + if self.previous_value is None: + self.previous_value = 0 + reward = float(value - self.previous_value) + self.previous_value = value + return reward diff --git a/compiler_gym/third_party/cBench/benchmarks.txt b/compiler_gym/third_party/cBench/benchmarks.txt deleted file mode 100644 index d39dbc09b..000000000 --- a/compiler_gym/third_party/cBench/benchmarks.txt +++ /dev/null @@ -1,23 +0,0 @@ -benchmark://cBench-v1/adpcm -benchmark://cBench-v1/bitcount -benchmark://cBench-v1/blowfish -benchmark://cBench-v1/bzip2 -benchmark://cBench-v1/crc32 -benchmark://cBench-v1/dijkstra -benchmark://cBench-v1/ghostscript -benchmark://cBench-v1/gsm -benchmark://cBench-v1/ispell -benchmark://cBench-v1/jpeg-c -benchmark://cBench-v1/jpeg-d -benchmark://cBench-v1/lame -benchmark://cBench-v1/patricia -benchmark://cBench-v1/qsort -benchmark://cBench-v1/rijndael -benchmark://cBench-v1/sha -benchmark://cBench-v1/stringsearch -benchmark://cBench-v1/stringsearch2 -benchmark://cBench-v1/susan -benchmark://cBench-v1/tiff2bw -benchmark://cBench-v1/tiff2rgba -benchmark://cBench-v1/tiffdither -benchmark://cBench-v1/tiffmedian diff --git a/compiler_gym/third_party/cBench/cBench-v1-linux.json b/compiler_gym/third_party/cBench/cBench-v1-linux.json deleted file mode 100644 index 2c551fd32..000000000 --- a/compiler_gym/third_party/cBench/cBench-v1-linux.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compiler": "llvm-10.0.0", - "description": "https://github.com/ctuning/ctuning-programs", - "file_count": 23, - "license": "BSD 3-Clause", - "name": "cBench-v1", - "platforms": [ - "linux" - ], - "size_bytes": 10075608, - "url": "" -} diff --git a/compiler_gym/third_party/cBench/cBench-v1-macos.json b/compiler_gym/third_party/cBench/cBench-v1-macos.json deleted file mode 100644 index b016eb596..000000000 --- a/compiler_gym/third_party/cBench/cBench-v1-macos.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compiler": "llvm-10.0.0", - "description": "https://github.com/ctuning/ctuning-programs", - "file_count": 23, - "license": "BSD 3-Clause", - "name": "cBench-v1", - "platforms": [ - "macos" - ], - "size_bytes": 10292032, - "url": "" -} diff --git a/compiler_gym/third_party/cBench/BUILD b/compiler_gym/third_party/cbench/BUILD similarity index 87% rename from compiler_gym/third_party/cBench/BUILD rename to compiler_gym/third_party/cbench/BUILD index da17a37f5..4b4aa2cb2 100644 --- a/compiler_gym/third_party/cBench/BUILD +++ b/compiler_gym/third_party/cbench/BUILD @@ -5,25 +5,15 @@ load("@rules_python//python:defs.bzl", "py_binary") genrule( - name = "cBench_tar", - srcs = [":cBench"] + select({ - "@llvm//:darwin": [ - "cBench-v1-macos.json", - ], - "//conditions:default": [ - "cBench-v1-linux.json", - ], - }), - outs = ["llvm_bitcodes-10.0.0-cBench-v1.tar.bz2"], - cmd = select({ - "@llvm//:darwin": "mv $(location cBench-v1-macos.json) $(@D)/cBench-v1.json", - "//conditions:default": "mv $(location cBench-v1-linux.json) $(@D)/cBench-v1.json", - }) + " && tar cjfh $@ -C $(@D) cBench-v1 cBench-v1.json", + name = "cbench_tar", + srcs = [":cbench"], + outs = ["llvm_bitcodes-10.0.0-cbench-v1.tar.bz2"], + cmd = "tar cjfh $@ -C $(@D) cbench-v1", visibility = ["//visibility:public"], ) filegroup( - name = "cBench", + name = "cbench", srcs = [ ":adpcm", ":bitcount", @@ -94,7 +84,7 @@ py_binary( name = "make_llvm_module", srcs = ["make_llvm_module.py"], deps = [ - "//compiler_gym/envs/llvm:benchmarks", + "//compiler_gym/envs/llvm:llvm_benchmark", ], ) @@ -104,7 +94,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/crc32.bc"], + outs = ["cbench-v1/crc32.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/telecom_CRC32 $@", tools = [":make_llvm_module"], visibility = ["//visibility:public"], @@ -116,7 +106,7 @@ genrule( "@ctuning-ai//:all", "@ctuning-ai//:readme", ], - outs = ["cBench-v1/jpeg-c.bc"], + outs = ["cbench-v1/jpeg-c.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @ctuning-ai//:readme))/program/cbench-consumer-jpeg-c $@", tools = [ ":make_llvm_module", @@ -129,7 +119,7 @@ genrule( "@ctuning-ai//:all", "@ctuning-ai//:readme", ], - outs = ["cBench-v1/jpeg-d.bc"], + outs = ["cbench-v1/jpeg-d.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @ctuning-ai//:readme))/program/cbench-consumer-jpeg-d $@", tools = [ ":make_llvm_module", @@ -142,7 +132,7 @@ genrule( "@ctuning-ai//:all", "@ctuning-ai//:readme", ], - outs = ["cBench-v1/stringsearch2.bc"], + outs = ["cbench-v1/stringsearch2.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @ctuning-ai//:readme))/program/cbench-office-stringsearch2 $@", tools = [ ":make_llvm_module", @@ -155,7 +145,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/adpcm.bc"], + outs = ["cbench-v1/adpcm.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/telecom_adpcm_c $@", tools = [":make_llvm_module"], visibility = ["//visibility:public"], @@ -167,7 +157,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/bitcount.bc"], + outs = ["cbench-v1/bitcount.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/automotive_bitcount $@", tools = [":make_llvm_module"], ) @@ -178,7 +168,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/blowfish.bc"], + outs = ["cbench-v1/blowfish.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/security_blowfish_d $@", tools = [":make_llvm_module"], ) @@ -189,7 +179,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/bzip2.bc"], + outs = ["cbench-v1/bzip2.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/bzip2d $@", tools = [":make_llvm_module"], ) @@ -200,7 +190,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/dijkstra.bc"], + outs = ["cbench-v1/dijkstra.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/network_dijkstra $@", tools = [":make_llvm_module"], ) @@ -213,7 +203,7 @@ genrule( "cBench-ghostscript-std.h.patch", "cBench-ghostscript-idebug.c.patch", ], - outs = ["cBench-v1/ghostscript.bc"], + outs = ["cbench-v1/ghostscript.bc"], cmd = ( "mkdir -p $(@D) && rsync -rL $$(dirname $(location @cBench//:readme))/office_ghostscript/ $(@D)/office_ghostscript_src/ &&" + "patch --quiet --forward $(@D)/office_ghostscript_src/src/idebug.c < $(location cBench-ghostscript-idebug.c.patch);" + @@ -230,7 +220,7 @@ genrule( "@cBench//:readme", "cBench-gsm-add.c.patch", ], - outs = ["cBench-v1/gsm.bc"], + outs = ["cbench-v1/gsm.bc"], cmd = ( "mkdir -p $(@D) &&rsync -rL $$(dirname $(location @cBench//:readme))/telecom_gsm/ $(@D)/telecom_gsm_src/ &&" + "patch --quiet --forward $(@D)/telecom_gsm_src/src/add.c < $(location cBench-gsm-add.c.patch);" + @@ -246,7 +236,7 @@ genrule( "@cBench//:readme", "cBench-ispell-correct.c.patch", ], - outs = ["cBench-v1/ispell.bc"], + outs = ["cbench-v1/ispell.bc"], cmd = ( "mkdir -p $(@D) &&rsync -rL $$(dirname $(location @cBench//:readme))/office_ispell/ $(@D)/office_ispell_src/ &&" + "patch --quiet --forward $(@D)/office_ispell_src/src/correct.c < $(location cBench-ispell-correct.c.patch);" + @@ -261,7 +251,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/lame.bc"], + outs = ["cbench-v1/lame.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/consumer_lame $@ -DLAMESNDFILE -DHAVEMPGLIB -DLAMEPARSE", tools = [":make_llvm_module"], ) @@ -272,7 +262,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/patricia.bc"], + outs = ["cbench-v1/patricia.bc"], cmd = ( "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/network_patricia/ $@" ), @@ -285,7 +275,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/qsort.bc"], + outs = ["cbench-v1/qsort.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/automotive_qsort1 $@", tools = [":make_llvm_module"], ) @@ -296,7 +286,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/rijndael.bc"], + outs = ["cbench-v1/rijndael.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/security_rijndael_d $@", tools = [":make_llvm_module"], ) @@ -307,7 +297,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/sha.bc"], + outs = ["cbench-v1/sha.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/security_sha $@", tools = [":make_llvm_module"], ) @@ -318,7 +308,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/stringsearch.bc"], + outs = ["cbench-v1/stringsearch.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/office_stringsearch1 $@", tools = [":make_llvm_module"], ) @@ -329,7 +319,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/susan.bc"], + outs = ["cbench-v1/susan.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/automotive_susan_c $@", tools = [":make_llvm_module"], ) @@ -340,7 +330,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/tiff2bw.bc"], + outs = ["cbench-v1/tiff2bw.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/consumer_tiff2bw $@", tools = [":make_llvm_module"], ) @@ -351,7 +341,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/tiff2rgba.bc"], + outs = ["cbench-v1/tiff2rgba.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/consumer_tiff2rgba $@", tools = [":make_llvm_module"], ) @@ -362,7 +352,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/tiffdither.bc"], + outs = ["cbench-v1/tiffdither.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/consumer_tiffdither $@", tools = [":make_llvm_module"], ) @@ -373,7 +363,7 @@ genrule( "@cBench//:all", "@cBench//:readme", ], - outs = ["cBench-v1/tiffmedian.bc"], + outs = ["cbench-v1/tiffmedian.bc"], cmd = "mkdir -p $(@D) && $(location :make_llvm_module) $$(dirname $(location @cBench//:readme))/consumer_tiffmedian $@", tools = [":make_llvm_module"], visibility = ["//visibility:public"], diff --git a/compiler_gym/third_party/cBench/README-cBench-V1.1.txt b/compiler_gym/third_party/cbench/README-cBench-V1.1.txt similarity index 100% rename from compiler_gym/third_party/cBench/README-cBench-V1.1.txt rename to compiler_gym/third_party/cbench/README-cBench-V1.1.txt diff --git a/compiler_gym/third_party/cBench/README.txt b/compiler_gym/third_party/cbench/README.txt similarity index 100% rename from compiler_gym/third_party/cBench/README.txt rename to compiler_gym/third_party/cbench/README.txt diff --git a/compiler_gym/third_party/cbench/benchmarks.txt b/compiler_gym/third_party/cbench/benchmarks.txt new file mode 100644 index 000000000..060143288 --- /dev/null +++ b/compiler_gym/third_party/cbench/benchmarks.txt @@ -0,0 +1,23 @@ +benchmark://cbench-v1/adpcm +benchmark://cbench-v1/bitcount +benchmark://cbench-v1/blowfish +benchmark://cbench-v1/bzip2 +benchmark://cbench-v1/crc32 +benchmark://cbench-v1/dijkstra +benchmark://cbench-v1/ghostscript +benchmark://cbench-v1/gsm +benchmark://cbench-v1/ispell +benchmark://cbench-v1/jpeg-c +benchmark://cbench-v1/jpeg-d +benchmark://cbench-v1/lame +benchmark://cbench-v1/patricia +benchmark://cbench-v1/qsort +benchmark://cbench-v1/rijndael +benchmark://cbench-v1/sha +benchmark://cbench-v1/stringsearch +benchmark://cbench-v1/stringsearch2 +benchmark://cbench-v1/susan +benchmark://cbench-v1/tiff2bw +benchmark://cbench-v1/tiff2rgba +benchmark://cbench-v1/tiffdither +benchmark://cbench-v1/tiffmedian diff --git a/compiler_gym/third_party/cBench/cBench-ghostscript-idebug.c.patch b/compiler_gym/third_party/cbench/cBench-ghostscript-idebug.c.patch similarity index 100% rename from compiler_gym/third_party/cBench/cBench-ghostscript-idebug.c.patch rename to compiler_gym/third_party/cbench/cBench-ghostscript-idebug.c.patch diff --git a/compiler_gym/third_party/cBench/cBench-ghostscript-std.h.patch b/compiler_gym/third_party/cbench/cBench-ghostscript-std.h.patch similarity index 100% rename from compiler_gym/third_party/cBench/cBench-ghostscript-std.h.patch rename to compiler_gym/third_party/cbench/cBench-ghostscript-std.h.patch diff --git a/compiler_gym/third_party/cBench/cBench-gsm-add.c.patch b/compiler_gym/third_party/cbench/cBench-gsm-add.c.patch similarity index 100% rename from compiler_gym/third_party/cBench/cBench-gsm-add.c.patch rename to compiler_gym/third_party/cbench/cBench-gsm-add.c.patch diff --git a/compiler_gym/third_party/cBench/cBench-ispell-correct.c.patch b/compiler_gym/third_party/cbench/cBench-ispell-correct.c.patch similarity index 100% rename from compiler_gym/third_party/cBench/cBench-ispell-correct.c.patch rename to compiler_gym/third_party/cbench/cBench-ispell-correct.c.patch diff --git a/compiler_gym/third_party/cBench/make_llvm_module.py b/compiler_gym/third_party/cbench/make_llvm_module.py similarity index 92% rename from compiler_gym/third_party/cBench/make_llvm_module.py rename to compiler_gym/third_party/cbench/make_llvm_module.py index fccdda3b6..31033a01d 100644 --- a/compiler_gym/third_party/cBench/make_llvm_module.py +++ b/compiler_gym/third_party/cbench/make_llvm_module.py @@ -14,7 +14,7 @@ from pathlib import Path from typing import List -from compiler_gym.envs.llvm.benchmarks import make_benchmark +from compiler_gym.envs.llvm.llvm_benchmark import make_benchmark def make_cbench_llvm_module( @@ -32,7 +32,7 @@ def make_cbench_llvm_module( benchmark = make_benchmark(inputs=src_files, copt=cflags or []) # Write just the bitcode to file. with open(output_path, "wb") as f: - f.write(benchmark.program.contents) + f.write(benchmark.proto.program.contents) def main(): diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/acctest.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/acctest.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/acctest.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/acctest.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/align.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/align.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/align.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/align.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/bdftops.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/bdftops.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/bdftops.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/bdftops.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/caption.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/caption.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/caption.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/caption.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/decrypt.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/decrypt.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/decrypt.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/decrypt.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/docie.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/docie.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/docie.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/docie.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/font2c.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/font2c.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/font2c.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/font2c.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_btokn.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_btokn.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_btokn.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_btokn.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_ccfnt.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_ccfnt.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_ccfnt.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_ccfnt.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_cff.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_cff.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_cff.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_cff.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_cidfn.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_cidfn.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_cidfn.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_cidfn.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_cmap.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_cmap.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_cmap.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_cmap.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dbt_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dbt_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dbt_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dbt_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_diskf.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_diskf.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_diskf.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_diskf.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dpnxt.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dpnxt.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dpnxt.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dpnxt.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dps1.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dps1.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dps1.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dps1.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dps2.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dps2.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_dps2.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_dps2.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_epsf.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_epsf.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_epsf.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_epsf.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_fonts.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_fonts.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_fonts.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_fonts.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_init.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_init.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_init.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_init.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_iso_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_iso_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_iso_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_iso_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_kanji.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_kanji.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_kanji.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_kanji.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_ksb_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_ksb_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_ksb_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_ksb_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_l2img.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_l2img.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_l2img.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_l2img.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_lev2.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_lev2.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_lev2.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_lev2.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_mex_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_mex_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_mex_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_mex_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_mro_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_mro_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_mro_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_mro_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pdf.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pdf.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pdf.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pdf.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pdf_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pdf_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pdf_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pdf_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pdfwr.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pdfwr.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pdfwr.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pdfwr.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pfile.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pfile.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_pfile.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_pfile.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_res.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_res.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_res.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_res.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_setpd.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_setpd.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_setpd.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_setpd.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_statd.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_statd.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_statd.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_statd.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_std_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_std_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_std_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_std_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_sym_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_sym_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_sym_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_sym_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_ttf.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_ttf.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_ttf.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_ttf.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_typ42.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_typ42.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_typ42.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_typ42.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_type1.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_type1.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_type1.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_type1.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_wan_e.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_wan_e.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gs_wan_e.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gs_wan_e.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/gslp.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/gslp.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/gslp.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/gslp.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/impath.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/impath.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/impath.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/impath.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/landscap.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/landscap.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/landscap.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/landscap.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/level1.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/level1.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/level1.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/level1.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/lines.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/lines.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/lines.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/lines.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/markhint.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/markhint.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/markhint.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/markhint.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/markpath.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/markpath.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/markpath.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/markpath.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/packfile.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/packfile.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/packfile.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/packfile.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pcharstr.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pcharstr.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pcharstr.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pcharstr.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf2dsc.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf2dsc.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf2dsc.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf2dsc.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_2ps.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_2ps.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_2ps.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_2ps.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_base.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_base.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_base.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_base.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_draw.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_draw.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_draw.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_draw.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_font.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_font.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_font.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_font.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_main.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_main.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_main.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_main.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_sec.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_sec.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pdf_sec.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pdf_sec.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/pfbtogs.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/pfbtogs.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/pfbtogs.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/pfbtogs.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/ppath.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/ppath.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/ppath.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/ppath.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/prfont.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/prfont.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/prfont.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/prfont.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/printafm.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/printafm.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/printafm.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/printafm.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2ai.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2ai.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2ai.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2ai.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2ascii.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2ascii.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2ascii.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2ascii.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2epsi.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2epsi.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2epsi.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2epsi.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2image.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2image.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/ps2image.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/ps2image.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/quit.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/quit.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/quit.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/quit.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/showchar.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/showchar.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/showchar.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/showchar.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/showpage.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/showpage.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/showpage.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/showpage.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/stcinfo.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/stcinfo.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/stcinfo.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/stcinfo.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/stcolor.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/stcolor.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/stcolor.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/stcolor.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/traceimg.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/traceimg.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/traceimg.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/traceimg.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/traceop.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/traceop.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/traceop.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/traceop.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/type1enc.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/type1enc.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/type1enc.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/type1enc.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/type1ops.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/type1ops.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/type1ops.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/type1ops.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/uninfo.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/uninfo.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/uninfo.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/uninfo.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/unprot.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/unprot.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/unprot.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/unprot.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/viewcmyk.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/viewcmyk.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/viewcmyk.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/viewcmyk.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/viewgif.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/viewgif.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/viewgif.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/viewgif.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/viewjpeg.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/viewjpeg.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/viewjpeg.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/viewjpeg.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/viewpbm.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/viewpbm.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/viewpbm.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/viewpbm.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/viewpcx.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/viewpcx.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/viewpcx.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/viewpcx.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/viewps2a.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/viewps2a.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/viewps2a.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/viewps2a.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/wftopfa.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/wftopfa.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/wftopfa.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/wftopfa.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/winmaps.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/winmaps.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/winmaps.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/winmaps.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/wrfont.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/wrfont.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/wrfont.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/wrfont.ps diff --git a/compiler_gym/third_party/cBench/runtime_data/ghostscript/zeroline.ps b/compiler_gym/third_party/cbench/runtime_data/ghostscript/zeroline.ps similarity index 100% rename from compiler_gym/third_party/cBench/runtime_data/ghostscript/zeroline.ps rename to compiler_gym/third_party/cbench/runtime_data/ghostscript/zeroline.ps diff --git a/compiler_gym/third_party/inst2vec/__init__.py b/compiler_gym/third_party/inst2vec/__init__.py index 35f77cdc8..cfcef729e 100644 --- a/compiler_gym/third_party/inst2vec/__init__.py +++ b/compiler_gym/third_party/inst2vec/__init__.py @@ -19,6 +19,8 @@ class Inst2vecEncoder(object): """An LLVM encoder for inst2vec.""" def __init__(self): + # TODO(github.com/facebookresearch/CompilerGym/issues/122): Lazily + # instantiate inst2vec encoder. with open(str(_PICKLED_VOCABULARY), "rb") as f: self.vocab = pickle.load(f) diff --git a/compiler_gym/third_party/llvm/BUILD b/compiler_gym/third_party/llvm/BUILD index 77a53f0af..544aa9034 100644 --- a/compiler_gym/third_party/llvm/BUILD +++ b/compiler_gym/third_party/llvm/BUILD @@ -2,6 +2,7 @@ # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. +load("@rules_python//python:defs.bzl", "py_library") py_library( name = "llvm", @@ -47,21 +48,27 @@ cc_binary( # genrule( # name = "llvm_data_tar", # srcs = [":llvm_data"], -# outs = ["llvm.tar.bz2"], +# outs = ["llvm-v0.tar.bz2"], # cmd = "mkdir -p $(@D)/lib && tar cjfh $@ -C $(@D) LICENSE bin lib", # ) # # filegroup( # name = "llvm_data", # srcs = [ -# "LICENSE", # "bin/clang", +# "bin/llc", # "bin/lli", +# "bin/llvm-as", +# "bin/llvm-bcanalyzer", +# "bin/llvm-config", # "bin/llvm-diff", +# "bin/llvm-dis", # "bin/llvm-link", +# "bin/llvm-mca", # "bin/llvm-size", # "bin/llvm-stress", # "bin/opt", +# "LICENSE", # ] + select({ # "@llvm//:darwin": [], # "//conditions:default": [ @@ -107,6 +114,90 @@ cc_binary( # outs = ["bin/lli"], # cmd = "mkdir -p $$(dirname $@) && cp $< $@", # ) + +# genrule( +# name = "make_llc", +# srcs = select({ +# "@llvm//:darwin": [ +# "@clang-llvm-10.0.0-x86_64-apple-darwin//:llc", +# ], +# "//conditions:default": [ +# "@clang-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04//:llc", +# ], +# }), +# outs = ["bin/llc"], +# cmd = "mkdir -p $$(dirname $@) && cp $< $@", +# ) +# +# genrule( +# name = "make_llvm-as", +# srcs = select({ +# "@llvm//:darwin": [ +# "@clang-llvm-10.0.0-x86_64-apple-darwin//:llvm-as", +# ], +# "//conditions:default": [ +# "@clang-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04//:llvm-as", +# ], +# }), +# outs = ["bin/llvm-as"], +# cmd = "mkdir -p $$(dirname $@) && cp $< $@", +# ) +# +# genrule( +# name = "make_llvm-mca", +# srcs = select({ +# "@llvm//:darwin": [ +# "@clang-llvm-10.0.0-x86_64-apple-darwin//:llvm-mca", +# ], +# "//conditions:default": [ +# "@clang-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04//:llvm-mca", +# ], +# }), +# outs = ["bin/llvm-mca"], +# cmd = "mkdir -p $$(dirname $@) && cp $< $@", +# ) +# +# genrule( +# name = "make_llvm-bcanalyzer", +# srcs = select({ +# "@llvm//:darwin": [ +# "@clang-llvm-10.0.0-x86_64-apple-darwin//:llvm-bcanalyzer", +# ], +# "//conditions:default": [ +# "@clang-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04//:llvm-bcanalyzer", +# ], +# }), +# outs = ["bin/llvm-bcanalyzer"], +# cmd = "mkdir -p $$(dirname $@) && cp $< $@", +# ) + +# genrule( +# name = "make_llvm-config", +# srcs = select({ +# "@llvm//:darwin": [ +# "@clang-llvm-10.0.0-x86_64-apple-darwin//:llvm-config", +# ], +# "//conditions:default": [ +# "@clang-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04//:llvm-config", +# ], +# }), +# outs = ["bin/llvm-config"], +# cmd = "mkdir -p $$(dirname $@) && cp $< $@", +# ) +# +# genrule( +# name = "make_llvm-dis", +# srcs = select({ +# "@llvm//:darwin": [ +# "@clang-llvm-10.0.0-x86_64-apple-darwin//:llvm-dis", +# ], +# "//conditions:default": [ +# "@clang-llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04//:llvm-dis", +# ], +# }), +# outs = ["bin/llvm-dis"], +# cmd = "mkdir -p $$(dirname $@) && cp $< $@", +# ) # # genrule( # name = "make_llvm-diff", diff --git a/compiler_gym/third_party/llvm/__init__.py b/compiler_gym/third_party/llvm/__init__.py index 4f79994c5..d832b7a89 100644 --- a/compiler_gym/third_party/llvm/__init__.py +++ b/compiler_gym/third_party/llvm/__init__.py @@ -4,68 +4,82 @@ # LICENSE file in the root directory of this source tree. """Module for resolving paths to LLVM binaries and libraries.""" import io +import shutil import sys import tarfile from pathlib import Path from threading import Lock +from typing import Optional -import fasteners +from fasteners import InterProcessLock from compiler_gym.util.download import download from compiler_gym.util.runfiles_path import cache_path, site_data_path -# (url, sha256) tuples for the LLVM download data packs. -_LLVM_URLS = { +# The data archive containing LLVM binaries and libraries. +_LLVM_URL, _LLVM_SHA256 = { "darwin": ( - "https://dl.fbaipublicfiles.com/compiler_gym/llvm-10.0.0-macos.tar.bz2", - "ff74da7a5423528de0e25d1c79926f2ddd95e02b5c25d1b501637af63b29dba6", + "https://dl.fbaipublicfiles.com/compiler_gym/llvm-v0-macos.tar.bz2", + "731ae351b62c5713fb5043e0ccc56bfba4609e284dc816f0b2a5598fb809bf6b", ), "linux": ( - "https://dl.fbaipublicfiles.com/compiler_gym/llvm-10.0.0-linux.tar.bz2", - "c9bf5bfda3c2fa1d1a9e7ebc93da4398a6f6841c28b5d368e0eb29a153856a93", + "https://dl.fbaipublicfiles.com/compiler_gym/llvm-v0-linux.tar.bz2", + "59c3f328efd51994a11168ca15e43a8d422233796c6bc167c9eb771c7bd6b57e", ), -} +}[sys.platform] # Thread lock to prevent race on download_llvm_files() from multi-threading. # This works in tandem with the inter-process file lock - both are required. _LLVM_DOWNLOAD_LOCK = Lock() -_LLVM_DOWNLOADED = False +_LLVM_UNPACKED_LOCATION: Optional[Path] = None -def _download_llvm_files(unpacked_location: Path) -> Path: +def _download_llvm_files(destination: Path) -> Path: """Download and unpack the LLVM data pack.""" - global _LLVM_DOWNLOADED - _LLVM_DOWNLOADED = True - if not (unpacked_location / ".unpacked").is_file(): - url, sha256 = _LLVM_URLS[sys.platform] - tar_contents = io.BytesIO(download(url, sha256=sha256)) - unpacked_location.parent.mkdir(parents=True, exist_ok=True) - with tarfile.open(fileobj=tar_contents, mode="r:bz2") as tar: - tar.extractall(unpacked_location) - assert unpacked_location.is_dir() - assert (unpacked_location / "LICENSE").is_file() - # Create the marker file to indicate that the directory is unpacked - # and ready to go. - (unpacked_location / ".unpacked").touch() - - return unpacked_location + # Tidy up an incomplete unpack. + shutil.rmtree(destination, ignore_errors=True) + + tar_contents = io.BytesIO(download(_LLVM_URL, sha256=_LLVM_SHA256)) + destination.parent.mkdir(parents=True, exist_ok=True) + with tarfile.open(fileobj=tar_contents, mode="r:bz2") as tar: + tar.extractall(destination) + + assert destination.is_dir() + assert (destination / "LICENSE").is_file() + + return destination def download_llvm_files() -> Path: """Download and unpack the LLVM data pack.""" - unpacked_location = site_data_path("llvm/10.0.0") + global _LLVM_UNPACKED_LOCATION + + unpacked_location = site_data_path("llvm-v0") # Fast path for repeated calls. - if _LLVM_DOWNLOADED: - return unpacked_location - # Fast path for first call. This check will be repeated inside the locked - # region if required. - if (unpacked_location / ".unpacked").is_file(): + if _LLVM_UNPACKED_LOCATION == unpacked_location: return unpacked_location with _LLVM_DOWNLOAD_LOCK: - with fasteners.InterProcessLock(cache_path("llvm-download.LOCK")): - return _download_llvm_files(unpacked_location) + # Fast path for first call. This check will be repeated inside the locked + # region if required. + if (unpacked_location / ".unpacked").is_file(): + _LLVM_UNPACKED_LOCATION = unpacked_location + return unpacked_location + + with InterProcessLock(cache_path(".llvm-v0-install.LOCK")): + # Now that the lock is acquired, repeat the check to see if it is + # necessary to download the dataset. + if (unpacked_location / ".unpacked").is_file(): + return unpacked_location + + _download_llvm_files(unpacked_location) + # Create the marker file to indicate that the directory is unpacked + # and ready to go. + (unpacked_location / ".unpacked").touch() + _LLVM_UNPACKED_LOCATION = unpacked_location + + return unpacked_location def clang_path() -> Path: @@ -73,14 +87,24 @@ def clang_path() -> Path: return download_llvm_files() / "bin/clang" +def lli_path() -> Path: + """Return the path of lli.""" + return download_llvm_files() / "bin/lli" + + +def llvm_as_path() -> Path: + """Return the path of llvm-as.""" + return download_llvm_files() / "bin/llvm-as" + + def llvm_link_path() -> Path: """Return the path of llvm-link.""" return download_llvm_files() / "bin/llvm-link" -def lli_path() -> Path: - """Return the path of lli.""" - return download_llvm_files() / "bin/lli" +def llvm_stress_path() -> Path: + """Return the path of llvm-stress.""" + return download_llvm_files() / "bin/llvm-stress" def opt_path() -> Path: diff --git a/compiler_gym/util/BUILD b/compiler_gym/util/BUILD index ee6542f8d..b45936aec 100644 --- a/compiler_gym/util/BUILD +++ b/compiler_gym/util/BUILD @@ -11,7 +11,9 @@ py_library( "__init__.py", "capture_output.py", "debug_util.py", + "decorators.py", "download.py", + "filesystem.py", "logs.py", "minimize_trajectory.py", "registration.py", diff --git a/compiler_gym/util/debug_util.py b/compiler_gym/util/debug_util.py index b3f457b92..27ff77586 100644 --- a/compiler_gym/util/debug_util.py +++ b/compiler_gym/util/debug_util.py @@ -55,11 +55,15 @@ def get_logging_level() -> int: def set_debug_level(level: int) -> None: """Set a new debugging level. + See :func:`get_debug_level` for a description of the debug levels. + The debugging level should be set first when interacting with CompilerGym as many CompilerGym objects will check the debug level only at initialization time and not throughout their lifetime. - See :func:`get_debug_level` for a description of the debug levels. + Setting the debug level affects the entire process and is not thread safe. + For granular control of logging information, consider instead setting a + :code:`logging.Logger` instance on :code:`CompilerEnv.logger`. :param level: The debugging level to use. """ diff --git a/compiler_gym/util/decorators.py b/compiler_gym/util/decorators.py new file mode 100644 index 000000000..d0033683d --- /dev/null +++ b/compiler_gym/util/decorators.py @@ -0,0 +1,29 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import functools +from typing import Any, Callable + + +def memoized_property(func: Callable[..., Any]) -> Callable[..., Any]: + """A property decorator that memoizes the result. + + This is used to memoize the results of class properties, to be used when + computing the property value is expensive. + + :param func: The function which should be made to a property. + + :returns: The decorated property function. + """ + attribute_name = "_memoized_property_" + func.__name__ + + @property + @functools.wraps(func) + def decorator(self): + if not hasattr(self, attribute_name): + setattr(self, attribute_name, func(self)) + + return getattr(self, attribute_name) + + return decorator diff --git a/compiler_gym/util/download.py b/compiler_gym/util/download.py index 4be8a23da..bf77d9c19 100644 --- a/compiler_gym/util/download.py +++ b/compiler_gym/util/download.py @@ -4,58 +4,40 @@ # LICENSE file in the root directory of this source tree. import hashlib import logging -from typing import Optional +from typing import List, Optional, Union import fasteners import requests +from compiler_gym.util.filesystem import atomic_file_write from compiler_gym.util.runfiles_path import cache_path -def _download(url: str) -> bytes: +class DownloadFailed(OSError): + """Error thrown if a download fails.""" + + +def _get_url_data(url: str) -> bytes: req = requests.get(url) try: if req.status_code != 200: - raise OSError(f"GET returned status code {req.status_code}: {url}") + raise DownloadFailed(f"GET returned status code {req.status_code}: {url}") return req.content finally: req.close() -# Only a single process may download at a time. The idea here is to prevent -# overloading the NIC when, for example, you launch a bunch of simultaneous -# learning processes which all require the same dataset. -@fasteners.interprocess_locked(cache_path("downloads/LOCK")) -def download(url: str, sha256: Optional[str] = None) -> bytes: - """Download a file and return its contents. - - If :code:`sha256` is provided and the download succeeds, the file contents are cached locally - in :code:`$cache_path/downloads/$sha256`. See :func:`compiler_gym.cache_path`. - - An inter-process lock ensures that only a single call to this function may - execute at a time. - - :param url: The URL of the file to download. - :param sha256: The expected sha256 checksum of the file. - :return: The contents of the downloaded file. - :raises OSError: If the download fails, or if the downloaded content does match the expected - :code:`sha256` checksum. - """ - # Cache hit. - if sha256 and cache_path(f"downloads/{sha256}").is_file(): - with open(str(cache_path(f"downloads/{sha256}")), "rb") as f: - return f.read() - - logging.info(f"Downloading {url} ...") - content = _download(url) +def _do_download_attempt(url: str, sha256: Optional[str]) -> bytes: + logging.info("Downloading %s ...", url) + content = _get_url_data(url) if sha256: # Validate the checksum. checksum = hashlib.sha256() checksum.update(content) actual_sha256 = checksum.hexdigest() if sha256 != actual_sha256: - raise OSError( + raise DownloadFailed( f"Checksum of downloaded dataset does not match:\n" f"Url: {url}\n" f"Expected: {sha256}\n" @@ -63,9 +45,65 @@ def download(url: str, sha256: Optional[str] = None) -> bytes: ) # Cache the downloaded file. - cache_path("downloads").mkdir(parents=True, exist_ok=True) - with open(str(cache_path(f"downloads/{sha256}")), "wb") as f: + path = cache_path(f"downloads/{sha256}") + path.parent.mkdir(parents=True, exist_ok=True) + with atomic_file_write(path, fileobj=True) as f: f.write(content) - logging.info(f"Downloaded {url}") + logging.debug(f"Downloaded {url}") return content + + +def _download(urls: List[str], sha256: Optional[str], max_retries: int = 3) -> bytes: + # Cache hit. + if sha256 and cache_path(f"downloads/{sha256}").is_file(): + with open(str(cache_path(f"downloads/{sha256}")), "rb") as f: + return f.read() + + # A retry loop, and loop over all urls provided. + last_exception = None + for _ in range(max_retries): + for url in urls: + try: + return _do_download_attempt(url, sha256) + except DownloadFailed as e: + logging.info("Download failed") + last_exception = e + raise last_exception + + +def download( + urls: Union[str, List[str]], sha256: Optional[str] = None, max_retries: int = 3 +) -> bytes: + """Download a file and return its contents. + + If :code:`sha256` is provided and the download succeeds, the file contents + are cached locally in :code:`$cache_path/downloads/$sha256`. See + :func:`compiler_gym.cache_path`. + + An inter-process lock ensures that only a single call to this function may + execute at a time. + + :param urls: Either a single URL of the file to download, or a list of URLs + to download. + + :param sha256: The expected sha256 checksum of the file. + + :return: The contents of the downloaded file. + + :raises OSError: If the download fails, or if the downloaded content does + match the expected :code:`sha256` checksum. + """ + # Convert a singular string into a list of strings. + urls = [urls] if not isinstance(urls, list) else urls + + # Only a single process may download a file at a time. The idea here is to + # prevent redundant downloads when multiple simultaneous processes all try + # and download the same resource. If we don't have an ID for the resource + # then we just lock globally to reduce NIC thrashing. + if sha256: + with fasteners.InterProcessLock(cache_path(f"downloads/.{sha256}.lock")): + return _download(urls, sha256, max_retries) + else: + with fasteners.InterProcessLock(cache_path("downloads/.lock")): + return _download(urls, None, max_retries) diff --git a/compiler_gym/util/filesystem.py b/compiler_gym/util/filesystem.py new file mode 100644 index 000000000..1b007538a --- /dev/null +++ b/compiler_gym/util/filesystem.py @@ -0,0 +1,76 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Utilities for working with the filesystem.""" +import os +import tempfile +from contextlib import contextmanager +from pathlib import Path +from typing import BinaryIO, List, TextIO, Union + +from compiler_gym.util import runfiles_path + + +def get_storage_paths() -> List[Path]: + """Return the list of paths used by CompilerGym for filesystem storage. + + :return: A list of filesystem paths that CompilerGym uses to store files. + """ + return sorted( + { + runfiles_path.cache_path("."), + runfiles_path.transient_cache_path("."), + runfiles_path.site_data_path("."), + } + ) + + +@contextmanager +def atomic_file_write( + path: Path, fileobj: bool = False, mode: str = "wb" +) -> Union[Path, TextIO, BinaryIO]: + """A context manager for atomically writing to a file. + + Provides a lock-free mechanism for ensuring concurrent safe writes to a + filesystem path. Use this to prevent filesystem races when multiple callers + may be writing to the same file. This is best suited for cases where the + chance of a race are low, as it does not prevent redundant writes. It simply + guarantees that each write is atomic. + + This relies on POSIX atomic file renaming. + + Use it as a context manager that yields the path of a temporary file to + write to: + + >>> outpath = Path("some_file.txt") + >>> with atomic_file_write(outpath) as tmp_path: + ... with open(tmp_path, "w") as f: + ... f.write("Hello\n") + >>> outpath.is_file() + True + + It can also return a file object if passed the :code:`fileobj` argument: + + >>> outpath = Path("some_file.txt") + >>> with atomic_file_write(outpath, fileobj=True) as f: + ... f.write(file_data) + >>> outpath.is_file() + True + + :param path: The path to write to atomically write to. + + :param fileobj: If :code:`True`, return a file object in the given + :code:`mode`. + + :param mode: The file mode to use when returning a file object. + + :returns: The path of a temporary file to write to. + """ + with tempfile.NamedTemporaryFile(dir=path.parent, delete=False, mode=mode) as tmp: + tmp_path = Path(tmp.name) + try: + yield tmp if fileobj else tmp_path + finally: + if tmp_path.is_file(): + os.rename(tmp_path, path) diff --git a/compiler_gym/util/flags/BUILD b/compiler_gym/util/flags/BUILD index e725661c9..c86e36b2f 100644 --- a/compiler_gym/util/flags/BUILD +++ b/compiler_gym/util/flags/BUILD @@ -13,12 +13,6 @@ py_library( ], ) -py_library( - name = "dataset", - srcs = ["dataset.py"], - visibility = ["//visibility:public"], -) - py_library( name = "env_from_flags", srcs = ["env_from_flags.py"], @@ -30,12 +24,6 @@ py_library( ], ) -py_library( - name = "ls_benchmark", - srcs = ["ls_benchmark.py"], - visibility = ["//visibility:public"], -) - py_library( name = "nproc", srcs = ["nproc.py"], diff --git a/compiler_gym/util/flags/dataset.py b/compiler_gym/util/flags/dataset.py deleted file mode 100644 index 456911ab6..000000000 --- a/compiler_gym/util/flags/dataset.py +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. -from absl import flags - -flags.DEFINE_list( - "dataset", - [], - "A list of datasets that are required.", -) diff --git a/compiler_gym/util/flags/ls_benchmark.py b/compiler_gym/util/flags/ls_benchmark.py deleted file mode 100644 index 20d422bd8..000000000 --- a/compiler_gym/util/flags/ls_benchmark.py +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. -from absl import flags - -flags.DEFINE_boolean("ls_benchmark", False, "List the available benchmarks and exit.") diff --git a/compiler_gym/util/minimize_trajectory.py b/compiler_gym/util/minimize_trajectory.py index 2c8dcf620..face9be21 100644 --- a/compiler_gym/util/minimize_trajectory.py +++ b/compiler_gym/util/minimize_trajectory.py @@ -15,7 +15,6 @@ from math import ceil, log from typing import Callable, Iterable -from compiler_gym.envs import CompilerEnv from compiler_gym.util.truncate import truncate @@ -25,10 +24,10 @@ class MinimizationError(OSError): # A hypothesis is a callback that accepts as input an enivornment in a given # state returns true if a particular hypothesis holds, else false. -Hypothesis = Callable[[CompilerEnv], bool] +Hypothesis = Callable[["CompilerEnv"], bool] # noqa: F821 -def environment_validation_fails(env: CompilerEnv) -> bool: +def environment_validation_fails(env: "CompilerEnv") -> bool: # noqa: F821 """A hypothesis that holds true if environment validation fails.""" validation_result = env.validate() logging.debug(truncate(str(validation_result), max_lines=1, max_line_len=120)) @@ -52,11 +51,11 @@ def _apply_and_test(env, actions, hypothesis, flakiness) -> bool: def bisect_trajectory( - env: CompilerEnv, + env: "CompilerEnv", # noqa: F821 hypothesis: Hypothesis = environment_validation_fails, reverse: bool = False, flakiness: int = 1, -) -> Iterable[CompilerEnv]: +) -> Iterable["CompilerEnv"]: # noqa: F821 """Run a binary search to remove the suffix or prefix of a trjectory. Requires worst-case O(log n) evaluation rounds, where n is the length of the @@ -152,14 +151,14 @@ def apply_and_test(actions): def random_minimization( - env: CompilerEnv, + env: "CompilerEnv", # noqa: F821 hypothesis: Hypothesis = environment_validation_fails, num_steps_ratio_multiplier: float = 5, init_discard_ratio: float = 0.75, discard_ratio_decay: float = 0.75, min_trajectory_len: int = 5, flakiness: int = 1, -) -> Iterable[CompilerEnv]: +) -> Iterable["CompilerEnv"]: # noqa: F821 """Run an iterative process of randomly removing actions to minimize a trajectory. @@ -245,10 +244,10 @@ def apply_and_test(actions): def minimize_trajectory_iteratively( - env: CompilerEnv, + env: "CompilerEnv", # noqa: F821 hypothesis: Hypothesis = environment_validation_fails, flakiness: int = 1, -) -> Iterable[CompilerEnv]: +) -> Iterable["CompilerEnv"]: # noqa: F821 """Minimize a trajectory by remove actions, one at a time, until a minimal trajectory is reached. diff --git a/compiler_gym/util/statistics.py b/compiler_gym/util/statistics.py index df1b07662..c7d17e35c 100644 --- a/compiler_gym/util/statistics.py +++ b/compiler_gym/util/statistics.py @@ -6,11 +6,28 @@ def geometric_mean(iterable): - vals = np.array(iterable) - if not len(vals): + """Zero-length-safe geometric mean.""" + values = np.asarray(iterable) + if not values.size: return 0 # Shortcut to return 0 when any element of the input is not positive. - if not np.all(vals > 0): + if not np.all(values > 0): return 0 - a = np.log(vals) + a = np.log(values) return np.exp(a.sum() / len(a)) + + +def arithmetic_mean(iterable): + """Zero-length-safe arithmetic mean.""" + values = np.asarray(iterable) + if not values.size: + return 0 + return values.mean() + + +def stdev(iterable): + """Zero-length-safe standard deviation.""" + values = np.asarray(iterable) + if not values.size: + return 0 + return values.std() diff --git a/compiler_gym/util/thread_pool.py b/compiler_gym/util/thread_pool.py index edc75f13c..e8b089936 100644 --- a/compiler_gym/util/thread_pool.py +++ b/compiler_gym/util/thread_pool.py @@ -11,7 +11,7 @@ def get_thread_pool_executor() -> ThreadPoolExecutor: - """Return a singleton :class:`ThreadPoolExecutor`. + """Return a singleton :code:`ThreadPoolExecutor`. This executor is intended to be used for multithreaded parallelism. The maximum number of threads in the pool is equal to the number of cores on the diff --git a/compiler_gym/util/timer.py b/compiler_gym/util/timer.py index a2db09c9f..f4c2d51c1 100644 --- a/compiler_gym/util/timer.py +++ b/compiler_gym/util/timer.py @@ -24,6 +24,11 @@ def humanize_duration(seconds: float) -> str: return f"{sign}{value:.1f}s" +def humanize_duration_hms(seconds: float) -> str: + seconds = int(seconds) + return f"{seconds // 3600}:{(seconds % 3600) // 60:02d}:{seconds % 60:02d}" + + class Timer(object): """A very simple scoped timer. @@ -55,16 +60,21 @@ def __init__( self.label = label self.print_fn = print_fn - def __enter__(self): + def reset(self) -> "Timer": self._start_time = time() return self + def __enter__(self) -> "Timer": + return self.reset() + @property def time(self) -> float: if self._elapsed: return self._elapsed - else: + elif self._start_time: return time() - self._start_time + else: + return 0 @skip_log_prefix def __exit__(self, *args): diff --git a/compiler_gym/validate.py b/compiler_gym/validate.py index 45728e877..9a8ed5b8d 100644 --- a/compiler_gym/validate.py +++ b/compiler_gym/validate.py @@ -5,7 +5,7 @@ """Validate environment states.""" import random from concurrent.futures import as_completed -from typing import Callable, Iterable, List, Optional +from typing import Callable, Iterable, Optional from compiler_gym.compiler_env_state import CompilerEnvState from compiler_gym.envs.compiler_env import CompilerEnv @@ -27,7 +27,6 @@ def _validate_states_worker( def validate_states( make_env: Callable[[], CompilerEnv], states: Iterable[CompilerEnvState], - datasets: Optional[List[str]] = None, nproc: Optional[int] = None, inorder: bool = False, ) -> Iterable[ValidationResult]: @@ -37,21 +36,12 @@ def validate_states( :param make_env: A callback which instantiates a compiler environment. :param states: A sequence of compiler environment states to validate. - :param datasets: An optional list of datasets that are required. :param nproc: The number of parallel worker processes to run. :param inorder: Whether to return results in the order they were provided, or in the order that they are available. :return: An iterator over validation results. The order of results may differ from the input states. """ - # Ensure that the required datasets are available. - if datasets: - env = make_env() - try: - env.require_datasets(datasets) - finally: - env.close() - executor = thread_pool.get_thread_pool_executor() if nproc == 1: diff --git a/compiler_gym/validation_error.py b/compiler_gym/validation_error.py new file mode 100644 index 000000000..cbbdbf054 --- /dev/null +++ b/compiler_gym/validation_error.py @@ -0,0 +1,34 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""This module defines the validation error` tuple.""" +from typing import Any, Dict + +from pydantic import BaseModel + + +class ValidationError(BaseModel): + """A ValidationError describes an error encountered in a call to + :meth:`env.validate() `. + """ + + type: str + """A short name describing the type of error that occured. E.g. + :code:`"Runtime crash"`. + """ + + data: Dict[str, Any] = {} + """A JSON-serializable dictionary of data that further describes the error. + This data dictionary can contain any information that may be relevant for + diagnosing the underlying issue, such as a stack trace or an error line + number. There is no specified schema for this data, validators are free to + return whatever data they like. Setting this field is optional. + """ + + def __lt__(self, rhs): + # Implement the < operator so that lists of ValidationErrors can be + # sorted. + if not isinstance(rhs, ValidationError): + return True + return (self.type, self.data) <= (rhs.type, rhs.data) diff --git a/compiler_gym/validation_result.py b/compiler_gym/validation_result.py index 2ad69ca7e..14531bcb5 100644 --- a/compiler_gym/validation_result.py +++ b/compiler_gym/validation_result.py @@ -6,49 +6,17 @@ import itertools import re from collections import Counter -from typing import Any, Dict, Iterable, List, NamedTuple +from typing import Iterable, List + +from pydantic import BaseModel, validator from compiler_gym.compiler_env_state import CompilerEnvState from compiler_gym.util.shell_format import plural from compiler_gym.util.truncate import truncate +from compiler_gym.validation_error import ValidationError -class ValidationError(NamedTuple): - """A ValidationError describes an error encountered in a call to - :meth:`env.validate() `. - """ - - type: str - """A short name describing the type of error that occured. E.g. - :code:`"Runtime crash"`. - """ - - data: Dict[str, Any] = {} - """A JSON-serialized dictionary of data that further describes the error. - This data dictionary can contain any information that may be relevant for - diagnosing the underlying issue, such as a stack trace or an error line - number. There is no specified schema for this data, validators are free to - return whatever data they like. Setting this field is optional. - """ - - def json(self): - """Get the error as a JSON-serializable dictionary. - - :return: A JSON dict. - """ - return self._asdict() # pylint: disable=no-member - - @classmethod - def from_json(cls, data) -> "ValidationResult": - """Create a validation error from JSON data. - - :param data: A JSON dict. - :return: A validation error. - """ - return cls(**data) - - -class ValidationResult(NamedTuple): +class ValidationResult(BaseModel): """A tuple that represents the result of validating a compiler environment state.""" state: CompilerEnvState @@ -73,7 +41,12 @@ class ValidationResult(NamedTuple): """Whether the semantics of the benchmark were found to have changed.""" errors: List[ValidationError] = [] - """A list of :class:`ValidationError` """ + """A list of :class:`ValidationError ` """ + + @validator("walltime") + def walltime_nonnegative(cls, v): + assert v >= 0, "Walltime cannot be negative" + return v def __eq__(self, rhs): """Equality comparison. @@ -151,26 +124,8 @@ def __repr__(self): else: return f"✅ {benchmark} {self.state.reward:.4f}" - def json(self): - """Get the state as a JSON-serializable dictionary. - - :return: A JSON dict. - """ - data = self._asdict() # pylint: disable=no-member - data["errors"] = [e.json() for e in self.errors] - data["state"] = self.state.json() - return data - - @classmethod - def from_json(cls, data) -> "ValidationResult": - """Create a validation result from JSON data. - - :param data: A JSON dict. - :return: A validation result instance. - """ - data["state"] = CompilerEnvState.from_json(data["state"]) - data["errors"] = [ValidationError.from_json(e) for e in data["errors"]] - return cls(**data) + def __str__(self): + return repr(self) @classmethod def join(cls, results: Iterable["ValidationResult"]): diff --git a/compiler_gym/views/BUILD b/compiler_gym/views/BUILD index d27c5b92e..a92311bb1 100644 --- a/compiler_gym/views/BUILD +++ b/compiler_gym/views/BUILD @@ -40,6 +40,7 @@ py_library( visibility = ["//compiler_gym:__subpackages__"], deps = [ ":observation", + "//compiler_gym/datasets", "//compiler_gym/service", "//compiler_gym/service/proto", "//compiler_gym/spaces", diff --git a/compiler_gym/views/observation.py b/compiler_gym/views/observation.py index 7ae540362..c7de881b2 100644 --- a/compiler_gym/views/observation.py +++ b/compiler_gym/views/observation.py @@ -14,16 +14,16 @@ class ObservationView(object): Example usage: - >>> env = gym.make("llvm-v0") - >>> env.reset() - >>> env.observation.spaces.keys() - ["Autophase", "Ir"] - >>> env.observation.spaces["Autophase"].space - Box(56,) - >>> env.observation["Autophase"] - [0, 1, ..., 2] - >>> observation["Ir"] - int main() {...} + >>> env = gym.make("llvm-v0") + >>> env.reset() + >>> env.observation.spaces.keys() + ["Autophase", "Ir"] + >>> env.observation.spaces["Autophase"].space + Box(56,) + >>> env.observation["Autophase"] + [0, 1, ..., 2] + >>> observation["Ir"] + int main() {...} """ def __init__( @@ -45,8 +45,13 @@ def __getitem__(self, observation_space: str) -> observation_t: """Request an observation from the given space. :param observation_space: The observation space to query. + :return: An observation. + :raises KeyError: If the requested observation space does not exist. + + :raises SessionNotFound: If :meth:`env.reset() + ` has not been called. """ space = self.spaces[observation_space] request = StepRequest( @@ -75,26 +80,29 @@ def add_derived_space( base_id: str, **kwargs, ) -> None: - """Alias to - :func:`ObservationSpaceSpec.make_derived_space() ` - that adds the derived space to the observation view. + """Alias to :func:`ObservationSpaceSpec.make_derived_space() + ` that adds + the derived space to the observation view. Example usage: - >>> env.observation.add_derived_space( - id="src_len", - base_id="src", - translate=lambda src: np.array([len(src)], dtype=np.int32), - shape=Box(shape=(1,), dtype=np.int32), - ) - >>> env.observation["src_len"] - 1029 + >>> env.observation.add_derived_space( + id="src_len", + base_id="src", + translate=lambda src: np.array([len(src)], dtype=np.int32), + shape=Box(shape=(1,), dtype=np.int32), + ) + >>> env.observation["src_len"] + 1029 :param id: The name of the new observation space. + :param base_id: The name of the observation space that this is derived from. + :param \\**kwargs: Arguments passed to - :func:`ObservationSpaceSpec.make_derived_space `. + :func:`ObservationSpaceSpec.make_derived_space + `. """ base_space = self.spaces[base_id] self._add_space(base_space.make_derived_space(id=id, **kwargs)) diff --git a/compiler_gym/views/reward.py b/compiler_gym/views/reward.py index 2753f2d72..7f3f78c6f 100644 --- a/compiler_gym/views/reward.py +++ b/compiler_gym/views/reward.py @@ -5,6 +5,7 @@ import warnings from typing import Dict, List +from compiler_gym.datasets import Benchmark from compiler_gym.spaces.reward import Reward from compiler_gym.views.observation import ObservationView @@ -14,14 +15,15 @@ class RewardView(object): Example usage: - >>> env = gym.make("llvm-v0") - >>> env.reset() - >>> env.reward.spaces["codesize"].range - (-np.inf, 0) - >>> env.reward["codesize"] - -1243 + >>> env = gym.make("llvm-v0") + >>> env.reset() + >>> env.reward.spaces["codesize"].range + (-np.inf, 0) + >>> env.reward["codesize"] + -1243 :ivar spaces: Specifications of available reward spaces. + :vartype spaces: Dict[str, Reward] """ @@ -41,11 +43,16 @@ def __getitem__(self, reward_space: str) -> float: """Request an observation from the given space. :param reward_space: The reward space to query. + :return: A reward. + :raises KeyError: If the requested reward space does not exist. + + :raises SessionNotFound: If :meth:`env.reset() + ` has not been called. """ # TODO(cummins): Since reward is a function from (state, action) -> r - # it would be better to make the list of reward to evaluate an argument + # it would be better to make the list of rewards to evaluate an argument # to env.step() rather than using this lazy view. if not self.spaces: raise ValueError("No reward spaces") @@ -53,12 +60,11 @@ def __getitem__(self, reward_space: str) -> float: observations = [self._observation_view[obs] for obs in space.observation_spaces] return space.update(self.previous_action, observations, self._observation_view) - def reset(self, benchmark: str) -> None: + def reset(self, benchmark: Benchmark) -> None: """Reset the rewards space view. This is called on :meth:`env.reset() `. - :param benchmark: The URI of the benchmark that is used for this - episode. + :param benchmark: The benchmark that is used for this episode. """ self.previous_action = None for space in self.spaces.values(): diff --git a/docs/requirements.txt b/docs/requirements.txt index 5e4094392..77374feff 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,3 +1,4 @@ sphinx==3.3.1 sphinx-autobuild sphinx-rtd-theme==0.5.0 +sphinxemoji diff --git a/docs/source/_static/img/datasets.png b/docs/source/_static/img/datasets.png index 0c17f1f93..2c93276db 100644 Binary files a/docs/source/_static/img/datasets.png and b/docs/source/_static/img/datasets.png differ diff --git a/docs/source/about.rst b/docs/source/about.rst index 0b688bfa3..390eb81f9 100644 --- a/docs/source/about.rst +++ b/docs/source/about.rst @@ -123,3 +123,40 @@ that we expose in four phases: - Code Rewrite Rule - What instruction should I replace this code with to make it better? + +.. _stability: + +Feature Stability +----------------- + +CompilerGym is in an early stage of development. Our goal is to maintain a +*stable user-facing API* to support developing agents, while achieving a fast +pace of development by permitting a *volatile implementation for backend +features*. This table summarizes our stability guarantees by component, starting +at the user-facing APIs and working down to the backend service implementations: + ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| Component | Stability | ++===========================================================================================================================================================+======================================================================================+ +| | Core Python API. | | |:white_check_mark:| **Stable**. We provide full compatibility with the OpenAI | +| | *e.g.* :meth:`env.step() `, :meth:`env.reset() `. | | gym interface. Should OpenAI change this interface, | +| | | we will update and maintain backwards compatability | +| | | for a minimum of five releases. | ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| | Python API Extensions. | | |:building_construction:| **Stable with dreprecations**. Breaking changes will be | +| | *e.g.* :meth:`env.fork() `, :meth:`env.validate() `. | | used sparingly where they lead to clear improvements | +| | | in usability or performance. Any breaking change will | +| | | be preceded by runtime deprecation warnings for a | +| | | minimum of two releases. | ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| | Compiler Service RPC interface. | | |:warning:| **Somewhat stable.** Breaking changes are planned, and | +| | *e.g.* `CompilerGymService `__. | | will be preceded by deprecation notices in the source | +| | | code for a minimum of one release. We recommend | +| | | upstreaming new compiler support early to alleviate | +| | | maintenance burden. | ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+ +| | Compiler Service Implementations. | | |:stop_sign:| **Not Stable.** Breaking changes can happen at any time. | +| | *e.g.* :doc:`the LLVM C++ codebase `. | | There is no API stability guarantees. If you are modifying | +| | | a compiler service it is strongly recommended to upstream | +| | | your work to ease the maintenance burden. | ++-----------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------+ diff --git a/docs/source/cli.rst b/docs/source/cli.rst index 5ee1f2dba..1e0b5893a 100644 --- a/docs/source/cli.rst +++ b/docs/source/cli.rst @@ -13,11 +13,6 @@ compiler_gym.bin.service .. automodule:: compiler_gym.bin.service -compiler_gym.bin.datasets -------------------------- - -.. automodule:: compiler_gym.bin.datasets - compiler_gym.bin.manual_env --------------------------- diff --git a/docs/source/compiler_gym/compiler_gym.rst b/docs/source/compiler_gym/compiler_gym.rst index 5e2cdb69b..37cdb3ef4 100644 --- a/docs/source/compiler_gym/compiler_gym.rst +++ b/docs/source/compiler_gym/compiler_gym.rst @@ -13,6 +13,19 @@ CompilerEnvState .. autoclass:: CompilerEnvState :members: +.. autoclass:: CompilerEnvStateWriter + :members: + + .. automethod:: __init__ + +.. autoclass:: CompilerEnvStateReader + :members: + + .. automethod:: __init__ + + .. automethod:: __iter__ + + Validation ---------- diff --git a/docs/source/compiler_gym/datasets.rst b/docs/source/compiler_gym/datasets.rst index 237e5139e..2290cc50b 100644 --- a/docs/source/compiler_gym/datasets.rst +++ b/docs/source/compiler_gym/datasets.rst @@ -1,35 +1,85 @@ compiler_gym.datasets ===================== -An instance of a CompilerGym environment uses a benchmark as the program being -optimized. Collections of benchmarks are packaged into datasets, storing -additional metadata such as the license, defined by the -:class:`Dataset ` class. +An instance of a CompilerGym environment uses a :class:`Benchmark +` as the program being optimized. A +:class:`Dataset ` is collection of benchmarks +that can be installed and made available for use. -A simple filesystem-based scheme is used to manage datasets: +.. contents:: + :local: -* Every top-level directory in an environment's site-data folder is - treated as a "dataset". +.. currentmodule:: compiler_gym.datasets -* A benchmarks.inactive directory contains datasets that the user has - downloaded, but are not used by the environment. Moving a directory - from /benchmarks to /benchmarks.inactive means that the - environment will no longer use it. -* Datasets can be packaged as .tar.bz2 archives and downloaded from - the web or local filesystem. Environments may advertise a list of - available datasets. +Benchmark +--------- -Datasets are packaged for each compiler and stored locally in the filesystem. -The filesystem location can be queries using -:attr:`CompilerEnv.datasets_site_path `: +.. autoclass:: Benchmark + :members: - >>> env = gym.make("llvm-v0") - >>> env.datasets_site_path - /home/user/.local/share/compiler_gym/llvm/10.0.0/bitcode_benchmarks +.. autoclass:: BenchmarkSource + :members: -The :mod:`compiler_gym.bin.datasets` module can be used to download and manage -datasets for an environment. +.. autoclass:: BenchmarkInitError -.. automodule:: compiler_gym.datasets - :members: +Dataset +------- + +.. autoclass:: Dataset + :members: + + .. automethod:: __init__ + + .. automethod:: __len__ + + .. automethod:: __getitem__ + + .. automethod:: __iter__ + +.. autoclass:: DatasetInitError + +FilesDataset +------------- + +.. autoclass:: FilesDataset + :members: + + .. automethod:: __init__ + + +TarDataset +---------- + +.. autoclass:: TarDataset + :members: + + .. automethod:: __init__ + + +TarDatasetWithManifest +---------------------- + +.. autoclass:: TarDatasetWithManifest + :members: + + .. automethod:: __init__ + + +Datasets +-------- + + .. autoclass:: Datasets + :members: + + .. automethod:: __len__ + + .. automethod:: __getitem__ + + .. automethod:: __setitem__ + + .. automethod:: __delitem__ + + .. automethod:: __contains__ + + .. automethod:: __iter__ diff --git a/docs/source/compiler_gym/service.rst b/docs/source/compiler_gym/service.rst index fd63ae308..41271dd32 100644 --- a/docs/source/compiler_gym/service.rst +++ b/docs/source/compiler_gym/service.rst @@ -3,12 +3,12 @@ compiler_gym.service .. currentmodule:: compiler_gym.service -CompilerGym uses a client/server architecture. Services provide an -interface for manipulating compiler behavior. Clients are Python -frontend objects that provide a reinforcement learning abstraction on -top of the service. Communication between the service and client is -done using RPC. The connection between the client and service is -managed by the :class:`CompilerGymServiceConnection` object. +CompilerGym uses a client/server architecture. Services provide an interface for +manipulating compiler behavior. Clients are Python frontend objects that provide +a reinforcement learning abstraction on top of the service. Communication +between the service and client is done using RPC. The connection between the +client and service is managed by the :class:`CompilerGymServiceConnection +` object. .. contents:: Document contents: :local: @@ -25,8 +25,8 @@ The connection object Configuring the connection -------------------------- -The :class:`ConnectionOpts` object is used to configure the options -used for managing a service connection. +The :class:`ConnectionOpts ` object is used +to configure the options used for managing a service connection. .. autoclass:: ConnectionOpts :members: @@ -35,12 +35,12 @@ used for managing a service connection. Exceptions ---------- -In general, errors raised by the service are converted to the -equivalent builtin exception type, e.g., `ValueError` for invalid -method arguments, and `FileNotFound` for resource errors. However, -some error cases are not well covered by the builtin exception -hierarchy. For those cases, we define custom exception types, all -inheriting from a base :class:`ServiceError` class: +In general, errors raised by the service are converted to the equivalent builtin +exception type, e.g., `ValueError` for invalid method arguments, and +`FileNotFound` for resource errors. However, some error cases are not well +covered by the builtin exception hierarchy. For those cases, we define custom +exception types, all inheriting from a base :class:`ServiceError +` class: .. autoexception:: ServiceError @@ -49,3 +49,5 @@ inheriting from a base :class:`ServiceError` class: .. autoexception:: ServiceTransportError .. autoexception:: ServiceIsClosed + +.. autoexception:: SessionNotFound diff --git a/docs/source/conf.py b/docs/source/conf.py index ab24f5fec..36fbddff5 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -47,6 +47,7 @@ "sphinx.ext.viewcode", "sphinx_rtd_theme", "sphinx.ext.autosectionlabel", + "sphinxemoji.sphinxemoji", ] autosectionlabel_prefix_document = True diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst index dd6e7abef..554ae6b25 100644 --- a/docs/source/getting_started.rst +++ b/docs/source/getting_started.rst @@ -15,7 +15,7 @@ started! Key Concepts --------------------- +------------ CompilerGym exposes compiler optimization problems as environments for reinforcement learning. It uses the `OpenAI Gym `_ @@ -50,6 +50,10 @@ cumulative reward from these environments so as to produce the best programs. .. include:: installation.rst +See `the Readme file +`_ for +alternative installation methods. + Using CompilerGym ----------------- @@ -87,10 +91,10 @@ Where :code:`` identifiers the compiler optimization task, and :code:`` is the reward signal. .. note:: - A key concept is that - CompilerGym environments enables **lazy evaluation** of observations and - reward signals. This makes the environment much more computationally - efficient for scenarios in which you do not need to compute a reward or + + A key concept is that CompilerGym environments enables **lazy evaluation** + of observations and reward signals. This increases computational efficiency + sampling for scenarios in which you do not need to compute a reward or observation for every step. If an environment omits a :code:`` or :code:`` tag, this means that no observation or reward is provided by default. See :doc:`compiler_gym.views ` for @@ -106,37 +110,16 @@ Create an instance of this environment using: >>> env = gym.make("llvm-autophase-ic-v0") +.. note:: -Installing benchmarks -~~~~~~~~~~~~~~~~~~~~~ - -A compiler requires a program as input. For the purposes of CompilerGym we call -these input programs *benchmarks*, and collections of benchmarks are assembled -into *datasets*. You may provide your own programs to use as benchmarks, or -download one of our pre-assembled datasets. - -The benchmarks that are available to an environment can be queried using -:attr:`env.benchmarks `: - - >>> env.benchmarks - [] - -As you can see, there are no benchmarks installed by default. We have provided -a collection of pre-assembled -:ref:`LLVM benchmark datasets ` that can be -installed using -:meth:`env.require_dataset() `. -For this tutorial we will use the -`NAS Parallel Benchmarks `_ -dataset: - - >>> env.require_dataset("npb-v0") - -Now, :attr:`env.benchmarks ` lists -the 123 benchmarks that comprise the dataset we just installed: + The first time you run :code:`gym.make()` you may see a logging message + "Downloading ..." followed by a delay of 1-2 minutes. This is + CompilerGym downloading large environment-specific dependencies that are not + shipped by default to keep the size of the package down. This is a one-off + download that occurs only the first time the environment is used. Other + operations that require one-off downloads include installing datasets + (described below). - >>> env.benchmarks - ['benchmark://npb-v0/46', 'benchmark://npb-v0/17', ...] The compiler environment ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -145,7 +128,7 @@ If you have experience using `OpenAI Gym `_, the CompilerGym environments will be familiar. If not, you can call :code:`help()` on any function, object, or method to query the documentation: - >>> help(env) + >>> help(env.step) The action space is described by :meth:`env.action_space `. @@ -161,9 +144,9 @@ The observation space is described by The :ref:`Autophase ` observation space is a 56-dimension vector of integers: - >>> env.observation_space.space.shape + >>> env.observation_space.shape (56,) - >>> env.observation_space.space.dtype + >>> env.observation_space.dtype dtype('int64') The upper and lower bounds of the reward signal are described by @@ -172,31 +155,30 @@ The upper and lower bounds of the reward signal are described by >>> env.reward_range (0.0, inf) -As with other Gym environments, -:meth:`reset() ` -must be called before a CompilerGym environment may be used: +As with other Gym environments, :meth:`reset() +` must be called before a CompilerGym +environment may be used. >>> env.reset() - array([ 0, 0, 399, 381, 10, 399, 147, 8, 137, 147, 0, - 0, 0, 556, 0, 546, 0, 15, 693, 574, 1214, 1180, - 384, 399, 214, 0, 120, 116, 0, 88, 468, 8, 546, - 16, 1073, 147, 0, 1551, 0, 0, 0, 10, 766, 0, - 0, 505, 46, 0, 0, 0, 556, 5075, 3261, 13, 0, - 2441]) - -The numpy array that is returned here is the initial -:ref:`Autophase ` observation. Calling -:meth:`env.reset() ` starts an -instance of the compiler and selects a random benchmark to use. You can see -which benchmark is currently being used by an environment using -:attr:`env.benchmark `: + array([ 0, 4, 54, 39, 12, 46, 23, 6, 12, 31, 2, 4, 0, + 81, 4, 77, 13, 15, 108, 106, 75, 51, 71, 46, 15, 0, + 9, 46, 0, 13, 72, 51, 77, 81, 39, 31, 0, 163, 2, + 0, 4, 6, 13, 1, 0, 73, 8, 1, 0, 15, 85, 638, + 402, 16, 10, 298]) + +The numpy array that is returned by :meth:`reset() +` is the initial observation of the program +state. This value, along with the entire dynamics of the environment, depends on +the particular program that is being compiled. In CompilerGym these programs are +called **benchmarks**. You can see which benchmark is currently being used by an +environment using :attr:`env.benchmark +`: >>> env.benchmark - 'benchmark://npb-v0/90' + benchmark://cbench-v1/qsort -If we want to force the environment to use a specific benchmark, we can pass the -name of the benchmark as an argument to -:meth:`env.reset() `: +If we want to compile a different program, we can pass the name of a benchmark +to :meth:`env.reset() `: >>> env.reset(benchmark="benchmark://npb-v0/50") array([ 0, 0, 26, 25, 1, 26, 10, 1, 8, 10, 0, @@ -206,6 +188,14 @@ name of the benchmark as an argument to 0, 148, 60, 0, 0, 0, 37, 3008, 2062, 9, 0, 1262]) +We provide over :ref:`a million benchmarks for the LLVM environments +` that can be used for training agents and evaluating the +generalization of strategies across unseen programs. Benchmarks are grouped into +*datasets* , which are managed using :class:`env.datasets +`. You may also provide your own programs to use +as benchmarks, see :meth:`env.make_benchmark() +` for details. + Interacting with the environment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -294,12 +284,12 @@ the sequence of actions we just run: >>> env.commandline() 'opt -consthoist -sancov -inferattrs ... -place-safepoints input.bc -o output.bc' -We can also save the program for future reference: +We can also save the program in its current state for future reference: >>> env.write_bitcode("~/program.bc") Once we are finished, we must close the environment to end the compiler -instance: +session: >>> env.close() @@ -307,6 +297,25 @@ And finally we are done with our python session: >>> exit() + +.. note:: + + Internally, CompilerGym environments may launch subprocesses and use + temporary files to communicate between the environment and the underlying + compiler (see :doc:`compiler_gym.service ` for + details). This means it is important to call :meth:`env.close() + ` after use to free up resources and + prevent orphan subprocesses or files. We recommend using the :code:`with` + statement pattern for creating environments: + + >>> with gym.make("llvm-autophase-ic-v0") as env: + ... env.reset() + ... # use env how you like + + This removes the need to call :meth:`env.close() + ` yourself. + + Using the command line tools ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -327,65 +336,97 @@ And to describe the capabilities of each environment: .. code-block:: $ python -m compiler_gym.bin.service --env=llvm-v0 - # CompilerGym Service `/path/to/compiler_gym/envs/llvm/service/compiler_gym-llvm-service` - ## Programs - - +------------------------+ - | Benchmark | - +========================+ - | benchmark://npb-v0/1 | - +------------------------+ + Datasets + -------- + +----------------------------+--------------------------+------------------------------+ + | Dataset | Num. Benchmarks [#f1]_ | Description | + +============================+==========================+==============================+ + | benchmark://anghabench-v0 | 1,042,976 | Compile-only C/C++ functions | + +----------------------------+--------------------------+------------------------------+ + | benchmark://blas-v0 | 300 | Basic linear algebra kernels | + +----------------------------+--------------------------+------------------------------+ ... - ## Action Spaces - - - ### `PassesAll` (Commandline) - - +---------------------------------------+-----------------------------------+-------------------------------+ - | Action | Flag | Description | - +=======================================+===================================+===============================+ - | AddDiscriminatorsPass | `-add-discriminators` | Add DWARF path discriminators | - +---------------------------------------+-----------------------------------+-------------------------------+ + Observation Spaces + ------------------ + + +--------------------------+----------------------------------------------+ + | Observation space | Shape | + +==========================+==============================================+ + | Autophase | `Box(0, 9223372036854775807, (56,), int64)` | + +--------------------------+----------------------------------------------+ + | AutophaseDict | `Dict(ArgsPhi:int<0,inf>, BB03Phi:int<0,...` | + +--------------------------+----------------------------------------------+ + | BitcodeFile | `str_list<>[0,4096.0])` | + +--------------------------+----------------------------------------------+ ... -The :mod:`compiler_gym.bin.manual_env` module provides a thin text user -interface around the environment for interactive sessions: +The :mod:`compiler_gym.bin.manual_env` module provides an interactive text user +interface for CompilerGym environments: .. code-block:: - $ python -m compiler_gym.bin.manual_env --env=llvm-autophase-ic-v0 --benchmark=npb-v0/50 - Initialized environment in 264.9ms - Reset benchmark://npb-v0/50 environment in 27.6ms - Observation: [ 0 0 11 10 1 11 5 1 3 5 0 0 0 17 0 16 0 2 - 21 20 50 44 18 11 6 0 3 10 0 1 16 0 16 2 40 5 - 0 59 0 0 0 1 30 0 0 18 0 0 0 0 17 193 129 4 - 0 99] + $ python -m compiler_gym.bin.manual_env --env=llvm-v0 + Initialized environment in 144.3ms + Welcome to the CompilerGym Shell! + --------------------------------- + Type help or ? for more information. + The 'tutorial' command will give a step by step guide. + + compiler_gym:cbench-v1/qsort> help + + Documented commands (type help ): + ======================================== + action help list_rewards set_default_observation + back hill_climb observation set_default_reward + breakpoint list_actions require_dataset simplify_stack + commandline list_benchmarks reset stack + exit list_datasets reward try_all_actions + greedy list_observations set_benchmark tutorial -Finally, the :mod:`compiler_gym.bin.random_search` module provides a simple -but powerful strategy for randomly searching the optimization space: +Finally, the :mod:`compiler_gym.bin.random_search` module provides a simple but +efficient implementation for randomly searching the optimization space: .. code-block:: $ python -m compiler_gym.bin.random_search --env=llvm-autophase-ic-v0 --benchmark=npb-v0/50 --runtime=10 - - Started 16 worker threads for benchmark://npb-v0/50 (3,008 instructions) using reward IrInstructionCountOz. - Writing logs to /home/user/logs/compiler_gym/random/npb-v0/50/2020-12-03T17:24:17.304887 + Started 24 worker threads for using reward IrInstructionCountOz. + Writing logs to /home/user/logs/compiler_gym/random/npb-v0/50/2021-04-21T16:42:41.038447 === Running for 10 seconds === - Runtime: 10 seconds. Num steps: 32,287 (3,206 / sec). Num episodes: 285 (28 / sec). Num restarts: 0. - Best reward: 107.85% (69 passes, found after 9 seconds) + Runtime: 10 seconds. Num steps: 21,563 (2,105 / sec). Num episodes: 141 (13 / sec). Num restarts: 0. + Best reward: 1.0228 (141 passes, found after 4 seconds) Ending worker threads ... done Replaying actions from best solution found: - Step [000 / 069]: reward=31.52% - Step [001 / 069]: reward=31.52%, change=0.00%, action=SlpvectorizerPass - Step [002 / 069]: reward=37.09%, change=5.57%, action=Sroapass + Step [001 / 141]: reward=0.0000 episode=0.0000 action=-hotcoldsplit + Step [002 / 141]: reward=0.0000 episode=0.0000 action=-scalarizer + Step [003 / 141]: reward=0.0000 episode=0.0000 action=-redundant-dbg-inst-elim ... - Step [067 / 069]: reward=107.60%, change=0.00%, action=InductiveRangeCheckEliminationPass - Step [068 / 069]: reward=107.60%, change=0.00%, action=LoopDeletionPass - Step [069 / 069]: reward=107.85%, change=0.24%, action=Gvnpass - -To beat the compiler by 7.85% after 10 seconds of random trials is not bad + Step [139 / 141]: reward=0.0000 episode=1.0218 action=-barrier + Step [140 / 141]: reward=0.0000 episode=1.0218 action=-sink + Step [141 / 141]: reward=0.0010 episode=1.0228 action=-loop-simplifycfg + +---------------------------+-------+-------+---------+ + | | -O0 | -Oz | final | + +===========================+=======+=======+=========+ + | IR instruction count | 3008 | 948 | 901 | + +---------------------------+-------+-------+---------+ + | Object .text size (bytes) | 13047 | 10991 | 10399 | + +---------------------------+-------+-------+---------+ + +To beat the compiler by 2.28% after 10 seconds of random trials is not bad going! + +Next Steps +---------- + +Now that you have got to grips with the compiler environment, take a browse +through the `examples directory +`_ for +pytorch integration, agent implementations, etc. Then check out `the +leaderboards `_ to +see what the best performing algorithms are, and `the documentation +`_ for details of the APIs and +environments. We love feedback, bug reports, and feature requests - please `file +an issue `_! diff --git a/docs/source/llvm/api.rst b/docs/source/llvm/api.rst index 408b16409..0e3ebeb6e 100644 --- a/docs/source/llvm/api.rst +++ b/docs/source/llvm/api.rst @@ -1,8 +1,15 @@ compiler_gym.envs.llvm ====================== -The :code:`compiler_gym.envs.llvm` module contains supporting APIs for the -:doc:`LLVM Environments `. +The :code:`compiler_gym.envs.llvm` module contains datasets and API extensions +for the :doc:`LLVM Environments `. See :class:`LlvmEnv +` for the class definition. + +.. contents:: + :local: + +Constructing Benchmarks +----------------------- .. currentmodule:: compiler_gym.envs.llvm @@ -14,3 +21,37 @@ The :code:`compiler_gym.envs.llvm` module contains supporting APIs for the .. automethod:: __init__ .. autofunction:: get_system_includes + + +Datasets +-------- + +.. currentmodule:: compiler_gym.envs.llvm.datasets + +.. autofunction:: get_llvm_datasets + +.. autoclass:: AnghaBenchDataset + +.. autoclass:: BlasDataset + +.. autoclass:: CBenchDataset + +.. autoclass:: CLgenDataset + +.. autoclass:: CsmithDataset + +.. autoclass:: GitHubDataset + +.. autoclass:: LinuxDataset + +.. autoclass:: LlvmStressDataset + +.. autoclass:: MibenchDataset + +.. autoclass:: NPBDataset + +.. autoclass:: OpenCVDataset + +.. autoclass:: POJ104Dataset + +.. autoclass:: TensorFlowDataset diff --git a/docs/source/llvm/index.rst b/docs/source/llvm/index.rst index d82d9d572..17115cd6b 100644 --- a/docs/source/llvm/index.rst +++ b/docs/source/llvm/index.rst @@ -16,59 +16,59 @@ CompilerGym exposes the LLVM IR optimizer for reinforcement learning through an Datasets -------- -We provide several datasets of open-source LLVM-IR benchmarks for download: - -+------------------------+--------------+-----------------+---------------------+-------------------+ -| Dataset | License | Num. Benchmarks | Validatable? [#f1]_ | Difficulty [#f2]_ | -+========================+==============+=================+=====================+===================+ -| blas-v0 | BSD 3-Clause | 300 | No | 0.3 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| cBench-v1 | BSD 3-Clause | 23 | Partial | 0.8 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| github-v0 | CC BY 4.0 | 50,708 | No | 0.7 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| linux-v0 | GPL-2.0 | 13,920 | No | 0.4 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| mibench-v0 | BSD 3-Clause | 40 | No | 0.8 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| npb-v0 | NASA v1.3 | 122 | No | 0.4 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| opencv-v0 | Apache 2.0 | 442 | No | 0.3 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| poj104-v0 | BSD 3-Clause | 49,628 | No | 0.7 | -+------------------------+--------------+-----------------+---------------------+-------------------+ -| tensorflow-v0 | Apache 2.0 | 1,985 | No | 0.3 | -+------------------------+--------------+-----------------+---------------------+-------------------+ - -.. [#f1] A **validatable** dataset is one where the behavior of the benchmarks +We provide several datasets of open-source LLVM-IR benchmarks for use: + ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| Dataset | Num. Benchmarks [#f1]_ | Description | Validatable [#f2]_ | ++============================+==========================+====================================================================================================================================================================================================================+======================+ +| benchmark://anghabench-v0 | 1,042,976 | Compile-only C/C++ functions extracted from GitHub [`Homepage `__, `Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://blas-v0 | 300 | Basic linear algebra kernels [`Homepage `__, `Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://cbench-v1 | 23 | Runnable C benchmarks [`Homepage `__, `Paper `__] | Partially | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://clgen-v0 | 996 | Synthetically generated OpenCL kernels [`Homepage `__, `Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://github-v0 | 49,738 | Compile-only C/C++ objects from GitHub [`Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://linux-v0 | 13,894 | Compile-only object files from C Linux kernel [`Homepage `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://mibench-v0 | 40 | C benchmarks [`Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://npb-v0 | 122 | NASA Parallel Benchmarks [`Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://opencv-v0 | 442 | Compile-only object files from C++ OpenCV library [`Homepage `__, `Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://poj104-v1 | 49,816 | Solutions to programming programs [`Homepage `__, `Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| benchmark://tensorflow-v0 | 1,985 | Compile-only object files from C++ TensorFlow library [`Homepage `__, `Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| generator://csmith-v0 | ∞ | Random conformant C99 programs [`Homepage `__, `Paper `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| generator://llvm-stress-v0 | ∞ | Randomly generated LLVM-IR [`Documentation `__] | No | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ +| Total | 1,160,330 | | | ++----------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+ + +.. [#f1] Values are for the Linux datasets. Some of the datasets contain fewer + benchmarks on macOS. +.. [#f2] A **validatable** dataset is one where the behavior of the benchmarks can be checked by compiling the programs to binaries and executing them. If the benchmarks crash, or are found to have different behavior, then validation fails. This type of validation is used to check that the compiler has not broken the semantics of the program. See :mod:`compiler_gym.bin.validate`. -.. [#f2] The **difficulty** of a dataset is an indicator of how likely a random - policy is to outperform the default compiler policy in a fixed amount - of time. A lower difficulty shows that a random policy is more likely - to succeed. It is a crude characterization metric that does not take - into account factors such as the diversity of programs, the complexity - of the optimization space, etc. The difficulty values in this table - were estimated using 2000 random trials and a fixed time budget of 30 - seconds. - -Install these datasets using the :mod:`compiler_gym.bin.datasets` command line -tool, or programatically using -:meth:`CompilerEnv.require_datasets() `: - - >>> env = gym.make("llvm-v0") - >>> env.require_datasets(["tensorflow-v0", "npb-v0"]) + +All of the above datasets are available for use with the LLVM environment. See +:ref:`compiler_gym.envs.llvm.datasets ` for API details. We characterize the datasets below in radial plots which show, clockwise from the top: the average number of instructions per benchmark, the density of branching instructions, the density of arithmetic instructions, and the density -of memory operations. For example, comparing blas-v0 and cBench-v1 shows that +of memory operations. For example, comparing blas-v0 and cbench-v1 shows that blas-v0 consists of smaller programs with a similar density of branches, a higher density of arithmetic operations and relatively few memory operations. -cBench-v1, in contrast to the small linear algebra kernels of blas-v0, contains +cbench-v1, in contrast to the small linear algebra kernels of blas-v0, contains larger programs with a higher density of memory operations and fewer arithmetic operations. diff --git a/examples/BUILD b/examples/BUILD index f54103055..c4a2f49a9 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -21,6 +21,7 @@ py_test( ":actor_critic", "//compiler_gym/util", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) @@ -74,6 +75,7 @@ py_test( py_binary( name = "tabular_q", srcs = ["tabular_q.py"], + visibility = ["//visibility:public"], deps = [ "//compiler_gym", "//compiler_gym/util", @@ -89,6 +91,7 @@ py_test( ":tabular_q", "//compiler_gym/util", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) diff --git a/examples/RandomSearch.cc b/examples/RandomSearch.cc index 7202283b4..d07e3cda9 100644 --- a/examples/RandomSearch.cc +++ b/examples/RandomSearch.cc @@ -25,7 +25,7 @@ #include "compiler_gym/envs/llvm/service/ObservationSpaces.h" #include "compiler_gym/util/GrpcStatusMacros.h" -DEFINE_string(benchmark, "benchmark://cBench-v1/crc32", "The benchmark to use."); +DEFINE_string(benchmark, "benchmark://cbench-v1/crc32", "The benchmark to use."); DEFINE_int32(step_count, 100, "The number of steps to run for each random search"); DEFINE_int32(nproc, std::max(1u, std::thread::hardware_concurrency()), "The number of parallel search threads to use"); diff --git a/examples/actor_critic.py b/examples/actor_critic.py index cc09e22ac..8102755b3 100644 --- a/examples/actor_critic.py +++ b/examples/actor_critic.py @@ -58,7 +58,7 @@ "List of optimizatins to explore.", ) flags.DEFINE_string("reward", "IrInstructionCount", "The reward function to optimize.") -flags.DEFINE_string("benchmark", "cBench-v1/dijkstra", "Benchmark to optimize.") +flags.DEFINE_string("benchmark", "cbench-v1/dijkstra", "Benchmark to optimize.") flags.DEFINE_integer("episode_len", 5, "Number of transitions per episode.") flags.DEFINE_integer("hidden_size", 64, "Latent vector size.") flags.DEFINE_integer("episodes", 1000, "Number of episodes to run and train on.") @@ -119,7 +119,6 @@ class CustomEnv: def __init__(self): self._env = gym.make("llvm-v0", reward_space=FLAGS.reward) try: - self._env.require_dataset("cBench-v1") self._env.reset(benchmark=FLAGS.benchmark) # Project onto the subset of transformations that have diff --git a/examples/actor_critic_test.py b/examples/actor_critic_test.py index d05417d8a..bc2407f13 100644 --- a/examples/actor_critic_test.py +++ b/examples/actor_critic_test.py @@ -7,21 +7,21 @@ from compiler_gym.util.capture_output import capture_output from examples.actor_critic import main +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main as _test_main FLAGS = flags.FLAGS def test_run_actor_critic_smoke_test(): - FLAGS.unparse_flags() - FLAGS( + set_command_line_flags( [ "argv0", "--seed=0", "--episode_len=2", "--episodes=10", "--log_interval=5", - "--benchmark=cBench-v1/crc32", + "--benchmark=cbench-v1/crc32", ] ) with capture_output() as out: diff --git a/examples/brute_force.py b/examples/brute_force.py index 276346f5a..c967e81ca 100644 --- a/examples/brute_force.py +++ b/examples/brute_force.py @@ -10,10 +10,10 @@ Example usage: $ $ python -m compiler_gym.bin.brute_force \ - --env=llvm-ic-v0 --benchmark=cBench-v1/dijkstra \ + --env=llvm-ic-v0 --benchmark=cbench-v1/dijkstra \ --episode_length=10 --actions=-sroa,-mem2reg,-newgvn - Enumerating all episodes of 3 actions × 10 steps - Started 24 brute force workers for benchmark cBench-v1/dijkstra using reward IrInstructionCountOz. + Enumerating all episodes of 3 actions x 10 steps + Started 24 brute force workers for benchmark cbench-v1/dijkstra using reward IrInstructionCountOz. === Running 59,049 trials === Runtime: 3 minutes. Progress: 100.00%. Best reward found: 101.1905%. Ending jobs ... completed 59,049 of 59,049 trials (100.000%) @@ -84,11 +84,8 @@ def __init__( self.alive = True # Set this to False to signal the thread to stop. def run(self): - for i, chunk in enumerate( - grouper( - itertools.product(*[self.actions] * self.episode_length), self.chunksize - ), - start=1, + for chunk in grouper( + itertools.product(*[self.actions] * self.episode_length), self.chunksize ): if not self.alive: break @@ -108,13 +105,13 @@ class BruteForceWorker(Thread): def __init__( self, - id: int, + worker_id: int, in_q: Queue, out_q: Queue, env: CompilerEnv, ): super().__init__() - self.id = id + self.id = worker_id self.in_q = in_q self.out_q = out_q self.env = env @@ -185,12 +182,12 @@ def run_brute_force( reward_space_name = env.reward_space.id actions = [env.action_space.names.index(a) for a in action_names] - benchmark_name = env.benchmark + benchmark_uri = env.benchmark.uri meta = { "env": env.spec.id, "action_names": action_names, - "benchmark": benchmark_name, + "benchmark": benchmark_uri, "reward": reward_space_name, "init_reward": env.reward[reward_space_name], "episode_length": episode_length, @@ -220,7 +217,7 @@ def run_brute_force( # Worker threads that will consume the action sequences and produce rewards. workers = [ - BruteForceWorker(id=i, env=make_env(), in_q=in_q, out_q=out_q) + BruteForceWorker(worker_id=i, env=make_env(), in_q=in_q, out_q=out_q) for i in range(1, nproc + 1) ] for worker in workers: @@ -235,11 +232,11 @@ def run_brute_force( best_reward = -float("inf") best_action_sequence = [] print( - f"Enumerating all episodes of {len(actions)} actions × {episode_length} steps" + f"Enumerating all episodes of {len(actions)} actions x {episode_length} steps" ) print( f"Started {len(workers)} brute force workers for benchmark " - f"{benchmark_name} using reward {reward_space_name}." + f"{benchmark_uri} using reward {reward_space_name}." ) print(f"=== Running {humanize.intcomma(expected_trial_count)} trials ===") try: @@ -315,11 +312,10 @@ def main(argv): env = env_from_flags(benchmark) env.reset() benchmark = env.benchmark - sanitized_benchmark_name = "/".join(benchmark.split("/")[-2:]) + sanitized_benchmark_uri = "/".join(benchmark.split("/")[-2:]) env.close() logs_dir = Path( - FLAGS.output_dir - or create_logging_dir(f"brute_force/{sanitized_benchmark_name}") + FLAGS.output_dir or create_logging_dir(f"brute_force/{sanitized_benchmark_uri}") ) run_brute_force( diff --git a/examples/brute_force_test.py b/examples/brute_force_test.py index 0dfd1fb5f..7a559908e 100644 --- a/examples/brute_force_test.py +++ b/examples/brute_force_test.py @@ -16,7 +16,7 @@ def test_run_brute_force_smoke_test(): with tempfile.TemporaryDirectory() as tmp: outdir = Path(tmp) run_brute_force( - make_env=lambda: gym.make("llvm-ic-v0"), + make_env=lambda: gym.make("llvm-ic-v0", benchmark="cbench-v1/crc32"), action_names=["-sroa", "-mem2reg"], episode_length=2, outdir=outdir, @@ -29,4 +29,4 @@ def test_run_brute_force_smoke_test(): if __name__ == "__main__": - main() + main(extra_pytest_args=["-s"], debug_level=2) # Don't capture stdout/stderr. diff --git a/examples/example_compiler_gym_service/BUILD b/examples/example_compiler_gym_service/BUILD index 0f8600c86..f6cc2e193 100644 --- a/examples/example_compiler_gym_service/BUILD +++ b/examples/example_compiler_gym_service/BUILD @@ -11,6 +11,7 @@ py_library( "//examples/example_compiler_gym_service/service_cc:compiler_gym-example-service-cc", "//examples/example_compiler_gym_service/service_py:compiler_gym-example-service-py", ], + visibility = ["//visibility:public"], deps = [ "//compiler_gym/util", ], diff --git a/examples/example_compiler_gym_service/README.md b/examples/example_compiler_gym_service/README.md index 640d6f889..cade0209e 100644 --- a/examples/example_compiler_gym_service/README.md +++ b/examples/example_compiler_gym_service/README.md @@ -17,7 +17,8 @@ Features: * Enforces the service contract, e.g. `StartSession()` must be called before `EndSession()`, list indices must be in-bounds, etc. * Implements all of the RPC endpoints. -* It has two programs "foo" and "bar". +* It has a single dataset "benchmark://example-v0" with two programs "foo" and + "bar". * It has a static action space with three items: `["a", "b", "c"]`. The action space never changes. Actions never end the episode. * There are two observation spaces: diff --git a/examples/example_compiler_gym_service/__init__.py b/examples/example_compiler_gym_service/__init__.py index 991bf3bd8..f9c44bc34 100644 --- a/examples/example_compiler_gym_service/__init__.py +++ b/examples/example_compiler_gym_service/__init__.py @@ -3,9 +3,21 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """This module demonstrates how to """ +from pathlib import Path +from typing import Iterable + +from compiler_gym.datasets import Benchmark, Dataset from compiler_gym.spaces import Reward from compiler_gym.util.registration import register -from compiler_gym.util.runfiles_path import runfiles_path +from compiler_gym.util.runfiles_path import runfiles_path, site_data_path + +EXAMPLE_CC_SERVICE_BINARY: Path = runfiles_path( + "examples/example_compiler_gym_service/service_cc/compiler_gym-example-service-cc" +) + +EXAMPLE_PY_SERVICE_BINARY: Path = runfiles_path( + "examples/example_compiler_gym_service/service_py/compiler_gym-example-service-py" +) class RuntimeReward(Reward): @@ -40,16 +52,42 @@ def update(self, action, observations, observation_view): return reward +class ExampleDataset(Dataset): + def __init__(self, *args, **kwargs): + super().__init__( + name="benchmark://example-v0", + license="MIT", + description="An example dataset", + site_data_base=site_data_path("example_dataset"), + ) + self._benchmarks = { + "benchmark://example-v0/foo": Benchmark.from_file_contents( + "benchmark://example-v0/foo", "Ir data".encode("utf-8") + ), + "benchmark://example-v0/bar": Benchmark.from_file_contents( + "benchmark://example-v0/bar", "Ir data".encode("utf-8") + ), + } + + def benchmark_uris(self) -> Iterable[str]: + yield from self._benchmarks.keys() + + def benchmark(self, uri: str) -> Benchmark: + if uri in self._benchmarks: + return self._benchmarks[uri] + else: + raise LookupError("Unknown program name") + + # Register the example service on module import. After importing this module, # the example-v0 environment will be available to gym.make(...). register( id="example-cc-v0", entry_point="compiler_gym.envs:CompilerEnv", kwargs={ - "service": runfiles_path( - "examples/example_compiler_gym_service/service_cc/compiler_gym-example-service-cc" - ), + "service": EXAMPLE_CC_SERVICE_BINARY, "rewards": [RuntimeReward()], + "datasets": [ExampleDataset()], }, ) @@ -57,9 +95,8 @@ def update(self, action, observations, observation_view): id="example-py-v0", entry_point="compiler_gym.envs:CompilerEnv", kwargs={ - "service": runfiles_path( - "examples/example_compiler_gym_service/service_py/compiler_gym-example-service-py" - ), + "service": EXAMPLE_PY_SERVICE_BINARY, "rewards": [RuntimeReward()], + "datasets": [ExampleDataset()], }, ) diff --git a/examples/example_compiler_gym_service/env_tests.py b/examples/example_compiler_gym_service/env_tests.py index 24ece5720..6196ef4cf 100644 --- a/examples/example_compiler_gym_service/env_tests.py +++ b/examples/example_compiler_gym_service/env_tests.py @@ -11,6 +11,7 @@ import compiler_gym import examples.example_compiler_gym_service # noqa Register environments. from compiler_gym.envs import CompilerEnv +from compiler_gym.service import SessionNotFound from compiler_gym.spaces import NamedDiscrete, Scalar, Sequence from tests.test_main import main @@ -71,22 +72,22 @@ def test_step_before_reset(env: CompilerEnv): def test_observation_before_reset(env: CompilerEnv): """Taking an observation before reset() is illegal.""" - with pytest.raises(ValueError) as ctx: + with pytest.raises(SessionNotFound) as ctx: _ = env.observation["ir"] - assert str(ctx.value) == "Session ID not found" + assert str(ctx.value).startswith("Session not found") def test_reward_before_reset(env: CompilerEnv): """Taking a reward before reset() is illegal.""" - with pytest.raises(ValueError) as ctx: + with pytest.raises(SessionNotFound) as ctx: _ = env.reward["runtime"] - assert str(ctx.value) == "Session ID not found" + assert str(ctx.value).startswith("Session not found") def test_reset_invalid_benchmark(env: CompilerEnv): """Test requesting a specific benchmark.""" - with pytest.raises(ValueError) as ctx: - env.reset(benchmark="foobar") + with pytest.raises(LookupError) as ctx: + env.reset(benchmark="example-v0/foobar") assert str(ctx.value) == "Unknown program name" @@ -166,7 +167,10 @@ def test_rewards(env: CompilerEnv): def test_benchmarks(env: CompilerEnv): - assert env.benchmarks == ["foo", "bar"] + assert list(env.datasets.benchmark_uris()) == [ + "benchmark://example-v0/foo", + "benchmark://example-v0/bar", + ] if __name__ == "__main__": diff --git a/examples/example_compiler_gym_service/service_cc/BUILD b/examples/example_compiler_gym_service/service_cc/BUILD index 3469d876a..690a64481 100644 --- a/examples/example_compiler_gym_service/service_cc/BUILD +++ b/examples/example_compiler_gym_service/service_cc/BUILD @@ -25,5 +25,6 @@ cc_library( "//compiler_gym/util:Version", "@boost//:filesystem", "@com_github_grpc_grpc//:grpc++", + "@fmt", ], ) diff --git a/examples/example_compiler_gym_service/service_cc/ExampleService.cc b/examples/example_compiler_gym_service/service_cc/ExampleService.cc index b6cef9c76..876338102 100644 --- a/examples/example_compiler_gym_service/service_cc/ExampleService.cc +++ b/examples/example_compiler_gym_service/service_cc/ExampleService.cc @@ -5,6 +5,8 @@ #include "examples/example_compiler_gym_service/service_cc/ExampleService.h" +#include + #include "compiler_gym/service/proto/compiler_gym_service.pb.h" #include "compiler_gym/util/GrpcStatusMacros.h" #include "compiler_gym/util/Version.h" @@ -27,9 +29,9 @@ template return Status::OK; } -} // namespace - -std::vector getBenchmarks() { return {"foo", "bar"}; } +std::vector getBenchmarkUris() { + return {"benchmark://example-v0/foo", "benchmark://example-v0/bar"}; +} std::vector getActionSpaces() { ActionSpace space; @@ -69,6 +71,8 @@ std::vector getObservationSpaces() { return {ir, features, runtime}; } +} // namespace + ExampleService::ExampleService(const fs::path& workingDirectory) : workingDirectory_(workingDirectory), nextSessionId_(0) {} @@ -95,7 +99,7 @@ Status ExampleService::StartSession(ServerContext* /* unused*/, const StartSessi // Determine the benchmark to use. std::string benchmark = request->benchmark(); - const auto benchmarks = getBenchmarks(); + const auto benchmarks = getBenchmarkUris(); if (!benchmark.empty() && std::find(benchmarks.begin(), benchmarks.end(), benchmark) == benchmarks.end()) { return Status(StatusCode::INVALID_ARGUMENT, "Unknown program name"); @@ -112,8 +116,18 @@ Status ExampleService::StartSession(ServerContext* /* unused*/, const StartSessi const auto actionSpace = actionSpaces[request->action_space()]; // Create the new compilation session given. + auto session = std::make_unique(benchmark, actionSpace); + + // Generate initial observations. + for (int i = 0; i < request->observation_space_size(); ++i) { + RETURN_IF_ERROR(rangeCheck(request->observation_space(i), 0, + static_cast(getObservationSpaces().size()) - 1)); + RETURN_IF_ERROR( + session->getObservation(request->observation_space(i), reply->add_observation())); + } + reply->set_session_id(nextSessionId_); - sessions_[nextSessionId_] = std::make_unique(benchmark, actionSpace); + sessions_[nextSessionId_] = std::move(session); ++nextSessionId_; return Status::OK; @@ -138,18 +152,10 @@ Status ExampleService::Step(ServerContext* /* unused*/, const StepRequest* reque return sess->Step(request, reply); } -Status ExampleService::GetBenchmarks(grpc::ServerContext* /*unused*/, - const GetBenchmarksRequest* /*unused*/, - GetBenchmarksReply* reply) { - const auto benchmarks = getBenchmarks(); - *reply->mutable_benchmark() = {benchmarks.begin(), benchmarks.end()}; - return Status::OK; -} - Status ExampleService::session(uint64_t id, ExampleCompilationSession** sess) { auto it = sessions_.find(id); if (it == sessions_.end()) { - return Status(StatusCode::INVALID_ARGUMENT, "Session ID not found"); + return Status(StatusCode::NOT_FOUND, fmt::format("Session not found: {}", id)); } *sess = it->second.get(); return Status::OK; @@ -170,8 +176,7 @@ Status ExampleCompilationSession::Step(const StepRequest* request, StepReply* re for (int i = 0; i < request->observation_space_size(); ++i) { RETURN_IF_ERROR(rangeCheck(request->observation_space(i), 0, static_cast(getObservationSpaces().size()) - 1)); - auto observation = reply->add_observation(); - RETURN_IF_ERROR(getObservation(request->observation_space(i), observation)); + RETURN_IF_ERROR(getObservation(request->observation_space(i), reply->add_observation())); } return Status::OK; diff --git a/examples/example_compiler_gym_service/service_cc/ExampleService.h b/examples/example_compiler_gym_service/service_cc/ExampleService.h index 3f87cfabb..0477e6aa6 100644 --- a/examples/example_compiler_gym_service/service_cc/ExampleService.h +++ b/examples/example_compiler_gym_service/service_cc/ExampleService.h @@ -42,9 +42,6 @@ class ExampleService final : public CompilerGymService::Service { grpc::Status Step(grpc::ServerContext* context, const StepRequest* request, StepReply* reply) final override; - grpc::Status GetBenchmarks(grpc::ServerContext* context, const GetBenchmarksRequest* request, - GetBenchmarksReply* reply) final override; - private: [[nodiscard]] grpc::Status session(uint64_t id, ExampleCompilationSession** environment); @@ -67,15 +64,11 @@ class ExampleCompilationSession { [[nodiscard]] grpc::Status Step(const StepRequest* request, StepReply* reply); - private: grpc::Status getObservation(int32_t observationSpace, Observation* reply); + private: const std::string benchmark_; ActionSpace actionSpace_; }; -// Helper functions to describe the available action/observation/reward spaces. -std::vector getActionSpaces(); -std::vector getObservationSpaces(); - } // namespace compiler_gym::example_service diff --git a/examples/example_compiler_gym_service/service_py/example_service.py b/examples/example_compiler_gym_service/service_py/example_service.py index 71afaa8df..0335b8db1 100755 --- a/examples/example_compiler_gym_service/service_py/example_service.py +++ b/examples/example_compiler_gym_service/service_py/example_service.py @@ -34,7 +34,7 @@ logging.basicConfig(level=logging.DEBUG) # The names of the benchmarks that are supported -BENCHMARKS = ["foo", "bar"] +BENCHMARKS = ["benchmark://example-v0/foo", "benchmark://example-v0/bar"] # The list of actions that are supported by this service. This example uses a # static (unchanging) action space, but this could be extended to support a @@ -93,6 +93,16 @@ def __init__(self, benchmark: str): # Do any of the set up required to start a compilation "session". self.benchmark = benchmark + def set_observation(self, observation_space, observation): + logging.debug("Compute observation %d", observation_space) + if observation_space == 0: # ir + observation.string_value = "Hello, world!" + elif observation_space == 1: # features + observation.int64_list.value[:] = [0, 0, 0] + elif observation_space == 1: # runtime + observation.scalar_double = 0 + return observation + def step(self, request: proto.StepRequest, context) -> proto.StepReply: reply = proto.StepReply() @@ -108,14 +118,7 @@ def step(self, request: proto.StepRequest, context) -> proto.StepReply: # Compute a list of observations from the user. Each value is an index # into the OBSERVATION_SPACES list. for observation_space in request.observation_space: - logging.debug("Compute observation %d", observation_space) - observation = reply.observation.add() - if observation_space == 0: # ir - observation.string_value = "Hello, world!" - elif observation_space == 1: # features - observation.int64_list.value[:] = [0, 0, 0] - elif observation_space == 1: # runtime - observation.scalar_double = 0 + self.set_observation(observation_space, reply.observation.add()) return reply @@ -150,19 +153,12 @@ def GetSpaces( observation_space_list=OBSERVATION_SPACES, ) - def GetBenchmarks( - self, request: proto.GetBenchmarksRequest, context - ) -> proto.GetBenchmarksReply: - del context # Unused - # Report the available benchmarks to the user. - logging.debug("GetBenchmarks()") - return proto.GetBenchmarksReply(benchmark=BENCHMARKS) - def StartSession( self, request: proto.StartSessionRequest, context ) -> proto.StartSessionReply: """Create a new compilation session.""" logging.debug("StartSession(benchmark=%s)", request.benchmark) + reply = proto.StartSessionReply() if not request.benchmark: benchmark = "foo" # Pick a default benchmark is none was requested. @@ -175,11 +171,16 @@ def StartSession( return session = CompilationSession(benchmark=benchmark) - session_id = len(self.sessions) - self.sessions[session_id] = session - return proto.StartSessionReply( - session_id=session_id, benchmark=session.benchmark - ) + + # Generate the initial observations. + for observation_space in request.observation_space: + session.set_observation(observation_space, reply.observation.add()) + + reply.session_id = len(self.sessions) + reply.benchmark = session.benchmark + self.sessions[reply.session_id] = session + + return reply def EndSession( self, request: proto.EndSessionRequest, context @@ -194,8 +195,8 @@ def EndSession( def Step(self, request: proto.StepRequest, context) -> proto.StepReply: logging.debug("Step()") if request.session_id not in self.sessions: - context.set_code(grpc.StatusCode.INVALID_ARGUMENT) - context.set_details("Session ID not found") + context.set_code(grpc.StatusCode.NOT_FOUND) + context.set_details(f"Session not found: {request.session_id}") return return self.sessions[request.session_id].step(request, context) diff --git a/examples/explore.py b/examples/explore.py index adbc8c84c..0a94db4f1 100644 --- a/examples/explore.py +++ b/examples/explore.py @@ -11,7 +11,7 @@ Example usage: - $ python explore.py --env=llvm-ic-v0 --benchmark=cBench-v1/dijkstra \ + $ python explore.py --env=llvm-ic-v0 --benchmark=cbench-v1/dijkstra \ --episode_length=10 --actions=-simplifycfg,-instcombine,-mem2reg,-newgvn Use --help to list the configurable options. diff --git a/examples/explore_test.py b/examples/explore_test.py index 51646b55e..759a81ac4 100644 --- a/examples/explore_test.py +++ b/examples/explore_test.py @@ -11,7 +11,7 @@ def test_run_explore_smoke_test(capsys): [ "explore", "--env=llvm-ic-v0", - "--benchmark=cBench-v1/dijkstra", + "--benchmark=cbench-v1/dijkstra", "--episode_length=2", "--actions=-newgvn,-instcombine,-mem2reg", "--nproc=2", diff --git a/examples/getting-started.ipynb b/examples/getting-started.ipynb index 1298d4af4..d8f3d8984 100644 --- a/examples/getting-started.ipynb +++ b/examples/getting-started.ipynb @@ -148,12 +148,12 @@ "\n", "Where `` identifiers the compiler optimization task, `` is the default type of observations that are provided, and `` is the reward signal.\n", "\n", - "**Note** A key concept is that CompilerGym environments enables **lazy evaluation** of observations and reward signals. This makes the environment much more computationally efficient for scenarios in which you do not need to compute a reward or observation for every step. If an environment omits a `` or `` tag, this means that no observation or reward is provided by default. See [compiler_gym.views](https://facebookresearch.github.io/CompilerGym/compiler_gym/views.html) for further details.\n", + "**Note** A key concept is that CompilerGym environments enables **lazy evaluation** of observations and reward signals. This increases computational efficiency sampling for scenarios in which you do not need to compute a reward or observation for every step. If an environment omits a `` or `` tag, this means that no observation or reward is provided by default. See [compiler_gym.views](https://facebookresearch.github.io/CompilerGym/compiler_gym/views.html) for further details.\n", "\n", "For this tutorial, we will use the following environment:\n", - "* **Compiler**: [LLVM](https://facebookresearch.github.io/CompilerGym/llvm/index.html)\n", - "* **Observation Type**: [Autophase](https://facebookresearch.github.io/CompilerGym/llvm/index.html#autophase)\n", - "* **Reward Signal**: [IR Instruction count relative to -Oz](https://facebookresearch.github.io/CompilerGym/llvm/index.html#codesize)\n", + "* **Compiler**: [LLVM](https://facebookresearch.github.io/CompilerGym/llvm/index.html).\n", + "* **Observation Type**: [Autophase](https://facebookresearch.github.io/CompilerGym/llvm/index.html#autophase).\n", + "* **Reward Signal**: [IR Instruction count relative to -Oz](https://facebookresearch.github.io/CompilerGym/llvm/index.html#codesize).\n", "\n", "Create an instance of this environment using:" ] @@ -171,97 +171,65 @@ }, { "cell_type": "markdown", - "metadata": { - "id": "TXG_UcVeRufO" - }, - "source": [ - "## Installing benchmarks\n", - "\n", - "A compiler requires a program as input. For the purposes of CompilerGym we call these input programs *benchmarks*, and collections of benchmarks are assembled into *datasets*. You may provide your own programs to use as benchmarks, or download one of our pre-assembled datasets.\n", - "\n", - "The benchmarks that are available to an environment can be queried using `env.benchmarks`:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Nm2tocpER1HY" - }, - "outputs": [], + "metadata": {}, "source": [ - "env.benchmarks" + "**Note** The first time you run `gym.make()` you may see a logging message \"Downloading \\ ...\" followed by a delay of 1-2 minutes. This is CompilerGym downloading large environment-specific dependencies that are not shipped by default to keep the size of the package down. This is a one-off download that occurs only the first time the environment is used. Other operations that require one-off downloads include installing datasets (described below)." ] }, { "cell_type": "markdown", "metadata": { - "id": "Cpd8uLSqR2AC" + "id": "xwc2xlJTSPSd" }, "source": [ - "As you can see, there are no benchmarks installed by default. We have provided a collection of pre-assembled [LLVM benchmark datasets](https://facebookresearch.github.io/CompilerGym/llvm/index.html#datasets) that can be installed using `env.require_dataset()`. For this tutorial we will use the [NAS Parallel Benchmarks](https://www.nas.nasa.gov/publications/npb.html) dataset:" + "## The compiler environment\n", + "\n", + "If you have experience using [OpenAI Gym](https://gym.openai.com/), the CompilerGym environments will be familiar. If not, you can call `help()` on any function, object or method to query the documentation:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "vURwmL1aSI54" + "id": "INSRF2LmSVV5" }, "outputs": [], "source": [ - "env.require_dataset(\"npb-v0\")" + "help(env.step)" ] }, { "cell_type": "markdown", "metadata": { - "id": "6MLbwsV_SL2W" + "id": "ci0Pc-81SWMh" }, "source": [ - "Now, `env.benchmarks` lists the 123 benchmarks that comprise the dataset we just installed:" + "The action space is described by `env.action_space`. The [LLVM Action Space](https://facebookresearch.github.io/CompilerGym/llvm/index.html#action-space) is discrete:" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "id": "KeDzercdSOMJ" - }, + "metadata": {}, "outputs": [], "source": [ - "env.benchmarks" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "xwc2xlJTSPSd" - }, - "source": [ - "## The compiler environment\n", - "\n", - "If you have experience using [OpenAI Gym](https://gym.openai.com/), the CompilerGym environments will be familiar. If not, you can call `help()` on any function, object or method to query the documentation:" + "env.action_space.dtype" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "id": "INSRF2LmSVV5" - }, + "metadata": {}, "outputs": [], "source": [ - "help(env.reset)" + "env.action_space.n" ] }, { "cell_type": "markdown", - "metadata": { - "id": "ci0Pc-81SWMh" - }, + "metadata": {}, "source": [ - "The action space is described by `env.action_space`. The [LLVM Action Space](https://facebookresearch.github.io/CompilerGym/llvm/index.html#action-space) is discrete:" + "The observation space is described by `env.observation_space`. The [Autophase](https://facebookresearch.github.io/CompilerGym/llvm/index.html#autophase) observation space is a 56-dimension vector of integers:" ] }, { @@ -270,7 +238,7 @@ "metadata": {}, "outputs": [], "source": [ - "env.action_space.dtype" + "env.observation_space.shape" ] }, { @@ -279,14 +247,14 @@ "metadata": {}, "outputs": [], "source": [ - "env.action_space.n" + "env.observation_space.dtype" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The observation space is described by `env.observation_space`. The [Autophase](https://facebookresearch.github.io/CompilerGym/llvm/index.html#autophase) observation space is a 56-dimension vector of integers:" + "The upper and lower bounds of the reward signal are described by `env.reward_range`:" ] }, { @@ -295,7 +263,14 @@ "metadata": {}, "outputs": [], "source": [ - "env.observation_space.space.shape" + "env.reward_range" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As with other Gym environments, `reset()` must be called before a CompilerGym environment may be used:" ] }, { @@ -304,14 +279,14 @@ "metadata": {}, "outputs": [], "source": [ - "env.observation_space.space.dtype" + "env.reset()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The upper and lower bounds of the reward signal are described by `env.reward_range`:" + "The numpy array that is returned by `reset()` is the initial observation. This value, along with the entire dynamics of the environment, depend on the particular program that is being compiled. In CompilerGym these programs are called **benchmarks**. You can see which benchmark is currently being used by an environment using `env.benchmark`:" ] }, { @@ -320,14 +295,14 @@ "metadata": {}, "outputs": [], "source": [ - "env.reward_range" + "env.benchmark" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "As with other Gym environments, `reset()` must be called before a CompilerGym environment may be used:" + "If we want to compile a different program, we can pass the name of a benchmark to `env.reset()`:" ] }, { @@ -336,7 +311,15 @@ "metadata": {}, "outputs": [], "source": [ - "env.reset()" + "env.reset(benchmark=\"benchmark://npb-v0/50\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We provide over [a million benchmarks for the LLVM environments](https://facebookresearch.github.io/CompilerGym/llvm/index.html#datasets) that can be used for training agents and evaluating the\n", + "generalization of strategies across unseen programs. Benchmarks are grouped into *datasets* , which are managed using `env.datasets`. You may also provide your own programs to use as benchmarks, see `env.make_benchmark()` for details." ] }, { @@ -490,7 +473,7 @@ "id": "UaeTCnbZTmUe" }, "source": [ - "We can also save the program for future reference:" + "We can also save the program in its current state for future reference:" ] }, { @@ -512,19 +495,26 @@ "id": "uIC-ZxIeTqFH" }, "source": [ - "Once we are finished, we must close the environment to end the compiler instance:" + "Once we are finished, we must close the environment to end the compiler session:" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "id": "Atloj7dZTrVj" - }, + "metadata": {}, "outputs": [], "source": [ "env.close()" ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Next Steps\n", + "\n", + "Now that you have got to grips with the compiler environment, take a browse through the [examples directory](https://github.com/facebookresearch/CompilerGym/tree/stable/examples) for pytorch integration, agent implementations, etc. Then check out [the leaderboards](https://github.com/facebookresearch/CompilerGym#leaderboards) to see what the best performing algorithms are, and [the documentation](https://facebookresearch.github.io/CompilerGym/) for details of the APIs and environments. We love feedback, bug reports, and feature requests - please [file an issue](https://github.com/facebookresearch/CompilerGym/issues/new/choose)!" + ] } ], "metadata": { @@ -535,7 +525,7 @@ "kernelspec": { "display_name": "Python (compiler_gym)", "language": "python", - "name": "myenv" + "name": "compiler_gym" }, "language_info": { "codemirror_mode": { @@ -547,7 +537,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/examples/random_walk.py b/examples/random_walk.py index 40a3e3efc..965d968e1 100644 --- a/examples/random_walk.py +++ b/examples/random_walk.py @@ -8,7 +8,7 @@ # Run a random walk on cBench example program using instruction count reward. $ python3 examples/random_walk.py --env=llvm-v0 --step_min=100 --step_max=100 \ - --benchmark=cBench-v1/dijkstra --reward=IrInstructionCount + --benchmark=cbench-v1/dijkstra --reward=IrInstructionCount """ import random @@ -56,7 +56,7 @@ def run_random_walk(env: CompilerEnv, step_count: int) -> None: rewards.append(reward) actions.append(env.action_space.names[action_index]) print(f"Reward: {reward}") - if env._default_observation: + if env.observation_space: print(f"Observation:\n{observation}") print(f"Step time: {step_time}") if done: diff --git a/examples/random_walk_test.py b/examples/random_walk_test.py index 53ebca235..d810ab12d 100644 --- a/examples/random_walk_test.py +++ b/examples/random_walk_test.py @@ -13,7 +13,7 @@ def test_run_random_walk_smoke_test(): flags.FLAGS(["argv0"]) env = gym.make("llvm-autophase-ic-v0") - env.benchmark = "cBench-v1/crc32" + env.benchmark = "cbench-v1/crc32" try: run_random_walk(env=env, step_count=5) finally: diff --git a/examples/sensitivity_analysis/BUILD b/examples/sensitivity_analysis/BUILD index fc02eb55f..62c7ed849 100644 --- a/examples/sensitivity_analysis/BUILD +++ b/examples/sensitivity_analysis/BUILD @@ -24,6 +24,7 @@ py_test( ":action_sensitivity_analysis", ":sensitivity_analysis_eval", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) @@ -48,6 +49,7 @@ py_test( ":benchmark_sensitivity_analysis", ":sensitivity_analysis_eval", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) diff --git a/examples/sensitivity_analysis/action_sensitivity_analysis.py b/examples/sensitivity_analysis/action_sensitivity_analysis.py index 8e17fa70c..868e1f743 100644 --- a/examples/sensitivity_analysis/action_sensitivity_analysis.py +++ b/examples/sensitivity_analysis/action_sensitivity_analysis.py @@ -17,7 +17,7 @@ $ bazel run -c opt //compiler_gym/bin:action_sensitivity_analysis -- \ --env=llvm-v0 --reward=IrInstructionCountO3 \ - --benchmark=cBench-v1/crc32 --num_trials=100 \ + --benchmark=cbench-v1/crc32 --num_trials=100 \ --action=AddDiscriminatorsPass,AggressiveDcepass,AggressiveInstCombinerPass Evaluate the single-step reward delta of all actions on LLVM codesize: diff --git a/examples/sensitivity_analysis/action_sensitivity_analysis_test.py b/examples/sensitivity_analysis/action_sensitivity_analysis_test.py index 46beabe50..66d0d874d 100644 --- a/examples/sensitivity_analysis/action_sensitivity_analysis_test.py +++ b/examples/sensitivity_analysis/action_sensitivity_analysis_test.py @@ -7,14 +7,13 @@ import tempfile from pathlib import Path -from absl import flags - from examples.sensitivity_analysis.action_sensitivity_analysis import ( run_action_sensitivity_analysis, ) from examples.sensitivity_analysis.sensitivity_analysis_eval import ( run_sensitivity_analysis_eval, ) +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main @@ -22,10 +21,9 @@ def test_run_action_sensitivity_analysis(): actions = [0, 1] env = "llvm-v0" reward = "IrInstructionCountO3" - benchmark = "cBench-v1/crc32" + benchmark = "cbench-v1/crc32" - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", f"--env={env}", f"--benchmark={benchmark}"]) + set_command_line_flags(["argv0", f"--env={env}", f"--benchmark={benchmark}"]) with tempfile.TemporaryDirectory() as tmp: tmp = Path(tmp) diff --git a/examples/sensitivity_analysis/benchmark_sensitivity_analysis.py b/examples/sensitivity_analysis/benchmark_sensitivity_analysis.py index 31ffbb1fb..628d2286a 100644 --- a/examples/sensitivity_analysis/benchmark_sensitivity_analysis.py +++ b/examples/sensitivity_analysis/benchmark_sensitivity_analysis.py @@ -27,6 +27,7 @@ """ import random from concurrent.futures import ThreadPoolExecutor +from itertools import islice from multiprocessing import cpu_count from pathlib import Path from typing import List, Optional, Union @@ -173,7 +174,7 @@ def main(argv): benchmarks = [benchmark] else: with env_session_from_flags() as env: - benchmarks = env.benchmarks + benchmarks = islice(env.benchmarks, 100) logs_dir = Path( FLAGS.output_dir or create_logging_dir("benchmark_sensitivity_analysis") diff --git a/examples/sensitivity_analysis/benchmark_sensitivity_analysis_test.py b/examples/sensitivity_analysis/benchmark_sensitivity_analysis_test.py index d940d0890..8d8d35e81 100644 --- a/examples/sensitivity_analysis/benchmark_sensitivity_analysis_test.py +++ b/examples/sensitivity_analysis/benchmark_sensitivity_analysis_test.py @@ -7,24 +7,22 @@ import tempfile from pathlib import Path -from absl import flags - from examples.sensitivity_analysis.benchmark_sensitivity_analysis import ( run_benchmark_sensitivity_analysis, ) from examples.sensitivity_analysis.sensitivity_analysis_eval import ( run_sensitivity_analysis_eval, ) +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main def test_run_benchmark_sensitivity_analysis(): env = "llvm-v0" reward = "IrInstructionCountO3" - benchmarks = ["cBench-v1/crc32"] + benchmarks = ["cbench-v1/crc32"] - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", f"--env={env}"]) + set_command_line_flags(["argv0", f"--env={env}"]) with tempfile.TemporaryDirectory() as tmp: tmp = Path(tmp) diff --git a/examples/tabular_q.py b/examples/tabular_q.py index d1f027b01..7f11a03ec 100644 --- a/examples/tabular_q.py +++ b/examples/tabular_q.py @@ -47,7 +47,7 @@ "Indices of Alphaphase features that are used to construct a state", ) flags.DEFINE_float("learning_rate", 0.1, "learning rate of the q-learning.") -flags.DEFINE_integer("episodes", 5000, "number of episodes used to learn.") +flags.DEFINE_integer("episodes", 2000, "number of episodes used to learn.") flags.DEFINE_integer( "log_every", 50, "number of episode interval where progress is reported." ) @@ -86,7 +86,6 @@ def make_q_table_key(autophase_feature, action, step): Finally, we add the action index to the key. """ - return StateActionTuple( *autophase_feature[FLAGS.features_indices], step, FLAGS.actions.index(action) ) @@ -118,6 +117,8 @@ def rollout(qtable, env, printout=False): action_seq.append(a) observation, reward, done, info = env.step(env.action_space.flags.index(a)) rewards.append(reward) + if done: + break if printout: print( "Resulting sequence: ", ",".join(action_seq), f"total reward {sum(rewards)}" @@ -133,17 +134,19 @@ def train(q_table, env): # policy improvement happens directly after one another. for i in range(1, FLAGS.episodes + 1): current_length = 0 - obs = env.reset() + observation = env.reset() while current_length < FLAGS.episode_length: # Run epsilon greedy policy to allow exploration. - a = select_action(q_table, obs, current_length, FLAGS.epsilon) - hashed = make_q_table_key(obs, a, current_length) + a = select_action(q_table, observation, current_length, FLAGS.epsilon) + hashed = make_q_table_key(observation, a, current_length) if hashed not in q_table: q_table[hashed] = 0 # Take a stap in the environment, record the reward and state transition. # Effectively we are evaluating the policy by taking a step in the # environment. - obs, reward, done, info = env.step(env.action_space.flags.index(a)) + observation, reward, done, info = env.step(env.action_space.flags.index(a)) + if done: + break current_length += 1 # Compute the target value of the current state, by using the current @@ -154,7 +157,7 @@ def train(q_table, env): # can be used to emphasize on immediate early rewards, and encourage # the agent to achieve higher rewards sooner than later. target = reward + FLAGS.discount * get_max_q_value( - q_table, obs, current_length + q_table, observation, current_length ) # Update Q value. Instead of replacing the Q value at the current @@ -166,7 +169,7 @@ def train(q_table, env): + (1 - FLAGS.learning_rate) * q_table[hashed] ) - if i % FLAGS.log_every == 0: + if FLAGS.log_every and i % FLAGS.log_every == 0: def compare_qs(q_old, q_new): diff = [q_new[k] - v for k, v in q_old.items()] @@ -186,7 +189,8 @@ def main(argv): q_table: Dict[StateActionTuple, float] = {} benchmark = benchmark_from_flags() assert benchmark, "You must specify a benchmark using the --benchmark flag" - env = gym.make("llvm-autophase-ic-v0", benchmark=benchmark) + env = gym.make("llvm-ic-v0", benchmark=benchmark) + env.observation_space = "Autophase" try: # Train a Q-table. @@ -194,7 +198,7 @@ def main(argv): train(q_table, env) # Rollout resulting policy. - rollout(q_table, env, True) + rollout(q_table, env, printout=True) finally: env.close() diff --git a/examples/tabular_q_test.py b/examples/tabular_q_test.py index 50df5d9ce..4d7f951a1 100644 --- a/examples/tabular_q_test.py +++ b/examples/tabular_q_test.py @@ -7,20 +7,20 @@ from compiler_gym.util.capture_output import capture_output from examples.tabular_q import main +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main as _test_main FLAGS = flags.FLAGS def test_run_tabular_q_smoke_test(): - FLAGS.unparse_flags() - FLAGS( + set_command_line_flags( [ "argv0", "--episode_length=5", "--episodes=10", "--log_every=2", - "--benchmark=cBench-v1/crc32", + "--benchmark=cbench-v1/crc32", ] ) with capture_output() as out: diff --git a/leaderboard/llvm_instcount/e_greedy/BUILD b/leaderboard/llvm_instcount/e_greedy/BUILD index cb84a335f..1b01196fb 100644 --- a/leaderboard/llvm_instcount/e_greedy/BUILD +++ b/leaderboard/llvm_instcount/e_greedy/BUILD @@ -2,9 +2,9 @@ # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -load("@rules_python//python:defs.bzl", "py_library", "py_test") +load("@rules_python//python:defs.bzl", "py_binary", "py_test") -py_library( +py_binary( name = "e_greedy", srcs = ["e_greedy.py"], deps = [ @@ -14,7 +14,7 @@ py_library( py_test( name = "e_greedy_test", - timeout = "short", + timeout = "moderate", srcs = ["e_greedy_test.py"], deps = [ ":e_greedy", diff --git a/leaderboard/llvm_instcount/e_greedy/README.md b/leaderboard/llvm_instcount/e_greedy/README.md index 537dfc02e..60bc9780a 100644 --- a/leaderboard/llvm_instcount/e_greedy/README.md +++ b/leaderboard/llvm_instcount/e_greedy/README.md @@ -52,5 +52,5 @@ terminates when the maximum reward attainable by any action is <= 0. ### Experimental Methodology ```sh -$ python e_greedy.py --n=1 --epsilon=0 --results_logfile=results_e0.csv +$ python e_greedy.py --n=1 --epsilon=0 --leaderboard_results=results_e0.csv ``` diff --git a/leaderboard/llvm_instcount/e_greedy/e_greedy_test.py b/leaderboard/llvm_instcount/e_greedy/e_greedy_test.py index f866072a0..ff637e918 100644 --- a/leaderboard/llvm_instcount/e_greedy/e_greedy_test.py +++ b/leaderboard/llvm_instcount/e_greedy/e_greedy_test.py @@ -3,6 +3,7 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Tests for //leaderboard/llvm_instcount/e_greedy.""" +import sys from concurrent.futures import ThreadPoolExecutor import pytest @@ -22,16 +23,13 @@ def test_random_search(): - FLAGS.unparse_flags() - FLAGS( - [ - "argv0", - "--n=1", - "--max_benchmarks=1", - "--nproc=1", - "--novalidate", - ] - ) + sys.argv = [ + "argv0", + "--n=1", + "--max_benchmarks=1", + "--nproc=1", + "--novalidate", + ] with pytest.raises(SystemExit): eval_llvm_instcount_policy(e_greedy_search) @@ -40,7 +38,7 @@ def test_select_best_action_closed_environment(env: LlvmEnv): """Test that select_best_action() recovers from an environment whose service has closed.""" env.reward_space = "IrInstructionCount" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") with ThreadPoolExecutor() as executor: best_a = select_best_action(env, executor) env.close() diff --git a/leaderboard/llvm_instcount/e_greedy/results_e0.csv b/leaderboard/llvm_instcount/e_greedy/results_e0.csv index a0affb0d7..b321ef28a 100644 --- a/leaderboard/llvm_instcount/e_greedy/results_e0.csv +++ b/leaderboard/llvm_instcount/e_greedy/results_e0.csv @@ -1,231 +1,231 @@ benchmark,reward,walltime,commandline -benchmark://cBench-v1/adpcm,0.9748603351955308,2.6167967319488525,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,2.6323108673095703,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,2.632906675338745,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,2.6446733474731445,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,2.65216326713562,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,2.656970739364624,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,2.661275625228882,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,2.6938230991363525,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,3.050021171569824,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9748603351955308,3.102595806121826,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.658697843551636,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.6678147315979,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.669229984283447,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.674164533615112,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.675281047821045,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.692632436752319,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.72410249710083,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,4.738322973251343,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,5.429574012756348,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0132743362831858,5.552142143249512,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.000561714172363,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.013018369674683,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.015228033065796,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.043203353881836,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.049434900283813,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.072939395904541,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.140095472335815,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.566433668136597,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,8.841854333877563,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0305343511450382,9.593023538589478,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,74.5777907371521,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,74.68991255760193,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,75.3055009841919,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,75.61981582641602,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,75.74971032142639,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,75.85093307495117,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,75.92890071868896,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,76.07783126831055,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,76.28789138793945,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.2088736134978917,89.29922342300415,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.061441421508789,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.063772678375244,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.0638957023620605,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.069030284881592,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.0694191455841064,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.10876202583313,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.418781042098999,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.4249207973480225,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.430199146270752,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,2.4578709602355957,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,2.81844162940979,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,2.826531410217285,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,2.827880382537842,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,2.8283395767211914,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,2.8406713008880615,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,2.865175485610962,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,3.1737499237060547,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,3.198945999145508,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,3.204514265060425,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.979591836734694,3.337878942489624,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2140.6080310344696,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2146.9346401691437,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2152.0892202854156,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2159.1251413822174,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2161.40825343132,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2165.3180038928986,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2186.7724907398224,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2207.689845561981,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2208.390825986862,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0217193660340413,2371.4824783802032,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,40.79212260246277,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,40.92847776412964,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,41.038567543029785,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,41.05518436431885,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,41.592167139053345,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,41.628905057907104,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,42.249706983566284,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,42.33488631248474,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,43.1302855014801,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/gsm,1.106947211155379,49.03903365135193,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,68.98562455177307,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,69.6540629863739,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,69.68867444992065,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,70.07287931442261,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,70.29381346702576,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,70.60475730895996,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,70.69765996932983,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,70.92285132408142,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,71.1001365184784,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,1.019985925404645,80.4593243598938,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,231.60082149505615,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,231.77300357818604,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,238.08568453788757,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,238.2811233997345,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,240.15624928474426,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,240.99767327308655,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,242.14424967765808,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,242.46206092834473,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,242.51537442207336,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0374492358247827,275.1627869606018,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,197.58089399337769,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,201.74994444847107,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,202.76921606063843,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,203.09221363067627,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,203.26621675491333,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,204.81071066856384,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,205.38714623451233,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,206.71245503425598,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,207.26565623283386,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0388615216201431,236.7751350402832,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,181.06120204925537,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,184.7970871925354,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,187.30368876457214,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,188.11193895339966,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,188.78753519058228,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,189.2517716884613,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,190.45842099189758,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,190.51102375984192,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,191.6278738975525,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0658164427237529,217.91625666618347,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.072362661361694,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.12520170211792,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.162842273712158,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.674448251724243,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.691532135009766,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.693127632141113,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.700468063354492,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.735736131668091,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,4.784304857254028,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9799777530589544,5.011373996734619,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,3.617689371109009,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,3.627746105194092,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,3.6945436000823975,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,4.168741226196289,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,4.213088274002075,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,4.214311599731445,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,4.229600191116333,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,4.246491432189941,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,4.304184913635254,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1362229102167183,4.322846174240112,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.104260921478271,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.33758807182312,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.37963604927063,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.791464805603027,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.793577432632446,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.801882028579712,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.809131860733032,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,10.939861059188843,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,11.007495880126953,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1050210808738983,12.216138124465942,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.296888589859009,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.339097023010254,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.3705661296844482,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.7465083599090576,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.784933090209961,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.785313606262207,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.794675827026367,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.796710968017578,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.8460588455200195,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598661,3.9928929805755615,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,6.248675346374512,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,6.2487945556640625,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,6.303280591964722,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,7.014445543289185,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,7.057801961898804,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,7.113065242767334,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,7.117478609085083,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,7.162009954452515,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,7.254070997238159,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0109289617486337,7.473099708557129,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,2.699200391769409,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,2.7258427143096924,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,2.727332353591919,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,2.7604801654815674,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,3.0859103202819824,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,3.139512777328491,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,3.140896797180176,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,3.1499648094177246,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,3.163114070892334,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,3.185732364654541,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,24.814565896987915,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,24.859406232833862,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,24.87987756729126,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,24.94978094100952,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,25.079646348953247,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,25.262638092041016,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,25.379810571670532,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,25.38713812828064,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,25.631547212600708,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0053749680061435,28.82014751434326,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,206.9493591785431,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,207.85546779632568,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,210.78826022148132,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,212.0816934108734,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,212.3042595386505,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,212.96886539459229,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,217.08278965950012,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,221.63971638679504,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,225.90823554992676,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0423725778143924,246.46919798851013,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,175.83224821090698,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,176.67274570465088,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,179.36724948883057,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,180.25492811203003,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,181.93450570106506,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,182.94887852668762,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,183.34534311294556,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,183.8355176448822,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,186.5927677154541,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.042007755277897,207.1995928287506,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,185.1347677707672,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,185.2738618850708,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,185.6893789768219,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,187.23632884025574,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,187.24578022956848,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,187.73672819137573,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,188.05836939811707,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,188.25418829917908,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,188.62760400772095,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.042784025374856,222.01096987724304,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,193.30142498016357,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,194.35608434677124,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,195.15333223342896,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,195.2966709136963,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,195.76737356185913,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,195.93066239356995,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,200.3739206790924,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,201.457839012146,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,202.99476194381714,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0399576517195448,228.2633593082428,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.6167967319488525,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.6323108673095703,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.632906675338745,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.6446733474731445,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.65216326713562,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.656970739364624,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.661275625228882,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,2.6938230991363525,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,3.050021171569824,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9748603351955308,3.102595806121826,opt -sroa -simplifycfg -early-cse-memssa -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.658697843551636,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.6678147315979,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.669229984283447,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.674164533615112,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.675281047821045,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.692632436752319,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.72410249710083,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,4.738322973251343,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,5.429574012756348,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0132743362831858,5.552142143249512,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -elim-avail-extern -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.000561714172363,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.013018369674683,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.015228033065796,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.043203353881836,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.049434900283813,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.072939395904541,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.140095472335815,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.566433668136597,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,8.841854333877563,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0305343511450382,9.593023538589478,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,74.5777907371521,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,74.68991255760193,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,75.3055009841919,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,75.61981582641602,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,75.74971032142639,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,75.85093307495117,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,75.92890071868896,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,76.07783126831055,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,76.28789138793945,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.2088736134978917,89.29922342300415,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -ipsccp -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -elim-avail-extern -prune-eh -simplifycfg -mldst-motion -instcombine -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.061441421508789,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.063772678375244,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.0638957023620605,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.069030284881592,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.0694191455841064,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.10876202583313,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.418781042098999,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.4249207973480225,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.430199146270752,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.4578709602355957,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,2.81844162940979,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,2.826531410217285,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,2.827880382537842,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,2.8283395767211914,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,2.8406713008880615,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,2.865175485610962,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,3.1737499237060547,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,3.198945999145508,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,3.204514265060425,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.979591836734694,3.337878942489624,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2140.6080310344696,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2146.9346401691437,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2152.0892202854156,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2159.1251413822174,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2161.40825343132,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2165.3180038928986,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2186.7724907398224,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2207.689845561981,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2208.390825986862,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0217193660340413,2371.4824783802032,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine -simplifycfg -mergefunc -ipsccp -mldst-motion -newgvn -instcombine -simplifycfg -memcpyopt -bdce -dse -instcombine -nary-reassociate -ipsccp -newgvn -globaldce -gvn-hoist -mem2reg -mldst-motion -simplifycfg -dse -prune-eh -instcombine -simplifycfg -early-cse-memssa -mldst-motion -elim-avail-extern -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,40.79212260246277,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,40.92847776412964,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,41.038567543029785,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,41.05518436431885,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,41.592167139053345,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,41.628905057907104,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,42.249706983566284,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,42.33488631248474,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,43.1302855014801,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/gsm,1.106947211155379,49.03903365135193,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -elim-avail-extern -nary-reassociate -ipsccp -gvn-hoist -instcombine -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,68.98562455177307,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,69.6540629863739,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,69.68867444992065,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,70.07287931442261,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,70.29381346702576,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,70.60475730895996,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,70.69765996932983,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,70.92285132408142,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,71.1001365184784,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.019985925404645,80.4593243598938,opt -sroa -newgvn -simplifycfg -instcombine -newgvn -simplifycfg -elim-avail-extern -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -newgvn -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -prune-eh -newgvn -simplifycfg -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,231.60082149505615,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,231.77300357818604,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,238.08568453788757,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,238.2811233997345,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,240.15624928474426,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,240.99767327308655,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,242.14424967765808,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,242.46206092834473,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,242.51537442207336,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0374492358247827,275.1627869606018,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -elim-avail-extern -mldst-motion -lower-constant-intrinsics -mldst-motion -ipsccp -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -correlated-propagation -newgvn -slsr -newgvn -globaldce -gvn-hoist -newgvn -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,197.58089399337769,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,201.74994444847107,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,202.76921606063843,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,203.09221363067627,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,203.26621675491333,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,204.81071066856384,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,205.38714623451233,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,206.71245503425598,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,207.26565623283386,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0388615216201431,236.7751350402832,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn-hoist -simplifycfg -instcombine -mergefunc -nary-reassociate -memcpyopt -newgvn -elim-avail-extern -mldst-motion -mldst-motion -lower-constant-intrinsics -simplifycfg -mldst-motion -ipsccp -newgvn -mldst-motion -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,181.06120204925537,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,184.7970871925354,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,187.30368876457214,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,188.11193895339966,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,188.78753519058228,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,189.2517716884613,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,190.45842099189758,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,190.51102375984192,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,191.6278738975525,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0658164427237529,217.91625666618347,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -nary-reassociate -gvn-hoist -bdce -jump-threading -instcombine -ipsccp -memcpyopt -newgvn -dse -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -newgvn -elim-avail-extern -prune-eh -mergefunc -instsimplify -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.072362661361694,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.12520170211792,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.162842273712158,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.674448251724243,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.691532135009766,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.693127632141113,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.700468063354492,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.735736131668091,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,4.784304857254028,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9799777530589544,5.011373996734619,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,3.617689371109009,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,3.627746105194092,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,3.6945436000823975,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,4.168741226196289,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,4.213088274002075,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,4.214311599731445,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,4.229600191116333,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,4.246491432189941,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,4.304184913635254,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1362229102167183,4.322846174240112,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.104260921478271,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.33758807182312,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.37963604927063,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.791464805603027,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.793577432632446,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.801882028579712,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.809131860733032,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,10.939861059188843,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,11.007495880126953,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1050210808738983,12.216138124465942,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.296888589859009,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.339097023010254,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.3705661296844482,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.7465083599090576,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.784933090209961,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.785313606262207,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.794675827026367,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.796710968017578,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.8460588455200195,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598661,3.9928929805755615,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,6.248675346374512,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,6.2487945556640625,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,6.303280591964722,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,7.014445543289185,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,7.057801961898804,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,7.113065242767334,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,7.117478609085083,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,7.162009954452515,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,7.254070997238159,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0109289617486337,7.473099708557129,opt -sroa -newgvn -simplifycfg -instcombine -elim-avail-extern -jump-threading -lower-constant-intrinsics -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,2.699200391769409,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,2.7258427143096924,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,2.727332353591919,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,2.7604801654815674,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,3.0859103202819824,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,3.139512777328491,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,3.140896797180176,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,3.1499648094177246,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,3.163114070892334,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,3.185732364654541,opt -sroa -gvn -simplifycfg -instcombine -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,24.814565896987915,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,24.859406232833862,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,24.87987756729126,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,24.94978094100952,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,25.079646348953247,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,25.262638092041016,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,25.379810571670532,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,25.38713812828064,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,25.631547212600708,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0053749680061435,28.82014751434326,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -elim-avail-extern -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,206.9493591785431,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,207.85546779632568,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,210.78826022148132,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,212.0816934108734,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,212.3042595386505,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,212.96886539459229,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,217.08278965950012,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,221.63971638679504,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,225.90823554992676,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0423725778143924,246.46919798851013,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading -gvn -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,175.83224821090698,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,176.67274570465088,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,179.36724948883057,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,180.25492811203003,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,181.93450570106506,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,182.94887852668762,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,183.34534311294556,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,183.8355176448822,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,186.5927677154541,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.042007755277897,207.1995928287506,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,185.1347677707672,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,185.2738618850708,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,185.6893789768219,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,187.23632884025574,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,187.24578022956848,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,187.73672819137573,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,188.05836939811707,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,188.25418829917908,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,188.62760400772095,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.042784025374856,222.01096987724304,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -jump-threading -newgvn -ipsccp -simplifycfg -slp-vectorizer -instcombine -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,193.30142498016357,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,194.35608434677124,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,195.15333223342896,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,195.2966709136963,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,195.76737356185913,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,195.93066239356995,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,200.3739206790924,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,201.457839012146,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,202.99476194381714,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0399576517195448,228.2633593082428,opt -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -jump-threading -simplifycfg -mldst-motion -elim-avail-extern -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -jump-threading input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/e_greedy/results_e10.csv b/leaderboard/llvm_instcount/e_greedy/results_e10.csv index e61a48a63..281c8f778 100644 --- a/leaderboard/llvm_instcount/e_greedy/results_e10.csv +++ b/leaderboard/llvm_instcount/e_greedy/results_e10.csv @@ -1,231 +1,231 @@ benchmark,reward,walltime,commandline -benchmark://cBench-v0/adpcm,0.9999999999999998,3.3471643924713135,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.305574417114258,opt -sroa -simplifycfg -loop-reroll -early-cse-memssa -instcombine -sroa -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.324244499206543,opt -sroa -simplifycfg -early-cse-memssa -instcombine -lcssa -newgvn -sroa -jump-threading input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.299079656600952,opt -sroa -simplifycfg -loop-predication -early-cse-memssa -instcombine -sroa -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.377950668334961,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.3638758659362793,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.332183361053467,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.319218873977661,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.2783472537994385,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/adpcm,0.9999999999999998,3.307706356048584,opt -sroa -simplifycfg -early-cse-memssa -instcombine -forceattrs -sroa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.8666810989379883,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.8608546257019043,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.8102853298187256,opt -loop-unroll-and-jam -mem2reg -instcombine -simplifycfg -newgvn -sroa -globalopt -instcombine -gvn-hoist -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.8933515548706055,opt -mem2reg -instcombine -simplifycfg -coro-split -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,2.9114677906036377,opt -instcombine -sroa -instcombine -simplifycfg -newgvn -tailcallelim -lowerinvoke -mldst-motion input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.836970090866089,opt -mem2reg -instcombine -coro-split -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.8814189434051514,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.8782660961151123,opt -ipconstprop -mem2reg -instcombine -simplifycfg -newgvn -mldst-motion -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.8800272941589355,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/bitcount,1.0140845070422535,3.846477508544922,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0232690124858117,8.110476970672607,opt -sroa -instcombine -newgvn -simplifycfg -loop-rotate -simplifycfg -instcombine -tailcallelim -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.367157936096191,opt -sroa -instcombine -loop-simplify -newgvn -simplifycfg -instcombine -dse -strip-nondebug -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.363828420639038,opt -sroa -instcombine -newgvn -lower-constant-intrinsics -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.39405083656311,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.37799596786499,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.371485710144043,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.369072198867798,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.314395189285278,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.367866277694702,opt -sroa -attributor -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -ipsccp -newgvn input.bc -o output.bc -benchmark://cBench-v0/blowfish,1.0351872871736663,7.394887208938599,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -constprop -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0302307692307697,61.19139552116394,opt -sroa -gvn -simplifycfg -irce -instcombine -nary-reassociate -simplifycfg -newgvn -ipsccp -memcpyopt -instcombine -redundant-dbg-inst-elim -gvn-hoist -loop-versioning -jump-threading -early-cse-memssa -constmerge -dse -mergefunc -gvn-hoist -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0321538461538464,59.12892007827759,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -memcpyopt -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0301538461538464,64.346684217453,opt -sroa -insert-gcov-profiling -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -globaldce -loop-guard-widening -newgvn -simplifycfg -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -lowerinvoke -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0302307692307695,57.54291582107544,opt -sroa -gvn -loop-deletion -simplifycfg -instcombine -nary-reassociate -simplifycfg -newgvn -ipsccp -memcpyopt -strip -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -gvn-hoist -prune-eh -simplifycfg -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0303076923076924,59.354525327682495,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -gvn -simplifycfg -memcpyopt -tailcallelim -loop-versioning-licm -instcombine -simplifycfg -loop-predication -name-anon-globals -newgvn -simplifycfg -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -prune-eh -simplifycfg -name-anon-globals -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0406153846153852,71.96076917648315,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -functionattrs -newgvn -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -instcombine -simplifycfg -loop-distribute -prune-eh -simplifycfg -mldst-motion -instnamer -globalopt -gvn-hoist -tailcallelim -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0301538461538464,64.51102471351624,opt -sroa -gvn -post-inline-ee-instrument -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -loop-load-elim -irce -newgvn -simplifycfg -gvn-hoist -jump-threading -early-cse-memssa -lower-widenable-condition -dse -mergefunc -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0301538461538464,60.58538103103638,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -guard-widening -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -prune-eh -simplifycfg -mldst-motion -loop-simplify -simplifycfg -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0394615384615389,69.45560908317566,opt -sroa -gvn -simplifycfg -slsr -coro-early -instcombine -nary-reassociate -ipsccp -jump-threading -early-cse-memssa -memcpyopt -instcombine -gvn-hoist -functionattrs -newgvn -simplifycfg -dse -loweratomic -mergefunc -instcombine -gvn-hoist -prune-eh -simplifycfg -lower-widenable-condition -newgvn -mldst-motion -globalopt -gvn-hoist -tailcallelim -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/bzip2,1.0321538461538464,57.45151472091675,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -hotcoldsplit -simplifycfg -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -ipconstprop -mergefunc -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.325608015060425,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.3096039295196533,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.311483860015869,opt -sroa -libcalls-shrinkwrap -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.306170701980591,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.30281925201416,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.323596954345703,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.3132190704345703,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.3064634799957275,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.2902536392211914,opt -sroa -gvn -simplifycfg -instcombine -flattencfg input.bc -o output.bc -benchmark://cBench-v0/crc32,1.0,2.332601547241211,opt -mergereturn -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.082825183868408,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.0587315559387207,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.0633692741394043,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.0405640602111816,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.0435636043548584,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.050528049468994,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.0575389862060547,opt -sroa -newgvn -simplifycfg -instcombine -loweratomic -gvn-hoist -partial-inliner input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.0271060466766357,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,1.0193548387096774,3.0591702461242676,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/dijkstra,0.935483870967742,4.069051742553711,opt -speculative-execution -sroa -newgvn -simplifycfg -instcombine -gvn-hoist -loop-rotate -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.0023535801575092,1957.73517537117,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -barrier -slp-vectorizer -instcombine -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -simplifycfg -deadargelim -bdce -dse -prune-eh -mldst-motion -slsr -newgvn -mldst-motion -mergefunc -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.001570828385668,1778.0900359153748,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -coro-cleanup -mldst-motion -instcombine -memcpyopt -coro-elide -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -mergereturn -instcombine -simplifycfg -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -dse -prune-eh -simplifycfg -strip -newgvn -mldst-motion -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.002332280789568,2109.468429327011,opt -sroa -gvn -simplifycfg -instcombine -newgvn -loop-data-prefetch -simplifycfg -aggressive-instcombine -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -newgvn -instcombine -ipsccp -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -sroa -inline -globaldce -gvn -bdce -deadargelim -instcombine -simplifycfg -newgvn -slp-vectorizer -mldst-motion -gvn-hoist -early-cse-memssa -simplifycfg -bdce -dse -prune-eh -inferattrs -mldst-motion -slsr -newgvn -mldst-motion -mergefunc -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.0021885100559647,2090.4159104824066,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -load-store-vectorizer -instcombine -newgvn -slp-vectorizer -instcombine -gvn-hoist -simplifycfg -nary-reassociate -globaldce -loop-interchange -instcombine -hotcoldsplit -simplifycfg -early-cse-memssa -bdce -mergefunc -mldst-motion -dse -simplifycfg -prune-eh -newgvn -globaldce -gvn-hoist -mldst-motion -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.007662447616867,3265.486672401428,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -lower-matrix-intrinsics -instcombine -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -instnamer -simplifycfg -dse -prune-eh -newgvn -speculative-execution -newgvn -simplifycfg -gvn-hoist -instcombine -simplifycfg -newgvn -mldst-motion -simplifycfg -licm -newgvn -simplifycfg -gvn-hoist -dce -instcombine -simplifycfg -newgvn -float2int -nary-reassociate -correlated-propagation -insert-gcov-profiling -instcombine -scalarizer -instcombine -slp-vectorizer -instcombine -slp-vectorizer -newgvn -gvn-hoist -instcombine -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.0016453761734625,1860.8326251506805,opt -sroa -gvn -simplifycfg -instcombine -partially-inline-libcalls -newgvn -simplifycfg -gvn-hoist -mergefunc -tailcallelim -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -loop-distribute -simplifycfg -dse -prune-eh -flattencfg -newgvn -mldst-motion -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.0000692229458097,1986.2773809432983,opt -loweratomic -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -scalarizer -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -bdce -globaldce -loop-idiom -instcombine -lower-guard-intrinsic -simplifycfg -early-cse-memssa -slp-vectorizer -partially-inline-libcalls -mldst-motion -dse -prune-eh -simplifycfg -newgvn -mldst-motion -instsimplify -slsr -newgvn -pgo-memop-opt -mldst-motion -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/ghostscript,0.9779125554449174,2321.2995405197144,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -lowerswitch -simplifycfg -instcombine -simplifycfg -mldst-motion -memcpyopt -instcombine -simplifycfg -dse -gvn-hoist -newgvn -instcombine -ipsccp -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -sroa -globaldce -bdce -early-cse-memssa -slp-vectorizer -dse -instcombine -simplifycfg -prune-eh -mldst-motion -mldst-motion -slsr -newgvn -newgvn -loop-instsimplify -instcombine -simplifycfg -ee-instrument -newgvn -newgvn -mldst-motion -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/ghostscript,0.9965228781835901,2097.893942117691,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -globalsplit -instcombine -loop-reduce -licm -newgvn -simplifycfg -instcombine -jump-threading -infer-address-spaces -newgvn -gvn-hoist -bdce -ipsccp -simplifycfg -instcombine -aggressive-instcombine -nary-reassociate -correlated-propagation -instcombine -loop-reroll -instcombine -simplifycfg -globaldce -dse -newgvn -mldst-motion -prune-eh -early-cse-memssa -mldst-motion -simplifycfg -gvn-hoist -slsr -newgvn -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/ghostscript,1.0000798726297802,1923.4439957141876,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -loop-simplifycfg -instcombine -simplifycfg -mldst-motion -memcpyopt -instcombine -simplifycfg -dse -ipsccp -newgvn -instcombine -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -sroa -globaldce -bdce -newgvn -add-discriminators -slp-vectorizer -dse -prune-eh -mldst-motion -instcombine -simplifycfg -mldst-motion -partial-inliner -early-cse-memssa -slsr -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1495167708925527,37.8730034828186,opt -sroa -instcombine -simplifycfg -forceattrs -newgvn -slp-vectorizer -early-cse-memssa -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -rpo-functionattrs -newgvn -simplifycfg -dse -ipsccp -instcombine -mergefunc -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1381466742467308,43.94974994659424,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -loop-reduce -simplifycfg -instcombine -newgvn -dse -ipsccp -instcombine -jump-threading -nary-reassociate -gvn-hoist -prune-eh -scalarizer -instcombine -slp-vectorizer -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1495167708925527,38.894811391830444,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1496588971006254,41.75011491775513,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -loop-unroll-and-jam -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -simplifycfg -instcombine -jump-threading -newgvn -loop-sink -name-anon-globals -post-inline-ee-instrument -simplifycfg -newgvn -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1509380329732803,37.99203038215637,opt -sroa -instcombine -simplifycfg -functionattrs -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -ipsccp -instcombine -dse -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1468163729391696,42.09191536903381,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -lower-guard-intrinsic -instcombine -slp-vectorizer -loop-idiom -loop-idiom -instcombine -simplifycfg -jump-threading -newgvn -reassociate -dse -callsite-splitting -ipsccp -scalarizer -instcombine -slp-vectorizer -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1495167708925527,38.51568388938904,opt -lower-matrix-intrinsics -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -mergeicmps -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -lower-expect -callsite-splitting -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -always-inline -simplifycfg -hotcoldsplit input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1495167708925529,42.394848585128784,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -ipsccp -lower-constant-intrinsics -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg -loop-reroll -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1496588971006252,38.50854277610779,opt -sroa -instcombine -simplifycfg -loop-vectorize -partial-inliner -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -simplifycfg -instcombine -jump-threading -reassociate -newgvn -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/gsm,1.1495167708925529,40.232659101486206,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -ipsccp -loop-deletion -simplifycfg -instcombine -dse -simplifycfg -nary-reassociate -gvn-hoist -redundant-dbg-inst-elim -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/ispell,0.9484346224677719,61.475505352020264,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -lowerswitch -simplifycfg -instcombine -simplifycfg -gvn-hoist -newgvn -ipsccp -lcssa -newgvn -strip-dead-prototypes -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -redundant-dbg-inst-elim -newgvn -mldst-motion -correlated-propagation -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/ispell,1.0005022601707687,58.671817779541016,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -called-value-propagation -newgvn -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v0/ispell,1.0006696802276915,58.156036138534546,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -loop-load-elim -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -newgvn -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v0/ispell,1.0005022601707687,57.86407923698425,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -sroa -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -newgvn -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v0/ispell,0.9487694625816174,56.39859914779663,opt -lower-matrix-intrinsics -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -slsr -gvn-hoist -dse -lowerswitch -simplifycfg -instcombine -simplifycfg -ipsccp -rpo-functionattrs -newgvn -simplifycfg -newgvn -nary-reassociate -memcpyopt -newgvn -mldst-motion -correlated-propagation -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/ispell,1.0005022601707687,57.664350748062134,opt -consthoist -sroa -newgvn -simplifycfg -instcombine -adce -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -newgvn -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v0/ispell,0.9810815335677215,58.025816679000854,opt -gvn -instcombine -simplifycfg -coro-early -sroa -partial-inliner -newgvn -instcombine -simplifycfg -jump-threading -newgvn -gvn-hoist -dse -newgvn -ipsccp -irce -attributor -simplifycfg -newgvn -simplifycfg -nary-reassociate -memcpyopt -prune-eh -newgvn -mldst-motion -simplifycfg -correlated-propagation input.bc -o output.bc -benchmark://cBench-v0/ispell,1.0005022601707687,58.73056602478027,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -newgvn -mldst-motion -jump-threading input.bc -o output.bc -benchmark://cBench-v0/ispell,1.0006696802276915,56.32115340232849,opt -sroa -strip-dead-prototypes -newgvn -simplifycfg -instcombine -loop-fusion -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -break-crit-edges -simplifycfg -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -mldst-motion -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/ispell,1.0005022601707685,62.48310446739197,opt -speculative-execution -sroa -newgvn -simplifycfg -instcombine -simplifycfg -loweratomic -newgvn -simplifycfg -gvn-hoist -reg2mem -sroa -simplifycfg -instcombine -ipsccp -newgvn -jump-threading -newgvn -loop-simplifycfg -simplifycfg -correlated-propagation -dse -nary-reassociate -memcpyopt -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.022896304661033,167.0369176864624,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -lower-expect -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.022896304661033,162.6602861881256,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -coro-early -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.022896304661033,162.48382711410522,opt -slsr -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -name-anon-globals -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.022896304661033,163.83925199508667,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -coro-split -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.0228963046610333,170.10317039489746,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -loop-simplify -simplifycfg -early-cse-memssa -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.0231299404228804,163.70789122581482,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -loweratomic -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -memcpyopt -lower-guard-intrinsic -mldst-motion -ipsccp -correlated-propagation -newgvn -sink -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce -argpromotion input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.022896304661033,170.07374668121338,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -rpo-functionattrs -lower-expect -nary-reassociate -partial-inliner -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.0227794867801094,184.75065994262695,opt -sroa -always-inline -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -partial-inliner -simplifycfg -prune-eh -sink -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -scalarizer -simplifycfg -gvn-hoist -newgvn -coro-early -slsr -newgvn -div-rem-pairs -globaldce -irce -newgvn -simplifycfg -correlated-propagation input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.022896304661033,163.94377493858337,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -lower-constant-intrinsics -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -coro-split -globaldce input.bc -o output.bc -benchmark://cBench-v0/jpeg-c,1.0226237296055445,161.27980875968933,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -loop-predication -sink -newgvn -simplifycfg -correlated-propagation -globalopt -newgvn -prune-eh -newgvn -mldst-motion -ipsccp -simplifycfg -gvn-hoist -newgvn -slsr -newgvn input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0218300233175202,162.80999040603638,opt -sroa -gvn -simplifycfg -loop-fusion -instcombine -simplifycfg -gvn-hoist -newgvn -mergefunc -nary-reassociate -memcpyopt -instcombine -simplifycfg -div-rem-pairs -mldst-motion -mldst-motion -mldst-motion -simplifycfg -newgvn -mldst-motion -instcombine -simplifycfg -ipsccp -slsr -newgvn -globaldce -constprop -correlated-propagation -instcombine -sroa -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,155.09252095222473,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,158.51034665107727,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -attributor -nary-reassociate -memcpyopt -argpromotion -instcombine -mldst-motion -newgvn -insert-gcov-profiling -mldst-motion -mldst-motion -coro-early -simplifycfg -mldst-motion -lower-widenable-condition -ipsccp -slsr -newgvn -globaldce -forceattrs -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,154.6300506591797,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,157.87810039520264,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,163.5455927848816,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -nary-reassociate -mldst-motion -simplifycfg -break-crit-edges -simplifycfg -mldst-motion -ipsccp -inject-tli-mappings -coro-split -slsr -newgvn -insert-gcov-profiling -globaldce -gvn-hoist -correlated-propagation -simplifycfg -strip-debug-declare -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,154.0655062198639,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.02183002331752,161.41529035568237,opt -sroa -gvn -simplifycfg -canonicalize-aliases -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -simple-loop-unswitch -newgvn -simplifycfg -correlated-propagation -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,155.45213294029236,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -pgo-memop-opt -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -insert-gcov-profiling -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/jpeg-d,1.0217898206963092,156.0222954750061,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -prune-eh -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -hotcoldsplit -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -inject-tli-mappings -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/lame,1.1155323029663051,167.26788115501404,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -adce -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalsplit -globalopt -prune-eh -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v0/lame,1.115532302966305,164.133118391037,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -dce -ipsccp -memcpyopt -bdce -dse -instcombine -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v0/lame,1.1141883459729292,148.71487617492676,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -loop-instsimplify -simplifycfg -instcombine -gvn-hoist -bdce -ipsccp -memcpyopt -newgvn -simplifycfg -dse -mldst-motion -loop-reroll -simplifycfg -instcombine -simplifycfg -globalopt -instcombine -newgvn -prune-eh -mergefunc -instcombine -globalopt -dse input.bc -o output.bc -benchmark://cBench-v0/lame,1.1191801862340403,159.07205843925476,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -loop-versioning-licm -newgvn -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -licm -newgvn -simplifycfg -prune-eh -mergefunc -gvn-hoist -instcombine -newgvn -globalopt -dse -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/lame,1.1175962369204187,160.42251658439636,opt -sroa -gvn -simplifycfg -instcombine -indvars -newgvn -mergereturn -simplifycfg -nary-reassociate -gvn-hoist -instcombine -ipsccp -memcpyopt -bdce -dse -simplifycfg -mldst-motion -newgvn -globalopt -instcombine -simplifycfg -prune-eh -newgvn -mergefunc -instsimplify -globalopt -gvn-hoist -dse -correlated-propagation -instsimplify -nary-reassociate input.bc -o output.bc -benchmark://cBench-v0/lame,1.1160122876067964,167.25811386108398,opt -sroa -nary-reassociate -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -bdce -bdce -nary-reassociate -ipsccp -memcpyopt -instcombine -dse -mldst-motion -insert-gcov-profiling -simplifycfg -scalarizer -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -lower-matrix-intrinsics -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v0/lame,1.107900547182491,171.84539914131165,opt -gvn -instcombine -simplifycfg -newgvn -sroa -newgvn -nary-reassociate -instcombine -simplifycfg -gvn-hoist -newgvn -ipsccp -memcpyopt -bdce -dse -globalopt -instcombine -simplifycfg -mldst-motion -simplifycfg -early-cse-memssa -newgvn -prune-eh -jump-threading -instcombine -simplifycfg -sroa -mergefunc -newgvn -globalopt -gvn-hoist -canonicalize-aliases -newgvn -dse -dce input.bc -o output.bc -benchmark://cBench-v0/lame,1.1158682922146492,172.36621642112732,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -slp-vectorizer -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v0/lame,1.1155803014303542,166.15596842765808,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -tailcallelim -simplifycfg -gvn-hoist -alignment-from-assumptions -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -inject-tli-mappings -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v0/lame,1.1155323029663051,167.29455971717834,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,3.9266302585601807,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9705882352941178,4.825629711151123,opt -sroa -simplifycfg -newgvn -sccp -ipsccp -adce -simplifycfg -newgvn -tailcallelim -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,3.8992760181427,opt -correlated-propagation -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,3.912933349609375,opt -sroa -ipsccp -gvn -simplifycfg -separate-const-offset-from-gep -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,4.404894113540649,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -lcssa -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,3.931546211242676,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,3.909588575363159,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9705882352941176,5.27163028717041,opt -simplifycfg -loop-versioning-licm -loop-deletion -sroa -ipsccp -newgvn -simplifycfg -newgvn -newgvn -simplifycfg -tailcallelim -reassociate -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,3.8775691986083984,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v0/patricia,0.9693094629156009,3.929682970046997,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.5581681728363037,opt -sroa -gvn -simplifycfg -instcombine -newgvn -coro-elide -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,0.9744525547445256,3.591317653656006,opt -sroa -gvn -simplifycfg -loop-rotate -instcombine -deadargelim -div-rem-pairs -simplifycfg -newgvn -barrier -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.514180898666382,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.069769859313965,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.5526814460754395,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -strip-dead-prototypes -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.538724899291992,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.5244412422180176,opt -sroa -barrier -gvn -simplifycfg -instcombine -newgvn -simplifycfg -hotcoldsplit -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.529522657394409,opt -sroa -gvn -simplifycfg -instcombine -newgvn -bdce -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,1.029197080291971,3.5224571228027344,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/qsort,1.0145985401459854,3.466933250427246,opt -loop-load-elim -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,8.526031732559204,opt -sroa -instcombine -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.324137210845947,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.431487083435059,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.38455605506897,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -slsr -newgvn -jump-threading -instcombine -die input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.348448514938354,opt -sroa -instcombine -gvn -mergereturn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -pgo-memop-opt -instcombine input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.432142496109009,opt -sroa -pgo-memop-opt -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767151,12.2704598903656,opt -sroa -instcombine -gvn -simplifycfg -die -loop-interchange -reassociate -memcpyopt -instcombine -simplifycfg -gvn-hoist -newgvn -jump-threading -instcombine -loop-load-elim -simple-loop-unswitch -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.399054765701294,opt -sroa -instcombine -gvn -simplifycfg -alignment-from-assumptions -lower-matrix-intrinsics -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.413830041885376,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v0/rijndael,1.1151767151767153,9.393671989440918,opt -sroa -instcombine -gvn -simplifycfg -mergereturn -instcombine -gvn-hoist -flattencfg -newgvn -jump-threading -instcombine input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,3.252039909362793,opt -sroa -gvn -simplifycfg -instcombine -add-discriminators -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,3.23064923286438,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v0/sha,1.548936170212766,4.220396995544434,opt -sroa -gvn -simplifycfg -instcombine -functionattrs -licm -newgvn -simplifycfg -ipsccp -loop-simplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,4.221415758132935,opt -strip -sroa -strip-debug-declare -gvn -simplifycfg -reg2mem -sroa -instcombine -simplifycfg -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,3.221076726913452,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp -canonicalize-aliases input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,3.246673583984375,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,3.227952480316162,opt -sroa -gvn -simplifycfg -constmerge -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v0/sha,1.557446808510638,3.208369731903076,opt -sroa -gvn -simplifycfg -instcombine -memcpyopt -newgvn -coro-split -ipsccp input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,3.2176291942596436,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v0/sha,1.553191489361702,3.220510244369507,opt -sroa -forceattrs -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.852210521697998,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -partial-inliner -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.825301647186279,opt -sroa -newgvn -simplifycfg -ee-instrument -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.837324857711792,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.83894157409668,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.832793951034546,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0122699386503067,6.490794897079468,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -loop-deletion -gvn -simplifycfg -gvn-hoist -newgvn -loop-unswitch -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.842012643814087,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.311517715454102,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -bdce input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.877126693725586,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch,1.0143149284253579,4.864404916763306,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -pgo-memop-opt -ee-instrument -newgvn -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.238586187362671,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.196035623550415,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.195099115371704,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.6221635341644287,opt -sroa -gvn -simplifycfg -loop-reroll -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.192682981491089,opt -sroa -mergereturn -gvn -infer-address-spaces -name-anon-globals -simplifycfg -newgvn -instcombine input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.186244487762451,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.2214152812957764,opt -sroa -gvn -simplifycfg -instcombine -post-inline-ee-instrument input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.1809301376342773,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.1874279975891113,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/stringsearch2,0.9742268041237113,2.164578437805176,opt -lower-guard-intrinsic -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v0/susan,1.0062154696132597,21.237401962280273,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -coro-early -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0073204419889503,21.022145748138428,opt -sroa -licm -newgvn -instcombine -simplifycfg -nary-reassociate -gvn-hoist -slsr -nary-reassociate -newgvn -instcombine -simplifycfg -newgvn -newgvn -mldst-motion -simplifycfg -gvn-hoist input.bc -o output.bc -benchmark://cBench-v0/susan,1.002900552486188,24.97674560546875,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -loop-simplify -simplifycfg -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -lowerswitch -simplifycfg -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0040055248618784,21.214195251464844,opt -sroa -lowerswitch -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0062154696132597,23.505887031555176,opt -irce -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -loop-versioning-licm -newgvn -simplifycfg -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0062154696132597,20.977452278137207,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -globalopt -mem2reg -gvn-hoist -flattencfg -newgvn -guard-widening -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0062154696132597,21.33326506614685,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0062154696132595,22.355042695999146,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -mem2reg -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -loop-versioning-licm -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0062154696132597,23.273910999298096,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -globalopt -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -irce -newgvn -simplifycfg -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/susan,1.0062154696132597,21.12042999267578,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -correlated-propagation -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.004535996670828,150.02621173858643,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -tailcallelim -simplifycfg -lower-constant-intrinsics -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.004369538077403,147.0981001853943,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.0043695380774031,140.48020720481873,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -mldst-motion -newgvn -memcpyopt -instcombine -gvn -simplifycfg -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,0.9884727424053266,154.1393620967865,opt -partial-inliner -sroa -gvn -simplifycfg -instcombine -newgvn -loop-reduce -simplifycfg -instcombine -newgvn -gvn-hoist -instcombine -simplifycfg -ipsccp -loop-versioning-licm -instcombine -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -strip-nondebug -mergefunc -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.004369538077403,140.4969711303711,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -sroa -instcombine -lower-widenable-condition -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -libcalls-shrinkwrap -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.0035372451102786,154.5895640850067,opt -globalopt -sroa -gvn -simplifycfg -instcombine -loop-load-elim -simplifycfg -newgvn -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -simplifycfg -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.0035372451102784,166.6245219707489,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -loop-sink -instcombine -simplifycfg -sink -newgvn -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.0012068248023298,150.62344455718994,opt -sroa -gvn -callsite-splitting -simplifycfg -attributor -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -libcalls-shrinkwrap -simplifycfg -slp-vectorizer -newgvn -adce -constmerge -mldst-motion -gvn -simplifycfg -memcpyopt -correlated-propagation -instcombine -simplifycfg -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.004369538077403,144.84855127334595,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -aggressive-instcombine -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2bw,1.003995006242197,154.96046471595764,opt -sroa -slp-vectorizer -strip-dead-prototypes -gvn -simplifycfg -instcombine -mergeicmps -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -gvn -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -die -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0079806125433504,140.1571226119995,opt -coro-early -licm -sroa -gvn -simplifycfg -instcombine -newgvn -bdce -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -ee-instrument -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0043036811097648,169.4242286682129,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -float2int -slp-vectorizer -newgvn -mldst-motion -loop-simplifycfg -instcombine -simplifycfg -gvn -simplifycfg -memcpyopt -forceattrs -instcombine -lower-constant-intrinsics -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg -attributor input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0023816487694814,151.39407300949097,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -correlated-propagation -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -simplifycfg -newgvn -memcpyopt -instcombine -nary-reassociate -correlated-propagation -simplifycfg -newgvn -simplifycfg -alignment-from-assumptions -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0051393473446708,164.57986044883728,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -coro-split -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg -die input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0051393473446708,165.66000533103943,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -mem2reg -ipsccp -simplifycfg -attributor -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0051393473446708,164.64863204956055,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0054736138386327,170.99662113189697,opt -sroa -gvn -simplifycfg -instcombine -inline -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -loop-unroll-and-jam -instcombine -simplifycfg -slp-vectorizer -newgvn -mldst-motion -functionattrs -newgvn -memcpyopt -instcombine -gvn-hoist -nary-reassociate -mergefunc -gvn -simplifycfg -newgvn -gvn-hoist -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0051393473446708,163.80334520339966,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -constmerge -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0042618977980196,169.33936262130737,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -name-anon-globals -gvn-hoist -loop-versioning-licm -instcombine -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiff2rgba,1.0044708143567458,172.3550157546997,opt -loop-guard-widening -sroa -gvn -simplifycfg -instcombine -newgvn -loop-simplifycfg -instcombine -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -gvn -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.00364245342265,182.47542238235474,opt -sroa -loop-unroll-and-jam -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -coro-elide -mergefunc -gvn-hoist -simplifycfg -newgvn -sancov -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.0046054008792127,179.6926872730255,opt -sroa -gvn -loop-distribute -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -coro-early -ipsccp -simplifycfg -slp-vectorizer -simplifycfg -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.0046054008792127,181.03862118721008,opt -sroa -gvn -simplifycfg -float2int -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.0038099225455306,152.89263606071472,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -load-store-vectorizer -instcombine -gvn -slp-vectorizer -instcombine -bdce -simplifycfg -gvn-hoist -mldst-motion -newgvn -prune-eh -instcombine -simplifycfg -nary-reassociate -mergefunc -loop-versioning input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.001507222105924,206.75270867347717,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -scalarizer -slp-vectorizer -instsimplify -gvn-hoist -simplifycfg -newgvn -correlated-propagation -instcombine -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.0046054008792127,181.0861098766327,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -inline -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.0074523759681808,152.34258794784546,opt -licm -sroa -gvn -simplifycfg -instcombine -newgvn -bdce -simplifycfg -callsite-splitting -gvn-hoist -instcombine -ipsccp -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -loop-versioning -prune-eh -nary-reassociate -loop-interchange -instcombine -simplifycfg -newgvn -simplifycfg -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.0046054008792127,181.79122877120972,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -consthoist -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -strip-debug-declare -prune-eh -gvn -loop-distribute -simplifycfg -newgvn -nary-reassociate -pgo-memop-opt -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.0046054008792127,179.61281037330627,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -separate-const-offset-from-gep -mldst-motion -newgvn -lower-expect -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffdither,1.00343311701905,160.62122535705566,opt -sroa -gvn -forceattrs -simplifycfg -loop-load-elim -instcombine -simplifycfg -float2int -newgvn -mergefunc -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -indvars -instcombine -simplifycfg -gvn -simplifycfg -memcpyopt -instcombine -nary-reassociate -gvn-hoist -simplifycfg -prune-eh input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.0029028153332273,156.72716856002808,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -strip-dead-prototypes -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.002743756958804,125.29713702201843,opt -sroa -gvn -simplifycfg -instcombine -strip-debug-declare -newgvn -mldst-motion -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -globaldce -slp-vectorizer -newgvn -memcpyopt -strip-debug-declare -instcombine -prune-eh -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,0.9846508668681409,177.36504006385803,opt -sroa -gvn -simplifycfg -instcombine -loop-rotate -simplifycfg -newgvn -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -simplifycfg -instcombine -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -loop-unroll-and-jam -simplifycfg -newgvn -libcalls-shrinkwrap -nary-reassociate -simplifycfg -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,0.9873548592333389,183.290344953537,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -loop-reduce -simplifycfg -instcombine -newgvn -simplifycfg -mldst-motion -barrier -newgvn -memcpyopt -instcombine -gvn-hoist -prune-eh -nary-reassociate -mergefunc -simplifycfg -coro-early -deadargelim -instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.0029028153332273,158.110027551651,opt -sroa -attributor -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -callsite-splitting -newgvn -slp-vectorizer -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.0038174009861622,156.45879292488098,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn -simplifycfg -gvn-hoist -instcombine -ipsccp -adce -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -lower-guard-intrinsic -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.0027437569588038,138.8569803237915,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -simplifycfg -newgvn -slp-vectorizer -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.0029028153332273,158.62155079841614,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.002147288054716,164.67037558555603,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -loop-load-elim -simplifycfg -slp-vectorizer -newgvn -instcombine -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v0/tiffmedian,1.0090265627485289,180.88373947143555,opt -sroa -always-inline -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg -licm -newgvn -simplifycfg -strip-dead-prototypes -instcombine input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.3471643924713135,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.305574417114258,opt -sroa -simplifycfg -loop-reroll -early-cse-memssa -instcombine -sroa -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.324244499206543,opt -sroa -simplifycfg -early-cse-memssa -instcombine -lcssa -newgvn -sroa -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.299079656600952,opt -sroa -simplifycfg -loop-predication -early-cse-memssa -instcombine -sroa -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.377950668334961,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.3638758659362793,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.332183361053467,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.319218873977661,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.2783472537994385,opt -sroa -simplifycfg -early-cse-memssa -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999998,3.307706356048584,opt -sroa -simplifycfg -early-cse-memssa -instcombine -forceattrs -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.8666810989379883,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.8608546257019043,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.8102853298187256,opt -loop-unroll-and-jam -mem2reg -instcombine -simplifycfg -newgvn -sroa -globalopt -instcombine -gvn-hoist -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.8933515548706055,opt -mem2reg -instcombine -simplifycfg -coro-split -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,2.9114677906036377,opt -instcombine -sroa -instcombine -simplifycfg -newgvn -tailcallelim -lowerinvoke -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.836970090866089,opt -mem2reg -instcombine -coro-split -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.8814189434051514,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.8782660961151123,opt -ipconstprop -mem2reg -instcombine -simplifycfg -newgvn -mldst-motion -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.8800272941589355,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0140845070422535,3.846477508544922,opt -mem2reg -instcombine -simplifycfg -newgvn -sroa -instcombine -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0232690124858117,8.110476970672607,opt -sroa -instcombine -newgvn -simplifycfg -loop-rotate -simplifycfg -instcombine -tailcallelim -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.367157936096191,opt -sroa -instcombine -loop-simplify -newgvn -simplifycfg -instcombine -dse -strip-nondebug -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.363828420639038,opt -sroa -instcombine -newgvn -lower-constant-intrinsics -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.39405083656311,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.37799596786499,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.371485710144043,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.369072198867798,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.314395189285278,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.367866277694702,opt -sroa -attributor -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -load-store-vectorizer -instcombine -ipsccp -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0351872871736663,7.394887208938599,opt -sroa -instcombine -newgvn -simplifycfg -instcombine -dse -simplifycfg -constprop -load-store-vectorizer -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0302307692307697,61.19139552116394,opt -sroa -gvn -simplifycfg -irce -instcombine -nary-reassociate -simplifycfg -newgvn -ipsccp -memcpyopt -instcombine -redundant-dbg-inst-elim -gvn-hoist -loop-versioning -jump-threading -early-cse-memssa -constmerge -dse -mergefunc -gvn-hoist -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0321538461538464,59.12892007827759,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -memcpyopt -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0301538461538464,64.346684217453,opt -sroa -insert-gcov-profiling -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -globaldce -loop-guard-widening -newgvn -simplifycfg -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -lowerinvoke -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0302307692307695,57.54291582107544,opt -sroa -gvn -loop-deletion -simplifycfg -instcombine -nary-reassociate -simplifycfg -newgvn -ipsccp -memcpyopt -strip -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -gvn-hoist -prune-eh -simplifycfg -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0303076923076924,59.354525327682495,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -gvn -simplifycfg -memcpyopt -tailcallelim -loop-versioning-licm -instcombine -simplifycfg -loop-predication -name-anon-globals -newgvn -simplifycfg -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -prune-eh -simplifycfg -name-anon-globals -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0406153846153852,71.96076917648315,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -functionattrs -newgvn -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -instcombine -simplifycfg -loop-distribute -prune-eh -simplifycfg -mldst-motion -instnamer -globalopt -gvn-hoist -tailcallelim -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0301538461538464,64.51102471351624,opt -sroa -gvn -post-inline-ee-instrument -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -loop-load-elim -irce -newgvn -simplifycfg -gvn-hoist -jump-threading -early-cse-memssa -lower-widenable-condition -dse -mergefunc -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0301538461538464,60.58538103103638,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -guard-widening -ipsccp -newgvn -simplifycfg -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -mergefunc -prune-eh -simplifycfg -mldst-motion -loop-simplify -simplifycfg -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0394615384615389,69.45560908317566,opt -sroa -gvn -simplifycfg -slsr -coro-early -instcombine -nary-reassociate -ipsccp -jump-threading -early-cse-memssa -memcpyopt -instcombine -gvn-hoist -functionattrs -newgvn -simplifycfg -dse -loweratomic -mergefunc -instcombine -gvn-hoist -prune-eh -simplifycfg -lower-widenable-condition -newgvn -mldst-motion -globalopt -gvn-hoist -tailcallelim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.0321538461538464,57.45151472091675,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -ipsccp -newgvn -hotcoldsplit -simplifycfg -memcpyopt -instcombine -gvn-hoist -jump-threading -early-cse-memssa -dse -ipconstprop -mergefunc -prune-eh -simplifycfg -mldst-motion -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.325608015060425,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.3096039295196533,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.311483860015869,opt -sroa -libcalls-shrinkwrap -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.306170701980591,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.30281925201416,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.323596954345703,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.3132190704345703,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.3064634799957275,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.2902536392211914,opt -sroa -gvn -simplifycfg -instcombine -flattencfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,2.332601547241211,opt -mergereturn -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.082825183868408,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.0587315559387207,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.0633692741394043,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.0405640602111816,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.0435636043548584,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.050528049468994,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.0575389862060547,opt -sroa -newgvn -simplifycfg -instcombine -loweratomic -gvn-hoist -partial-inliner input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.0271060466766357,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,1.0193548387096774,3.0591702461242676,opt -sroa -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.935483870967742,4.069051742553711,opt -speculative-execution -sroa -newgvn -simplifycfg -instcombine -gvn-hoist -loop-rotate -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0023535801575092,1957.73517537117,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -barrier -slp-vectorizer -instcombine -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -simplifycfg -deadargelim -bdce -dse -prune-eh -mldst-motion -slsr -newgvn -mldst-motion -mergefunc -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.001570828385668,1778.0900359153748,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -coro-cleanup -mldst-motion -instcombine -memcpyopt -coro-elide -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -mergereturn -instcombine -simplifycfg -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -dse -prune-eh -simplifycfg -strip -newgvn -mldst-motion -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.002332280789568,2109.468429327011,opt -sroa -gvn -simplifycfg -instcombine -newgvn -loop-data-prefetch -simplifycfg -aggressive-instcombine -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -newgvn -instcombine -ipsccp -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -sroa -inline -globaldce -gvn -bdce -deadargelim -instcombine -simplifycfg -newgvn -slp-vectorizer -mldst-motion -gvn-hoist -early-cse-memssa -simplifycfg -bdce -dse -prune-eh -inferattrs -mldst-motion -slsr -newgvn -mldst-motion -mergefunc -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0021885100559647,2090.4159104824066,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -load-store-vectorizer -instcombine -newgvn -slp-vectorizer -instcombine -gvn-hoist -simplifycfg -nary-reassociate -globaldce -loop-interchange -instcombine -hotcoldsplit -simplifycfg -early-cse-memssa -bdce -mergefunc -mldst-motion -dse -simplifycfg -prune-eh -newgvn -globaldce -gvn-hoist -mldst-motion -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.007662447616867,3265.486672401428,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -lower-matrix-intrinsics -instcombine -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -instnamer -simplifycfg -dse -prune-eh -newgvn -speculative-execution -newgvn -simplifycfg -gvn-hoist -instcombine -simplifycfg -newgvn -mldst-motion -simplifycfg -licm -newgvn -simplifycfg -gvn-hoist -dce -instcombine -simplifycfg -newgvn -float2int -nary-reassociate -correlated-propagation -insert-gcov-profiling -instcombine -scalarizer -instcombine -slp-vectorizer -instcombine -slp-vectorizer -newgvn -gvn-hoist -instcombine -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0016453761734625,1860.8326251506805,opt -sroa -gvn -simplifycfg -instcombine -partially-inline-libcalls -newgvn -simplifycfg -gvn-hoist -mergefunc -tailcallelim -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -bdce -globaldce -early-cse-memssa -slp-vectorizer -mldst-motion -loop-distribute -simplifycfg -dse -prune-eh -flattencfg -newgvn -mldst-motion -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0000692229458097,1986.2773809432983,opt -loweratomic -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -scalarizer -simplifycfg -dse -sroa -instcombine -ipsccp -newgvn -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -bdce -globaldce -loop-idiom -instcombine -lower-guard-intrinsic -simplifycfg -early-cse-memssa -slp-vectorizer -partially-inline-libcalls -mldst-motion -dse -prune-eh -simplifycfg -newgvn -mldst-motion -instsimplify -slsr -newgvn -pgo-memop-opt -mldst-motion -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9779125554449174,2321.2995405197144,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -lowerswitch -simplifycfg -instcombine -simplifycfg -mldst-motion -memcpyopt -instcombine -simplifycfg -dse -gvn-hoist -newgvn -instcombine -ipsccp -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -sroa -globaldce -bdce -early-cse-memssa -slp-vectorizer -dse -instcombine -simplifycfg -prune-eh -mldst-motion -mldst-motion -slsr -newgvn -newgvn -loop-instsimplify -instcombine -simplifycfg -ee-instrument -newgvn -newgvn -mldst-motion -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9965228781835901,2097.893942117691,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -simplifycfg -mldst-motion -instcombine -memcpyopt -instcombine -simplifycfg -dse -sroa -globalsplit -instcombine -loop-reduce -licm -newgvn -simplifycfg -instcombine -jump-threading -infer-address-spaces -newgvn -gvn-hoist -bdce -ipsccp -simplifycfg -instcombine -aggressive-instcombine -nary-reassociate -correlated-propagation -instcombine -loop-reroll -instcombine -simplifycfg -globaldce -dse -newgvn -mldst-motion -prune-eh -early-cse-memssa -mldst-motion -simplifycfg -gvn-hoist -slsr -newgvn -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0000798726297802,1923.4439957141876,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -mergefunc -newgvn -ipsccp -loop-simplifycfg -instcombine -simplifycfg -mldst-motion -memcpyopt -instcombine -simplifycfg -dse -ipsccp -newgvn -instcombine -nary-reassociate -slp-vectorizer -instcombine -gvn-hoist -sroa -globaldce -bdce -newgvn -add-discriminators -slp-vectorizer -dse -prune-eh -mldst-motion -instcombine -simplifycfg -mldst-motion -partial-inliner -early-cse-memssa -slsr -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1495167708925527,37.8730034828186,opt -sroa -instcombine -simplifycfg -forceattrs -newgvn -slp-vectorizer -early-cse-memssa -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -rpo-functionattrs -newgvn -simplifycfg -dse -ipsccp -instcombine -mergefunc -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1381466742467308,43.94974994659424,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -loop-reduce -simplifycfg -instcombine -newgvn -dse -ipsccp -instcombine -jump-threading -nary-reassociate -gvn-hoist -prune-eh -scalarizer -instcombine -slp-vectorizer -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1495167708925527,38.894811391830444,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1496588971006254,41.75011491775513,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -loop-unroll-and-jam -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -simplifycfg -instcombine -jump-threading -newgvn -loop-sink -name-anon-globals -post-inline-ee-instrument -simplifycfg -newgvn -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1509380329732803,37.99203038215637,opt -sroa -instcombine -simplifycfg -functionattrs -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -ipsccp -instcombine -dse -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1468163729391696,42.09191536903381,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -lower-guard-intrinsic -instcombine -slp-vectorizer -loop-idiom -loop-idiom -instcombine -simplifycfg -jump-threading -newgvn -reassociate -dse -callsite-splitting -ipsccp -scalarizer -instcombine -slp-vectorizer -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1495167708925527,38.51568388938904,opt -lower-matrix-intrinsics -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -mergeicmps -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -lower-expect -callsite-splitting -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -always-inline -simplifycfg -hotcoldsplit input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1495167708925529,42.394848585128784,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -ipsccp -lower-constant-intrinsics -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg -loop-reroll -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1496588971006252,38.50854277610779,opt -sroa -instcombine -simplifycfg -loop-vectorize -partial-inliner -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -simplifycfg -instcombine -jump-threading -reassociate -newgvn -dse -ipsccp -instcombine -simplifycfg -nary-reassociate -gvn-hoist -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.1495167708925529,40.232659101486206,opt -sroa -instcombine -simplifycfg -newgvn -slp-vectorizer -instcombine -load-store-vectorizer -instcombine -slp-vectorizer -instcombine -jump-threading -newgvn -simplifycfg -dse -ipsccp -loop-deletion -simplifycfg -instcombine -dse -simplifycfg -nary-reassociate -gvn-hoist -redundant-dbg-inst-elim -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9484346224677719,61.475505352020264,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -lowerswitch -simplifycfg -instcombine -simplifycfg -gvn-hoist -newgvn -ipsccp -lcssa -newgvn -strip-dead-prototypes -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -redundant-dbg-inst-elim -newgvn -mldst-motion -correlated-propagation -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0005022601707687,58.671817779541016,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -called-value-propagation -newgvn -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0006696802276915,58.156036138534546,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -loop-load-elim -simplifycfg -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -newgvn -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0005022601707687,57.86407923698425,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -sroa -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -newgvn -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9487694625816174,56.39859914779663,opt -lower-matrix-intrinsics -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -slsr -gvn-hoist -dse -lowerswitch -simplifycfg -instcombine -simplifycfg -ipsccp -rpo-functionattrs -newgvn -simplifycfg -newgvn -nary-reassociate -memcpyopt -newgvn -mldst-motion -correlated-propagation -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0005022601707687,57.664350748062134,opt -consthoist -sroa -newgvn -simplifycfg -instcombine -adce -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -newgvn -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9810815335677215,58.025816679000854,opt -gvn -instcombine -simplifycfg -coro-early -sroa -partial-inliner -newgvn -instcombine -simplifycfg -jump-threading -newgvn -gvn-hoist -dse -newgvn -ipsccp -irce -attributor -simplifycfg -newgvn -simplifycfg -nary-reassociate -memcpyopt -prune-eh -newgvn -mldst-motion -simplifycfg -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0005022601707687,58.73056602478027,opt -sroa -newgvn -simplifycfg -instcombine -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -simplifycfg -newgvn -mldst-motion -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0006696802276915,56.32115340232849,opt -sroa -strip-dead-prototypes -newgvn -simplifycfg -instcombine -loop-fusion -simplifycfg -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -newgvn -jump-threading -newgvn -break-crit-edges -simplifycfg -dse -nary-reassociate -memcpyopt -newgvn -correlated-propagation -mldst-motion -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0005022601707685,62.48310446739197,opt -speculative-execution -sroa -newgvn -simplifycfg -instcombine -simplifycfg -loweratomic -newgvn -simplifycfg -gvn-hoist -reg2mem -sroa -simplifycfg -instcombine -ipsccp -newgvn -jump-threading -newgvn -loop-simplifycfg -simplifycfg -correlated-propagation -dse -nary-reassociate -memcpyopt -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.022896304661033,167.0369176864624,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -lower-expect -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.022896304661033,162.6602861881256,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -coro-early -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.022896304661033,162.48382711410522,opt -slsr -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -name-anon-globals -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.022896304661033,163.83925199508667,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -coro-split -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0228963046610333,170.10317039489746,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -loop-simplify -simplifycfg -early-cse-memssa -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0231299404228804,163.70789122581482,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -loweratomic -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -memcpyopt -lower-guard-intrinsic -mldst-motion -ipsccp -correlated-propagation -newgvn -sink -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce -argpromotion input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.022896304661033,170.07374668121338,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -rpo-functionattrs -lower-expect -nary-reassociate -partial-inliner -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0227794867801094,184.75065994262695,opt -sroa -always-inline -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -partial-inliner -simplifycfg -prune-eh -sink -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -scalarizer -simplifycfg -gvn-hoist -newgvn -coro-early -slsr -newgvn -div-rem-pairs -globaldce -irce -newgvn -simplifycfg -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.022896304661033,163.94377493858337,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -newgvn -simplifycfg -prune-eh -lower-constant-intrinsics -prune-eh -newgvn -mldst-motion -ipsccp -correlated-propagation -newgvn -simplifycfg -gvn-hoist -newgvn -slsr -newgvn -coro-split -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0226237296055445,161.27980875968933,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -mergefunc -simplifycfg -nary-reassociate -memcpyopt -instsimplify -mldst-motion -mldst-motion -mldst-motion -loop-predication -sink -newgvn -simplifycfg -correlated-propagation -globalopt -newgvn -prune-eh -newgvn -mldst-motion -ipsccp -simplifycfg -gvn-hoist -newgvn -slsr -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0218300233175202,162.80999040603638,opt -sroa -gvn -simplifycfg -loop-fusion -instcombine -simplifycfg -gvn-hoist -newgvn -mergefunc -nary-reassociate -memcpyopt -instcombine -simplifycfg -div-rem-pairs -mldst-motion -mldst-motion -mldst-motion -simplifycfg -newgvn -mldst-motion -instcombine -simplifycfg -ipsccp -slsr -newgvn -globaldce -constprop -correlated-propagation -instcombine -sroa -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,155.09252095222473,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,158.51034665107727,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -attributor -nary-reassociate -memcpyopt -argpromotion -instcombine -mldst-motion -newgvn -insert-gcov-profiling -mldst-motion -mldst-motion -coro-early -simplifycfg -mldst-motion -lower-widenable-condition -ipsccp -slsr -newgvn -globaldce -forceattrs -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,154.6300506591797,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,157.87810039520264,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,163.5455927848816,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -nary-reassociate -mldst-motion -simplifycfg -break-crit-edges -simplifycfg -mldst-motion -ipsccp -inject-tli-mappings -coro-split -slsr -newgvn -insert-gcov-profiling -globaldce -gvn-hoist -correlated-propagation -simplifycfg -strip-debug-declare -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,154.0655062198639,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.02183002331752,161.41529035568237,opt -sroa -gvn -simplifycfg -canonicalize-aliases -instcombine -gvn-hoist -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -simple-loop-unswitch -newgvn -simplifycfg -correlated-propagation -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,155.45213294029236,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -pgo-memop-opt -newgvn -simplifycfg -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -insert-gcov-profiling -globaldce -gvn-hoist -correlated-propagation -simplifycfg -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0217898206963092,156.0222954750061,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg -prune-eh -mergefunc -nary-reassociate -memcpyopt -instcombine -mldst-motion -mldst-motion -newgvn -mldst-motion -hotcoldsplit -simplifycfg -mldst-motion -ipsccp -slsr -newgvn -globaldce -gvn-hoist -correlated-propagation -simplifycfg -inject-tli-mappings -instcombine -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/lame,1.1155323029663051,167.26788115501404,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -adce -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalsplit -globalopt -prune-eh -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.115532302966305,164.133118391037,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -dce -ipsccp -memcpyopt -bdce -dse -instcombine -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.1141883459729292,148.71487617492676,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -loop-instsimplify -simplifycfg -instcombine -gvn-hoist -bdce -ipsccp -memcpyopt -newgvn -simplifycfg -dse -mldst-motion -loop-reroll -simplifycfg -instcombine -simplifycfg -globalopt -instcombine -newgvn -prune-eh -mergefunc -instcombine -globalopt -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.1191801862340403,159.07205843925476,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -loop-versioning-licm -newgvn -simplifycfg -mldst-motion -globalopt -instcombine -simplifycfg -licm -newgvn -simplifycfg -prune-eh -mergefunc -gvn-hoist -instcombine -newgvn -globalopt -dse -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.1175962369204187,160.42251658439636,opt -sroa -gvn -simplifycfg -instcombine -indvars -newgvn -mergereturn -simplifycfg -nary-reassociate -gvn-hoist -instcombine -ipsccp -memcpyopt -bdce -dse -simplifycfg -mldst-motion -newgvn -globalopt -instcombine -simplifycfg -prune-eh -newgvn -mergefunc -instsimplify -globalopt -gvn-hoist -dse -correlated-propagation -instsimplify -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/lame,1.1160122876067964,167.25811386108398,opt -sroa -nary-reassociate -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -bdce -bdce -nary-reassociate -ipsccp -memcpyopt -instcombine -dse -mldst-motion -insert-gcov-profiling -simplifycfg -scalarizer -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -lower-matrix-intrinsics -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.107900547182491,171.84539914131165,opt -gvn -instcombine -simplifycfg -newgvn -sroa -newgvn -nary-reassociate -instcombine -simplifycfg -gvn-hoist -newgvn -ipsccp -memcpyopt -bdce -dse -globalopt -instcombine -simplifycfg -mldst-motion -simplifycfg -early-cse-memssa -newgvn -prune-eh -jump-threading -instcombine -simplifycfg -sroa -mergefunc -newgvn -globalopt -gvn-hoist -canonicalize-aliases -newgvn -dse -dce input.bc -o output.bc +benchmark://cbench-v1/lame,1.1158682922146492,172.36621642112732,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -slp-vectorizer -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.1155803014303542,166.15596842765808,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -tailcallelim -simplifycfg -gvn-hoist -alignment-from-assumptions -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -inject-tli-mappings -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.1155323029663051,167.29455971717834,opt -sroa -gvn -simplifycfg -instcombine -nary-reassociate -newgvn -simplifycfg -gvn-hoist -bdce -ipsccp -memcpyopt -instcombine -dse -mldst-motion -simplifycfg -globalopt -instcombine -newgvn -simplifycfg -prune-eh -mergefunc -instcombine -jump-threading -instcombine -simplifycfg -newgvn -instcombine -globalopt -gvn-hoist -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,3.9266302585601807,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9705882352941178,4.825629711151123,opt -sroa -simplifycfg -newgvn -sccp -ipsccp -adce -simplifycfg -newgvn -tailcallelim -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,3.8992760181427,opt -correlated-propagation -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,3.912933349609375,opt -sroa -ipsccp -gvn -simplifycfg -separate-const-offset-from-gep -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,4.404894113540649,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -lcssa -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,3.931546211242676,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,3.909588575363159,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9705882352941176,5.27163028717041,opt -simplifycfg -loop-versioning-licm -loop-deletion -sroa -ipsccp -newgvn -simplifycfg -newgvn -newgvn -simplifycfg -tailcallelim -reassociate -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,3.8775691986083984,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9693094629156009,3.929682970046997,opt -sroa -ipsccp -gvn -simplifycfg -reassociate -tailcallelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.5581681728363037,opt -sroa -gvn -simplifycfg -instcombine -newgvn -coro-elide -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,0.9744525547445256,3.591317653656006,opt -sroa -gvn -simplifycfg -loop-rotate -instcombine -deadargelim -div-rem-pairs -simplifycfg -newgvn -barrier -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.514180898666382,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.069769859313965,opt -sroa -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.5526814460754395,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -strip-dead-prototypes -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.538724899291992,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.5244412422180176,opt -sroa -barrier -gvn -simplifycfg -instcombine -newgvn -simplifycfg -hotcoldsplit -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.529522657394409,opt -sroa -gvn -simplifycfg -instcombine -newgvn -bdce -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.029197080291971,3.5224571228027344,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/qsort,1.0145985401459854,3.466933250427246,opt -loop-load-elim -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,8.526031732559204,opt -sroa -instcombine -gvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.324137210845947,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.431487083435059,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.38455605506897,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -slsr -newgvn -jump-threading -instcombine -die input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.348448514938354,opt -sroa -instcombine -gvn -mergereturn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -pgo-memop-opt -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.432142496109009,opt -sroa -pgo-memop-opt -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767151,12.2704598903656,opt -sroa -instcombine -gvn -simplifycfg -die -loop-interchange -reassociate -memcpyopt -instcombine -simplifycfg -gvn-hoist -newgvn -jump-threading -instcombine -loop-load-elim -simple-loop-unswitch -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.399054765701294,opt -sroa -instcombine -gvn -simplifycfg -alignment-from-assumptions -lower-matrix-intrinsics -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.413830041885376,opt -sroa -instcombine -gvn -simplifycfg -instcombine -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1151767151767153,9.393671989440918,opt -sroa -instcombine -gvn -simplifycfg -mergereturn -instcombine -gvn-hoist -flattencfg -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,3.252039909362793,opt -sroa -gvn -simplifycfg -instcombine -add-discriminators -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,3.23064923286438,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.548936170212766,4.220396995544434,opt -sroa -gvn -simplifycfg -instcombine -functionattrs -licm -newgvn -simplifycfg -ipsccp -loop-simplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,4.221415758132935,opt -strip -sroa -strip-debug-declare -gvn -simplifycfg -reg2mem -sroa -instcombine -simplifycfg -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,3.221076726913452,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp -canonicalize-aliases input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,3.246673583984375,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,3.227952480316162,opt -sroa -gvn -simplifycfg -constmerge -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.557446808510638,3.208369731903076,opt -sroa -gvn -simplifycfg -instcombine -memcpyopt -newgvn -coro-split -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,3.2176291942596436,opt -sroa -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/sha,1.553191489361702,3.220510244369507,opt -sroa -forceattrs -gvn -simplifycfg -instcombine -newgvn -ipsccp input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.852210521697998,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -partial-inliner -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.825301647186279,opt -sroa -newgvn -simplifycfg -ee-instrument -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.837324857711792,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.83894157409668,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.832793951034546,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0122699386503067,6.490794897079468,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -loop-deletion -gvn -simplifycfg -gvn-hoist -newgvn -loop-unswitch -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.842012643814087,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.311517715454102,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -bdce input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.877126693725586,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0143149284253579,4.864404916763306,opt -sroa -newgvn -simplifycfg -instcombine -jump-threading -pgo-memop-opt -ee-instrument -newgvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.238586187362671,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.196035623550415,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.195099115371704,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.6221635341644287,opt -sroa -gvn -simplifycfg -loop-reroll -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.192682981491089,opt -sroa -mergereturn -gvn -infer-address-spaces -name-anon-globals -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.186244487762451,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.2214152812957764,opt -sroa -gvn -simplifycfg -instcombine -post-inline-ee-instrument input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.1809301376342773,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.1874279975891113,opt -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9742268041237113,2.164578437805176,opt -lower-guard-intrinsic -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/susan,1.0062154696132597,21.237401962280273,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -coro-early -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0073204419889503,21.022145748138428,opt -sroa -licm -newgvn -instcombine -simplifycfg -nary-reassociate -gvn-hoist -slsr -nary-reassociate -newgvn -instcombine -simplifycfg -newgvn -newgvn -mldst-motion -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/susan,1.002900552486188,24.97674560546875,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -loop-simplify -simplifycfg -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -lowerswitch -simplifycfg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0040055248618784,21.214195251464844,opt -sroa -lowerswitch -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0062154696132597,23.505887031555176,opt -irce -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -loop-versioning-licm -newgvn -simplifycfg -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0062154696132597,20.977452278137207,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -globalopt -mem2reg -gvn-hoist -flattencfg -newgvn -guard-widening -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0062154696132597,21.33326506614685,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0062154696132595,22.355042695999146,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -mem2reg -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -mldst-motion -loop-versioning-licm -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0062154696132597,23.273910999298096,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -globalopt -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -irce -newgvn -simplifycfg -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0062154696132597,21.12042999267578,opt -sroa -newgvn -instcombine -simplifycfg -nary-reassociate -slsr -nary-reassociate -gvn-hoist -newgvn -instcombine -simplifycfg -gvn-hoist -newgvn -newgvn -correlated-propagation -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.004535996670828,150.02621173858643,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -tailcallelim -simplifycfg -lower-constant-intrinsics -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.004369538077403,147.0981001853943,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0043695380774031,140.48020720481873,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -mldst-motion -newgvn -memcpyopt -instcombine -gvn -simplifycfg -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9884727424053266,154.1393620967865,opt -partial-inliner -sroa -gvn -simplifycfg -instcombine -newgvn -loop-reduce -simplifycfg -instcombine -newgvn -gvn-hoist -instcombine -simplifycfg -ipsccp -loop-versioning-licm -instcombine -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -strip-nondebug -mergefunc -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.004369538077403,140.4969711303711,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -sroa -instcombine -lower-widenable-condition -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -libcalls-shrinkwrap -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0035372451102786,154.5895640850067,opt -globalopt -sroa -gvn -simplifycfg -instcombine -loop-load-elim -simplifycfg -newgvn -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -simplifycfg -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0035372451102784,166.6245219707489,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -loop-sink -instcombine -simplifycfg -sink -newgvn -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0012068248023298,150.62344455718994,opt -sroa -gvn -callsite-splitting -simplifycfg -attributor -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -libcalls-shrinkwrap -simplifycfg -slp-vectorizer -newgvn -adce -constmerge -mldst-motion -gvn -simplifycfg -memcpyopt -correlated-propagation -instcombine -simplifycfg -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.004369538077403,144.84855127334595,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -aggressive-instcombine -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -prune-eh -newgvn -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.003995006242197,154.96046471595764,opt -sroa -slp-vectorizer -strip-dead-prototypes -gvn -simplifycfg -instcombine -mergeicmps -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -gvn -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -die -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0079806125433504,140.1571226119995,opt -coro-early -licm -sroa -gvn -simplifycfg -instcombine -newgvn -bdce -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -ee-instrument -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0043036811097648,169.4242286682129,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -float2int -slp-vectorizer -newgvn -mldst-motion -loop-simplifycfg -instcombine -simplifycfg -gvn -simplifycfg -memcpyopt -forceattrs -instcombine -lower-constant-intrinsics -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg -attributor input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0023816487694814,151.39407300949097,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -correlated-propagation -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -simplifycfg -newgvn -memcpyopt -instcombine -nary-reassociate -correlated-propagation -simplifycfg -newgvn -simplifycfg -alignment-from-assumptions -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0051393473446708,164.57986044883728,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -coro-split -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg -die input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0051393473446708,165.66000533103943,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -mem2reg -ipsccp -simplifycfg -attributor -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0051393473446708,164.64863204956055,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0054736138386327,170.99662113189697,opt -sroa -gvn -simplifycfg -instcombine -inline -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -loop-unroll-and-jam -instcombine -simplifycfg -slp-vectorizer -newgvn -mldst-motion -functionattrs -newgvn -memcpyopt -instcombine -gvn-hoist -nary-reassociate -mergefunc -gvn -simplifycfg -newgvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0051393473446708,163.80334520339966,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -constmerge -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0042618977980196,169.33936262130737,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -gvn -simplifycfg -memcpyopt -instcombine -newgvn -nary-reassociate -mergefunc -name-anon-globals -gvn-hoist -loop-versioning-licm -instcombine -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0044708143567458,172.3550157546997,opt -loop-guard-widening -sroa -gvn -simplifycfg -instcombine -newgvn -loop-simplifycfg -instcombine -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -gvn -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.00364245342265,182.47542238235474,opt -sroa -loop-unroll-and-jam -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -coro-elide -mergefunc -gvn-hoist -simplifycfg -newgvn -sancov -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0046054008792127,179.6926872730255,opt -sroa -gvn -loop-distribute -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -coro-early -ipsccp -simplifycfg -slp-vectorizer -simplifycfg -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0046054008792127,181.03862118721008,opt -sroa -gvn -simplifycfg -float2int -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0038099225455306,152.89263606071472,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -load-store-vectorizer -instcombine -gvn -slp-vectorizer -instcombine -bdce -simplifycfg -gvn-hoist -mldst-motion -newgvn -prune-eh -instcombine -simplifycfg -nary-reassociate -mergefunc -loop-versioning input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.001507222105924,206.75270867347717,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -scalarizer -slp-vectorizer -instsimplify -gvn-hoist -simplifycfg -newgvn -correlated-propagation -instcombine -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0046054008792127,181.0861098766327,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -inline -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0074523759681808,152.34258794784546,opt -licm -sroa -gvn -simplifycfg -instcombine -newgvn -bdce -simplifycfg -callsite-splitting -gvn-hoist -instcombine -ipsccp -simplifycfg -mldst-motion -newgvn -memcpyopt -instcombine -loop-versioning -prune-eh -nary-reassociate -loop-interchange -instcombine -simplifycfg -newgvn -simplifycfg -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0046054008792127,181.79122877120972,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -consthoist -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -strip-debug-declare -prune-eh -gvn -loop-distribute -simplifycfg -newgvn -nary-reassociate -pgo-memop-opt -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0046054008792127,179.61281037330627,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -separate-const-offset-from-gep -mldst-motion -newgvn -lower-expect -memcpyopt -instcombine -prune-eh -gvn -simplifycfg -newgvn -nary-reassociate -mergefunc -gvn-hoist -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.00343311701905,160.62122535705566,opt -sroa -gvn -forceattrs -simplifycfg -loop-load-elim -instcombine -simplifycfg -float2int -newgvn -mergefunc -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -indvars -instcombine -simplifycfg -gvn -simplifycfg -memcpyopt -instcombine -nary-reassociate -gvn-hoist -simplifycfg -prune-eh input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0029028153332273,156.72716856002808,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -strip-dead-prototypes -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.002743756958804,125.29713702201843,opt -sroa -gvn -simplifycfg -instcombine -strip-debug-declare -newgvn -mldst-motion -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -globaldce -slp-vectorizer -newgvn -memcpyopt -strip-debug-declare -instcombine -prune-eh -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9846508668681409,177.36504006385803,opt -sroa -gvn -simplifycfg -instcombine -loop-rotate -simplifycfg -newgvn -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -simplifycfg -instcombine -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -loop-unroll-and-jam -simplifycfg -newgvn -libcalls-shrinkwrap -nary-reassociate -simplifycfg -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9873548592333389,183.290344953537,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -loop-reduce -simplifycfg -instcombine -newgvn -simplifycfg -mldst-motion -barrier -newgvn -memcpyopt -instcombine -gvn-hoist -prune-eh -nary-reassociate -mergefunc -simplifycfg -coro-early -deadargelim -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0029028153332273,158.110027551651,opt -sroa -attributor -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -callsite-splitting -newgvn -slp-vectorizer -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0038174009861622,156.45879292488098,opt -sroa -gvn -simplifycfg -instcombine -newgvn -gvn -simplifycfg -gvn-hoist -instcombine -ipsccp -adce -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -lower-guard-intrinsic -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0027437569588038,138.8569803237915,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -simplifycfg -ipsccp -slp-vectorizer -newgvn -mldst-motion -simplifycfg -newgvn -slp-vectorizer -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0029028153332273,158.62155079841614,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.002147288054716,164.67037558555603,opt -sroa -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -loop-load-elim -simplifycfg -slp-vectorizer -newgvn -instcombine -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0090265627485289,180.88373947143555,opt -sroa -always-inline -gvn -simplifycfg -instcombine -newgvn -simplifycfg -gvn-hoist -instcombine -ipsccp -simplifycfg -slp-vectorizer -newgvn -mldst-motion -newgvn -memcpyopt -instcombine -prune-eh -nary-reassociate -mergefunc -simplifycfg -newgvn -simplifycfg -licm -newgvn -simplifycfg -strip-dead-prototypes -instcombine input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/random_search/BUILD b/leaderboard/llvm_instcount/random_search/BUILD index 1d7769aa6..263db38c9 100644 --- a/leaderboard/llvm_instcount/random_search/BUILD +++ b/leaderboard/llvm_instcount/random_search/BUILD @@ -2,9 +2,9 @@ # # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -load("@rules_python//python:defs.bzl", "py_library", "py_test") +load("@rules_python//python:defs.bzl", "py_binary", "py_test") -py_library( +py_binary( name = "random_search", srcs = ["random_search.py"], deps = [ @@ -19,5 +19,6 @@ py_test( deps = [ ":random_search", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) diff --git a/leaderboard/llvm_instcount/random_search/random_search_test.py b/leaderboard/llvm_instcount/random_search/random_search_test.py index 1fed8142f..65585318a 100644 --- a/leaderboard/llvm_instcount/random_search/random_search_test.py +++ b/leaderboard/llvm_instcount/random_search/random_search_test.py @@ -4,20 +4,17 @@ # LICENSE file in the root directory of this source tree. """Tests for //leaderboard/llvm_instcount/random_search.""" import pytest -from absl import flags from leaderboard.llvm_instcount.random_search.random_search import ( eval_llvm_instcount_policy, random_search, ) +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main as _test_main -FLAGS = flags.FLAGS - def test_random_search(): - FLAGS.unparse_flags() - FLAGS( + set_command_line_flags( [ "argv0", "--n=1", diff --git a/leaderboard/llvm_instcount/random_search/results_p125_t10.csv b/leaderboard/llvm_instcount/random_search/results_p125_t10.csv index 3f166a1af..2098e1dbf 100644 --- a/leaderboard/llvm_instcount/random_search/results_p125_t10.csv +++ b/leaderboard/llvm_instcount/random_search/results_p125_t10.csv @@ -1,231 +1,231 @@ benchmark,reward,walltime,commandline -benchmark://cBench-v1/adpcm,0.994413407821229,12.527162551879883,opt -indvars -loop-unroll -infer-address-spaces -guard-widening -loop-reroll -loop-simplifycfg -loop-interchange -partial-inliner -nary-reassociate -loop-unroll-and-jam -coro-cleanup -rewrite-statepoints-for-gc -mergeicmps -slsr -loop-distribute -reassociate -lcssa -inferattrs -alignment-from-assumptions -coro-cleanup -loop-load-elim -mem2reg -slp-vectorizer -instsimplify -canonicalize-aliases -globalsplit -loop-reroll -instcombine -loop-load-elim -loop-simplifycfg -sroa -lower-widenable-condition -loop-instsimplify -rewrite-statepoints-for-gc -simplifycfg -rpo-functionattrs -sccp -nary-reassociate -lowerinvoke -loop-data-prefetch -lower-guard-intrinsic -loop-predication -sink -rpo-functionattrs -constprop -loop-unswitch -reassociate -lower-matrix-intrinsics -attributor -pgo-memop-opt -elim-avail-extern -inline -reassociate -speculative-execution -mem2reg -libcalls-shrinkwrap -jump-threading -loop-vectorize -loop-reduce -coro-split -functionattrs -simplifycfg -load-store-vectorizer -constprop -infer-address-spaces -loop-distribute -loop-versioning-licm -mergefunc -globalsplit -licm -lower-matrix-intrinsics -barrier -forceattrs -name-anon-globals -ee-instrument -cross-dso-cfi -lowerinvoke -instsimplify -pgo-memop-opt -die -reassociate -gvn input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9972067039106146,11.98168158531189,opt -post-inline-ee-instrument -called-value-propagation -alignment-from-assumptions -licm -prune-eh -loop-simplifycfg -loop-deletion -redundant-dbg-inst-elim -loop-sink -sroa -coro-early -mergereturn -lowerswitch -constprop -instsimplify -name-anon-globals -mergereturn -ipconstprop -alignment-from-assumptions -cross-dso-cfi -nary-reassociate -strip-debug-declare -instsimplify -argpromotion -post-inline-ee-instrument -loop-unswitch -barrier -indvars -strip-debug-declare -lowerinvoke -ee-instrument -instcombine -simplifycfg -loop-load-elim -break-crit-edges -argpromotion -load-store-vectorizer -loop-load-elim -callsite-splitting -newgvn -loop-reduce -gvn-hoist -inferattrs -loop-reduce -slp-vectorizer -irce -callsite-splitting -coro-early -add-discriminators -loop-sink -loop-reduce -die -called-value-propagation -constprop -rpo-functionattrs -irce -loop-versioning -deadargelim -loop-idiom -strip-debug-declare -post-inline-ee-instrument -loop-unroll -indvars -strip-debug-declare -separate-const-offset-from-gep -inline -loweratomic -loop-guard-widening -indvars -libcalls-shrinkwrap -loop-idiom -loweratomic -memcpyopt -callsite-splitting -coro-cleanup -pgo-memop-opt -instsimplify -reg2mem -float2int -add-discriminators -lower-constant-intrinsics -lower-expect -loop-simplify -globaldce -inject-tli-mappings -flattencfg -inject-tli-mappings -globalsplit -sroa -lower-expect -adce -forceattrs -loop-deletion -loop-simplify -inject-tli-mappings -sancov -inferattrs -loop-versioning -newgvn -loop-reroll -loop-load-elim -simplifycfg -instsimplify input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9972067039106146,12.768595933914185,opt -barrier -loop-predication -infer-address-spaces -loop-reroll -add-discriminators -prune-eh -aggressive-instcombine -strip -reg2mem -mldst-motion -alignment-from-assumptions -callsite-splitting -loop-unroll-and-jam -sancov -loop-predication -memcpyopt -loop-distribute -lower-expect -licm -break-crit-edges -deadargelim -sccp -loop-predication -sancov -correlated-propagation -slp-vectorizer -globalopt -gvn -slsr -lower-constant-intrinsics -loop-distribute -post-inline-ee-instrument -aggressive-instcombine -simplifycfg -instnamer -simple-loop-unswitch -reg2mem -inject-tli-mappings -constmerge -called-value-propagation -dce -mergeicmps -reassociate -strip-nondebug -forceattrs -consthoist -ipconstprop -strip-dead-prototypes -strip -redundant-dbg-inst-elim -attributor -deadargelim -mergereturn -loop-distribute -strip-dead-prototypes -forceattrs -constprop -partial-inliner -constmerge -argpromotion -elim-avail-extern -inferattrs -loop-simplify -globalsplit -loop-simplifycfg -lowerinvoke -sroa -mem2reg -loop-sink -deadargelim -adce -lower-matrix-intrinsics -loop-unroll -slp-vectorizer -globalopt -loop-instsimplify -nary-reassociate -loop-reduce -lowerinvoke -libcalls-shrinkwrap -rewrite-statepoints-for-gc -deadargelim -inject-tli-mappings -pgo-memop-opt -loop-unswitch -gvn-hoist -sroa -tailcallelim -lowerinvoke -simple-loop-unswitch -inline -loop-load-elim -consthoist -strip -strip-nondebug -slp-vectorizer -prune-eh -add-discriminators -lower-guard-intrinsic -add-discriminators -canonicalize-aliases -flattencfg -mldst-motion -simple-loop-unswitch -globalsplit -simple-loop-unswitch -mergeicmps -slsr -mergeicmps -strip-dead-prototypes -instnamer -load-store-vectorizer -float2int -mldst-motion -coro-early -partially-inline-libcalls -sccp -consthoist -float2int -attributor -constmerge -strip-dead-prototypes -ee-instrument -sccp -early-cse-memssa -strip -instsimplify -early-cse-memssa -die -loop-load-elim -loop-sink -mergereturn -gvn-hoist -consthoist -dce -constprop -sccp -float2int -inject-tli-mappings -guard-widening -slp-vectorizer -loop-unroll-and-jam -lowerswitch -inferattrs -lower-widenable-condition -globaldce -lowerswitch -sccp -lower-constant-intrinsics -float2int -inline -slp-vectorizer -sroa -dse -loop-unroll-and-jam -loop-versioning -tailcallelim -mem2reg -partial-inliner -loop-fusion -infer-address-spaces -mldst-motion -break-crit-edges -loop-predication -loop-unroll -newgvn -callsite-splitting -die -div-rem-pairs -instcombine -loop-data-prefetch -constmerge -float2int -redundant-dbg-inst-elim -simple-loop-unswitch -sroa -simple-loop-unswitch -loop-deletion -callsite-splitting -simplifycfg -loweratomic -loop-sink -inline -memcpyopt -add-discriminators -instnamer -loop-unroll -loop-deletion -globaldce -constprop -inject-tli-mappings -rewrite-statepoints-for-gc -always-inline -loop-simplify -lower-expect -loop-reroll -simple-loop-unswitch -correlated-propagation -coro-split -flattencfg -loweratomic -aggressive-instcombine -scalarizer -loop-idiom -separate-const-offset-from-gep -attributor -die -rewrite-statepoints-for-gc -coro-split -newgvn input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9972067039106147,12.197010517120361,opt -guard-widening -name-anon-globals -name-anon-globals -barrier -strip-nondebug -mem2reg -add-discriminators -pgo-memop-opt -insert-gcov-profiling -sink -die -sancov -strip-dead-prototypes -indvars -mergereturn -rewrite-statepoints-for-gc -loop-versioning-licm -loop-reduce -bdce -mergefunc -adce -flattencfg -guard-widening -break-crit-edges -mldst-motion -instsimplify -instnamer -instsimplify -bdce -instcombine -mergefunc -forceattrs -coro-early -loweratomic -loop-unswitch -infer-address-spaces -loop-fusion -load-store-vectorizer -rewrite-statepoints-for-gc -licm -ipsccp -separate-const-offset-from-gep -post-inline-ee-instrument -mergeicmps -mldst-motion -partial-inliner -attributor -load-store-vectorizer -partially-inline-libcalls -ee-instrument -nary-reassociate -dce -attributor -loop-distribute -functionattrs -name-anon-globals -nary-reassociate -ipsccp -globalsplit -strip-debug-declare -rpo-functionattrs -ee-instrument -strip-debug-declare -licm -inject-tli-mappings -sancov -forceattrs -early-cse-memssa -instnamer -bdce -licm -lower-widenable-condition -deadargelim -always-inline -loop-deletion -partially-inline-libcalls -newgvn -sink -ipsccp -add-discriminators -slp-vectorizer -div-rem-pairs -infer-address-spaces -loop-deletion -correlated-propagation -correlated-propagation -instnamer -loop-idiom -name-anon-globals -deadargelim -mergeicmps -coro-split -irce -tailcallelim -called-value-propagation -lower-expect -licm -loop-versioning -mergereturn -tailcallelim -loop-versioning-licm -aggressive-instcombine -functionattrs -mem2reg -constprop -sroa -lower-expect -mem2reg -libcalls-shrinkwrap -loweratomic -sccp -sccp -ipconstprop -barrier -loop-distribute -loop-versioning -lower-constant-intrinsics -redundant-dbg-inst-elim -scalarizer -aggressive-instcombine -gvn-hoist -speculative-execution -loop-unroll -partial-inliner -simple-loop-unswitch -alignment-from-assumptions -memcpyopt -strip -float2int -loop-vectorize -loop-versioning-licm -loop-vectorize -loop-reduce -rpo-functionattrs -die -loop-versioning-licm -loop-unswitch -licm -loop-reroll -called-value-propagation -always-inline -strip -lower-expect -newgvn -constmerge -loop-versioning-licm -adce -loop-predication -simple-loop-unswitch -consthoist -cross-dso-cfi -licm -adce -lower-widenable-condition -loop-idiom -simplifycfg -barrier -slp-vectorizer -loop-simplify -loop-unroll-and-jam -gvn-hoist -strip-dead-prototypes -inferattrs -loop-data-prefetch -elim-avail-extern -sccp -loweratomic -correlated-propagation -div-rem-pairs -lcssa -add-discriminators -functionattrs -instcombine -constprop -loop-instsimplify -strip-nondebug -separate-const-offset-from-gep -loop-load-elim -sccp -name-anon-globals -float2int -lower-expect -loop-simplify -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9972067039106147,12.215384006500244,opt -scalarizer -loop-distribute -mldst-motion -hotcoldsplit -loop-guard-widening -mergefunc -infer-address-spaces -add-discriminators -ipconstprop -cross-dso-cfi -tailcallelim -deadargelim -dce -instsimplify -loop-deletion -strip-nondebug -ipsccp -constprop -loop-instsimplify -inferattrs -loop-instsimplify -adce -forceattrs -tailcallelim -inferattrs -div-rem-pairs -loop-guard-widening -canonicalize-aliases -infer-address-spaces -always-inline -inject-tli-mappings -name-anon-globals -elim-avail-extern -scalarizer -strip-nondebug -elim-avail-extern -partial-inliner -coro-cleanup -irce -deadargelim -loop-reroll -ipconstprop -loop-simplify -redundant-dbg-inst-elim -loop-reroll -mergeicmps -scalarizer -lower-guard-intrinsic -loop-instsimplify -loop-deletion -irce -barrier -loop-unswitch -lower-expect -name-anon-globals -lower-widenable-condition -infer-address-spaces -mem2reg -loop-simplifycfg -elim-avail-extern -rewrite-statepoints-for-gc -adce -libcalls-shrinkwrap -post-inline-ee-instrument -reg2mem -bdce -strip -loop-instsimplify -newgvn -lower-expect -pgo-memop-opt -loop-simplify -globalopt -coro-split -sancov -instsimplify -constprop -loop-vectorize -mem2reg -redundant-dbg-inst-elim -slp-vectorizer -partially-inline-libcalls -callsite-splitting -constmerge -loop-simplify -loop-interchange -loop-unroll -loop-load-elim -inline -loop-load-elim -rewrite-statepoints-for-gc -memcpyopt -rpo-functionattrs -scalarizer -sancov -strip-dead-prototypes -constmerge -loop-sink -name-anon-globals -constmerge -globalsplit -lower-expect -nary-reassociate -loop-versioning-licm -lower-guard-intrinsic -adce -partial-inliner -loop-vectorize -called-value-propagation -partial-inliner -lower-guard-intrinsic -strip -loop-simplifycfg -lower-expect -mem2reg -simplifycfg -coro-cleanup -nary-reassociate -loop-simplify -barrier -loop-guard-widening -lower-matrix-intrinsics -bdce -deadargelim -loop-fusion -cross-dso-cfi -strip-nondebug -separate-const-offset-from-gep -sink -loop-vectorize -cross-dso-cfi -loop-unroll -correlated-propagation -loop-simplifycfg -lcssa -ipsccp -load-store-vectorizer -loop-reroll -simplifycfg -coro-elide -consthoist -gvn-hoist -elim-avail-extern -instsimplify -jump-threading -instsimplify -sancov -deadargelim -die -instnamer -add-discriminators -alignment-from-assumptions -sink -forceattrs -coro-early -dse -ipconstprop -loop-reroll -aggressive-instcombine -loop-reroll -globalsplit -mergeicmps -gvn -strip-debug-declare -sroa -instnamer -irce -sink -newgvn -add-discriminators -loop-deletion -strip-nondebug -instsimplify -loop-unroll -barrier -guard-widening -name-anon-globals -mergereturn -loop-vectorize -early-cse-memssa -die -bdce -reassociate -bdce -pgo-memop-opt -cross-dso-cfi -loop-interchange -mldst-motion -lower-widenable-condition -adce -add-discriminators -strip-dead-prototypes -lower-constant-intrinsics -attributor -simple-loop-unswitch -deadargelim -lowerswitch -loweratomic -callsite-splitting -gvn-hoist -flattencfg -speculative-execution -loop-unswitch -lowerswitch -mem2reg -loop-simplify -slsr -lcssa -canonicalize-aliases -canonicalize-aliases -slsr -always-inline -cross-dso-cfi -lowerinvoke -indvars -early-cse-memssa -callsite-splitting -globalsplit -lower-guard-intrinsic -coro-elide -insert-gcov-profiling -lower-widenable-condition -gvn-hoist -elim-avail-extern -dce -loweratomic -lower-constant-intrinsics -nary-reassociate -add-discriminators -adce -prune-eh -gvn -insert-gcov-profiling -cross-dso-cfi -memcpyopt -ipsccp -called-value-propagation -reassociate -irce -pgo-memop-opt -licm -loop-unroll-and-jam -deadargelim -dse -lower-widenable-condition -loop-simplify -lowerinvoke -memcpyopt -bdce -sancov -instsimplify -forceattrs -strip-dead-prototypes -consthoist -mem2reg -redundant-dbg-inst-elim -memcpyopt -inline -hotcoldsplit -jump-threading -gvn-hoist -mergeicmps -gvn -mem2reg -name-anon-globals -lower-expect -loop-sink -strip-nondebug -ee-instrument -attributor -ipsccp -licm -pgo-memop-opt -post-inline-ee-instrument -sink -loop-reduce -early-cse-memssa -loop-guard-widening -licm -break-crit-edges -lower-constant-intrinsics -canonicalize-aliases -loop-data-prefetch -coro-early -instnamer -simplifycfg -infer-address-spaces -instcombine -lowerswitch -coro-early -instsimplify -loop-versioning -add-discriminators -slsr -partial-inliner -barrier -coro-cleanup -lowerswitch -reassociate -licm -loop-unroll -loop-sink -strip-dead-prototypes -nary-reassociate -deadargelim -globaldce -simplifycfg -argpromotion -libcalls-shrinkwrap -prune-eh -loop-deletion -infer-address-spaces -early-cse-memssa -loop-unroll -infer-address-spaces -attributor -add-discriminators -flattencfg -load-store-vectorizer -lower-constant-intrinsics -loop-predication -early-cse-memssa -ipsccp -lowerswitch -speculative-execution -newgvn -sancov -flattencfg -reg2mem -ipsccp -libcalls-shrinkwrap -loop-idiom -lower-widenable-condition -loop-idiom -argpromotion -functionattrs -memcpyopt -mergefunc -loop-sink -globalsplit -always-inline -inject-tli-mappings -ee-instrument -loop-distribute -constprop -memcpyopt -simplifycfg -guard-widening -globaldce -ee-instrument -lowerinvoke -loop-sink -inject-tli-mappings -consthoist -rpo-functionattrs -infer-address-spaces -float2int -lower-guard-intrinsic -tailcallelim -correlated-propagation -loop-unroll-and-jam -pgo-memop-opt -scalarizer -load-store-vectorizer -instnamer -insert-gcov-profiling -alignment-from-assumptions -globalsplit -inject-tli-mappings -cross-dso-cfi -slsr -tailcallelim -dce -loop-data-prefetch -callsite-splitting -mergeicmps -callsite-splitting -globalopt -dse -pgo-memop-opt -aggressive-instcombine -irce -div-rem-pairs -lowerswitch -dce -post-inline-ee-instrument -libcalls-shrinkwrap -ipconstprop -lcssa -callsite-splitting -attributor -loop-idiom -mem2reg input.bc -o output.bc -benchmark://cBench-v1/adpcm,0.9999999999999999,12.475622177124023,opt -loweratomic -prune-eh -guard-widening -prune-eh -constmerge -gvn-hoist -gvn -coro-cleanup -load-store-vectorizer -scalarizer -jump-threading -slp-vectorizer -lower-guard-intrinsic -loop-reduce -nary-reassociate -mem2reg -lower-matrix-intrinsics -tailcallelim -constmerge -aggressive-instcombine -forceattrs -name-anon-globals -licm -constprop -consthoist -loop-deletion -pgo-memop-opt -div-rem-pairs -loop-simplifycfg -argpromotion -inject-tli-mappings -globalopt -slsr -loop-deletion -gvn -coro-elide -hotcoldsplit -instcombine -infer-address-spaces -loop-guard-widening -loop-vectorize -loop-sink -name-anon-globals -elim-avail-extern -redundant-dbg-inst-elim -loop-versioning -break-crit-edges -scalarizer -elim-avail-extern -irce -functionattrs -constprop -coro-cleanup -lower-constant-intrinsics -coro-early -mem2reg -correlated-propagation -sink -early-cse-memssa -early-cse-memssa -add-discriminators -dse -loop-distribute -libcalls-shrinkwrap -constprop -loop-instsimplify -loop-distribute -strip-dead-prototypes -strip-nondebug -libcalls-shrinkwrap -lower-matrix-intrinsics -coro-elide -tailcallelim -callsite-splitting -lowerswitch -libcalls-shrinkwrap -loop-simplify -lcssa -gvn-hoist -flattencfg -instnamer -load-store-vectorizer -dse -infer-address-spaces -loop-unswitch -prune-eh -forceattrs -alignment-from-assumptions -consthoist -guard-widening -lower-matrix-intrinsics -redundant-dbg-inst-elim -coro-cleanup -scalarizer -simple-loop-unswitch -rewrite-statepoints-for-gc -coro-early -sink -lcssa -gvn-hoist -loop-distribute -loop-deletion -insert-gcov-profiling -loop-distribute -loop-interchange -globalsplit -add-discriminators -loop-simplify -simplifycfg -prune-eh -always-inline -lower-guard-intrinsic -irce -simplifycfg -strip-debug-declare -argpromotion -strip -instcombine -sancov -gvn-hoist -consthoist -lowerinvoke -globalopt -loop-reduce -consthoist -argpromotion -rpo-functionattrs -deadargelim -jump-threading -barrier -functionattrs -speculative-execution -argpromotion -loop-distribute -bdce -mergereturn -ipconstprop -loop-fusion -loop-idiom -loop-guard-widening -mldst-motion -name-anon-globals -post-inline-ee-instrument -newgvn -functionattrs -lower-matrix-intrinsics -float2int -loop-sink -post-inline-ee-instrument -loop-idiom -scalarizer -always-inline -name-anon-globals -coro-early -strip -gvn -load-store-vectorizer -loop-reduce -flattencfg -inferattrs -reg2mem -aggressive-instcombine -bdce -argpromotion -memcpyopt -lcssa -loop-distribute -infer-address-spaces -add-discriminators -coro-split -lower-widenable-condition -strip-dead-prototypes -lower-guard-intrinsic -always-inline -add-discriminators -called-value-propagation -bdce -mergefunc -instnamer -loop-reroll -tailcallelim -div-rem-pairs -loweratomic -reg2mem -sancov -coro-elide -ee-instrument -sroa -argpromotion -simplifycfg -simplifycfg -partially-inline-libcalls -inferattrs -gvn -sancov -strip-nondebug -lcssa -licm -tailcallelim -ee-instrument -canonicalize-aliases -loop-fusion -functionattrs -lowerswitch -always-inline -alignment-from-assumptions -loop-simplify -lowerinvoke -separate-const-offset-from-gep -lowerswitch -lcssa -gvn -alignment-from-assumptions -sink -aggressive-instcombine -break-crit-edges -scalarizer -float2int -indvars -gvn -ipconstprop -loop-guard-widening -nary-reassociate -instcombine -die -loop-unswitch -loop-idiom -pgo-memop-opt -consthoist -loop-unroll-and-jam -slsr -attributor -adce -gvn-hoist -slp-vectorizer -strip -mem2reg -lower-widenable-condition -strip-nondebug -licm -coro-elide -ee-instrument -consthoist -constprop -simplifycfg -functionattrs -coro-cleanup -alignment-from-assumptions -called-value-propagation -slsr -functionattrs -loop-reroll -loop-simplifycfg -forceattrs -cross-dso-cfi -loop-data-prefetch -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0000000000000002,12.368368148803711,opt -libcalls-shrinkwrap -globaldce -globalopt -loop-sink -callsite-splitting -post-inline-ee-instrument -mergeicmps -jump-threading -loop-instsimplify -mldst-motion -lowerswitch -sccp -sccp -elim-avail-extern -gvn -add-discriminators -ipsccp -loop-versioning-licm -insert-gcov-profiling -mergeicmps -coro-cleanup -bdce -constprop -strip -loop-fusion -callsite-splitting -early-cse-memssa -mergefunc -loop-instsimplify -strip-nondebug -forceattrs -forceattrs -mergereturn -strip-dead-prototypes -coro-split -aggressive-instcombine -reassociate -coro-cleanup -loop-simplifycfg -sink -load-store-vectorizer -constprop -loop-unswitch -loop-distribute -lower-matrix-intrinsics -float2int -pgo-memop-opt -loop-unroll -loop-unroll-and-jam -guard-widening -reg2mem -ee-instrument -always-inline -strip -slp-vectorizer -flattencfg -deadargelim -called-value-propagation -globalopt -mldst-motion -consthoist -infer-address-spaces -loop-fusion -infer-address-spaces -post-inline-ee-instrument -partial-inliner -loop-sink -deadargelim -sroa -lcssa -loop-versioning-licm -simplifycfg -simplifycfg -load-store-vectorizer -deadargelim -partial-inliner -loop-fusion -redundant-dbg-inst-elim -partial-inliner -partially-inline-libcalls -elim-avail-extern -constprop -loop-deletion -memcpyopt -lowerswitch -loop-predication -strip-debug-declare -lower-guard-intrinsic -dce -indvars -licm -deadargelim -coro-early -partially-inline-libcalls -functionattrs -loop-instsimplify -loop-idiom -lowerswitch -separate-const-offset-from-gep -instsimplify -redundant-dbg-inst-elim -loop-deletion -scalarizer -instcombine -memcpyopt -irce -lower-guard-intrinsic -indvars -loop-distribute -mem2reg -gvn -aggressive-instcombine -loop-interchange -always-inline -rewrite-statepoints-for-gc -lower-widenable-condition -partial-inliner -sccp -alignment-from-assumptions -gvn-hoist -attributor -dse -bdce -insert-gcov-profiling -argpromotion -gvn -loop-distribute -loop-simplify -die -instnamer -memcpyopt -coro-elide -coro-split -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0027932960893855,12.703411340713501,opt -irce -consthoist -separate-const-offset-from-gep -sroa -add-discriminators -inferattrs -sroa -loop-data-prefetch -forceattrs -partially-inline-libcalls -loop-fusion -mldst-motion -flattencfg -loop-distribute -simplifycfg -callsite-splitting -separate-const-offset-from-gep -sccp -lower-constant-intrinsics -instcombine -indvars -loop-vectorize -add-discriminators -nary-reassociate -strip-debug-declare -float2int -loop-distribute -insert-gcov-profiling -jump-threading -reassociate -flattencfg -sink -add-discriminators -memcpyopt -strip-dead-prototypes -loop-vectorize -ipconstprop -loop-vectorize -lower-constant-intrinsics -prune-eh -correlated-propagation -loop-idiom -loop-fusion -coro-cleanup -lowerswitch -cross-dso-cfi -adce -strip-nondebug -speculative-execution -mergefunc -lower-widenable-condition -infer-address-spaces -alignment-from-assumptions -sccp -gvn -newgvn -strip-debug-declare -loop-sink -strip -div-rem-pairs -guard-widening -strip-debug-declare -slsr -strip-dead-prototypes -strip -loop-interchange -always-inline -mergefunc -sccp -gvn -tailcallelim -consthoist -separate-const-offset-from-gep -instcombine input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.005586592178771,12.421398878097534,opt -loop-interchange -mldst-motion -instcombine -speculative-execution -loop-load-elim -loop-versioning -strip-debug-declare -partially-inline-libcalls -simplifycfg -libcalls-shrinkwrap -globaldce -globalopt -barrier -prune-eh -infer-address-spaces -reassociate -loop-unroll -callsite-splitting -reg2mem -loop-load-elim -dse -called-value-propagation -loop-versioning-licm -infer-address-spaces -mergefunc -loop-interchange -nary-reassociate -die -loop-data-prefetch -coro-early -loop-vectorize -constprop -newgvn -scalarizer -mergefunc -loop-guard-widening -globalsplit -loop-unswitch -correlated-propagation -partially-inline-libcalls -early-cse-memssa -strip-nondebug -sancov -loop-versioning -speculative-execution -newgvn -alignment-from-assumptions -mergereturn -licm -coro-split -mergeicmps -newgvn -lower-widenable-condition -strip-nondebug -redundant-dbg-inst-elim -globaldce -tailcallelim -jump-threading -coro-elide -instnamer -redundant-dbg-inst-elim -break-crit-edges -add-discriminators -mergefunc -argpromotion -add-discriminators -newgvn -tailcallelim -ipconstprop -lowerinvoke -attributor -insert-gcov-profiling -load-store-vectorizer -loop-versioning -indvars -lower-expect -simplifycfg -instsimplify -constmerge -loop-distribute -loop-load-elim -sink -cross-dso-cfi -cross-dso-cfi -loop-simplify -attributor -loop-reduce -loop-idiom -argpromotion -pgo-memop-opt -loop-load-elim -partial-inliner -mem2reg -instcombine -coro-early -mem2reg -gvn-hoist -sink -div-rem-pairs -tailcallelim -sroa -reassociate -callsite-splitting -aggressive-instcombine -aggressive-instcombine -loop-reroll -memcpyopt -ee-instrument -div-rem-pairs -break-crit-edges -globaldce -tailcallelim -early-cse-memssa -die -loop-reroll -functionattrs -strip -loop-distribute -load-store-vectorizer -div-rem-pairs -infer-address-spaces -slp-vectorizer -canonicalize-aliases -coro-cleanup -load-store-vectorizer -strip-debug-declare -cross-dso-cfi -loop-simplifycfg -gvn-hoist -sroa -simplifycfg -loop-versioning-licm -loop-vectorize -nary-reassociate -forceattrs -lower-matrix-intrinsics -barrier -partially-inline-libcalls -flattencfg -aggressive-instcombine -flattencfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.005586592178771,12.565289497375488,opt -coro-cleanup -loop-versioning-licm -libcalls-shrinkwrap -loop-versioning-licm -redundant-dbg-inst-elim -lower-guard-intrinsic -loop-simplifycfg -slp-vectorizer -functionattrs -lower-widenable-condition -nary-reassociate -loop-idiom -adce -loop-instsimplify -lowerinvoke -constprop -cross-dso-cfi -globaldce -argpromotion -loop-unroll-and-jam -strip-nondebug -irce -strip -dse -load-store-vectorizer -loop-fusion -pgo-memop-opt -canonicalize-aliases -memcpyopt -load-store-vectorizer -slp-vectorizer -canonicalize-aliases -elim-avail-extern -separate-const-offset-from-gep -reassociate -alignment-from-assumptions -flattencfg -lcssa -globalopt -post-inline-ee-instrument -bdce -coro-split -sink -rpo-functionattrs -loop-reroll -reg2mem -consthoist -lower-matrix-intrinsics -strip-debug-declare -simplifycfg -alignment-from-assumptions -separate-const-offset-from-gep -always-inline -loop-distribute -loop-predication -loop-simplifycfg -deadargelim -lowerinvoke -loop-data-prefetch -loop-load-elim -libcalls-shrinkwrap -lcssa -loop-load-elim -float2int -scalarizer -scalarizer -nary-reassociate -lower-matrix-intrinsics -mergereturn -lower-expect -name-anon-globals -lowerswitch -ipconstprop -mergefunc -loop-reroll -coro-cleanup -guard-widening -loop-simplify -alignment-from-assumptions -div-rem-pairs -barrier -partial-inliner -loop-fusion -gvn-hoist -licm -strip-debug-declare -sink -aggressive-instcombine -loop-deletion -slsr -ee-instrument -lower-constant-intrinsics -mergereturn -insert-gcov-profiling -bdce -memcpyopt -simplifycfg -loop-versioning -globalopt -elim-avail-extern -loop-unswitch -prune-eh -ipconstprop -irce -inject-tli-mappings -lowerinvoke -rewrite-statepoints-for-gc -dse -forceattrs -sink -loop-fusion -alignment-from-assumptions -loop-unroll-and-jam -libcalls-shrinkwrap -scalarizer -instcombine -post-inline-ee-instrument -lower-guard-intrinsic -redundant-dbg-inst-elim -gvn -strip-debug-declare -cross-dso-cfi -instcombine -called-value-propagation -newgvn -lowerswitch -functionattrs -early-cse-memssa -inject-tli-mappings -mergeicmps -indvars -sancov -infer-address-spaces -die -loop-versioning-licm -div-rem-pairs -loop-vectorize -early-cse-memssa -ee-instrument -gvn-hoist -ipconstprop -alignment-from-assumptions -instcombine -constmerge -alignment-from-assumptions -gvn-hoist -dse -functionattrs -reg2mem -strip-debug-declare -lowerswitch -irce -memcpyopt -aggressive-instcombine -early-cse-memssa -globalopt -strip -loop-simplifycfg -loop-deletion -rewrite-statepoints-for-gc -partial-inliner -cross-dso-cfi -newgvn -sccp -post-inline-ee-instrument -correlated-propagation -adce -alignment-from-assumptions -deadargelim -loop-instsimplify -coro-split -attributor -strip-nondebug -ipsccp -break-crit-edges -insert-gcov-profiling -ipconstprop -sroa -elim-avail-extern -bdce -partial-inliner -loop-simplifycfg -jump-threading -inject-tli-mappings -lowerinvoke -loop-unswitch -lower-expect -attributor -nary-reassociate -globalopt -redundant-dbg-inst-elim -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/bitcount,0.9867256637168141,12.089999437332153,opt -canonicalize-aliases -globaldce -newgvn -callsite-splitting -sancov -globalsplit -sroa -scalarizer -inject-tli-mappings -die -mergeicmps -coro-split -loop-deletion -jump-threading -strip -coro-cleanup -infer-address-spaces -flattencfg -inferattrs -loop-idiom -lower-matrix-intrinsics -alignment-from-assumptions -indvars -mergereturn -globalopt -lowerswitch -lowerinvoke -sccp -inferattrs -jump-threading -mem2reg -strip-debug-declare -hotcoldsplit -simplifycfg -loop-predication -coro-cleanup -jump-threading -partially-inline-libcalls -mergeicmps -strip-dead-prototypes -guard-widening -simplifycfg -loop-unroll -memcpyopt -memcpyopt -instcombine -sccp -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/bitcount,0.991150442477876,12.189716339111328,opt -barrier -reassociate -sancov -partial-inliner -adce -globalsplit -gvn -cross-dso-cfi -inject-tli-mappings -nary-reassociate -coro-elide -loop-vectorize -loop-data-prefetch -mldst-motion -inferattrs -mergeicmps -add-discriminators -loop-fusion -mergefunc -ipsccp -loop-reduce -licm -coro-cleanup -strip-nondebug -loop-reroll -newgvn -deadargelim -coro-elide -barrier -load-store-vectorizer -gvn -lower-guard-intrinsic -always-inline -loop-reduce -always-inline -mergeicmps -lower-guard-intrinsic -die -alignment-from-assumptions -mergereturn -constprop -loop-idiom -correlated-propagation -ipconstprop -globaldce -scalarizer -gvn -partial-inliner -loop-fusion -coro-cleanup -functionattrs -partially-inline-libcalls -infer-address-spaces -mldst-motion -loop-unswitch -strip-nondebug -deadargelim -libcalls-shrinkwrap -inferattrs -rpo-functionattrs -loop-predication -loop-data-prefetch -post-inline-ee-instrument -loop-unswitch -newgvn -callsite-splitting -loop-deletion -ipsccp -inferattrs -early-cse-memssa -loop-unswitch -instnamer -lower-matrix-intrinsics -instsimplify -elim-avail-extern -loop-simplifycfg -ipsccp -attributor -simplifycfg -licm -float2int -instnamer -div-rem-pairs -loop-sink -reassociate -loop-unroll -ee-instrument -sroa -called-value-propagation -newgvn -mergefunc -bdce -loop-guard-widening -pgo-memop-opt -rpo-functionattrs -die -consthoist -loop-distribute -loop-load-elim -div-rem-pairs -nary-reassociate -nary-reassociate -rewrite-statepoints-for-gc -barrier -speculative-execution -instsimplify -sink -lower-widenable-condition -prune-eh -coro-elide -jump-threading -attributor -constprop -float2int -coro-elide -reassociate -loop-distribute -globalsplit -load-store-vectorizer -rpo-functionattrs -licm -strip-dead-prototypes -separate-const-offset-from-gep -rewrite-statepoints-for-gc -dse -constprop -licm -strip -loop-predication -inject-tli-mappings -aggressive-instcombine -constmerge -loop-versioning -licm -simple-loop-unswitch -elim-avail-extern -constmerge -loop-load-elim -dce -rpo-functionattrs -sancov -strip-nondebug -float2int -indvars -irce -strip -loop-reroll -gvn-hoist -infer-address-spaces -pgo-memop-opt -scalarizer -prune-eh -bdce -loop-instsimplify -rpo-functionattrs -ee-instrument -loop-idiom -redundant-dbg-inst-elim -scalarizer -aggressive-instcombine -partially-inline-libcalls -post-inline-ee-instrument -loop-unroll-and-jam -consthoist -scalarizer -indvars -lower-guard-intrinsic -lower-matrix-intrinsics -flattencfg -newgvn -globalopt -instnamer -irce -slsr -callsite-splitting -loop-distribute -ee-instrument -lowerswitch -rewrite-statepoints-for-gc -dce -flattencfg -canonicalize-aliases -load-store-vectorizer -insert-gcov-profiling -name-anon-globals -ipconstprop -loop-deletion -bdce -strip -instcombine -lowerswitch -pgo-memop-opt -loop-guard-widening -functionattrs -name-anon-globals -loop-unroll -instcombine -float2int -slsr -irce -loop-fusion -adce -loop-instsimplify -lowerinvoke -loop-reduce -loop-instsimplify -post-inline-ee-instrument -instnamer -prune-eh -loop-simplify -consthoist -canonicalize-aliases -guard-widening -lowerswitch -partially-inline-libcalls -elim-avail-extern -coro-cleanup -mergeicmps -loop-unswitch -mem2reg -licm -inferattrs -name-anon-globals -infer-address-spaces -loop-simplify -loop-instsimplify -elim-avail-extern -gvn-hoist -jump-threading -loop-reduce -functionattrs -globalsplit -add-discriminators -loop-unroll -loop-predication -slsr -loop-unswitch -instsimplify -newgvn -adce -constprop -callsite-splitting -deadargelim -constmerge -adce -flattencfg -dce -jump-threading -lower-widenable-condition -lowerswitch -licm -loop-data-prefetch -lower-constant-intrinsics -loop-vectorize -loop-reduce -strip -memcpyopt -loweratomic -constprop -ipsccp -div-rem-pairs -aggressive-instcombine -strip -correlated-propagation -loop-load-elim -ipsccp -deadargelim -strip -load-store-vectorizer -loop-distribute -deadargelim -lcssa -loop-reduce -strip-debug-declare -called-value-propagation -canonicalize-aliases -dse -scalarizer -loop-instsimplify -loop-vectorize -jump-threading -mergereturn -flattencfg -loop-simplifycfg -inject-tli-mappings -constprop -scalarizer -simple-loop-unswitch -sccp -insert-gcov-profiling -separate-const-offset-from-gep -mergeicmps -loop-guard-widening -loop-unroll -loop-deletion -loop-guard-widening -constmerge -bdce -libcalls-shrinkwrap -loop-distribute -simple-loop-unswitch -mergefunc -newgvn -loop-versioning-licm -always-inline -lowerswitch -loop-distribute -elim-avail-extern -newgvn -gvn-hoist -cross-dso-cfi -rpo-functionattrs -libcalls-shrinkwrap -dce -called-value-propagation -adce -mldst-motion -sroa -coro-cleanup -rewrite-statepoints-for-gc -insert-gcov-profiling -ee-instrument -simple-loop-unswitch -attributor -forceattrs -float2int -inject-tli-mappings -loop-data-prefetch -slsr -strip-nondebug -prune-eh -attributor -mergereturn -gvn -slsr -canonicalize-aliases -post-inline-ee-instrument -always-inline -bdce -licm -speculative-execution -tailcallelim -lower-matrix-intrinsics -coro-cleanup -loop-unroll -ipconstprop -inline -separate-const-offset-from-gep -loop-instsimplify -scalarizer -consthoist -nary-reassociate -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,0.9933628318584071,15.541126012802124,opt -hotcoldsplit -globaldce -adce -loop-predication -ee-instrument -adce -always-inline -div-rem-pairs -loop-reduce -mergefunc -constprop -rewrite-statepoints-for-gc -gvn-hoist -sroa -nary-reassociate -coro-early -lower-guard-intrinsic -elim-avail-extern -sink -strip-dead-prototypes -loop-idiom -guard-widening -lowerswitch -mergefunc -inject-tli-mappings -redundant-dbg-inst-elim -gvn-hoist -separate-const-offset-from-gep -loop-load-elim -nary-reassociate -coro-cleanup -nary-reassociate -strip-nondebug -mldst-motion -globalopt -name-anon-globals -jump-threading -div-rem-pairs -lower-guard-intrinsic -lower-guard-intrinsic -guard-widening -strip-debug-declare -barrier -loop-reroll -reg2mem -strip -rpo-functionattrs -dce -ee-instrument -gvn-hoist -deadargelim -globalopt -loop-interchange -loop-interchange -sancov -div-rem-pairs -loop-guard-widening -loop-simplify -jump-threading -sink -loweratomic -lower-guard-intrinsic -mergeicmps -strip -lower-guard-intrinsic -inject-tli-mappings -jump-threading -loop-predication -infer-address-spaces -indvars -loop-simplifycfg -loop-vectorize -sink -loop-deletion -loop-vectorize -instcombine -lower-constant-intrinsics -strip -loop-versioning -gvn-hoist -partial-inliner -reassociate -inferattrs -loop-vectorize -redundant-dbg-inst-elim -lower-expect -break-crit-edges -loop-versioning-licm -forceattrs -strip-nondebug -inject-tli-mappings -reg2mem -loop-simplify -loop-predication -lower-expect -instnamer -flattencfg -instsimplify -cross-dso-cfi -barrier -loop-vectorize -tailcallelim -die -lcssa -instnamer -instsimplify -infer-address-spaces -inferattrs -argpromotion -loop-sink -flattencfg -memcpyopt -correlated-propagation -loop-fusion -insert-gcov-profiling -ipsccp -loop-simplify -redundant-dbg-inst-elim -mergeicmps -slsr -loop-data-prefetch -reg2mem -instcombine -lowerinvoke -die -gvn-hoist -globalsplit -strip-dead-prototypes -strip-nondebug -callsite-splitting -sroa -inject-tli-mappings -jump-threading -mldst-motion -loop-simplify -loop-simplify -guard-widening -loop-versioning-licm -loop-interchange -memcpyopt -cross-dso-cfi -insert-gcov-profiling -forceattrs -simplifycfg -mldst-motion -scalarizer -loop-vectorize -loweratomic -die -hotcoldsplit -consthoist -called-value-propagation -irce -constmerge -name-anon-globals -redundant-dbg-inst-elim -loop-distribute -prune-eh -loop-predication -insert-gcov-profiling -loop-simplifycfg -loweratomic -tailcallelim -instcombine -mergeicmps -div-rem-pairs -forceattrs -elim-avail-extern -constprop -lowerswitch -inline -lowerswitch -globaldce -forceattrs -rewrite-statepoints-for-gc -alignment-from-assumptions -irce -loop-fusion -indvars -loop-predication -sccp -canonicalize-aliases -prune-eh -functionattrs -nary-reassociate -loop-reduce -coro-cleanup -instcombine -lower-guard-intrinsic -irce -slsr -prune-eh -constprop -cross-dso-cfi -deadargelim -alignment-from-assumptions -name-anon-globals -prune-eh -early-cse-memssa -prune-eh -slp-vectorizer -early-cse-memssa -ee-instrument -loop-simplifycfg -libcalls-shrinkwrap -separate-const-offset-from-gep -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,0.9955752212389379,12.356438875198364,opt -loop-predication -gvn-hoist -add-discriminators -prune-eh -loop-vectorize -globalsplit -callsite-splitting -mem2reg -loop-interchange -loop-simplify -infer-address-spaces -speculative-execution -float2int -coro-early -mergeicmps -cross-dso-cfi -loop-interchange -adce -loop-unroll-and-jam -instnamer -hotcoldsplit -coro-cleanup -lower-expect -loop-predication -infer-address-spaces -float2int -gvn -break-crit-edges -instnamer -loop-predication -called-value-propagation -argpromotion -callsite-splitting -instnamer -loop-interchange -loop-deletion -lower-guard-intrinsic -loop-predication -indvars -callsite-splitting -libcalls-shrinkwrap -elim-avail-extern -strip -pgo-memop-opt -callsite-splitting -aggressive-instcombine -sancov -loop-simplifycfg -forceattrs -sccp -lower-matrix-intrinsics -libcalls-shrinkwrap -pgo-memop-opt -gvn -slsr -redundant-dbg-inst-elim -strip-dead-prototypes -loop-distribute -coro-early -sroa -inferattrs -redundant-dbg-inst-elim -infer-address-spaces -correlated-propagation -loop-reroll -coro-split -strip-dead-prototypes -simple-loop-unswitch -pgo-memop-opt -strip -loop-distribute -instcombine -div-rem-pairs -consthoist -canonicalize-aliases -loop-sink -loop-guard-widening -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,0.995575221238938,12.109670162200928,opt -lowerswitch -newgvn -redundant-dbg-inst-elim -loop-distribute -rewrite-statepoints-for-gc -canonicalize-aliases -globaldce -rpo-functionattrs -loop-distribute -loop-predication -coro-early -strip -irce -lowerinvoke -lowerswitch -globalopt -coro-cleanup -loop-unroll -argpromotion -loop-versioning -speculative-execution -die -add-discriminators -sancov -speculative-execution -strip-debug-declare -sancov -loop-vectorize -consthoist -gvn -globalopt -loop-interchange -flattencfg -loop-versioning -libcalls-shrinkwrap -ee-instrument -loop-fusion -loop-unroll-and-jam -infer-address-spaces -libcalls-shrinkwrap -globalopt -globaldce -dce -consthoist -loop-unroll -loop-interchange -coro-split -coro-elide -globaldce -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0022123893805308,12.428935766220093,opt -aggressive-instcombine -strip-nondebug -loop-instsimplify -scalarizer -loop-unroll -adce -infer-address-spaces -prune-eh -deadargelim -scalarizer -lower-matrix-intrinsics -coro-elide -name-anon-globals -loop-versioning-licm -tailcallelim -loweratomic -tailcallelim -simplifycfg -loop-simplifycfg -insert-gcov-profiling -gvn-hoist -coro-split -guard-widening -slsr -loop-vectorize -scalarizer -reg2mem -functionattrs -insert-gcov-profiling -inferattrs -slp-vectorizer -early-cse-memssa -irce -memcpyopt -dce -libcalls-shrinkwrap -aggressive-instcombine -dse -ipconstprop -consthoist -loop-guard-widening -lcssa -loop-deletion -loop-sink -reg2mem -mergefunc -inject-tli-mappings -div-rem-pairs -sink -always-inline -called-value-propagation -sink -float2int -coro-elide -insert-gcov-profiling -attributor -sink -coro-split -gvn-hoist -mergereturn -argpromotion -argpromotion -lower-expect -partial-inliner -globalsplit -lower-expect -licm -loop-instsimplify -die -redundant-dbg-inst-elim -lower-constant-intrinsics -mem2reg -elim-avail-extern -inferattrs -lower-matrix-intrinsics -lower-matrix-intrinsics -guard-widening -mergereturn -loop-unroll -lower-widenable-condition -loop-predication -strip -loop-versioning-licm -partial-inliner -insert-gcov-profiling -inline -scalarizer -adce -div-rem-pairs -indvars -rewrite-statepoints-for-gc -constprop -loop-data-prefetch -memcpyopt -loop-vectorize -mldst-motion -loweratomic -adce -lower-constant-intrinsics -sroa -loop-simplifycfg -jump-threading -licm -mldst-motion -indvars -simple-loop-unswitch -rpo-functionattrs -slp-vectorizer -constmerge -consthoist -loop-idiom -loop-guard-widening -pgo-memop-opt -functionattrs -constmerge -aggressive-instcombine -ee-instrument -nary-reassociate -newgvn -gvn-hoist -loop-distribute -div-rem-pairs -pgo-memop-opt -die -redundant-dbg-inst-elim -functionattrs -cross-dso-cfi -canonicalize-aliases -constprop -elim-avail-extern -mergefunc -rewrite-statepoints-for-gc -instcombine -loop-simplify -mem2reg -loop-data-prefetch -instnamer -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0088495575221237,12.064459800720215,opt -loop-distribute -aggressive-instcombine -float2int -float2int -add-discriminators -functionattrs -float2int -libcalls-shrinkwrap -lowerswitch -consthoist -simple-loop-unswitch -slp-vectorizer -functionattrs -slsr -loop-sink -nary-reassociate -die -loop-deletion -memcpyopt -loop-deletion -break-crit-edges -lowerinvoke -inject-tli-mappings -loop-deletion -loop-fusion -barrier -memcpyopt -newgvn -loop-instsimplify -flattencfg -sink -forceattrs -irce -rewrite-statepoints-for-gc -barrier -break-crit-edges -coro-elide -lower-matrix-intrinsics -libcalls-shrinkwrap -name-anon-globals -slsr -callsite-splitting -lower-guard-intrinsic -loop-fusion -insert-gcov-profiling -partial-inliner -consthoist -prune-eh -ee-instrument -constmerge -lowerswitch -inject-tli-mappings -sroa -gvn-hoist -mergeicmps -tailcallelim -loop-guard-widening -indvars -deadargelim -tailcallelim -loop-interchange -globalsplit -lowerswitch -loop-idiom -redundant-dbg-inst-elim -coro-cleanup -sancov -loop-unroll -lower-widenable-condition -add-discriminators -barrier -scalarizer -nary-reassociate -constmerge -jump-threading -post-inline-ee-instrument -inject-tli-mappings -instcombine -coro-elide -callsite-splitting -rpo-functionattrs -jump-threading -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0088495575221237,12.131162881851196,opt -sancov -coro-split -loop-idiom -libcalls-shrinkwrap -loweratomic -lower-widenable-condition -globalopt -speculative-execution -flattencfg -strip-dead-prototypes -consthoist -newgvn -strip-nondebug -callsite-splitting -inject-tli-mappings -prune-eh -irce -loop-unswitch -loop-simplifycfg -simplifycfg -loop-fusion -rewrite-statepoints-for-gc -deadargelim -lowerswitch -nary-reassociate -globalsplit -loop-versioning-licm -die -licm -lowerinvoke -speculative-execution -loop-guard-widening -newgvn -strip-dead-prototypes -newgvn -strip-nondebug -dse -coro-early -loop-unroll-and-jam -licm -coro-split -loop-idiom -constmerge -adce -partial-inliner -float2int -speculative-execution -globalsplit -slsr -loop-unroll-and-jam -prune-eh -float2int -instcombine -loop-reduce -loop-simplify -loop-unroll -newgvn -loop-guard-widening -dse -sroa -loop-fusion -ipconstprop -scalarizer -indvars -loop-unroll-and-jam -inline -flattencfg -sink -coro-elide -speculative-execution -lower-guard-intrinsic -sancov -gvn-hoist -coro-split -loop-predication -barrier -dse -jump-threading -loop-reduce -separate-const-offset-from-gep -loop-versioning-licm -flattencfg -instsimplify -called-value-propagation -instnamer -strip-dead-prototypes -irce -canonicalize-aliases -lower-matrix-intrinsics -inject-tli-mappings -infer-address-spaces -name-anon-globals -simple-loop-unswitch -die -partial-inliner -newgvn -add-discriminators -aggressive-instcombine -sink -loop-versioning -loop-data-prefetch -coro-split -sroa -attributor -loop-simplify -loop-unroll -correlated-propagation -partially-inline-libcalls -barrier -globalsplit -called-value-propagation -inferattrs -inferattrs -argpromotion -slsr -prune-eh -guard-widening -loop-idiom -irce -tailcallelim -lower-widenable-condition -inject-tli-mappings -float2int -pgo-memop-opt -indvars -strip-nondebug -loop-interchange -flattencfg -redundant-dbg-inst-elim -elim-avail-extern -coro-early -constmerge -sroa -gvn-hoist -ipsccp -scalarizer -lcssa -constmerge -libcalls-shrinkwrap -globalsplit -loop-interchange -sroa -deadargelim -rewrite-statepoints-for-gc -loop-predication -libcalls-shrinkwrap -flattencfg -gvn-hoist -prune-eh -lower-matrix-intrinsics -inline -canonicalize-aliases -ee-instrument -loop-load-elim -attributor -globaldce -nary-reassociate -barrier -loop-simplify -newgvn -loop-instsimplify -memcpyopt -aggressive-instcombine -instcombine -functionattrs -separate-const-offset-from-gep -loop-deletion -barrier -newgvn -loop-unroll-and-jam -loop-predication -post-inline-ee-instrument -coro-split -slp-vectorizer -loop-versioning-licm -simple-loop-unswitch -rpo-functionattrs -inferattrs -div-rem-pairs -indvars -loop-versioning-licm -dse -sroa -sink -indvars -gvn-hoist -guard-widening -sink -loop-unroll-and-jam -coro-early -globalsplit -coro-cleanup -always-inline -simplifycfg -memcpyopt -newgvn input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.008849557522124,12.092485666275024,opt -loop-guard-widening -loop-sink -licm -attributor -canonicalize-aliases -rewrite-statepoints-for-gc -loop-vectorize -loweratomic -aggressive-instcombine -cross-dso-cfi -deadargelim -mergereturn -functionattrs -loop-reroll -loop-distribute -prune-eh -inferattrs -insert-gcov-profiling -loop-interchange -lower-widenable-condition -adce -instcombine -rpo-functionattrs -inline -mergeicmps -constmerge -nary-reassociate -instcombine -instnamer -loop-data-prefetch -constmerge -loop-versioning-licm -attributor -inline -newgvn -speculative-execution -strip-nondebug -early-cse-memssa -instsimplify -loop-versioning -loop-instsimplify -sroa -separate-const-offset-from-gep -functionattrs -lower-guard-intrinsic -post-inline-ee-instrument -functionattrs -instsimplify -mergeicmps -partial-inliner -constmerge -inject-tli-mappings -strip-debug-declare -barrier -forceattrs -prune-eh -loop-distribute -irce -strip-nondebug -reassociate -loweratomic -constmerge -redundant-dbg-inst-elim -elim-avail-extern -add-discriminators -bdce -ipsccp -ipsccp -break-crit-edges -lcssa -loop-simplifycfg -loop-deletion -lowerinvoke -lower-guard-intrinsic -reassociate -loop-sink -called-value-propagation -strip-debug-declare -break-crit-edges -scalarizer -flattencfg -deadargelim -div-rem-pairs -dse -instsimplify -functionattrs -instcombine -partial-inliner -name-anon-globals -libcalls-shrinkwrap -loop-deletion -rewrite-statepoints-for-gc -early-cse-memssa -tailcallelim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0088495575221241,12.038225173950195,opt -strip -correlated-propagation -sroa -loop-versioning -mem2reg -add-discriminators -loop-predication -bdce -memcpyopt -sancov -loop-reroll -instcombine -partially-inline-libcalls -speculative-execution -loop-unroll -coro-cleanup -loop-versioning-licm -lower-widenable-condition -consthoist -simplifycfg -canonicalize-aliases -coro-early -break-crit-edges -loop-unswitch -rewrite-statepoints-for-gc -loop-unswitch -newgvn -coro-early -partial-inliner -coro-elide -bdce -instsimplify -coro-split -strip -flattencfg -inline -loop-guard-widening -ipsccp -loop-simplifycfg -globaldce -lcssa -adce -lower-expect -loop-simplifycfg -coro-cleanup -coro-split -globalsplit -mergefunc -loop-versioning-licm -libcalls-shrinkwrap -globalopt -functionattrs -licm -instcombine -sroa -infer-address-spaces -consthoist -partially-inline-libcalls -loop-data-prefetch -constmerge -strip-nondebug -globalopt -sccp -loop-unroll -ipsccp -loop-instsimplify -libcalls-shrinkwrap -speculative-execution -correlated-propagation -dce -strip-dead-prototypes -gvn -speculative-execution -inline -infer-address-spaces -constprop -float2int -functionattrs -loop-deletion -sroa -deadargelim -instsimplify -mergefunc -bdce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0249363867684482,12.77646517753601,opt -hotcoldsplit -lowerswitch -canonicalize-aliases -mem2reg -speculative-execution -lower-expect -redundant-dbg-inst-elim -inferattrs -loop-vectorize -speculative-execution -aggressive-instcombine -loop-vectorize -loweratomic -lower-widenable-condition -guard-widening -early-cse-memssa -speculative-execution -lowerswitch -pgo-memop-opt -strip-dead-prototypes -lowerinvoke -always-inline -aggressive-instcombine -loop-sink -reg2mem -sroa -dce -coro-split -post-inline-ee-instrument -simplifycfg -redundant-dbg-inst-elim -globalopt -globaldce -loop-idiom -slp-vectorizer -globalopt -argpromotion -loop-versioning -jump-threading -argpromotion -strip-dead-prototypes -insert-gcov-profiling -lower-expect -strip-nondebug -globalsplit -loweratomic -coro-early -sancov -separate-const-offset-from-gep -loop-fusion -add-discriminators -lcssa -licm -lower-constant-intrinsics -libcalls-shrinkwrap -instcombine -argpromotion -jump-threading -hotcoldsplit -float2int -libcalls-shrinkwrap -elim-avail-extern -sroa -callsite-splitting -called-value-propagation -barrier -speculative-execution -redundant-dbg-inst-elim -slp-vectorizer -memcpyopt -lower-guard-intrinsic -argpromotion -flattencfg -always-inline -indvars -dse -loop-interchange -memcpyopt -mergereturn -lower-widenable-condition -scalarizer -ipconstprop -loop-unroll -loop-guard-widening -loop-reduce -attributor -indvars -early-cse-memssa -tailcallelim -sink -irce -slp-vectorizer -dce -prune-eh -name-anon-globals -load-store-vectorizer -slsr -sccp -coro-split -loop-rotate -strip-debug-declare -post-inline-ee-instrument -ee-instrument -memcpyopt -aggressive-instcombine -globaldce -strip-dead-prototypes -libcalls-shrinkwrap -strip-nondebug -rewrite-statepoints-for-gc -early-cse-memssa -canonicalize-aliases -callsite-splitting -die -instnamer -hotcoldsplit -lower-matrix-intrinsics -cross-dso-cfi -coro-cleanup -loop-versioning -correlated-propagation -newgvn -coro-split -ipconstprop -sancov -lowerinvoke -partial-inliner -scalarizer -loop-reroll -slsr -gvn -instcombine -loop-deletion -bdce -slsr -loop-rotate -alignment-from-assumptions -lower-matrix-intrinsics -loop-predication -loop-instsimplify -infer-address-spaces -instnamer -always-inline -lower-constant-intrinsics -loop-unroll -early-cse-memssa -adce -loop-reroll -cross-dso-cfi -forceattrs -callsite-splitting -div-rem-pairs -speculative-execution -redundant-dbg-inst-elim -loop-versioning -loop-data-prefetch -lower-expect -slsr -correlated-propagation -name-anon-globals -partial-inliner -dse -ipsccp -constmerge -pgo-memop-opt -loop-reduce -gvn-hoist -speculative-execution -lowerswitch -ee-instrument -globalsplit -guard-widening -load-store-vectorizer -loop-idiom -licm -separate-const-offset-from-gep -mergeicmps -simple-loop-unswitch -loop-predication -mldst-motion -loweratomic -bdce -early-cse-memssa -inferattrs -mergeicmps -consthoist -mergefunc -ee-instrument -sccp -break-crit-edges -lower-constant-intrinsics -mldst-motion -called-value-propagation -loweratomic -ipconstprop -sccp -deadargelim -loop-data-prefetch -loop-sink -separate-const-offset-from-gep -guard-widening -loop-fusion -gvn -slp-vectorizer -called-value-propagation -scalarizer -attributor -pgo-memop-opt -loop-reduce -instnamer -break-crit-edges -pgo-memop-opt -mldst-motion -adce -memcpyopt -partially-inline-libcalls -loop-simplifycfg -reassociate -lower-matrix-intrinsics -sccp -loop-idiom -insert-gcov-profiling -div-rem-pairs -mergeicmps -licm -add-discriminators -licm -strip-nondebug -flattencfg -loop-vectorize -aggressive-instcombine -loop-versioning -partially-inline-libcalls -loop-versioning -flattencfg -simplifycfg -infer-address-spaces -break-crit-edges -ipconstprop -coro-cleanup -early-cse-memssa -loop-versioning -aggressive-instcombine -loop-vectorize -mergereturn -speculative-execution -slp-vectorizer -indvars -loop-reroll -infer-address-spaces -sancov -loop-load-elim -instcombine -inline -inline -float2int -loop-vectorize -aggressive-instcombine -speculative-execution -mergereturn -indvars -loop-simplify -strip-debug-declare -sccp -consthoist -loop-unroll -jump-threading -alignment-from-assumptions -loop-versioning-licm -pgo-memop-opt -loop-unswitch -loop-deletion -reassociate -loop-versioning -ee-instrument -functionattrs -mldst-motion -lower-widenable-condition -flattencfg -coro-cleanup -strip-nondebug -ipsccp -inject-tli-mappings -loop-fusion -name-anon-globals -barrier -scalarizer -slp-vectorizer -strip-nondebug -sink -loop-unswitch -forceattrs -coro-cleanup -aggressive-instcombine -sink -deadargelim -infer-address-spaces -loop-versioning -loop-deletion -called-value-propagation -lower-constant-intrinsics -constmerge -slp-vectorizer -coro-elide -strip-dead-prototypes -partial-inliner -redundant-dbg-inst-elim -ipconstprop -loop-instsimplify -simplifycfg -loop-predication -instcombine input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0300254452926212,13.093162536621094,opt -ipsccp -scalarizer -mem2reg -break-crit-edges -loop-guard-widening -separate-const-offset-from-gep -inject-tli-mappings -lowerinvoke -rewrite-statepoints-for-gc -separate-const-offset-from-gep -inline -attributor -ee-instrument -loop-interchange -loop-distribute -loop-unroll -correlated-propagation -sccp -coro-early -loop-predication -loop-deletion -dce -loop-instsimplify -loop-unroll-and-jam -mergefunc -coro-cleanup -lower-matrix-intrinsics -lowerinvoke -ipconstprop -gvn-hoist -lower-widenable-condition -loop-rotate -gvn-hoist -separate-const-offset-from-gep -sroa -lower-constant-intrinsics -strip-debug-declare -loop-sink -adce -loop-interchange -coro-cleanup -loop-unroll-and-jam -loop-guard-widening -loop-fusion -coro-elide -post-inline-ee-instrument -irce -mergereturn -instcombine -load-store-vectorizer -lowerswitch -correlated-propagation -memcpyopt -strip-nondebug -cross-dso-cfi -loop-fusion -argpromotion -irce -lowerinvoke -slsr -elim-avail-extern -speculative-execution -loop-fusion -separate-const-offset-from-gep -loop-versioning -inline -loop-fusion -coro-split -loop-instsimplify -loweratomic -licm -lower-widenable-condition -loop-rotate -elim-avail-extern -globalsplit -loop-vectorize -loop-deletion -lower-widenable-condition -newgvn -loop-reroll -loop-versioning -libcalls-shrinkwrap -loop-predication -reg2mem -loop-rotate -strip-debug-declare -insert-gcov-profiling -strip-debug-declare -div-rem-pairs -globaldce -loop-versioning-licm -reg2mem -strip -separate-const-offset-from-gep -loop-unswitch -nary-reassociate -irce -mldst-motion -rpo-functionattrs -constmerge -mergefunc -bdce -consthoist -strip-debug-declare -simplifycfg -mem2reg -alignment-from-assumptions -loop-instsimplify -jump-threading -correlated-propagation -strip-debug-declare -break-crit-edges -constmerge -lower-constant-intrinsics -prune-eh -indvars -loweratomic -separate-const-offset-from-gep -prune-eh -name-anon-globals -early-cse-memssa -indvars -forceattrs -loop-rotate -load-store-vectorizer -globaldce -sancov -partial-inliner -instcombine -elim-avail-extern -bdce -irce -lcssa -mldst-motion -instsimplify -loop-guard-widening -loop-rotate -jump-threading -break-crit-edges -always-inline -post-inline-ee-instrument -partially-inline-libcalls -barrier -insert-gcov-profiling -simple-loop-unswitch -deadargelim -strip -strip -gvn -ipsccp -lowerinvoke -partial-inliner -lower-constant-intrinsics -called-value-propagation -loop-idiom -coro-cleanup -slp-vectorizer -instcombine -prune-eh -dce -elim-avail-extern -constprop -loop-fusion -deadargelim -loop-instsimplify -instcombine -lower-guard-intrinsic -break-crit-edges -loweratomic -cross-dso-cfi -partial-inliner -loop-interchange -loop-guard-widening -indvars -irce -lower-matrix-intrinsics -gvn -loop-unroll-and-jam -load-store-vectorizer -mem2reg -globaldce -loop-versioning -strip-dead-prototypes -loop-sink -strip-dead-prototypes -reassociate -indvars -lower-guard-intrinsic -loop-interchange -gvn -callsite-splitting -loop-interchange -sccp -attributor -loop-predication -constprop -speculative-execution -loop-idiom -name-anon-globals -coro-elide -elim-avail-extern -pgo-memop-opt -simplifycfg -sink -globalopt -mem2reg -reg2mem -constprop -name-anon-globals -argpromotion -coro-cleanup -jump-threading -called-value-propagation -reg2mem -rewrite-statepoints-for-gc -loop-sink -globalsplit -mldst-motion -lower-constant-intrinsics -callsite-splitting -barrier -infer-address-spaces -lowerswitch -consthoist -ee-instrument -add-discriminators -forceattrs -hotcoldsplit -loop-unroll -mergefunc -attributor -lowerswitch -coro-early -reassociate -lower-widenable-condition -prune-eh -loop-predication -ee-instrument -deadargelim -loop-distribute -newgvn -name-anon-globals -canonicalize-aliases -memcpyopt -dse -sancov -flattencfg -loweratomic -coro-cleanup -strip-nondebug -inject-tli-mappings -prune-eh -gvn -speculative-execution -correlated-propagation -loop-unswitch -strip -sroa -lowerinvoke -redundant-dbg-inst-elim -mem2reg -mergereturn -barrier -tailcallelim -loop-sink -pgo-memop-opt -lcssa -instsimplify -functionattrs -licm -strip -strip-dead-prototypes -lower-matrix-intrinsics -loop-sink -guard-widening -loop-versioning-licm -lower-constant-intrinsics -functionattrs -indvars -loop-unroll-and-jam -elim-avail-extern -loop-sink -globaldce -licm -pgo-memop-opt -instcombine -lower-guard-intrinsic -mldst-motion -jump-threading -callsite-splitting -coro-split -mergeicmps -insert-gcov-profiling -coro-cleanup -sccp -add-discriminators -early-cse-memssa -licm -div-rem-pairs -globaldce -functionattrs -loop-vectorize -div-rem-pairs -loop-predication -inferattrs -alignment-from-assumptions -dce -inject-tli-mappings -memcpyopt -lower-matrix-intrinsics -loop-predication -licm -newgvn -tailcallelim -adce -memcpyopt -early-cse-memssa -coro-elide -dce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.033587786259542,12.856059074401855,opt -lower-matrix-intrinsics -lower-matrix-intrinsics -sink -dse -loop-interchange -scalarizer -cross-dso-cfi -instnamer -loop-fusion -lower-expect -break-crit-edges -infer-address-spaces -post-inline-ee-instrument -sancov -barrier -coro-split -ipsccp -loop-load-elim -lower-widenable-condition -strip-debug-declare -forceattrs -add-discriminators -loop-fusion -strip-debug-declare -lower-constant-intrinsics -load-store-vectorizer -deadargelim -loop-unroll-and-jam -loop-data-prefetch -gvn-hoist -deadargelim -sink -loop-load-elim -lower-widenable-condition -adce -slp-vectorizer -callsite-splitting -lower-expect -reassociate -instnamer -elim-avail-extern -strip-nondebug -lower-constant-intrinsics -lowerswitch -strip-debug-declare -irce -gvn-hoist -loop-simplify -loop-interchange -separate-const-offset-from-gep -loop-simplify -break-crit-edges -loop-data-prefetch -dce -mergefunc -redundant-dbg-inst-elim -instsimplify -deadargelim -mldst-motion -loop-guard-widening -loop-unroll -correlated-propagation -hotcoldsplit -gvn-hoist -mergefunc -loop-interchange -ee-instrument -correlated-propagation -alignment-from-assumptions -coro-early -loop-simplify -mldst-motion -loop-distribute -guard-widening -post-inline-ee-instrument -loop-reroll -dce -sroa -globalsplit -canonicalize-aliases -lower-widenable-condition -loop-load-elim -add-discriminators -coro-early -loop-vectorize -mergefunc -simple-loop-unswitch -alignment-from-assumptions -strip -constprop -div-rem-pairs -libcalls-shrinkwrap -simple-loop-unswitch -loop-idiom -gvn-hoist -newgvn -post-inline-ee-instrument -strip-dead-prototypes -instcombine -dse -partial-inliner -lower-widenable-condition -sccp -adce -speculative-execution -simplifycfg -slp-vectorizer -newgvn -mldst-motion -memcpyopt -slsr -load-store-vectorizer -mergeicmps -argpromotion -rpo-functionattrs -correlated-propagation -strip-dead-prototypes -memcpyopt -loop-predication -alignment-from-assumptions -adce -deadargelim -partially-inline-libcalls -tailcallelim -elim-avail-extern -lower-expect -globaldce -nary-reassociate -irce -loop-reroll -loop-distribute -loop-instsimplify -loop-reroll -lower-matrix-intrinsics -loop-data-prefetch -tailcallelim -loop-reduce -name-anon-globals -canonicalize-aliases -instnamer -memcpyopt -lower-guard-intrinsic -cross-dso-cfi -simple-loop-unswitch -memcpyopt -pgo-memop-opt -break-crit-edges -strip-debug-declare -lower-constant-intrinsics -flattencfg -loop-simplifycfg -globaldce -sink -loop-vectorize -reassociate -loop-instsimplify -callsite-splitting -globalsplit -lowerswitch -insert-gcov-profiling -slp-vectorizer -flattencfg -partial-inliner -ipsccp -elim-avail-extern -mergereturn -rewrite-statepoints-for-gc -loop-unroll-and-jam -loop-unswitch -strip-debug-declare -mergefunc -constmerge -redundant-dbg-inst-elim -barrier -alignment-from-assumptions -flattencfg -ee-instrument -nary-reassociate -loop-predication -bdce -slsr -elim-avail-extern -inject-tli-mappings -coro-elide -licm -infer-address-spaces -die -sccp -partially-inline-libcalls -loop-distribute -callsite-splitting -float2int -lower-widenable-condition -instsimplify -instcombine -ipconstprop -constprop -prune-eh -loop-guard-widening -ipconstprop -correlated-propagation -mergeicmps -loop-unswitch -ipconstprop -separate-const-offset-from-gep -separate-const-offset-from-gep -instnamer -die -inline -sancov -loop-interchange -canonicalize-aliases -sroa -loop-fusion -lowerinvoke -strip-dead-prototypes -loop-instsimplify -instnamer -lower-constant-intrinsics -gvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.033587786259542,13.356575012207031,opt -globaldce -infer-address-spaces -always-inline -loop-fusion -constprop -bdce -globaldce -sink -loweratomic -memcpyopt -loop-sink -lower-expect -newgvn -pgo-memop-opt -callsite-splitting -strip-debug-declare -jump-threading -loop-unswitch -loop-simplify -loop-simplify -inferattrs -loop-unswitch -separate-const-offset-from-gep -loop-predication -instnamer -alignment-from-assumptions -load-store-vectorizer -loop-data-prefetch -simple-loop-unswitch -elim-avail-extern -loop-unswitch -globalsplit -mem2reg -globalopt -reassociate -consthoist -gvn -sink -post-inline-ee-instrument -instcombine -dse -simplifycfg -flattencfg -load-store-vectorizer -load-store-vectorizer -float2int -loop-load-elim -tailcallelim -elim-avail-extern -coro-split -globaldce -licm -coro-split -strip-debug-declare -ee-instrument -prune-eh -loop-reroll -pgo-memop-opt -lowerinvoke -adce -loop-vectorize -scalarizer -sccp -loop-versioning-licm -always-inline -guard-widening -dse -deadargelim -libcalls-shrinkwrap -called-value-propagation -coro-elide -dce -lower-widenable-condition -loop-vectorize -correlated-propagation -loop-unroll -coro-elide -loop-instsimplify -coro-split -simple-loop-unswitch -loop-unroll -loop-simplifycfg -loop-deletion -lower-guard-intrinsic -globalopt -argpromotion -loop-simplifycfg -simplifycfg -argpromotion -mem2reg -gvn-hoist -lower-guard-intrinsic -guard-widening -separate-const-offset-from-gep -simple-loop-unswitch -hotcoldsplit -sink -newgvn -globalsplit -loop-guard-widening -correlated-propagation -slsr -prune-eh -inject-tli-mappings -break-crit-edges -coro-cleanup -licm -strip-dead-prototypes -loop-deletion -rpo-functionattrs -rpo-functionattrs -loop-interchange -licm -gvn -slsr -instnamer -instcombine -attributor -constprop -memcpyopt -coro-cleanup -cross-dso-cfi -mergeicmps -instnamer -always-inline -lcssa -separate-const-offset-from-gep -loop-simplify -argpromotion -licm -simple-loop-unswitch -argpromotion -loop-versioning -loop-distribute -globalsplit -sccp -lcssa -partial-inliner -redundant-dbg-inst-elim -loop-simplify -strip-dead-prototypes -memcpyopt -strip-dead-prototypes -slp-vectorizer -adce -loop-unroll-and-jam -instsimplify -mergereturn -loop-reroll -instcombine -coro-early -loop-reroll -memcpyopt -correlated-propagation -inline -slp-vectorizer -simple-loop-unswitch -coro-cleanup -strip-nondebug -slsr -nary-reassociate -loop-versioning -lower-widenable-condition -float2int -loop-predication -loop-versioning -strip -loweratomic -consthoist -separate-const-offset-from-gep -mergefunc -loop-versioning-licm -instsimplify -loop-unroll-and-jam -cross-dso-cfi -prune-eh -simple-loop-unswitch -loop-data-prefetch -elim-avail-extern -indvars -pgo-memop-opt -forceattrs -mem2reg -constmerge -dce -bdce -loop-distribute -loop-idiom -post-inline-ee-instrument -argpromotion -loop-vectorize -indvars -globaldce -instcombine input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0346055979643767,12.67380666732788,opt -constmerge -partially-inline-libcalls -correlated-propagation -coro-elide -lowerswitch -coro-split -functionattrs -add-discriminators -sroa -instcombine -slp-vectorizer -loop-versioning-licm -loop-distribute -name-anon-globals -loop-predication -cross-dso-cfi -lower-expect -float2int -lcssa -lowerswitch -forceattrs -reg2mem -hotcoldsplit -correlated-propagation -strip-dead-prototypes -globalsplit -coro-split -loop-reroll -alignment-from-assumptions -loop-sink -reg2mem -early-cse-memssa -lower-expect -loop-versioning -gvn-hoist -newgvn -loweratomic -alignment-from-assumptions -loop-vectorize -coro-split -loop-sink -instnamer -loop-unroll -tailcallelim -pgo-memop-opt -functionattrs -ipconstprop -sink -pgo-memop-opt -dce -hotcoldsplit -globalopt -attributor -strip -loop-reroll -cross-dso-cfi -aggressive-instcombine -strip-dead-prototypes -rpo-functionattrs -loop-sink -break-crit-edges -canonicalize-aliases -loop-unroll-and-jam -globaldce -hotcoldsplit -bdce -aggressive-instcombine -mergefunc -consthoist -always-inline -insert-gcov-profiling -correlated-propagation -div-rem-pairs -strip -prune-eh -mergeicmps -loop-interchange -globaldce -prune-eh -loop-vectorize -jump-threading -instnamer -insert-gcov-profiling -reg2mem -simple-loop-unswitch -nary-reassociate -forceattrs -loop-unroll-and-jam -globalopt -globalsplit -lowerinvoke -loop-load-elim -lower-widenable-condition -loop-guard-widening -simplifycfg -coro-elide -deadargelim -jump-threading -libcalls-shrinkwrap -loop-predication -loop-load-elim -attributor -called-value-propagation -instcombine -scalarizer -newgvn -globalsplit -insert-gcov-profiling -strip-nondebug -loop-interchange -pgo-memop-opt -libcalls-shrinkwrap -loop-guard-widening -break-crit-edges -loweratomic -newgvn -loop-instsimplify -loop-unswitch -sccp -always-inline -elim-avail-extern -lower-guard-intrinsic -rewrite-statepoints-for-gc -slp-vectorizer -mem2reg -forceattrs -sroa -functionattrs -loop-simplifycfg -coro-elide -globalsplit -elim-avail-extern -guard-widening -loop-idiom -irce -add-discriminators -separate-const-offset-from-gep -libcalls-shrinkwrap -mem2reg -add-discriminators -callsite-splitting -name-anon-globals -called-value-propagation -infer-address-spaces -loop-unroll -dce -mergefunc -flattencfg -deadargelim -sroa -lower-constant-intrinsics -loop-predication -rpo-functionattrs -tailcallelim -loop-data-prefetch -elim-avail-extern -load-store-vectorizer -mergeicmps -prune-eh -bdce -dce -globalopt -strip-debug-declare -strip-nondebug -slsr -loop-interchange -loop-reduce -lowerswitch -elim-avail-extern -globalopt -callsite-splitting -newgvn -lower-expect -ee-instrument -sancov -lowerswitch -licm -add-discriminators -gvn -early-cse-memssa -correlated-propagation -add-discriminators -memcpyopt -adce -mergereturn -strip-nondebug -callsite-splitting -break-crit-edges -loop-distribute -loop-simplifycfg -strip-nondebug -lcssa -mem2reg -attributor -dse -strip-debug-declare -strip -dce -loop-reduce -post-inline-ee-instrument -loop-distribute -loop-idiom -loop-unroll-and-jam -canonicalize-aliases -licm -deadargelim -loop-load-elim -speculative-execution -loop-unswitch -redundant-dbg-inst-elim -rpo-functionattrs -separate-const-offset-from-gep -flattencfg -die -lower-guard-intrinsic -loop-unroll-and-jam -lowerswitch -globalopt -coro-split -loop-reduce -loop-deletion -coro-split -mem2reg -adce -nary-reassociate -early-cse-memssa -float2int -newgvn -functionattrs -indvars -forceattrs -canonicalize-aliases -early-cse-memssa -slp-vectorizer -irce -loop-unroll -sccp -sink -globalsplit -strip-debug-declare -lower-expect -sancov -sancov -gvn-hoist -loop-reduce -barrier -newgvn -lowerswitch -ee-instrument -lower-constant-intrinsics -early-cse-memssa -loop-fusion -coro-elide -licm -callsite-splitting -dse -instnamer -aggressive-instcombine -newgvn -flattencfg -loop-deletion -strip-nondebug -load-store-vectorizer -speculative-execution -lower-constant-intrinsics -coro-elide -loop-simplifycfg -indvars -early-cse-memssa -strip-nondebug -loop-idiom -dce -hotcoldsplit -lower-guard-intrinsic -partially-inline-libcalls -alignment-from-assumptions -tailcallelim -hotcoldsplit -loop-simplifycfg -globalopt -constprop -ee-instrument -lcssa -functionattrs -loop-sink -loop-reduce -loop-vectorize -argpromotion -flattencfg -sroa -deadargelim -mem2reg -sccp -always-inline -lower-expect -ipconstprop -reassociate -slp-vectorizer -lowerinvoke -loop-vectorize -inject-tli-mappings -insert-gcov-profiling -correlated-propagation -loop-vectorize -ipconstprop -name-anon-globals -instcombine -loop-versioning-licm -rewrite-statepoints-for-gc -bdce -name-anon-globals -consthoist -float2int -infer-address-spaces -prune-eh -div-rem-pairs -simple-loop-unswitch -consthoist -lower-expect -mldst-motion -loop-simplifycfg -ee-instrument -loop-interchange -constmerge -consthoist -loop-unroll-and-jam -loop-distribute -jump-threading -loop-data-prefetch -mem2reg -instnamer -constprop -sink -loop-distribute -slsr -post-inline-ee-instrument -loop-vectorize -gvn-hoist -mldst-motion -constmerge -loop-reroll -indvars -forceattrs -die -insert-gcov-profiling -argpromotion -correlated-propagation -pgo-memop-opt -instcombine -licm -reassociate -coro-early -name-anon-globals -lower-widenable-condition -dce -loop-instsimplify -lower-constant-intrinsics -elim-avail-extern -loop-guard-widening -loop-simplifycfg -partial-inliner -gvn -irce -post-inline-ee-instrument -adce -constprop -callsite-splitting -loop-fusion -attributor -inferattrs -strip-dead-prototypes -inline -aggressive-instcombine -gvn-hoist -mergefunc -speculative-execution -die -forceattrs -insert-gcov-profiling -callsite-splitting -slsr -loop-simplify -loop-versioning-licm -add-discriminators -rpo-functionattrs -sccp -die -loop-interchange -strip -globaldce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0417302798982189,12.396470785140991,opt -prune-eh -loop-idiom -nary-reassociate -post-inline-ee-instrument -loop-unswitch -slsr -reassociate -separate-const-offset-from-gep -loop-fusion -loop-deletion -coro-elide -slsr -forceattrs -mergeicmps -globaldce -elim-avail-extern -pgo-memop-opt -loop-predication -canonicalize-aliases -instsimplify -loop-fusion -simplifycfg -simple-loop-unswitch -attributor -canonicalize-aliases -loop-predication -licm -hotcoldsplit -ipsccp -indvars -partial-inliner -tailcallelim -coro-cleanup -lcssa -strip-dead-prototypes -sancov -scalarizer -float2int -loop-unswitch -strip-dead-prototypes -loop-versioning -strip-dead-prototypes -globaldce -callsite-splitting -gvn -mem2reg -instcombine -memcpyopt -functionattrs -add-discriminators -slsr -deadargelim -mergereturn -lcssa -loop-distribute -guard-widening -lower-expect -loop-idiom -licm -coro-split -strip-nondebug -rpo-functionattrs -loop-predication -hotcoldsplit -reassociate -lower-matrix-intrinsics -coro-cleanup -rewrite-statepoints-for-gc -lcssa -lowerswitch -lcssa -mem2reg -loop-simplify -strip-dead-prototypes -loop-vectorize -coro-early -loop-predication -attributor -reassociate -forceattrs -sccp -newgvn -add-discriminators -mldst-motion -loop-deletion -sink -loop-predication -newgvn -loop-data-prefetch -mergeicmps -loop-unroll -globalsplit -adce -argpromotion -rewrite-statepoints-for-gc -loop-simplifycfg -partial-inliner -loop-guard-widening -loop-load-elim -sroa -simplifycfg -consthoist -separate-const-offset-from-gep -globaldce -bdce -loop-instsimplify -canonicalize-aliases -barrier -ipconstprop -rpo-functionattrs -rpo-functionattrs -deadargelim -bdce -loweratomic -ipsccp -coro-early -loop-simplifycfg -load-store-vectorizer -argpromotion -gvn-hoist -indvars -globalsplit -gvn -coro-split -lowerinvoke -reassociate -rewrite-statepoints-for-gc -sccp -coro-early -bdce -strip-nondebug -infer-address-spaces -dse -simple-loop-unswitch -callsite-splitting -irce -mergefunc -sccp -infer-address-spaces -slp-vectorizer -argpromotion -called-value-propagation -deadargelim -flattencfg -hotcoldsplit -loop-distribute -partial-inliner -strip -instcombine input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.043765903307888,12.748835325241089,opt -rpo-functionattrs -constmerge -functionattrs -scalarizer -canonicalize-aliases -jump-threading -loop-simplify -lower-constant-intrinsics -loop-interchange -aggressive-instcombine -loop-versioning -float2int -newgvn -loop-simplify -partially-inline-libcalls -loop-distribute -irce -lower-widenable-condition -instcombine -licm -sccp -coro-cleanup -dse -partially-inline-libcalls -lower-guard-intrinsic -lower-matrix-intrinsics -gvn -alignment-from-assumptions -guard-widening -rewrite-statepoints-for-gc -consthoist -dce -rewrite-statepoints-for-gc -mldst-motion -loop-guard-widening -instsimplify -attributor -mergereturn -strip-debug-declare -ipconstprop -instnamer -alignment-from-assumptions -loop-unroll-and-jam -prune-eh -dse -loop-idiom -loop-unroll -add-discriminators -strip-debug-declare -globaldce -loop-versioning -name-anon-globals -argpromotion -gvn -constprop -attributor -rewrite-statepoints-for-gc -lcssa -mergefunc -ipsccp -loop-idiom -loop-fusion -loop-versioning -called-value-propagation -flattencfg -guard-widening -inline -functionattrs -barrier -insert-gcov-profiling -partially-inline-libcalls -name-anon-globals -loop-versioning -infer-address-spaces -strip -bdce -add-discriminators -name-anon-globals -constmerge -barrier -mem2reg -loop-simplifycfg -redundant-dbg-inst-elim -coro-split -loop-guard-widening -strip-dead-prototypes -slsr -mem2reg -alignment-from-assumptions -partial-inliner -irce -memcpyopt -strip-nondebug -early-cse-memssa -coro-cleanup -loop-sink -separate-const-offset-from-gep -inject-tli-mappings -early-cse-memssa -tailcallelim -loop-unroll -licm -loop-vectorize -prune-eh -partially-inline-libcalls -newgvn -loop-reroll -break-crit-edges -post-inline-ee-instrument -rewrite-statepoints-for-gc -rpo-functionattrs -libcalls-shrinkwrap -ipsccp -nary-reassociate -load-store-vectorizer -mldst-motion -post-inline-ee-instrument -always-inline -rpo-functionattrs -flattencfg -coro-cleanup -simple-loop-unswitch -aggressive-instcombine -simple-loop-unswitch -coro-early -ipsccp -loop-guard-widening -adce -div-rem-pairs -instcombine -lower-widenable-condition -sancov -dse -loop-simplifycfg -loop-predication -memcpyopt -dce -dse -infer-address-spaces -loop-rotate -callsite-splitting -break-crit-edges -dce -partially-inline-libcalls -bdce -ipsccp -redundant-dbg-inst-elim -loop-idiom -slp-vectorizer -mergereturn -reassociate -loop-deletion -loop-fusion -jump-threading -gvn-hoist -simplifycfg -simple-loop-unswitch -loop-versioning-licm -always-inline -irce -instcombine input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0478371501272268,12.708849906921387,opt -sink -loop-vectorize -consthoist -coro-cleanup -coro-early -scalarizer -sroa -guard-widening -consthoist -correlated-propagation -loop-guard-widening -loop-idiom -instcombine -newgvn -instnamer -lcssa -strip-dead-prototypes -canonicalize-aliases -lowerinvoke -reassociate -redundant-dbg-inst-elim -ipsccp -pgo-memop-opt -add-discriminators -loop-unroll -canonicalize-aliases -indvars -coro-early -forceattrs -loop-guard-widening -loop-guard-widening -lowerswitch -ipconstprop -loop-versioning-licm -lcssa -rewrite-statepoints-for-gc -indvars -indvars -coro-cleanup -partially-inline-libcalls -loop-deletion -mem2reg -elim-avail-extern -lcssa -memcpyopt -irce -early-cse-memssa -coro-early -loop-unroll -loop-guard-widening -name-anon-globals -separate-const-offset-from-gep -loop-predication -canonicalize-aliases -ipsccp -prune-eh -consthoist -adce -called-value-propagation -loop-sink -loop-deletion -jump-threading -loop-instsimplify -adce -loop-unroll -hotcoldsplit -libcalls-shrinkwrap -consthoist -partially-inline-libcalls -infer-address-spaces -slp-vectorizer -rpo-functionattrs -sink -instcombine -dse -constprop -argpromotion -infer-address-spaces -tailcallelim -newgvn -flattencfg -mergereturn -memcpyopt -loop-unroll-and-jam -coro-cleanup -reassociate -div-rem-pairs -ee-instrument -dse -simple-loop-unswitch -strip-dead-prototypes -memcpyopt -libcalls-shrinkwrap -correlated-propagation -loop-data-prefetch -strip -simple-loop-unswitch -partial-inliner -mergefunc -loop-unroll -lowerswitch -sink -lower-matrix-intrinsics -loop-deletion -inferattrs -constprop -loop-data-prefetch -mem2reg -strip-debug-declare -attributor -lower-expect -gvn-hoist -nary-reassociate -partially-inline-libcalls -globalsplit -pgo-memop-opt -lower-widenable-condition -sancov -early-cse-memssa -consthoist -inferattrs -consthoist -reg2mem -partial-inliner -name-anon-globals -loop-vectorize -strip-debug-declare -constmerge -loop-guard-widening -div-rem-pairs -scalarizer -pgo-memop-opt -ipsccp -sccp -rpo-functionattrs -instsimplify -constmerge -loop-load-elim -coro-cleanup -lower-constant-intrinsics -mem2reg -always-inline -tailcallelim -gvn-hoist -dse -attributor -lower-expect -lowerinvoke -bdce -newgvn -mem2reg -instcombine -globalopt -elim-avail-extern -rpo-functionattrs -slsr -slsr -loweratomic -always-inline -libcalls-shrinkwrap -sancov -deadargelim -mergefunc -globaldce -loop-data-prefetch -dse -separate-const-offset-from-gep -globalsplit -globalsplit -tailcallelim -newgvn -ee-instrument -sccp -loop-versioning-licm -loop-simplify -reassociate -loop-simplifycfg -globalsplit -reassociate -post-inline-ee-instrument -ee-instrument -loop-instsimplify -break-crit-edges -constmerge -gvn-hoist -newgvn -attributor -globaldce -separate-const-offset-from-gep -mergereturn -simplifycfg -instsimplify -load-store-vectorizer -loop-instsimplify -inferattrs -irce -loweratomic -gvn -adce -loop-interchange -consthoist -argpromotion -irce -loop-versioning -reg2mem -loop-simplifycfg -strip-nondebug -strip-dead-prototypes -loop-deletion -loop-simplifycfg -inferattrs -inferattrs -strip-debug-declare -coro-elide -loop-load-elim -adce -flattencfg -inject-tli-mappings -reassociate -mergeicmps -sccp -loop-versioning-licm -name-anon-globals -rewrite-statepoints-for-gc -licm -sccp -loop-guard-widening -loop-unroll -speculative-execution -lowerinvoke -loop-deletion -mergereturn -correlated-propagation -indvars -insert-gcov-profiling -nary-reassociate -coro-early -dce -loop-reduce -functionattrs -mergereturn -simplifycfg -ee-instrument -loop-unswitch -loop-distribute -speculative-execution -loop-instsimplify -gvn-hoist -reassociate -loop-reduce -loop-unroll -loop-data-prefetch -deadargelim -coro-split -mergefunc -sroa -loop-unroll -functionattrs -lowerswitch -lcssa -canonicalize-aliases -redundant-dbg-inst-elim -correlated-propagation -loop-data-prefetch -irce -slp-vectorizer -loop-data-prefetch -coro-split -loop-simplify -loop-distribute -indvars -div-rem-pairs -indvars -loop-guard-widening -instcombine -mergeicmps -loop-unswitch -attributor -sroa -loop-data-prefetch -gvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0498727735368956,12.672531366348267,opt -alignment-from-assumptions -loop-vectorize -attributor -speculative-execution -loop-guard-widening -called-value-propagation -consthoist -aggressive-instcombine -break-crit-edges -constprop -inferattrs -loop-versioning-licm -instnamer -rpo-functionattrs -break-crit-edges -strip -load-store-vectorizer -name-anon-globals -globalopt -post-inline-ee-instrument -correlated-propagation -insert-gcov-profiling -partial-inliner -loop-idiom -globaldce -memcpyopt -tailcallelim -globaldce -insert-gcov-profiling -sink -coro-cleanup -irce -loop-deletion -slp-vectorizer -loop-deletion -lowerswitch -flattencfg -partially-inline-libcalls -cross-dso-cfi -lower-expect -always-inline -loop-guard-widening -cross-dso-cfi -rewrite-statepoints-for-gc -indvars -aggressive-instcombine -strip-dead-prototypes -loop-reduce -newgvn -sroa -scalarizer -loop-instsimplify -argpromotion -instcombine -constprop -rewrite-statepoints-for-gc -coro-split -hotcoldsplit -callsite-splitting -globaldce -correlated-propagation -sancov -jump-threading -forceattrs -scalarizer -globalopt -called-value-propagation -functionattrs -instnamer -ee-instrument -constmerge -attributor -memcpyopt -coro-split -loop-versioning-licm -lowerinvoke -loop-versioning -partially-inline-libcalls -guard-widening -loop-unroll-and-jam -lower-expect -slp-vectorizer -barrier -loop-versioning-licm -simple-loop-unswitch -tailcallelim -strip-debug-declare -callsite-splitting -rewrite-statepoints-for-gc -gvn-hoist -ee-instrument -dse -cross-dso-cfi -lower-constant-intrinsics -alignment-from-assumptions -constmerge -loop-distribute -scalarizer -inferattrs -sccp -add-discriminators -break-crit-edges -dse -correlated-propagation -instcombine -loop-versioning -sroa -tailcallelim -gvn-hoist -gvn -float2int -simplifycfg -float2int -loop-versioning -constprop -div-rem-pairs -inline -slsr -loop-guard-widening -loop-unroll -loop-distribute -gvn-hoist -bdce -insert-gcov-profiling -coro-cleanup -slp-vectorizer -reassociate -simplifycfg -add-discriminators -coro-elide -loop-versioning -barrier -prune-eh -loop-unroll -inline -called-value-propagation -strip-dead-prototypes -reg2mem -sink -bdce -add-discriminators -partial-inliner -gvn -lower-constant-intrinsics -scalarizer -mem2reg -indvars -scalarizer -loop-load-elim -loop-idiom -instsimplify -correlated-propagation -lcssa -redundant-dbg-inst-elim -loop-instsimplify -early-cse-memssa -called-value-propagation -partially-inline-libcalls -redundant-dbg-inst-elim -infer-address-spaces -loop-unroll-and-jam -loop-versioning -loop-simplifycfg -dce -inject-tli-mappings -globalsplit -rpo-functionattrs -loop-unroll -loop-unroll -infer-address-spaces -dce -instnamer -load-store-vectorizer -constmerge -sccp -hotcoldsplit -lower-matrix-intrinsics -tailcallelim -functionattrs -sink -sroa -loop-idiom -mergefunc -adce -lower-widenable-condition -licm -dce -gvn -always-inline -canonicalize-aliases -memcpyopt -ipsccp -loop-sink -coro-split -loop-unroll-and-jam -jump-threading -slp-vectorizer -loop-idiom -gvn -canonicalize-aliases -argpromotion -deadargelim -hotcoldsplit -coro-split -constprop -newgvn -loop-sink -deadargelim -loop-interchange -loop-distribute -guard-widening -coro-split -barrier -mem2reg -mergefunc -adce -memcpyopt -barrier -adce -loop-versioning-licm -strip-nondebug -sink -prune-eh -instcombine input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0519083969465652,12.692818880081177,opt -gvn-hoist -elim-avail-extern -loop-reduce -sink -coro-early -callsite-splitting -instnamer -called-value-propagation -lower-matrix-intrinsics -loop-distribute -instnamer -cross-dso-cfi -nary-reassociate -globalopt -argpromotion -lower-matrix-intrinsics -redundant-dbg-inst-elim -gvn -lowerswitch -gvn-hoist -mergefunc -coro-elide -lower-constant-intrinsics -aggressive-instcombine -correlated-propagation -lower-matrix-intrinsics -slp-vectorizer -loop-data-prefetch -ipsccp -indvars -mergefunc -prune-eh -lower-guard-intrinsic -bdce -coro-early -loop-simplify -reg2mem -irce -cross-dso-cfi -loop-instsimplify -sroa -loop-deletion -simple-loop-unswitch -functionattrs -sccp -strip-dead-prototypes -dce -callsite-splitting -globalsplit -hotcoldsplit -forceattrs -separate-const-offset-from-gep -correlated-propagation -aggressive-instcombine -loop-simplify -lower-matrix-intrinsics -early-cse-memssa -mem2reg -sink -licm -barrier -cross-dso-cfi -mergeicmps -elim-avail-extern -rpo-functionattrs -consthoist -lcssa -lowerinvoke -aggressive-instcombine -reg2mem -reg2mem -sink -partially-inline-libcalls -simplifycfg -memcpyopt -elim-avail-extern -break-crit-edges -loop-simplify -callsite-splitting -name-anon-globals -loweratomic -indvars -early-cse-memssa -loop-unroll -partial-inliner -cross-dso-cfi -lower-matrix-intrinsics -early-cse-memssa -div-rem-pairs -elim-avail-extern -separate-const-offset-from-gep -speculative-execution -callsite-splitting -instnamer -globaldce -loop-rotate -lowerinvoke -consthoist -loop-idiom -loop-simplify -libcalls-shrinkwrap -irce -loop-distribute -lower-expect -mergefunc -slsr -barrier -nary-reassociate -dce -lower-guard-intrinsic -lower-guard-intrinsic -irce -strip -coro-elide -loop-data-prefetch -mergefunc -mergefunc -mergeicmps -lcssa -canonicalize-aliases -loop-simplify -jump-threading -float2int -loop-vectorize -loop-sink -prune-eh -div-rem-pairs -instsimplify -loop-vectorize -irce -float2int -coro-elide -barrier -early-cse-memssa -early-cse-memssa -argpromotion -inline -prune-eh -slp-vectorizer -mem2reg -guard-widening -adce -inferattrs -simplifycfg -loweratomic -instcombine -simple-loop-unswitch -indvars -loweratomic -lower-widenable-condition -aggressive-instcombine -dse -irce -lowerswitch -alignment-from-assumptions -loop-predication -strip-dead-prototypes -inline -flattencfg -die -lowerinvoke -irce -loop-data-prefetch -add-discriminators -ipsccp -div-rem-pairs -loop-reroll -reg2mem -loop-distribute -lower-constant-intrinsics -adce -mem2reg -libcalls-shrinkwrap -lowerswitch -insert-gcov-profiling -instcombine -rewrite-statepoints-for-gc -speculative-execution -coro-elide -scalarizer -rpo-functionattrs -ipconstprop -nary-reassociate -ee-instrument -ipconstprop -partial-inliner -loop-deletion -lcssa -mem2reg -strip -coro-elide -loop-idiom -mergeicmps -globalsplit -mergereturn -reassociate -bdce -canonicalize-aliases -cross-dso-cfi -deadargelim -constmerge -mergereturn -lcssa -loop-predication -aggressive-instcombine -loop-guard-widening -functionattrs -early-cse-memssa -loop-instsimplify -instnamer -load-store-vectorizer -adce -lower-constant-intrinsics -partial-inliner -strip-nondebug -loop-fusion -flattencfg -ipconstprop -coro-elide -forceattrs -loop-idiom -globalsplit -constprop -deadargelim -scalarizer -memcpyopt -globalsplit -div-rem-pairs -tailcallelim -alignment-from-assumptions -newgvn -mergeicmps -instsimplify -lower-matrix-intrinsics -loop-reduce -loop-deletion -post-inline-ee-instrument -coro-split -tailcallelim -canonicalize-aliases -break-crit-edges -canonicalize-aliases -indvars -die -loop-deletion -argpromotion -partially-inline-libcalls -loop-fusion -mergefunc -lower-guard-intrinsic -ipsccp -loop-reroll -div-rem-pairs -barrier -jump-threading -coro-elide -ee-instrument -lcssa -loweratomic -gvn -argpromotion -loop-predication -dce -instsimplify -loop-guard-widening -loop-deletion -argpromotion -constprop -instcombine -sancov -sink -hotcoldsplit -inject-tli-mappings -redundant-dbg-inst-elim -strip-nondebug -loop-versioning-licm -instsimplify -dce -partial-inliner -ipsccp -speculative-execution -sroa -infer-address-spaces -alignment-from-assumptions -lcssa -lcssa -scalarizer -ee-instrument -globalopt -lower-matrix-intrinsics -gvn-hoist -mergeicmps -infer-address-spaces -instcombine -globalopt -coro-early -float2int -mem2reg -sancov -sink -inject-tli-mappings -loweratomic -lower-widenable-condition -always-inline -simplifycfg -reg2mem -argpromotion -strip-dead-prototypes -gvn-hoist -constmerge -inline -early-cse-memssa -lower-widenable-condition -reg2mem -coro-elide -instcombine -mem2reg -dse -flattencfg -loop-unroll-and-jam -sroa -consthoist -mldst-motion -ee-instrument -mergereturn -infer-address-spaces -ee-instrument -gvn -rewrite-statepoints-for-gc -guard-widening -mergefunc -mergereturn -callsite-splitting -canonicalize-aliases -instnamer -alignment-from-assumptions -argpromotion -simplifycfg -flattencfg -loop-reduce -gvn -loop-deletion -loop-versioning -flattencfg -strip -cross-dso-cfi -instsimplify -attributor -early-cse-memssa -insert-gcov-profiling -separate-const-offset-from-gep -indvars -slp-vectorizer -newgvn -functionattrs -loop-guard-widening -lower-widenable-condition -rpo-functionattrs -mergeicmps -load-store-vectorizer -reassociate -div-rem-pairs -loop-simplifycfg -post-inline-ee-instrument -redundant-dbg-inst-elim -dse -coro-split -bdce -attributor -forceattrs -lower-constant-intrinsics -loop-guard-widening -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1169348539290735,23.584031105041504,opt -loop-reduce -mem2reg -instnamer -called-value-propagation -loop-idiom -globalopt -loop-versioning -loop-unroll-and-jam -loop-instsimplify -insert-gcov-profiling -loop-instsimplify -strip-nondebug -coro-split -globalopt -mem2reg -alignment-from-assumptions -pgo-memop-opt -sink -loop-interchange -loop-deletion -consthoist -hotcoldsplit -separate-const-offset-from-gep -mem2reg -dce -div-rem-pairs -newgvn -functionattrs -dce -loop-data-prefetch -lcssa -inferattrs -correlated-propagation -sancov -strip-nondebug -speculative-execution -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1241212310576472,25.40641736984253,opt -rpo-functionattrs -mergeicmps -loop-predication -correlated-propagation -lowerinvoke -simplifycfg -post-inline-ee-instrument -pgo-memop-opt -inferattrs -ipconstprop -div-rem-pairs -loop-unroll-and-jam -mem2reg -mldst-motion -sroa -loop-vectorize -redundant-dbg-inst-elim -strip -infer-address-spaces -canonicalize-aliases -loop-versioning -aggressive-instcombine -strip-dead-prototypes -lower-guard-intrinsic -licm -loop-unroll -separate-const-offset-from-gep -inject-tli-mappings -loweratomic -inferattrs -lower-widenable-condition -dce -lowerinvoke -mergereturn -add-discriminators -cross-dso-cfi -coro-split -coro-split -speculative-execution -loop-instsimplify -rewrite-statepoints-for-gc -jump-threading -globalsplit -newgvn -nary-reassociate input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1369317294172785,25.428560495376587,opt -globalsplit -sancov -simple-loop-unswitch -functionattrs -partially-inline-libcalls -globaldce -pgo-memop-opt -indvars -forceattrs -loop-reduce -coro-split -newgvn -loop-simplifycfg -inject-tli-mappings -bdce -forceattrs -simplifycfg -consthoist -functionattrs -indvars -memcpyopt -hotcoldsplit -rpo-functionattrs -newgvn -flattencfg -bdce -dce -always-inline -simple-loop-unswitch -loop-reroll -insert-gcov-profiling -callsite-splitting -mergeicmps -instnamer -constprop -consthoist -add-discriminators -separate-const-offset-from-gep -correlated-propagation -slp-vectorizer -memcpyopt -slp-vectorizer -instnamer -nary-reassociate -lower-constant-intrinsics -functionattrs -lower-guard-intrinsic -loop-guard-widening -irce -loop-deletion -sccp -reassociate -loop-guard-widening -speculative-execution -reg2mem -coro-split -pgo-memop-opt -strip-nondebug -cross-dso-cfi -mem2reg -inject-tli-mappings -loop-load-elim -loop-deletion -lower-widenable-condition -argpromotion -sroa -loop-versioning-licm -inferattrs -loop-guard-widening -loop-interchange -die -correlated-propagation -partially-inline-libcalls -lower-guard-intrinsic -loop-reduce -cross-dso-cfi -lower-guard-intrinsic -loop-predication -lower-matrix-intrinsics -consthoist -sancov -mergefunc -strip-debug-declare -coro-elide -instnamer -strip -licm -reassociate -canonicalize-aliases -loop-sink -redundant-dbg-inst-elim -ipconstprop -sroa -globalopt -consthoist -name-anon-globals -mergefunc -partial-inliner -gvn-hoist -ipconstprop -loop-deletion -redundant-dbg-inst-elim -reassociate -libcalls-shrinkwrap -instcombine -lower-expect -lowerinvoke -globalopt -mem2reg -sancov -hotcoldsplit -insert-gcov-profiling -loop-fusion -nary-reassociate -forceattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1409935947508203,24.855397701263428,opt -loop-unswitch -loop-versioning -loop-guard-widening -mldst-motion -mldst-motion -loop-idiom -loop-versioning-licm -constprop -reassociate -inferattrs -coro-cleanup -loop-simplifycfg -adce -add-discriminators -sroa -cross-dso-cfi -pgo-memop-opt -consthoist -callsite-splitting -loop-simplify -simple-loop-unswitch -callsite-splitting -alignment-from-assumptions -loop-fusion -post-inline-ee-instrument -dce -partial-inliner -ee-instrument -prune-eh -reassociate -irce -memcpyopt -functionattrs -tailcallelim -loop-vectorize -inject-tli-mappings -deadargelim -gvn -name-anon-globals -loop-data-prefetch -sccp -loop-versioning-licm -mergeicmps -always-inline -mergereturn -loop-rotate -loop-sink -coro-cleanup -nary-reassociate -loop-simplifycfg -dse -simplifycfg -loop-deletion -jump-threading -memcpyopt -globalsplit -loop-instsimplify -die -inferattrs -instcombine -coro-split -consthoist -dce -mergefunc -forceattrs -name-anon-globals -lower-widenable-condition -loop-simplify -pgo-memop-opt -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1423996250585842,23.81988525390625,opt -simplifycfg -loop-simplify -gvn-hoist -early-cse-memssa -loop-instsimplify -correlated-propagation -functionattrs -simple-loop-unswitch -ipconstprop -loop-reduce -separate-const-offset-from-gep -tailcallelim -instnamer -loop-distribute -loop-load-elim -redundant-dbg-inst-elim -inject-tli-mappings -loop-deletion -loop-simplify -simplifycfg -ipsccp -elim-avail-extern -slsr -called-value-propagation -loop-deletion -loop-instsimplify -gvn-hoist -elim-avail-extern -canonicalize-aliases -reg2mem -break-crit-edges -lowerinvoke -loop-reduce -break-crit-edges -loop-instsimplify -rewrite-statepoints-for-gc -correlated-propagation -lower-guard-intrinsic -loop-sink -guard-widening -coro-early -loop-predication -simple-loop-unswitch -simplifycfg -canonicalize-aliases -reg2mem -globalsplit -strip-dead-prototypes -mergefunc -loop-predication -loop-unswitch -sink -loop-guard-widening -loop-predication -mergefunc -loop-instsimplify -lower-widenable-condition -sroa -gvn -instcombine -loop-fusion -globalsplit -ipsccp -partial-inliner -partially-inline-libcalls -alignment-from-assumptions -attributor -globalopt -early-cse-memssa -name-anon-globals -lower-constant-intrinsics -called-value-propagation -coro-early -deadargelim -loop-sink -break-crit-edges -rpo-functionattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1469301671613812,23.125929832458496,opt -load-store-vectorizer -sroa -lower-expect -mergeicmps -dse -globaldce -loop-interchange -gvn-hoist -simplifycfg -argpromotion -simplifycfg -lower-guard-intrinsic -coro-early -globaldce -loop-interchange -simple-loop-unswitch -libcalls-shrinkwrap -loop-simplify -loop-distribute -loop-guard-widening -scalarizer -scalarizer -strip-debug-declare -sancov -loop-simplify -slsr -instnamer -pgo-memop-opt -lower-guard-intrinsic -lower-constant-intrinsics -loop-unroll-and-jam -name-anon-globals -called-value-propagation -constmerge -mldst-motion -consthoist -canonicalize-aliases -redundant-dbg-inst-elim -memcpyopt -float2int -gvn -partially-inline-libcalls -loop-versioning -adce -speculative-execution -lower-guard-intrinsic -name-anon-globals -mergeicmps -loop-vectorize -adce -callsite-splitting -libcalls-shrinkwrap -add-discriminators -cross-dso-cfi -slp-vectorizer -newgvn -ipsccp -loop-vectorize -consthoist -always-inline -instsimplify -strip-debug-declare -functionattrs -early-cse-memssa -instcombine input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1548195594438369,23.729283809661865,opt -correlated-propagation -break-crit-edges -separate-const-offset-from-gep -name-anon-globals -slsr -sancov -loop-sink -barrier -prune-eh -forceattrs -constprop -deadargelim -mem2reg -coro-split -simplifycfg -gvn-hoist -deadargelim -loop-guard-widening -sroa -constprop -globalopt -guard-widening -loop-guard-widening -consthoist -die -newgvn -jump-threading -sroa -aggressive-instcombine -loweratomic -indvars -coro-split -instcombine -slp-vectorizer -post-inline-ee-instrument -newgvn -dse input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1548195594438382,24.505677223205566,opt -strip -break-crit-edges -loop-fusion -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -div-rem-pairs -separate-const-offset-from-gep -memcpyopt -redundant-dbg-inst-elim -sroa -simple-loop-unswitch -sccp -instcombine -mem2reg -gvn -loop-sink -barrier -insert-gcov-profiling -globalopt -instnamer -forceattrs -loop-versioning-licm -mergeicmps -tailcallelim -indvars -coro-early -reassociate -post-inline-ee-instrument -globalopt -inferattrs -bdce -dce -loop-interchange -ipsccp -loop-interchange -argpromotion -sroa -argpromotion -separate-const-offset-from-gep -called-value-propagation -mergefunc -separate-const-offset-from-gep -simplifycfg -loop-simplifycfg -insert-gcov-profiling -loop-simplify -adce -rpo-functionattrs -break-crit-edges -strip-dead-prototypes -mergereturn -ipsccp -loweratomic -callsite-splitting -ipsccp -instnamer -forceattrs -slp-vectorizer -guard-widening -adce -deadargelim -loop-idiom -mldst-motion -load-store-vectorizer -indvars -inferattrs -loop-versioning -deadargelim -lcssa -simplifycfg -functionattrs -coro-cleanup -coro-cleanup -lower-widenable-condition -loop-fusion -sancov -post-inline-ee-instrument -mem2reg -loweratomic -loop-fusion -rewrite-statepoints-for-gc -correlated-propagation -sroa -indvars -coro-elide -licm -loop-load-elim -loop-unroll-and-jam -licm -loop-instsimplify -sroa -loop-versioning-licm -simple-loop-unswitch -functionattrs -canonicalize-aliases -libcalls-shrinkwrap -loop-deletion -loop-deletion -loop-versioning -mergefunc -loop-simplify -instcombine -coro-cleanup -correlated-propagation -prune-eh -globaldce -forceattrs -lower-constant-intrinsics -dce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1602093422902673,29.369541883468628,opt -name-anon-globals -float2int -constmerge -prune-eh -loop-guard-widening -loop-load-elim -dse -lower-constant-intrinsics -loop-instsimplify -ipsccp -tailcallelim -cross-dso-cfi -constprop -strip-debug-declare -coro-cleanup -loop-guard-widening -loop-simplifycfg -loop-reduce -loop-simplify -consthoist -barrier -canonicalize-aliases -gvn -rewrite-statepoints-for-gc -partially-inline-libcalls -post-inline-ee-instrument -instnamer -partially-inline-libcalls -sroa -loop-versioning -coro-early -bdce -loop-unroll-and-jam -sink -loop-versioning-licm -strip-debug-declare -newgvn -slp-vectorizer -loop-idiom -newgvn -simplifycfg -loweratomic -loop-instsimplify -sccp -coro-split -forceattrs -licm -licm -early-cse-memssa -rewrite-statepoints-for-gc -strip-dead-prototypes -functionattrs -functionattrs -lcssa -constmerge -loop-versioning -indvars -strip-dead-prototypes -consthoist -pgo-memop-opt -lower-expect -partially-inline-libcalls -canonicalize-aliases -sink -loop-guard-widening -speculative-execution -coro-early -rewrite-statepoints-for-gc -separate-const-offset-from-gep -tailcallelim -loop-versioning -cross-dso-cfi -coro-cleanup -gvn -aggressive-instcombine -loop-data-prefetch -sroa -lowerinvoke -sancov -loop-predication -strip-dead-prototypes -loop-distribute -guard-widening -loop-simplifycfg -globalopt -called-value-propagation -lower-expect -early-cse-memssa -mergereturn -loop-load-elim -coro-split -instcombine -name-anon-globals -insert-gcov-profiling -loop-unroll-and-jam -globalopt -strip-debug-declare -strip -separate-const-offset-from-gep -strip-debug-declare -partially-inline-libcalls -globalsplit -mergefunc -die -loop-versioning-licm -irce -loop-predication -gvn -loop-versioning -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1766911420090613,27.65174961090088,opt -pgo-memop-opt -coro-elide -coro-cleanup -pgo-memop-opt -slsr -lower-matrix-intrinsics -loop-deletion -loop-versioning-licm -post-inline-ee-instrument -strip-dead-prototypes -sink -adce -lower-guard-intrinsic -strip-nondebug -coro-early -mem2reg -constmerge -adce -strip-nondebug -mergeicmps -irce -slsr -irce -tailcallelim -ipsccp -die -memcpyopt -separate-const-offset-from-gep -loop-load-elim -gvn -reassociate -pgo-memop-opt -separate-const-offset-from-gep -loop-data-prefetch -early-cse-memssa -scalarizer -lcssa -aggressive-instcombine -lower-guard-intrinsic -loop-sink -die -tailcallelim -dse -nary-reassociate -load-store-vectorizer -dce -lower-guard-intrinsic -callsite-splitting -adce -loop-load-elim -rpo-functionattrs -strip-debug-declare -loop-unswitch -slp-vectorizer -sink -inject-tli-mappings -loop-idiom -lowerinvoke -sccp -load-store-vectorizer -loweratomic -inferattrs -constmerge -hotcoldsplit -cross-dso-cfi -mldst-motion -loop-sink -lower-constant-intrinsics -separate-const-offset-from-gep -loop-fusion -loop-vectorize -strip-nondebug -lowerinvoke -div-rem-pairs -aggressive-instcombine -insert-gcov-profiling -mergeicmps -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,0.9921875,11.82210922241211,opt -instsimplify -instsimplify -loop-unswitch -partial-inliner -constprop -coro-split -slp-vectorizer -mergeicmps -callsite-splitting -mergereturn -sroa -attributor -name-anon-globals -aggressive-instcombine -scalarizer -globalopt -cross-dso-cfi -break-crit-edges -flattencfg -instnamer -loop-reduce -mergefunc -libcalls-shrinkwrap -sccp -loop-instsimplify -constprop -coro-split -indvars -deadargelim -loop-unroll -jump-threading -indvars -loop-guard-widening -loop-simplifycfg -deadargelim -bdce -constmerge -strip-nondebug -forceattrs -loop-reroll -inferattrs -mergefunc -sancov -speculative-execution -ipconstprop -speculative-execution -lower-guard-intrinsic -hotcoldsplit -lower-guard-intrinsic -forceattrs -adce -coro-cleanup -adce -pgo-memop-opt -slsr -dce -early-cse-memssa -ipconstprop -loop-predication -coro-elide -inject-tli-mappings -infer-address-spaces -argpromotion -float2int -separate-const-offset-from-gep -dce -loop-versioning-licm -coro-early -slp-vectorizer -adce -nary-reassociate -libcalls-shrinkwrap -instnamer -coro-early -add-discriminators -alignment-from-assumptions -lower-widenable-condition -rewrite-statepoints-for-gc -lower-widenable-condition -coro-early -argpromotion -pgo-memop-opt -inject-tli-mappings -lower-guard-intrinsic -mem2reg -lower-matrix-intrinsics -loop-sink -scalarizer -die -loop-fusion -slsr -coro-split -globaldce -inject-tli-mappings -ee-instrument -lower-constant-intrinsics -speculative-execution -dce -loop-reduce -strip -loop-unroll -prune-eh -callsite-splitting -post-inline-ee-instrument -instsimplify -mergefunc -adce -simplifycfg -callsite-splitting -gvn -globaldce -coro-early -early-cse-memssa -loop-data-prefetch -lower-expect -mergereturn -loop-vectorize -instnamer -sink -loop-versioning -cross-dso-cfi -instcombine -sancov -gvn-hoist -memcpyopt -loop-sink -nary-reassociate -loop-data-prefetch -lower-widenable-condition -add-discriminators -memcpyopt -mergefunc -inject-tli-mappings -sroa -barrier -loop-versioning -sccp -loop-data-prefetch -scalarizer -barrier -mergefunc -indvars -sccp -jump-threading -newgvn input.bc -o output.bc -benchmark://cBench-v1/crc32,0.9921875,11.96300196647644,opt -correlated-propagation -called-value-propagation -loop-versioning -slp-vectorizer -simple-loop-unswitch -always-inline -prune-eh -sroa -reg2mem -loop-idiom -nary-reassociate -prune-eh -reassociate -callsite-splitting -dce -loop-predication -float2int -partially-inline-libcalls -globaldce -coro-elide -rewrite-statepoints-for-gc -coro-split -tailcallelim -inferattrs -sancov -adce -lower-guard-intrinsic -loop-idiom -strip-nondebug -name-anon-globals -jump-threading -float2int -post-inline-ee-instrument -alignment-from-assumptions -loop-data-prefetch -tailcallelim -loop-load-elim -simple-loop-unswitch -sink -attributor -elim-avail-extern -aggressive-instcombine -break-crit-edges -lowerswitch -lowerinvoke -globalsplit -mergereturn -strip -indvars -loop-unroll-and-jam -loop-unroll -separate-const-offset-from-gep -infer-address-spaces -loop-versioning -loop-predication -loop-instsimplify -deadargelim -simplifycfg -strip-dead-prototypes -lowerinvoke -lower-constant-intrinsics -irce -inject-tli-mappings -partially-inline-libcalls -strip -constmerge -partial-inliner -pgo-memop-opt -infer-address-spaces -inline -irce -break-crit-edges -lower-matrix-intrinsics -globalsplit -slp-vectorizer -sroa -slp-vectorizer -loop-deletion -post-inline-ee-instrument -loop-unroll-and-jam -simple-loop-unswitch -mem2reg -mergereturn -sancov -loop-data-prefetch -simplifycfg -add-discriminators -gvn input.bc -o output.bc -benchmark://cBench-v1/crc32,0.9921875,12.11146593093872,opt -simple-loop-unswitch -loop-load-elim -nary-reassociate -nary-reassociate -slsr -post-inline-ee-instrument -lower-matrix-intrinsics -indvars -globalopt -mergereturn -coro-split -adce -simple-loop-unswitch -attributor -constmerge -strip-nondebug -separate-const-offset-from-gep -argpromotion -loop-interchange -gvn -strip-nondebug -add-discriminators -constmerge -mergeicmps -reg2mem -strip-debug-declare -speculative-execution -break-crit-edges -strip -loop-data-prefetch -name-anon-globals -globaldce -strip-dead-prototypes -loweratomic -sccp -partial-inliner -ee-instrument -aggressive-instcombine -scalarizer -forceattrs -argpromotion -argpromotion -instsimplify -strip-nondebug -ipconstprop -add-discriminators -loop-data-prefetch -globaldce -instsimplify -globalopt -alignment-from-assumptions -strip-dead-prototypes -newgvn -ee-instrument -strip-nondebug -loop-idiom -ipconstprop -guard-widening -correlated-propagation -gvn -lowerswitch -tailcallelim -barrier -dce -instnamer -loop-instsimplify -jump-threading -barrier -reg2mem -loop-vectorize -inline -loop-sink -mergefunc -licm -insert-gcov-profiling -constprop -aggressive-instcombine -lower-matrix-intrinsics -indvars -argpromotion -sroa -loop-data-prefetch -loop-predication -licm -loop-interchange -callsite-splitting -load-store-vectorizer -flattencfg -constmerge -reassociate -lower-matrix-intrinsics -jump-threading -loop-data-prefetch -coro-split -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,11.723689317703247,opt -partially-inline-libcalls -inferattrs -mem2reg -scalarizer -always-inline -coro-elide -loop-reroll -constmerge -loop-reroll -globalsplit -early-cse-memssa -insert-gcov-profiling -sroa -insert-gcov-profiling -jump-threading -simple-loop-unswitch -adce -deadargelim -simplifycfg -sccp -rpo-functionattrs -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,11.768340826034546,opt -strip -strip-debug-declare -prune-eh -add-discriminators -loop-interchange -infer-address-spaces -callsite-splitting -loop-interchange -loop-versioning -globalsplit -infer-address-spaces -rpo-functionattrs -attributor -loop-unswitch -guard-widening -deadargelim -loop-data-prefetch -loop-data-prefetch -newgvn -speculative-execution -instcombine -lower-guard-intrinsic -loop-sink -early-cse-memssa -loop-unroll -constmerge -inferattrs -called-value-propagation -lowerswitch -strip-nondebug -dce -redundant-dbg-inst-elim -sink -mergefunc -pgo-memop-opt -loop-distribute -sink -loop-deletion -name-anon-globals -lcssa -loop-idiom -irce -lowerswitch -loop-versioning-licm -bdce -prune-eh -rpo-functionattrs -loop-unroll-and-jam -loweratomic -libcalls-shrinkwrap -strip-dead-prototypes -strip-dead-prototypes -break-crit-edges -lower-expect -globaldce -slsr -adce -instcombine -insert-gcov-profiling -nary-reassociate -infer-address-spaces -prune-eh -load-store-vectorizer -argpromotion -ipconstprop -dse -tailcallelim -scalarizer -inferattrs -mldst-motion -slp-vectorizer -loop-fusion -reassociate -post-inline-ee-instrument -constprop -lcssa -globaldce -loweratomic -sancov -strip-dead-prototypes -lowerinvoke -mldst-motion -jump-threading -loop-predication -lower-matrix-intrinsics -load-store-vectorizer -globaldce -mergeicmps -float2int -loop-vectorize -gvn -tailcallelim -redundant-dbg-inst-elim -globalopt -irce -loop-load-elim -lcssa -called-value-propagation -speculative-execution -loop-instsimplify -simple-loop-unswitch -newgvn -reassociate -redundant-dbg-inst-elim -sroa -mergereturn -globalsplit -sroa -lower-matrix-intrinsics -called-value-propagation -mldst-motion -barrier -elim-avail-extern -dce -tailcallelim -loop-versioning -callsite-splitting -partially-inline-libcalls -aggressive-instcombine -simple-loop-unswitch -globaldce -dse -bdce -separate-const-offset-from-gep -mergeicmps -sancov -speculative-execution -elim-avail-extern -flattencfg -adce -forceattrs -flattencfg -loop-simplify -canonicalize-aliases -loop-load-elim -die -scalarizer -strip-dead-prototypes -cross-dso-cfi -lowerswitch -strip -nary-reassociate -slsr -bdce -instcombine -newgvn -float2int -cross-dso-cfi -canonicalize-aliases -loop-predication -partial-inliner -coro-elide -irce -globaldce -coro-elide -argpromotion -rewrite-statepoints-for-gc -reassociate -ipconstprop -early-cse-memssa -constmerge -coro-elide -loop-reroll -infer-address-spaces -coro-elide -coro-split -gvn-hoist -cross-dso-cfi -loop-versioning-licm -loop-distribute -tailcallelim -pgo-memop-opt -lower-guard-intrinsic -forceattrs -loop-interchange -nary-reassociate -sink -early-cse-memssa -coro-cleanup -loop-vectorize -loop-instsimplify -loop-versioning -mem2reg -lcssa -strip-nondebug -strip-dead-prototypes -coro-early -gvn -redundant-dbg-inst-elim -scalarizer -ipsccp -infer-address-spaces -instcombine -lower-matrix-intrinsics -irce -barrier -correlated-propagation -lower-constant-intrinsics -gvn-hoist -slp-vectorizer -loop-vectorize -loop-instsimplify -loop-instsimplify -instsimplify -deadargelim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,11.806458950042725,opt -lcssa -strip -always-inline -prune-eh -argpromotion -scalarizer -ee-instrument -inject-tli-mappings -lcssa -lower-expect -coro-cleanup -partial-inliner -loop-sink -sink -ipsccp -forceattrs -globalsplit -correlated-propagation -loop-guard-widening -strip-nondebug -name-anon-globals -load-store-vectorizer -rewrite-statepoints-for-gc -mldst-motion -mldst-motion -speculative-execution -attributor -name-anon-globals -tailcallelim -loop-fusion -alignment-from-assumptions -newgvn -separate-const-offset-from-gep -div-rem-pairs -lower-constant-intrinsics -inferattrs -forceattrs -globalsplit -loop-simplifycfg -callsite-splitting -bdce -sroa -mergefunc -lowerswitch -sroa -flattencfg -mergefunc -mergefunc -elim-avail-extern -loop-unroll -flattencfg -inferattrs -reassociate -strip-debug-declare -ipconstprop -gvn-hoist -speculative-execution -instsimplify -loop-deletion -gvn-hoist -guard-widening -loop-interchange -bdce -lower-matrix-intrinsics -cross-dso-cfi -loop-versioning -redundant-dbg-inst-elim -loop-simplifycfg -libcalls-shrinkwrap -tailcallelim -jump-threading -globalsplit -div-rem-pairs -constprop -ipconstprop -rewrite-statepoints-for-gc -loop-load-elim -lowerswitch -inject-tli-mappings -insert-gcov-profiling -break-crit-edges -called-value-propagation -simplifycfg -inject-tli-mappings -add-discriminators -dce -aggressive-instcombine -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,11.919891834259033,opt -globalsplit -loop-unroll-and-jam -barrier -partially-inline-libcalls -gvn-hoist -loop-interchange -loop-data-prefetch -lower-guard-intrinsic -lcssa -mem2reg -mergereturn -hotcoldsplit -newgvn -barrier -pgo-memop-opt -reassociate -simplifycfg -die -deadargelim -libcalls-shrinkwrap -lowerinvoke -mergeicmps -loop-vectorize -loop-fusion -mldst-motion -loop-vectorize -post-inline-ee-instrument -load-store-vectorizer -rpo-functionattrs -sancov -load-store-vectorizer -loop-fusion -lowerswitch -consthoist -libcalls-shrinkwrap -loop-versioning -globalsplit -post-inline-ee-instrument -constmerge -loop-guard-widening -adce -inject-tli-mappings -cross-dso-cfi -instcombine -float2int -loop-reroll -loop-vectorize -prune-eh -sccp -coro-elide -dce -elim-avail-extern -nary-reassociate -simplifycfg -gvn input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,11.926751136779785,opt -name-anon-globals -load-store-vectorizer -loop-versioning -float2int -bdce -float2int -loop-fusion -loop-distribute -loop-guard-widening -nary-reassociate -instsimplify -loop-interchange -sccp -lower-matrix-intrinsics -gvn-hoist -nary-reassociate -break-crit-edges -cross-dso-cfi -insert-gcov-profiling -prune-eh -loop-simplifycfg -loop-load-elim -mem2reg -die -strip-dead-prototypes -mergereturn -loop-vectorize -add-discriminators -loop-fusion -licm -strip-dead-prototypes -aggressive-instcombine -rewrite-statepoints-for-gc -ipsccp -deadargelim -loweratomic -reassociate -loop-predication -consthoist -div-rem-pairs -gvn-hoist -strip-dead-prototypes -lower-widenable-condition -correlated-propagation -inject-tli-mappings -ipconstprop -dse -reassociate -loop-unroll -barrier -strip -rpo-functionattrs -insert-gcov-profiling -gvn -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,11.97989559173584,opt -coro-elide -loop-unroll -early-cse-memssa -loop-simplify -always-inline -lower-expect -loop-interchange -loop-versioning-licm -lower-matrix-intrinsics -indvars -loop-unroll -elim-avail-extern -partially-inline-libcalls -loop-guard-widening -constmerge -ee-instrument -loweratomic -div-rem-pairs -adce -loop-unroll -loop-deletion -reassociate -constmerge -memcpyopt -consthoist -reassociate -simple-loop-unswitch -correlated-propagation -globalopt -aggressive-instcombine -coro-elide -attributor -lower-constant-intrinsics -partially-inline-libcalls -coro-split -reassociate -loop-simplify -licm -hotcoldsplit -tailcallelim -flattencfg -lower-matrix-intrinsics -die -strip-dead-prototypes -rewrite-statepoints-for-gc -argpromotion -instsimplify -inferattrs -break-crit-edges -mergeicmps -coro-early -loop-vectorize -ipconstprop -loop-deletion -lowerinvoke -break-crit-edges -constprop -instcombine -inject-tli-mappings -loop-distribute -partial-inliner -loop-unroll-and-jam -guard-widening -instsimplify -reassociate -coro-early -lower-constant-intrinsics -newgvn -ipsccp -tailcallelim -coro-elide -sroa -loop-simplify -loop-guard-widening -loop-load-elim -loop-sink -lcssa -slp-vectorizer -loop-reduce -mergefunc -load-store-vectorizer -lower-guard-intrinsic -prune-eh -ipsccp -dse -reassociate -loop-guard-widening -mergereturn -lower-widenable-condition -constmerge -inferattrs -attributor -loop-interchange -ee-instrument -load-store-vectorizer -simplifycfg -aggressive-instcombine -simplifycfg -lowerswitch -newgvn -loop-reduce -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,12.256370306015015,opt -separate-const-offset-from-gep -coro-split -globalopt -attributor -irce -lowerinvoke -consthoist -globalopt -mergeicmps -lcssa -loop-deletion -argpromotion -name-anon-globals -strip-debug-declare -constprop -scalarizer -sroa -die -sink -slsr -consthoist -dse -barrier -lcssa -ipsccp -always-inline -pgo-memop-opt -infer-address-spaces -slp-vectorizer -lower-expect -infer-address-spaces -loop-fusion -loop-sink -mem2reg -loop-reduce -strip-debug-declare -coro-cleanup -strip -pgo-memop-opt -instsimplify -constmerge -loop-unroll-and-jam -lowerinvoke -loop-guard-widening -loop-load-elim -loop-simplify -constprop -early-cse-memssa -irce -div-rem-pairs -post-inline-ee-instrument -div-rem-pairs -ee-instrument -ee-instrument -div-rem-pairs -lowerswitch -lower-matrix-intrinsics -lower-expect -strip-debug-declare -prune-eh -prune-eh -early-cse-memssa -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9540816326530615,12.104652643203735,opt -loop-reduce -loop-sink -mem2reg -pgo-memop-opt -pgo-memop-opt -bdce -hotcoldsplit -sancov -slp-vectorizer -instsimplify -reassociate -newgvn -speculative-execution -libcalls-shrinkwrap -mem2reg -elim-avail-extern -loop-simplify -irce -ipsccp -indvars -flattencfg -indvars -jump-threading -sroa -simple-loop-unswitch -lower-expect -loop-distribute -constprop -pgo-memop-opt -coro-early -inferattrs -loop-data-prefetch -newgvn -functionattrs -instsimplify -argpromotion -instcombine input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9693877551020408,12.26811695098877,opt -scalarizer -loop-sink -functionattrs -deadargelim -loop-simplifycfg -loop-sink -simple-loop-unswitch -slsr -pgo-memop-opt -loop-interchange -elim-avail-extern -indvars -loop-deletion -insert-gcov-profiling -mldst-motion -bdce -slsr -loop-unroll -speculative-execution -lower-expect -functionattrs -lower-widenable-condition -correlated-propagation -strip -loop-unroll -simple-loop-unswitch -dce -loop-vectorize -mldst-motion -tailcallelim -break-crit-edges -mergeicmps -insert-gcov-profiling -slp-vectorizer -lower-matrix-intrinsics -bdce -globaldce -name-anon-globals -ipconstprop -post-inline-ee-instrument -separate-const-offset-from-gep -loop-simplifycfg -gvn-hoist -sink -loop-sink -inject-tli-mappings -argpromotion -irce -coro-split -sink -loop-load-elim -lower-guard-intrinsic -early-cse-memssa -inferattrs -loop-predication -speculative-execution -licm -early-cse-memssa -forceattrs -infer-address-spaces -rpo-functionattrs -sroa -deadargelim -simple-loop-unswitch -correlated-propagation -strip-nondebug -loop-interchange -rpo-functionattrs -indvars -partial-inliner -lower-constant-intrinsics -early-cse-memssa -called-value-propagation -simplifycfg -loop-guard-widening -forceattrs -post-inline-ee-instrument -mem2reg -jump-threading -canonicalize-aliases -ee-instrument -newgvn -callsite-splitting -rpo-functionattrs -loweratomic -strip -loop-unroll-and-jam -prune-eh -instcombine -die -canonicalize-aliases -nary-reassociate -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9693877551020409,11.962674379348755,opt -forceattrs -infer-address-spaces -rewrite-statepoints-for-gc -hotcoldsplit -add-discriminators -name-anon-globals -die -loweratomic -newgvn -mem2reg -dse -speculative-execution -memcpyopt -simplifycfg -insert-gcov-profiling -sroa -globaldce -pgo-memop-opt -tailcallelim -lower-constant-intrinsics -lower-expect -speculative-execution -instcombine input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9693877551020409,12.425644397735596,opt -elim-avail-extern -rpo-functionattrs -jump-threading -loop-instsimplify -loop-simplify -alignment-from-assumptions -simple-loop-unswitch -inject-tli-mappings -load-store-vectorizer -sroa -instnamer -attributor -die -bdce -strip -always-inline -reassociate -loop-predication -coro-cleanup -sink -loop-unroll -scalarizer -mergeicmps -lcssa -instnamer -adce -coro-split -redundant-dbg-inst-elim -lcssa -constprop -elim-avail-extern -loop-unswitch -loop-unroll-and-jam -loweratomic -nary-reassociate -bdce -partially-inline-libcalls -gvn-hoist -inferattrs -irce -loop-unswitch -separate-const-offset-from-gep -sancov -ipsccp -constmerge -sroa -instnamer -redundant-dbg-inst-elim -loop-idiom -loop-distribute -slp-vectorizer -loop-vectorize -simple-loop-unswitch -float2int -sancov -sancov -slsr -called-value-propagation -loop-reduce -globaldce -scalarizer -prune-eh -loop-predication -lower-expect -loop-deletion -slsr -mem2reg -add-discriminators -loop-versioning -loop-reroll -forceattrs -lower-widenable-condition -loop-load-elim -coro-cleanup -partially-inline-libcalls -attributor -libcalls-shrinkwrap -loweratomic -called-value-propagation -instsimplify -loop-sink -called-value-propagation -jump-threading -load-store-vectorizer -sroa -constprop -slp-vectorizer -mldst-motion -guard-widening -gvn -loop-versioning-licm -dse -loop-predication -loop-reroll -hotcoldsplit -licm -mergereturn -sink -mergeicmps -div-rem-pairs -functionattrs -lower-expect -rpo-functionattrs -loop-predication -loop-data-prefetch -elim-avail-extern -always-inline -guard-widening -div-rem-pairs -prune-eh -strip -licm -reg2mem -loop-sink -rewrite-statepoints-for-gc -inject-tli-mappings -loop-sink -lower-matrix-intrinsics -strip-dead-prototypes -sroa -loop-sink -globaldce -barrier -post-inline-ee-instrument -dse -prune-eh -deadargelim -libcalls-shrinkwrap -rpo-functionattrs -forceattrs -name-anon-globals -sink -simplifycfg -gvn -loop-guard-widening -loop-guard-widening -slsr -loop-unroll -consthoist -loop-interchange -slsr -inferattrs -lower-widenable-condition -mem2reg -strip-debug-declare -simplifycfg -loop-reroll -lcssa -lower-constant-intrinsics -barrier -sancov -cross-dso-cfi -lower-expect -coro-elide -loop-load-elim -dse -simple-loop-unswitch -aggressive-instcombine -coro-elide -lower-guard-intrinsic -cross-dso-cfi -insert-gcov-profiling -early-cse-memssa -lowerinvoke -lower-expect -callsite-splitting -lowerinvoke -loop-reroll -load-store-vectorizer -guard-widening -rpo-functionattrs -instnamer -coro-cleanup -loop-versioning-licm -loop-data-prefetch -dce -coro-elide -loop-instsimplify -mergefunc -always-inline -instsimplify -ipsccp -instnamer -constprop -jump-threading -lower-expect -loop-fusion -ipsccp -coro-cleanup -break-crit-edges -ipsccp -loop-simplify -loop-unroll-and-jam -bdce -strip-debug-declare -dse -loop-reduce -slp-vectorizer -gvn -forceattrs -lowerswitch -rewrite-statepoints-for-gc -inject-tli-mappings -reassociate -licm -lowerswitch -name-anon-globals -pgo-memop-opt -dse -gvn-hoist -nary-reassociate -functionattrs -nary-reassociate -loop-deletion -loop-guard-widening -consthoist -barrier -loop-reroll -rpo-functionattrs -separate-const-offset-from-gep -strip-dead-prototypes -strip-debug-declare -instsimplify -nary-reassociate -mergefunc -lowerinvoke -flattencfg -loop-predication -reassociate -pgo-memop-opt -indvars -loop-distribute -mergefunc -aggressive-instcombine -coro-elide -loop-idiom -barrier -loop-vectorize -consthoist -simplifycfg -sroa -insert-gcov-profiling -lowerswitch -lcssa -instcombine input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9744897959183674,12.125283002853394,opt -functionattrs -loop-distribute -callsite-splitting -dce -sancov -add-discriminators -argpromotion -simplifycfg -loop-reduce -ee-instrument -redundant-dbg-inst-elim -instnamer -reg2mem -sink -partially-inline-libcalls -strip-debug-declare -loop-unroll -loop-predication -callsite-splitting -slsr -libcalls-shrinkwrap -partially-inline-libcalls -deadargelim -dce -argpromotion -forceattrs -aggressive-instcombine -barrier -div-rem-pairs -lower-constant-intrinsics -globaldce -ipsccp -barrier -rewrite-statepoints-for-gc -loop-data-prefetch -memcpyopt -callsite-splitting -ee-instrument -loop-unswitch -indvars -strip -memcpyopt -scalarizer -constmerge -coro-early -loop-distribute -lower-expect -lower-expect -loop-instsimplify -argpromotion -reassociate -slp-vectorizer -pgo-memop-opt -insert-gcov-profiling -functionattrs -loop-unroll -loop-reduce -callsite-splitting -lower-widenable-condition -coro-elide -coro-early -newgvn -loop-instsimplify -lower-widenable-condition -gvn-hoist -jump-threading -sroa -strip -ipsccp -strip-dead-prototypes -adce -memcpyopt -load-store-vectorizer -partially-inline-libcalls -indvars -early-cse-memssa -hotcoldsplit -newgvn -guard-widening -loop-unroll-and-jam -tailcallelim -lcssa -ee-instrument -newgvn -loweratomic -lowerinvoke -flattencfg -instsimplify -loop-interchange -speculative-execution -reassociate -always-inline -instcombine -lower-matrix-intrinsics -loop-predication -guard-widening -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9795918367346937,11.949142694473267,opt -instnamer -partially-inline-libcalls -loop-distribute -loop-predication -die -lower-expect -early-cse-memssa -rpo-functionattrs -redundant-dbg-inst-elim -separate-const-offset-from-gep -loop-load-elim -strip-nondebug -loop-versioning-licm -sancov -add-discriminators -float2int -loop-simplifycfg -inferattrs -alignment-from-assumptions -strip-debug-declare -loop-versioning -memcpyopt -indvars -loop-guard-widening -irce -guard-widening -loop-simplifycfg -lower-constant-intrinsics -argpromotion -loop-reroll -argpromotion -lowerinvoke -gvn-hoist -loop-unroll-and-jam -dse -sancov -newgvn -mem2reg -argpromotion -loop-load-elim -scalarizer -loop-sink -forceattrs -break-crit-edges -loop-unroll-and-jam -irce -canonicalize-aliases -memcpyopt -dce -mergereturn -adce -coro-elide -bdce -loop-predication -mem2reg -loop-reduce -simplifycfg -add-discriminators -scalarizer -libcalls-shrinkwrap -always-inline -reassociate -lower-constant-intrinsics -ipconstprop -aggressive-instcombine -called-value-propagation -gvn-hoist -die -loop-versioning-licm -loop-sink -mldst-motion -lower-guard-intrinsic -div-rem-pairs -mergeicmps -memcpyopt -loop-distribute -forceattrs -ipconstprop -rewrite-statepoints-for-gc -load-store-vectorizer -loop-versioning-licm -loop-reduce -simplifycfg -coro-elide -simple-loop-unswitch -loop-reroll -licm -loop-versioning -callsite-splitting -correlated-propagation -lower-guard-intrinsic -inferattrs -loop-guard-widening -cross-dso-cfi -name-anon-globals -loop-interchange -div-rem-pairs -dce -irce -loop-distribute -coro-early -loop-versioning -lower-guard-intrinsic -globalopt -loop-versioning-licm -instcombine -aggressive-instcombine -sink -jump-threading input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9795918367346937,12.17411756515503,opt -dse -loop-reduce -gvn-hoist -float2int -libcalls-shrinkwrap -called-value-propagation -instnamer -sink -rpo-functionattrs -loop-fusion -loop-versioning-licm -loop-distribute -instsimplify -ipsccp -sancov -loop-distribute -dce -lowerswitch -newgvn -instsimplify -aggressive-instcombine -globalsplit -lower-widenable-condition -mergefunc -ipconstprop -sroa -die -loop-sink -loop-reroll -sroa -globaldce -loop-distribute -speculative-execution -add-discriminators -sccp -tailcallelim -partially-inline-libcalls -functionattrs -loop-reroll -loweratomic -forceattrs -globalsplit -loop-load-elim -consthoist -instcombine -deadargelim -loop-instsimplify -div-rem-pairs -dse -instcombine -coro-elide -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9795918367346939,12.16299557685852,opt -loop-versioning -coro-early -scalarizer -bdce -nary-reassociate -partially-inline-libcalls -alignment-from-assumptions -div-rem-pairs -lcssa -newgvn -constmerge -forceattrs -alignment-from-assumptions -mem2reg -globaldce -mergefunc -separate-const-offset-from-gep -loop-unswitch -lower-widenable-condition -attributor -loop-versioning -alignment-from-assumptions -flattencfg -cross-dso-cfi -lower-constant-intrinsics -strip -instcombine -functionattrs -loop-vectorize -ipsccp -simplifycfg -attributor -aggressive-instcombine -lower-matrix-intrinsics -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9795918367346939,12.400394678115845,opt -coro-early -ipconstprop -canonicalize-aliases -lower-constant-intrinsics -instnamer -early-cse-memssa -lower-constant-intrinsics -float2int -mergefunc -loop-load-elim -mergereturn -loop-unroll -loop-idiom -libcalls-shrinkwrap -rpo-functionattrs -lcssa -strip-dead-prototypes -scalarizer -loop-fusion -reassociate -bdce -coro-cleanup -inject-tli-mappings -reassociate -loop-fusion -globaldce -reg2mem -strip -ipconstprop -reg2mem -sink -loop-simplifycfg -aggressive-instcombine -loop-instsimplify -prune-eh -reg2mem -tailcallelim -early-cse-memssa -barrier -barrier -mldst-motion -loop-data-prefetch -forceattrs -loop-versioning -sink -strip-dead-prototypes -speculative-execution -loop-deletion -slp-vectorizer -ipsccp -jump-threading -pgo-memop-opt -coro-split -loop-unroll -lowerinvoke -callsite-splitting -scalarizer -loop-simplify -irce -instnamer -sroa -instsimplify -cross-dso-cfi -newgvn -rpo-functionattrs -loop-reduce -attributor -loop-simplifycfg -coro-split -sroa -lower-expect -coro-early -ee-instrument -strip -lower-matrix-intrinsics -gvn-hoist -strip-debug-declare -separate-const-offset-from-gep -sancov -newgvn -loop-fusion -slsr -gvn-hoist -loop-simplify -strip -loop-guard-widening -simple-loop-unswitch -sroa -forceattrs -slp-vectorizer -loop-idiom -strip-dead-prototypes -sancov -canonicalize-aliases -simple-loop-unswitch -scalarizer -guard-widening -ipsccp -inject-tli-mappings -aggressive-instcombine -licm -elim-avail-extern -loop-versioning-licm -float2int -gvn-hoist -coro-split -coro-early -loop-reduce -coro-elide -simplifycfg -partially-inline-libcalls -canonicalize-aliases -loop-versioning-licm -loop-data-prefetch -callsite-splitting -simple-loop-unswitch -deadargelim -loop-deletion -loop-vectorize -functionattrs -loweratomic -jump-threading -loop-reroll -guard-widening -pgo-memop-opt -reg2mem -coro-elide -slsr -separate-const-offset-from-gep -coro-cleanup -sancov -elim-avail-extern -deadargelim -mem2reg -instcombine -constmerge -reg2mem -instsimplify -lower-expect -callsite-splitting -globaldce -sroa -loop-fusion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9948979591836736,11.850993156433105,opt -strip -sroa -globaldce -coro-split -lower-constant-intrinsics -loop-versioning -lower-constant-intrinsics -load-store-vectorizer -cross-dso-cfi -dce -lower-widenable-condition -loop-reroll -barrier -dce -loop-distribute -cross-dso-cfi -always-inline -newgvn -strip-debug-declare -loop-reroll -loop-predication -jump-threading -prune-eh -memcpyopt -gvn-hoist -libcalls-shrinkwrap -elim-avail-extern -mldst-motion -loop-reroll -callsite-splitting -float2int -loop-guard-widening -correlated-propagation -lowerinvoke -strip-debug-declare -slp-vectorizer -sccp -instcombine -dce -barrier -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.977961552919373,340.80205249786377,opt -libcalls-shrinkwrap -loop-unroll-and-jam -constmerge -lowerinvoke -loweratomic -inject-tli-mappings -ipsccp -consthoist -instsimplify -indvars -loop-simplifycfg -loop-instsimplify -rewrite-statepoints-for-gc -rewrite-statepoints-for-gc -sccp -functionattrs -strip-debug-declare -coro-cleanup -lowerinvoke -die -cross-dso-cfi -loop-sink -loop-predication -loop-guard-widening -add-discriminators -loop-distribute -mergereturn -guard-widening -loop-simplify -instnamer -prune-eh -pgo-memop-opt -deadargelim -slp-vectorizer -called-value-propagation -lower-matrix-intrinsics -die -strip -jump-threading -inject-tli-mappings -newgvn -loop-predication -deadargelim -gvn -elim-avail-extern -dse -infer-address-spaces -instnamer -loweratomic -loop-data-prefetch -mem2reg -dse -instcombine -bdce -memcpyopt -instsimplify -dse -licm -loop-vectorize -jump-threading -sroa -loop-sink -argpromotion -loop-unroll -loop-fusion -coro-early -gvn-hoist -loop-sink -post-inline-ee-instrument -coro-early -early-cse-memssa -callsite-splitting -libcalls-shrinkwrap -loop-distribute -scalarizer -scalarizer -loop-load-elim -sink -instnamer -break-crit-edges -inject-tli-mappings -loop-versioning-licm -separate-const-offset-from-gep -lowerswitch -partially-inline-libcalls -memcpyopt -strip -strip-nondebug -loop-vectorize -canonicalize-aliases -bdce -mergereturn -instnamer -scalarizer -indvars -die -partial-inliner -slsr -coro-elide -load-store-vectorizer -post-inline-ee-instrument -strip-debug-declare -ipconstprop -rewrite-statepoints-for-gc -called-value-propagation -bdce -mergereturn -forceattrs -ipsccp -die -reassociate -tailcallelim -lower-widenable-condition -infer-address-spaces -break-crit-edges -insert-gcov-profiling -memcpyopt -callsite-splitting -die -inject-tli-mappings -hotcoldsplit -mergefunc -name-anon-globals -instcombine -inject-tli-mappings -instnamer -constmerge -post-inline-ee-instrument -sroa -constmerge -attributor -loop-data-prefetch -scalarizer -sccp -slp-vectorizer -scalarizer -forceattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9786958764238445,435.53417801856995,opt -load-store-vectorizer -loop-sink -jump-threading -flattencfg -memcpyopt -consthoist -ipsccp -correlated-propagation -sccp -die -die -loop-unroll -sink -slsr -canonicalize-aliases -loop-unroll -post-inline-ee-instrument -correlated-propagation -deadargelim -forceattrs -mem2reg -loop-instsimplify -globalsplit -mergeicmps -deadargelim -loop-deletion -correlated-propagation -constmerge -lower-expect -callsite-splitting -loweratomic -always-inline -strip-dead-prototypes -loop-distribute -dce -canonicalize-aliases -irce -coro-split -loop-vectorize -mergeicmps -coro-cleanup -lowerswitch -called-value-propagation -hotcoldsplit -globaldce -always-inline -slp-vectorizer -dce -coro-elide -argpromotion -mldst-motion -memcpyopt -forceattrs -rpo-functionattrs -loop-deletion -loop-unroll -mldst-motion -simplifycfg -lower-expect -slp-vectorizer -loop-load-elim -gvn -lower-guard-intrinsic -licm -irce -dse -loop-fusion -redundant-dbg-inst-elim -instcombine -mldst-motion -strip-debug-declare -add-discriminators -gvn -div-rem-pairs -instsimplify -tailcallelim -loop-reduce -loop-unroll-and-jam -inferattrs -break-crit-edges -coro-cleanup -ipconstprop -lower-matrix-intrinsics -ipsccp -loop-interchange -name-anon-globals -break-crit-edges -lower-expect -tailcallelim -rewrite-statepoints-for-gc -die -newgvn -guard-widening -break-crit-edges -loop-unroll -hotcoldsplit -loop-unroll -lcssa -cross-dso-cfi -loop-predication -loop-deletion -libcalls-shrinkwrap -forceattrs -called-value-propagation -die -barrier -die -attributor -sink -loop-versioning -bdce -pgo-memop-opt -loop-versioning-licm -inferattrs -loop-distribute -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9787745539421807,293.76403188705444,opt -partially-inline-libcalls -newgvn -tailcallelim -sroa -instcombine -simplifycfg -slp-vectorizer input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9810343471077269,331.94740438461304,opt -newgvn -partially-inline-libcalls -nary-reassociate -pgo-memop-opt -attributor -strip -loop-distribute -loop-fusion -reg2mem -redundant-dbg-inst-elim -loop-load-elim -loop-sink -pgo-memop-opt -loop-deletion -cross-dso-cfi -jump-threading -argpromotion -reassociate -inferattrs -slp-vectorizer -barrier -lower-widenable-condition -correlated-propagation -newgvn -loweratomic -ipconstprop -separate-const-offset-from-gep -consthoist -loop-fusion -loop-unroll -loop-idiom -gvn -lower-guard-intrinsic -load-store-vectorizer -name-anon-globals -loop-vectorize -ipconstprop -globalopt -reg2mem -loop-versioning -coro-cleanup -insert-gcov-profiling -separate-const-offset-from-gep -loop-unroll -forceattrs -sroa -strip -div-rem-pairs -mergereturn -rewrite-statepoints-for-gc -reg2mem -loop-data-prefetch -loop-unswitch -mem2reg -nary-reassociate -lower-expect -lower-matrix-intrinsics -libcalls-shrinkwrap -memcpyopt -sccp -loop-instsimplify -forceattrs -loop-guard-widening -sancov -loop-unroll-and-jam -alignment-from-assumptions -loop-unroll-and-jam -simple-loop-unswitch -slsr -sink -loop-unswitch -coro-cleanup -strip -licm -deadargelim -tailcallelim -argpromotion -rewrite-statepoints-for-gc -aggressive-instcombine -licm -loop-instsimplify -gvn -partial-inliner -inject-tli-mappings -loop-data-prefetch -tailcallelim -newgvn -always-inline -lower-widenable-condition -name-anon-globals -loop-data-prefetch -callsite-splitting -instsimplify -ipconstprop -instcombine -loop-unroll-and-jam -coro-split -strip-debug-declare -constmerge -newgvn -slp-vectorizer -add-discriminators -coro-elide -inject-tli-mappings -sroa -libcalls-shrinkwrap -float2int -inferattrs -guard-widening -indvars -loop-reduce -insert-gcov-profiling -speculative-execution -insert-gcov-profiling -cross-dso-cfi -slp-vectorizer -gvn-hoist -partial-inliner -prune-eh -indvars -inject-tli-mappings -coro-elide -loop-guard-widening -irce -constmerge -loop-vectorize -partially-inline-libcalls -functionattrs -infer-address-spaces -deadargelim -jump-threading -globalopt -lower-matrix-intrinsics -instcombine input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9854839978669648,299.6495168209076,opt -loop-interchange -attributor -loop-versioning-licm -memcpyopt -coro-elide -add-discriminators -loop-reroll -flattencfg -simple-loop-unswitch -called-value-propagation -sancov -infer-address-spaces -ipsccp -attributor -strip-dead-prototypes -bdce -adce -inject-tli-mappings -attributor -strip-dead-prototypes -simple-loop-unswitch -strip -coro-elide -globalsplit -loop-idiom -guard-widening -dce -div-rem-pairs -redundant-dbg-inst-elim -die -loop-simplify -indvars -loop-simplify -tailcallelim -name-anon-globals -bdce -mergefunc -mem2reg -slsr -slsr -indvars -name-anon-globals -coro-split -newgvn -post-inline-ee-instrument -sccp -cross-dso-cfi -correlated-propagation -irce -gvn -load-store-vectorizer -instcombine -attributor -memcpyopt -instnamer -loop-load-elim -separate-const-offset-from-gep -strip-dead-prototypes -correlated-propagation -globaldce -alignment-from-assumptions -gvn-hoist -instnamer -bdce -globalsplit -argpromotion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9911312952942102,297.16990852355957,opt -sroa -instsimplify -strip-dead-prototypes -loop-unroll -guard-widening -float2int -pgo-memop-opt -lowerswitch -jump-threading -dce -strip -loop-sink -loop-predication -strip-nondebug -ee-instrument -sink -globalopt -float2int -lowerswitch -pgo-memop-opt -loop-distribute -coro-split -inferattrs -gvn -hotcoldsplit -loop-unroll -irce -instnamer -lcssa -constprop -separate-const-offset-from-gep -slsr -callsite-splitting -bdce -sancov -consthoist -div-rem-pairs -bdce -dse -strip-debug-declare -mergereturn -inject-tli-mappings -load-store-vectorizer -sink -adce -partially-inline-libcalls -indvars -globalsplit -called-value-propagation -globalsplit -mergereturn -pgo-memop-opt -lower-matrix-intrinsics -always-inline -post-inline-ee-instrument -licm -speculative-execution -indvars -coro-cleanup -irce -loop-fusion -barrier -mergefunc -loop-sink -jump-threading -alignment-from-assumptions -loop-interchange -partially-inline-libcalls -loop-reroll -memcpyopt -sink -strip-dead-prototypes -libcalls-shrinkwrap -name-anon-globals -reassociate -speculative-execution -mergereturn -strip-debug-declare -mldst-motion -rewrite-statepoints-for-gc -loop-reroll -add-discriminators -argpromotion -scalarizer -post-inline-ee-instrument -always-inline -strip-debug-declare -tailcallelim -loop-reduce -separate-const-offset-from-gep -loop-unroll-and-jam -called-value-propagation -flattencfg -canonicalize-aliases -loop-predication -separate-const-offset-from-gep -dse -add-discriminators -ee-instrument -attributor -lower-expect -add-discriminators -break-crit-edges -loop-predication -lowerswitch -forceattrs -loop-versioning -loop-versioning-licm -memcpyopt -reassociate -functionattrs -libcalls-shrinkwrap -lowerswitch -partially-inline-libcalls -alignment-from-assumptions -loop-load-elim -lower-matrix-intrinsics -infer-address-spaces -loop-distribute -separate-const-offset-from-gep -insert-gcov-profiling -elim-avail-extern -div-rem-pairs -canonicalize-aliases -ee-instrument -lower-constant-intrinsics -gvn -separate-const-offset-from-gep -alignment-from-assumptions -elim-avail-extern -prune-eh -jump-threading -alignment-from-assumptions -coro-early -instcombine -jump-threading -name-anon-globals -lower-expect -ipconstprop -newgvn -loop-interchange -name-anon-globals -sccp -newgvn -name-anon-globals -flattencfg -sroa -dce -constmerge -lowerswitch -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9913017632506052,329.5422034263611,opt -strip-dead-prototypes -lower-widenable-condition -loop-instsimplify -name-anon-globals -canonicalize-aliases -simplifycfg -loop-predication -canonicalize-aliases -partially-inline-libcalls -loop-predication -loop-interchange -loop-vectorize -pgo-memop-opt -adce -loop-sink -scalarizer -called-value-propagation -lower-constant-intrinsics -loop-unswitch -gvn -globalopt -sink -loop-idiom -pgo-memop-opt -loop-sink -flattencfg -rpo-functionattrs -loop-simplify -loop-idiom -loop-versioning-licm -load-store-vectorizer -coro-early -inferattrs -loop-versioning-licm -die -redundant-dbg-inst-elim -float2int -libcalls-shrinkwrap -loop-reduce -simplifycfg -deadargelim -slp-vectorizer -canonicalize-aliases -name-anon-globals -mldst-motion -rewrite-statepoints-for-gc -aggressive-instcombine -lower-matrix-intrinsics -inferattrs -loop-reduce -redundant-dbg-inst-elim -loop-load-elim -simplifycfg -alignment-from-assumptions -mergereturn -irce -coro-early -forceattrs -slsr -lower-widenable-condition -irce -div-rem-pairs -barrier -gvn -tailcallelim -globaldce -ipconstprop -instcombine -mldst-motion -simple-loop-unswitch -jump-threading -globalopt -globalopt -rewrite-statepoints-for-gc -scalarizer -simple-loop-unswitch -nary-reassociate -loop-distribute -loop-predication -coro-early -lower-widenable-condition -lower-widenable-condition -loop-fusion -loop-rotate -loop-load-elim -lower-expect -mldst-motion -slp-vectorizer -break-crit-edges -guard-widening -coro-early -inferattrs -newgvn -rewrite-statepoints-for-gc -licm -slp-vectorizer -gvn -strip-dead-prototypes -simplifycfg -sink -reassociate -loop-reduce -mem2reg -early-cse-memssa -loop-load-elim -sroa -add-discriminators -indvars -alignment-from-assumptions -attributor -separate-const-offset-from-gep -ee-instrument -lower-widenable-condition -globalopt -loop-sink -pgo-memop-opt -called-value-propagation -sccp -hotcoldsplit -loop-load-elim -mergereturn -pgo-memop-opt -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9960224143507793,278.31543612480164,opt -reassociate -loop-deletion -dse -coro-cleanup -reg2mem -loop-predication -ipconstprop -cross-dso-cfi -loop-unroll -dce -lower-matrix-intrinsics -bdce -lcssa -loop-unswitch -deadargelim -coro-early -always-inline -memcpyopt -loop-idiom -barrier -dce -add-discriminators -loop-reduce -bdce -sccp -lower-matrix-intrinsics -globalopt -consthoist -sroa -sink -reassociate -aggressive-instcombine -insert-gcov-profiling -jump-threading -coro-elide -div-rem-pairs -strip-dead-prototypes -elim-avail-extern -loop-interchange -float2int -coro-early -loop-distribute -licm -coro-elide -deadargelim -licm -load-store-vectorizer -hotcoldsplit -attributor -div-rem-pairs -called-value-propagation -loop-rotate -globalsplit -instcombine -slsr -strip-nondebug -coro-elide -prune-eh -argpromotion -instsimplify -loop-simplifycfg -callsite-splitting -guard-widening -attributor -loop-interchange -loweratomic -loop-reroll -loop-idiom -coro-cleanup -sccp -libcalls-shrinkwrap -globalsplit -sccp -jump-threading -mergefunc -simplifycfg -mergeicmps -nary-reassociate -lower-guard-intrinsic -lcssa -cross-dso-cfi -early-cse-memssa -infer-address-spaces -bdce -slp-vectorizer input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0014642760357022,562.3493282794952,opt -jump-threading -flattencfg -mergereturn -die -sroa -loop-predication -reassociate -loop-instsimplify -gvn -flattencfg -bdce -simplifycfg -insert-gcov-profiling -loweratomic -lowerinvoke -loop-guard-widening -loop-idiom -called-value-propagation -coro-cleanup -tailcallelim -partially-inline-libcalls -ipconstprop -elim-avail-extern -hotcoldsplit -loop-idiom -mergereturn -attributor -loop-sink -die -licm -lower-constant-intrinsics -alignment-from-assumptions -instsimplify -canonicalize-aliases -loop-versioning -loop-versioning-licm -loop-distribute -reassociate -coro-cleanup -lower-guard-intrinsic -loop-data-prefetch -mldst-motion -adce -callsite-splitting -tailcallelim -loop-idiom -coro-split -functionattrs -mldst-motion -flattencfg -deadargelim -rpo-functionattrs -lowerswitch -loop-simplify -reg2mem -dse -cross-dso-cfi -gvn-hoist -gvn-hoist -memcpyopt -libcalls-shrinkwrap -hotcoldsplit -loop-reroll -coro-cleanup -aggressive-instcombine -gvn-hoist -loop-idiom -slp-vectorizer -redundant-dbg-inst-elim -globalsplit -loop-unroll -loop-idiom -loop-instsimplify -loop-data-prefetch -ipconstprop -sccp -loop-instsimplify -post-inline-ee-instrument -sroa -loop-simplify -loop-simplify -irce -simplifycfg -lcssa -loop-fusion -ipsccp -loop-versioning-licm -partially-inline-libcalls -partially-inline-libcalls -argpromotion -float2int -newgvn -div-rem-pairs -instnamer -coro-split -lcssa -lower-widenable-condition -indvars -jump-threading -scalarizer -float2int -loop-instsimplify -correlated-propagation -barrier -hotcoldsplit -load-store-vectorizer -instcombine -irce -elim-avail-extern -loop-versioning-licm -correlated-propagation -redundant-dbg-inst-elim -coro-split -sancov -instcombine -constmerge -float2int -globaldce -die -redundant-dbg-inst-elim -lower-matrix-intrinsics -argpromotion -lower-constant-intrinsics -loop-fusion -div-rem-pairs -insert-gcov-profiling -insert-gcov-profiling -strip-debug-declare -loop-deletion -cross-dso-cfi -loop-unroll-and-jam -gvn -ipconstprop -loop-versioning -loop-interchange -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0049654256016645,283.5457594394684,opt -lowerinvoke -scalarizer -adce -coro-split -early-cse-memssa -post-inline-ee-instrument -flattencfg -loop-instsimplify -loweratomic -memcpyopt -elim-avail-extern -sroa -loop-fusion -loop-sink -sancov -speculative-execution -die -newgvn -mergefunc -loop-data-prefetch -jump-threading -loop-predication -coro-elide -coro-split -redundant-dbg-inst-elim -mem2reg -redundant-dbg-inst-elim -loop-reduce -coro-elide -jump-threading -sancov -dce -constmerge -nary-reassociate -attributor -instnamer -lower-expect -alignment-from-assumptions -loop-simplify -simple-loop-unswitch -sccp -instcombine -canonicalize-aliases -loop-versioning -simplifycfg -slsr -loop-distribute -instcombine -loop-simplify -loop-guard-widening -insert-gcov-profiling -jump-threading -prune-eh -constmerge -infer-address-spaces -ee-instrument -loop-load-elim -div-rem-pairs -lower-constant-intrinsics -sccp -coro-split -mem2reg -lcssa -jump-threading -load-store-vectorizer -early-cse-memssa -strip-dead-prototypes -dse -consthoist -irce -add-discriminators -lowerinvoke -loop-fusion -tailcallelim -loop-interchange -sroa -mem2reg -adce -guard-widening -partially-inline-libcalls -loop-fusion -lower-guard-intrinsic -add-discriminators -post-inline-ee-instrument -slp-vectorizer -partially-inline-libcalls -rpo-functionattrs -cross-dso-cfi -strip -lower-matrix-intrinsics -separate-const-offset-from-gep -gvn-hoist -lower-widenable-condition -instcombine input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0170567729083666,23.498672485351562,opt -licm -inline -attributor -loop-load-elim -globalsplit -forceattrs -gvn -coro-early -add-discriminators -coro-early -early-cse-memssa -loop-unroll -argpromotion -libcalls-shrinkwrap -dse -div-rem-pairs -jump-threading -loop-deletion -lower-expect -coro-cleanup -aggressive-instcombine -mldst-motion -nary-reassociate -dce -sroa -instnamer -loop-reduce -guard-widening -post-inline-ee-instrument -guard-widening -loop-unroll-and-jam -loop-idiom -globalopt -irce -lowerinvoke -cross-dso-cfi -hotcoldsplit -lowerinvoke -speculative-execution -loop-predication -strip -deadargelim -functionattrs -deadargelim -speculative-execution -instcombine -called-value-propagation -simplifycfg -loop-reroll -float2int -deadargelim -dse -dce -flattencfg -bdce -gvn -mem2reg -lower-matrix-intrinsics -forceattrs -callsite-splitting -loop-predication -inject-tli-mappings -strip-debug-declare -coro-early -lower-widenable-condition -gvn -load-store-vectorizer -loop-simplifycfg -forceattrs -deadargelim -called-value-propagation -canonicalize-aliases -prune-eh -argpromotion -loop-deletion -simplifycfg -indvars -dce -inferattrs -loop-simplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0220368525896417,15.433346271514893,opt -constmerge -break-crit-edges -inline -mergefunc -loop-reduce -lower-expect -ipconstprop -guard-widening -break-crit-edges -adce -indvars -loop-predication -simplifycfg -mergefunc -memcpyopt -insert-gcov-profiling -separate-const-offset-from-gep -functionattrs -bdce -float2int -tailcallelim -partial-inliner -lower-matrix-intrinsics -loop-unswitch -mem2reg -strip -name-anon-globals -instcombine -redundant-dbg-inst-elim -instnamer -loop-deletion -prune-eh -called-value-propagation -simple-loop-unswitch -strip -loop-unswitch -lower-constant-intrinsics -pgo-memop-opt -consthoist -loweratomic -lower-widenable-condition -loop-versioning -loop-unroll-and-jam -strip-dead-prototypes -loop-instsimplify -gvn-hoist -rewrite-statepoints-for-gc -early-cse-memssa -lowerinvoke -licm -instsimplify -add-discriminators -slsr -lower-matrix-intrinsics -inferattrs -globalsplit -ipconstprop -instcombine -loop-load-elim -hotcoldsplit -correlated-propagation -dce -insert-gcov-profiling -rewrite-statepoints-for-gc -irce -loop-sink -inject-tli-mappings -lower-widenable-condition -strip-nondebug -always-inline -loop-data-prefetch -loop-data-prefetch -name-anon-globals -strip -dce -loop-interchange -constmerge -loop-instsimplify -infer-address-spaces -cross-dso-cfi -licm -irce -barrier -coro-cleanup -add-discriminators -loop-simplify -coro-elide -rewrite-statepoints-for-gc -reg2mem -adce -loop-data-prefetch -break-crit-edges -infer-address-spaces -licm -loop-predication -ipconstprop -dce -sroa -adce -strip -lower-widenable-condition -loop-rotate -lcssa -mergefunc -pgo-memop-opt -sancov -loop-rotate -consthoist -aggressive-instcombine -loop-distribute -strip -loop-distribute -pgo-memop-opt -loweratomic -sancov -irce -lower-expect -adce -loop-idiom -irce -die -gvn -loop-instsimplify -loop-unroll-and-jam -indvars -functionattrs -slsr -mldst-motion -dce -ipconstprop -inject-tli-mappings -correlated-propagation -reg2mem -loop-idiom -loop-interchange -sancov -sancov -argpromotion -globalsplit -memcpyopt -rpo-functionattrs -loop-guard-widening -lower-guard-intrinsic -loop-unroll-and-jam -insert-gcov-profiling -attributor -libcalls-shrinkwrap -slsr -loop-idiom -redundant-dbg-inst-elim -die -cross-dso-cfi -argpromotion -load-store-vectorizer -gvn-hoist -loop-unroll -reassociate -rpo-functionattrs -loop-fusion -loop-reroll -lowerswitch -mergereturn -loop-deletion -add-discriminators -correlated-propagation -lower-guard-intrinsic -strip-nondebug -coro-cleanup -loop-data-prefetch -insert-gcov-profiling -loop-unroll -guard-widening -sroa -simplifycfg -constprop -die -load-store-vectorizer -separate-const-offset-from-gep -tailcallelim -loop-deletion -always-inline -float2int -coro-cleanup -libcalls-shrinkwrap -sroa -elim-avail-extern -libcalls-shrinkwrap -separate-const-offset-from-gep -lower-guard-intrinsic -canonicalize-aliases -slp-vectorizer input.bc -o output.bc -benchmark://cBench-v1/gsm,1.027390438247013,14.184420108795166,opt -newgvn -lower-constant-intrinsics -inline -constprop -functionattrs -inferattrs -inject-tli-mappings -reg2mem -die -sroa -loop-idiom -loop-unroll-and-jam -lcssa -loop-deletion -loop-load-elim -constmerge -mergeicmps -strip-debug-declare -consthoist -inject-tli-mappings -dce -cross-dso-cfi -instcombine -mergereturn -libcalls-shrinkwrap -redundant-dbg-inst-elim -simplifycfg -constprop -aggressive-instcombine -loop-guard-widening -dce -correlated-propagation -gvn -always-inline -guard-widening -hotcoldsplit -add-discriminators -mldst-motion -globalopt -instsimplify -attributor -prune-eh -mem2reg -guard-widening -argpromotion -consthoist -sccp -always-inline -loop-unroll-and-jam -memcpyopt -infer-address-spaces -lcssa -ee-instrument -lower-widenable-condition -speculative-execution -canonicalize-aliases -lower-expect -guard-widening -reassociate -argpromotion -libcalls-shrinkwrap -loop-versioning-licm -instcombine -loop-interchange -gvn -reassociate -globaldce -div-rem-pairs -early-cse-memssa -instsimplify -tailcallelim -loop-versioning-licm -mldst-motion -alignment-from-assumptions -sancov -loop-instsimplify -speculative-execution -loop-simplify -lcssa -gvn -gvn-hoist -memcpyopt -loop-versioning-licm -inject-tli-mappings -partial-inliner -slsr -mem2reg -always-inline -name-anon-globals -rpo-functionattrs -callsite-splitting -loop-reroll -loop-idiom -strip -sink -gvn -strip-nondebug -loop-guard-widening -loop-distribute -early-cse-memssa -newgvn -correlated-propagation -mem2reg -instcombine -loop-data-prefetch -dce -lowerswitch -loop-versioning-licm -loop-vectorize -mergefunc -sroa -loop-idiom -loop-interchange -speculative-execution -loop-deletion -loop-vectorize -add-discriminators -loop-unroll-and-jam -instnamer -gvn -instsimplify -mergefunc -div-rem-pairs -instsimplify -nary-reassociate -add-discriminators -dce -constprop -gvn-hoist -loop-simplify -loop-unroll-and-jam -lower-guard-intrinsic -name-anon-globals -sroa -lowerswitch -strip-debug-declare -deadargelim -memcpyopt -die -separate-const-offset-from-gep -early-cse-memssa -post-inline-ee-instrument -rewrite-statepoints-for-gc -mergereturn -coro-split -instcombine -guard-widening -prune-eh -nary-reassociate -mldst-motion -ee-instrument -slp-vectorizer -loop-instsimplify -infer-address-spaces -post-inline-ee-instrument -redundant-dbg-inst-elim -loop-interchange -libcalls-shrinkwrap -coro-early -loop-reduce -irce -indvars -loop-interchange -early-cse-memssa -adce -prune-eh -load-store-vectorizer -indvars -coro-split -inject-tli-mappings -mldst-motion -adce -slp-vectorizer -loop-simplify -loweratomic -dce -called-value-propagation -instnamer -float2int -bdce -simple-loop-unswitch -ipsccp input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0277639442231072,15.189532041549683,opt -argpromotion -mldst-motion -globaldce -globaldce -alignment-from-assumptions -sink -lower-widenable-condition -argpromotion -loop-versioning -lcssa -instcombine -argpromotion -loop-predication -loop-distribute -tailcallelim -lower-matrix-intrinsics -redundant-dbg-inst-elim -ipsccp -deadargelim -loweratomic -loop-unroll-and-jam -loop-rotate -loop-vectorize -reassociate -add-discriminators -loop-versioning -loop-versioning -slsr -inferattrs -instnamer -strip-debug-declare -aggressive-instcombine -coro-split -mergereturn -loop-sink -add-discriminators -bdce -ipsccp -forceattrs -globalopt -strip-dead-prototypes -inject-tli-mappings -early-cse-memssa -lower-widenable-condition -canonicalize-aliases -lower-matrix-intrinsics -sroa -slp-vectorizer -insert-gcov-profiling -mem2reg -mergeicmps -redundant-dbg-inst-elim -add-discriminators -reg2mem -strip-debug-declare -lower-expect -loop-deletion -redundant-dbg-inst-elim -break-crit-edges -ipsccp -redundant-dbg-inst-elim -jump-threading -mergereturn -coro-early -loop-fusion -indvars -float2int -strip-dead-prototypes -bdce -loop-versioning -attributor -inline -loop-instsimplify -mldst-motion -called-value-propagation -die -lower-guard-intrinsic -globalsplit -scalarizer -barrier -loop-fusion -inferattrs -instcombine -sroa -strip-dead-prototypes -reassociate -lower-widenable-condition -mergereturn -loop-interchange -loop-sink -newgvn -speculative-execution -reg2mem -aggressive-instcombine -argpromotion -loop-idiom -inferattrs -elim-avail-extern -load-store-vectorizer -dse -inject-tli-mappings -loop-reroll -rewrite-statepoints-for-gc -irce -coro-split -dse -instcombine -irce -inline -loop-distribute -elim-avail-extern -loop-versioning -load-store-vectorizer -always-inline -ipconstprop -called-value-propagation -strip-dead-prototypes -rpo-functionattrs -loop-load-elim -constmerge -partially-inline-libcalls -loop-unswitch -pgo-memop-opt -sroa -lower-matrix-intrinsics -loop-simplify -bdce -bdce -name-anon-globals -mem2reg -break-crit-edges -lower-guard-intrinsic -loop-fusion -rpo-functionattrs -strip-nondebug -sroa -sink -instsimplify -loop-guard-widening -coro-cleanup -speculative-execution -alignment-from-assumptions -simplifycfg -instsimplify -argpromotion -constprop -consthoist -memcpyopt -ipsccp -coro-elide -dse -lowerinvoke -sroa -lower-guard-intrinsic -slp-vectorizer -argpromotion -alignment-from-assumptions -elim-avail-extern -coro-cleanup -constprop -constprop -alignment-from-assumptions -loop-unswitch -sccp -speculative-execution -post-inline-ee-instrument -lower-expect -lower-expect -instsimplify -lower-constant-intrinsics -lower-constant-intrinsics -mldst-motion -simplifycfg -loop-simplify -sancov -loop-distribute -strip-dead-prototypes -load-store-vectorizer -consthoist -called-value-propagation -post-inline-ee-instrument -mergereturn -memcpyopt -irce -strip-dead-prototypes -lower-guard-intrinsic -strip-dead-prototypes -div-rem-pairs -strip-debug-declare -alignment-from-assumptions -loop-idiom -lower-guard-intrinsic -loop-idiom -aggressive-instcombine -infer-address-spaces -loop-sink -hotcoldsplit -coro-split -lower-widenable-condition -loop-instsimplify -newgvn -argpromotion -partial-inliner -early-cse-memssa -pgo-memop-opt -reg2mem -die -loop-versioning-licm -post-inline-ee-instrument -argpromotion -tailcallelim -loop-unroll-and-jam -jump-threading -rewrite-statepoints-for-gc -guard-widening -instnamer -inferattrs -nary-reassociate -sroa -argpromotion -deadargelim -early-cse-memssa -redundant-dbg-inst-elim -functionattrs -ee-instrument -ipconstprop -ee-instrument -dse -post-inline-ee-instrument -tailcallelim -reg2mem -loop-fusion -sccp -die -sroa -loop-deletion -functionattrs -sccp -rpo-functionattrs -coro-early -constprop -loop-simplify -instcombine -ipconstprop -loop-vectorize -mergeicmps -sroa -loweratomic -globalsplit -libcalls-shrinkwrap -always-inline -alignment-from-assumptions -speculative-execution -rpo-functionattrs -dce -globaldce -libcalls-shrinkwrap -sroa -constmerge -lower-expect -ipsccp -loop-versioning-licm -insert-gcov-profiling -always-inline -dce -lower-matrix-intrinsics -loop-reroll -slp-vectorizer -mldst-motion -div-rem-pairs -gvn-hoist -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.028261952191235,14.138127088546753,opt -add-discriminators -lower-matrix-intrinsics -coro-elide -loop-guard-widening -alignment-from-assumptions -canonicalize-aliases -dse -constprop -loop-data-prefetch -always-inline -loop-simplify -ee-instrument -loop-simplifycfg -ipconstprop -separate-const-offset-from-gep -loop-interchange -inject-tli-mappings -reassociate -loop-unroll -ipsccp -inferattrs -gvn-hoist -ipconstprop -mergeicmps -mldst-motion -indvars -inject-tli-mappings -early-cse-memssa -simple-loop-unswitch -early-cse-memssa -float2int -loop-vectorize -loop-simplify -ipconstprop -loop-reduce -indvars -loop-instsimplify -aggressive-instcombine -slsr -inject-tli-mappings -sroa -slp-vectorizer -flattencfg -gvn -attributor -loop-guard-widening -separate-const-offset-from-gep -newgvn -float2int -sancov -ee-instrument -called-value-propagation -instsimplify -coro-split -functionattrs -insert-gcov-profiling -separate-const-offset-from-gep -div-rem-pairs -loop-load-elim -tailcallelim -irce -simple-loop-unswitch -memcpyopt -slsr -loop-unroll -instcombine -name-anon-globals -early-cse-memssa -argpromotion -deadargelim -loop-deletion -lower-guard-intrinsic -separate-const-offset-from-gep -jump-threading -inject-tli-mappings -adce -mem2reg -called-value-propagation -gvn-hoist -nary-reassociate -attributor -loop-fusion -post-inline-ee-instrument -dse -adce -redundant-dbg-inst-elim -insert-gcov-profiling -break-crit-edges -post-inline-ee-instrument -lcssa -slsr -ee-instrument -gvn -bdce -lowerinvoke -sink -inferattrs -instcombine -add-discriminators -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0292579681274896,14.405534267425537,opt -deadargelim -insert-gcov-profiling -loweratomic -inferattrs -bdce -forceattrs -lower-constant-intrinsics -instcombine -callsite-splitting -prune-eh -lower-expect -speculative-execution -ipsccp -strip-debug-declare -loop-idiom -loop-unswitch -rpo-functionattrs -loop-fusion -redundant-dbg-inst-elim -loop-reduce -libcalls-shrinkwrap -newgvn -flattencfg -loop-instsimplify -rpo-functionattrs -early-cse-memssa -loop-guard-widening -prune-eh -instnamer -coro-early -loop-versioning-licm -forceattrs -dse -add-discriminators -lcssa -flattencfg -called-value-propagation -loop-data-prefetch -loop-unroll-and-jam -instnamer -loop-idiom -globalopt -lower-matrix-intrinsics -cross-dso-cfi -loop-unroll-and-jam -gvn -ee-instrument -speculative-execution -loop-unroll-and-jam -slsr -loop-load-elim -cross-dso-cfi -div-rem-pairs -loop-interchange -sroa -instsimplify -loop-deletion -libcalls-shrinkwrap -dse -loop-distribute -adce -instnamer -insert-gcov-profiling -mergereturn -cross-dso-cfi -loweratomic -mergeicmps -ipconstprop -always-inline -instsimplify -loop-reduce -functionattrs -lower-guard-intrinsic -loop-data-prefetch -mem2reg -jump-threading -loop-simplify -ipsccp -reassociate -separate-const-offset-from-gep -licm -simplifycfg -jump-threading -loop-idiom -loop-deletion -callsite-splitting -instcombine -lower-constant-intrinsics -ipsccp -strip-dead-prototypes -constprop -ipconstprop -partial-inliner -flattencfg -lower-expect -load-store-vectorizer -sancov -loop-simplify -ipconstprop -globalsplit -lower-widenable-condition -flattencfg -irce -instcombine -loweratomic -strip-dead-prototypes -flattencfg -dse -gvn-hoist -mem2reg -rewrite-statepoints-for-gc -ee-instrument -partially-inline-libcalls -gvn -break-crit-edges -rpo-functionattrs -name-anon-globals -coro-early -scalarizer -dse -loop-simplify -always-inline -always-inline -lcssa -bdce -always-inline -loop-interchange -slsr -elim-avail-extern -instnamer -nary-reassociate -forceattrs -name-anon-globals -constprop -correlated-propagation -sccp -aggressive-instcombine -redundant-dbg-inst-elim -reg2mem -loop-versioning-licm -break-crit-edges -ipsccp -inject-tli-mappings -elim-avail-extern -mergefunc -libcalls-shrinkwrap -speculative-execution -alignment-from-assumptions -coro-elide -strip-dead-prototypes -insert-gcov-profiling -lower-guard-intrinsic -infer-address-spaces -coro-split -lower-matrix-intrinsics -insert-gcov-profiling -alignment-from-assumptions -lower-matrix-intrinsics -break-crit-edges -rewrite-statepoints-for-gc -strip-dead-prototypes -globaldce -dse -loop-data-prefetch -reg2mem -ipconstprop -partially-inline-libcalls -indvars -argpromotion -argpromotion -constprop -attributor -strip-nondebug -strip -lower-expect -libcalls-shrinkwrap -guard-widening -loop-sink -simple-loop-unswitch -slsr -separate-const-offset-from-gep -loweratomic -coro-elide -rewrite-statepoints-for-gc -loop-versioning -loop-data-prefetch -reg2mem -loop-fusion -inline -infer-address-spaces -loop-sink -memcpyopt -strip -gvn -instcombine -loop-load-elim -instnamer -strip-dead-prototypes -adce -lower-matrix-intrinsics -loop-guard-widening -lower-matrix-intrinsics -partially-inline-libcalls -tailcallelim -correlated-propagation -aggressive-instcombine -deadargelim -loop-interchange -globalsplit -strip-nondebug -aggressive-instcombine -mem2reg -globalopt -dse -correlated-propagation -dce -mergeicmps -instsimplify -forceattrs -callsite-splitting -scalarizer -redundant-dbg-inst-elim -called-value-propagation -name-anon-globals -separate-const-offset-from-gep -loop-versioning -loop-sink -loop-simplify -add-discriminators -ee-instrument -loop-versioning -lower-widenable-condition -instnamer -slp-vectorizer -loop-load-elim -loop-unroll -loop-versioning-licm -loop-distribute -sancov -loop-predication -name-anon-globals -loop-guard-widening -bdce -guard-widening -instsimplify -constprop -loop-vectorize -canonicalize-aliases -prune-eh -coro-early -loop-versioning-licm -loop-interchange -loop-guard-widening -loop-load-elim -infer-address-spaces -libcalls-shrinkwrap -globalopt -loop-reroll -name-anon-globals -lowerswitch -simplifycfg -adce -gvn -ipsccp -strip -forceattrs -instcombine -sccp -loop-simplifycfg -dce -tailcallelim -loop-data-prefetch -gvn -slsr -mergereturn -strip-debug-declare -alignment-from-assumptions -globaldce -lcssa -loop-vectorize -loop-load-elim -sccp -loop-data-prefetch -dse -loop-vectorize -loop-fusion -loop-data-prefetch -globalsplit -gvn-hoist -loop-versioning-licm -loop-interchange -mergefunc -deadargelim -memcpyopt -rpo-functionattrs -aggressive-instcombine -lower-guard-intrinsic -load-store-vectorizer -loop-load-elim -rewrite-statepoints-for-gc -load-store-vectorizer -aggressive-instcombine -die -lower-expect -mergefunc -strip-dead-prototypes -attributor -insert-gcov-profiling -loop-versioning-licm -float2int -infer-address-spaces -loop-instsimplify -slsr -loop-versioning -globalsplit -lcssa -ipconstprop -partially-inline-libcalls -alignment-from-assumptions -lower-guard-intrinsic -coro-elide -loop-sink -called-value-propagation -forceattrs -partial-inliner -loop-rotate input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0334910358565736,14.459441900253296,opt -hotcoldsplit -scalarizer -instsimplify -loop-instsimplify -coro-split -aggressive-instcombine -loop-idiom -loop-predication -instsimplify -partially-inline-libcalls -canonicalize-aliases -inferattrs -loop-simplify -correlated-propagation -simple-loop-unswitch -bdce -coro-split -sccp -float2int -simplifycfg -mldst-motion -loop-simplify -float2int -sroa -globaldce -instnamer -slp-vectorizer -loop-vectorize -simple-loop-unswitch -guard-widening -coro-early -div-rem-pairs -loop-simplifycfg -lower-widenable-condition -attributor -newgvn -loop-interchange -globalsplit -lowerinvoke -canonicalize-aliases -dse -reassociate -div-rem-pairs -mldst-motion -mldst-motion -canonicalize-aliases -lower-widenable-condition -loop-interchange -sancov -infer-address-spaces -infer-address-spaces -loweratomic -tailcallelim -loop-load-elim -loop-simplify -mergefunc -alignment-from-assumptions -mergefunc -speculative-execution -aggressive-instcombine -loop-reroll -ee-instrument -bdce -float2int -gvn-hoist -argpromotion -coro-split -newgvn -slsr -ipconstprop -globalsplit -dse -jump-threading -instsimplify -newgvn -ee-instrument -gvn-hoist -gvn-hoist -loop-predication -post-inline-ee-instrument -instcombine -dse input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0352340637450197,15.297012329101562,opt -insert-gcov-profiling -lower-matrix-intrinsics -loop-instsimplify -gvn -memcpyopt -lower-guard-intrinsic -called-value-propagation -loop-predication -lower-guard-intrinsic -loop-simplify -called-value-propagation -slp-vectorizer -lower-constant-intrinsics -speculative-execution -barrier -loop-sink -name-anon-globals -gvn-hoist -deadargelim -lowerinvoke -deadargelim -loop-instsimplify -loop-instsimplify -guard-widening -strip-debug-declare -hotcoldsplit -adce -attributor -die -insert-gcov-profiling -infer-address-spaces -die -loop-versioning -loop-interchange -slsr -instnamer -correlated-propagation -coro-elide -lower-guard-intrinsic -lowerswitch -loop-unroll -libcalls-shrinkwrap -loop-predication -loop-idiom -simplifycfg -early-cse-memssa -loop-reroll -lower-expect -break-crit-edges -loop-load-elim -gvn-hoist -ipsccp -sancov -loop-unswitch -canonicalize-aliases -early-cse-memssa -inferattrs -strip-nondebug -newgvn -early-cse-memssa -guard-widening -loop-unswitch -mergefunc -callsite-splitting -correlated-propagation -hotcoldsplit -gvn-hoist -globaldce -loop-interchange -instnamer -newgvn -mergereturn -lowerswitch -cross-dso-cfi -always-inline -pgo-memop-opt -flattencfg -loop-interchange -mem2reg -mergeicmps -loop-versioning-licm -consthoist -loop-simplify -irce -inferattrs -mergeicmps -early-cse-memssa -coro-elide -loop-unroll -speculative-execution -coro-elide -lower-guard-intrinsic -simple-loop-unswitch -redundant-dbg-inst-elim -globaldce -insert-gcov-profiling -loop-versioning-licm -instnamer -adce -gvn -loop-fusion -loop-deletion -lower-expect -adce -jump-threading -loop-interchange -instsimplify -insert-gcov-profiling -inferattrs -mergereturn -inferattrs -add-discriminators -coro-split -irce -newgvn -separate-const-offset-from-gep -dse -coro-elide -memcpyopt -loop-idiom -lower-guard-intrinsic -strip -irce -globalopt -loop-versioning -barrier -early-cse-memssa -gvn-hoist -strip -tailcallelim -sccp -lower-matrix-intrinsics -lower-guard-intrinsic -callsite-splitting -indvars -consthoist -early-cse-memssa -loop-guard-widening -speculative-execution -argpromotion -strip -insert-gcov-profiling -post-inline-ee-instrument -loop-unroll-and-jam -slsr -newgvn -prune-eh -argpromotion -constmerge -speculative-execution -redundant-dbg-inst-elim -loop-instsimplify -loop-reroll -instcombine -coro-early -lower-expect -post-inline-ee-instrument -loop-distribute -slp-vectorizer -pgo-memop-opt -loop-predication -slp-vectorizer -simplifycfg -forceattrs -coro-split -lower-guard-intrinsic -instsimplify -sink -coro-early -early-cse-memssa -aggressive-instcombine -jump-threading -separate-const-offset-from-gep -mem2reg -rewrite-statepoints-for-gc -sccp -slp-vectorizer -loop-reroll -coro-elide -cross-dso-cfi -gvn-hoist -jump-threading -coro-split -loop-versioning-licm -constprop -gvn -indvars -loop-sink -prune-eh -mergeicmps -tailcallelim -indvars -elim-avail-extern -lower-guard-intrinsic -instcombine input.bc -o output.bc -benchmark://cBench-v1/gsm,1.048057768924303,16.46152639389038,opt -coro-split -lower-matrix-intrinsics -add-discriminators -mergeicmps -lower-constant-intrinsics -loop-unroll-and-jam -redundant-dbg-inst-elim -inject-tli-mappings -barrier -argpromotion -barrier -canonicalize-aliases -separate-const-offset-from-gep -mem2reg -loop-data-prefetch -loop-guard-widening -simplifycfg -consthoist -loop-idiom -deadargelim -loop-sink -lower-expect -lower-constant-intrinsics -reassociate -instcombine -newgvn -globaldce -lowerinvoke -mergefunc -loop-instsimplify -strip-nondebug -prune-eh -constprop -dse -sancov -loop-unroll-and-jam -float2int -canonicalize-aliases -barrier -constprop -loop-fusion -slp-vectorizer -loop-simplifycfg -name-anon-globals -strip-nondebug -strip -sancov -flattencfg -correlated-propagation -redundant-dbg-inst-elim -sroa -strip-dead-prototypes -lowerswitch -callsite-splitting -post-inline-ee-instrument -newgvn -loop-versioning -dce -prune-eh -globalsplit -loop-unroll-and-jam -cross-dso-cfi -die -sink -adce -redundant-dbg-inst-elim -barrier -dse -memcpyopt -loop-data-prefetch -loop-unswitch -gvn -loop-fusion -sancov -slp-vectorizer -loweratomic -break-crit-edges -indvars -sink -loop-fusion -loop-predication -mergeicmps -aggressive-instcombine -loop-versioning-licm -barrier -add-discriminators -guard-widening -early-cse-memssa -early-cse-memssa -strip-dead-prototypes -pgo-memop-opt -lowerswitch -add-discriminators -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.050921314741036,13.954805850982666,opt -newgvn -loop-instsimplify -mergereturn -memcpyopt -loop-reduce -sroa -elim-avail-extern -lower-guard-intrinsic -guard-widening -dce -loop-vectorize -reassociate -argpromotion -loop-instsimplify -loop-instsimplify -coro-early -instcombine -lower-widenable-condition -attributor -always-inline -name-anon-globals -indvars -always-inline -globalopt -lowerswitch -inferattrs -loop-simplify -ipconstprop -speculative-execution -globalsplit -sancov -gvn-hoist -called-value-propagation -mldst-motion -dse -loop-data-prefetch -inferattrs -lower-guard-intrinsic -loop-reroll -early-cse-memssa -called-value-propagation -separate-const-offset-from-gep -sink -strip-nondebug -ipconstprop -lower-matrix-intrinsics -loop-fusion -loop-versioning-licm -aggressive-instcombine -prune-eh -loop-sink -guard-widening -jump-threading -lower-matrix-intrinsics -mergefunc -loop-guard-widening -lower-widenable-condition -loop-simplifycfg -newgvn -mem2reg -lcssa -loop-interchange -functionattrs -loop-unroll-and-jam -coro-cleanup -break-crit-edges -lower-matrix-intrinsics -name-anon-globals -tailcallelim -loop-simplify -bdce -redundant-dbg-inst-elim -inferattrs -hotcoldsplit -simplifycfg -ipsccp -ipsccp -float2int -loop-sink -functionattrs -licm -div-rem-pairs -alignment-from-assumptions -div-rem-pairs -deadargelim -rewrite-statepoints-for-gc -loop-unswitch -loop-guard-widening -cross-dso-cfi -instnamer -hotcoldsplit -consthoist -lowerinvoke -functionattrs -lower-guard-intrinsic -aggressive-instcombine -nary-reassociate -lower-constant-intrinsics -canonicalize-aliases -loop-predication -bdce -gvn -infer-address-spaces -slp-vectorizer -gvn -lower-matrix-intrinsics -reassociate -nary-reassociate -attributor -mergefunc -loop-idiom -loop-simplifycfg -lower-matrix-intrinsics -reassociate -lower-matrix-intrinsics -loop-distribute -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9370865587614357,15.787727355957031,opt -lcssa -simplifycfg -loop-load-elim -slsr -libcalls-shrinkwrap -globalopt -simplifycfg -loop-instsimplify -adce -simplifycfg -strip-dead-prototypes -hotcoldsplit -dce -aggressive-instcombine -loop-unroll-and-jam -loop-data-prefetch -ipconstprop -functionattrs -coro-early -loop-unroll -lower-matrix-intrinsics -loop-simplify -pgo-memop-opt -bdce -name-anon-globals -loop-load-elim -lower-matrix-intrinsics -coro-cleanup -prune-eh -correlated-propagation -strip-debug-declare -coro-early -jump-threading -cross-dso-cfi -sroa -loweratomic -insert-gcov-profiling -post-inline-ee-instrument -partial-inliner -prune-eh -loop-load-elim -add-discriminators -inject-tli-mappings -lower-widenable-condition -coro-split -deadargelim -prune-eh -loop-unroll -rewrite-statepoints-for-gc -inject-tli-mappings -sccp -strip-debug-declare -mergereturn -load-store-vectorizer -lower-matrix-intrinsics -instcombine -attributor -loop-simplify -mldst-motion -reassociate -lower-constant-intrinsics -simplifycfg -coro-split -loop-data-prefetch -loweratomic -argpromotion -cross-dso-cfi -canonicalize-aliases -bdce -loop-fusion -tailcallelim -adce -alignment-from-assumptions -callsite-splitting -add-discriminators -barrier -reassociate -newgvn input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9480647431386349,15.543245077133179,opt -coro-elide -dce -mergereturn -slp-vectorizer -gvn-hoist -lowerswitch -mergefunc -lowerinvoke -alignment-from-assumptions -lcssa -loop-reduce -loop-reduce -scalarizer -infer-address-spaces -constprop -partial-inliner -scalarizer -die -mergefunc -strip-debug-declare -loweratomic -prune-eh -early-cse-memssa -jump-threading -globalsplit -flattencfg -loop-vectorize -instsimplify -lower-matrix-intrinsics -callsite-splitting -irce -strip-debug-declare -mergefunc -aggressive-instcombine -deadargelim -gvn-hoist -coro-cleanup -early-cse-memssa -loop-distribute -loop-unswitch -gvn -loop-guard-widening -loop-versioning-licm -mem2reg -globalsplit -cross-dso-cfi -loop-sink -aggressive-instcombine -instcombine -mergefunc -loop-sink -dce -guard-widening -loop-vectorize -lower-guard-intrinsic -loop-sink -name-anon-globals -coro-early -loop-guard-widening -loop-versioning -simplifycfg -libcalls-shrinkwrap -separate-const-offset-from-gep -libcalls-shrinkwrap -loop-versioning -alignment-from-assumptions -loop-versioning -gvn -coro-cleanup -sancov -loweratomic -speculative-execution -loop-versioning -reg2mem -redundant-dbg-inst-elim -loop-sink -loop-sink -strip-nondebug -pgo-memop-opt -coro-split -coro-early -name-anon-globals -consthoist -correlated-propagation -callsite-splitting -guard-widening -loop-guard-widening -guard-widening -barrier -loop-vectorize -add-discriminators -ipsccp -instnamer -coro-early -constprop -infer-address-spaces -add-discriminators -rewrite-statepoints-for-gc -slsr -inferattrs -dce -loweratomic -globaldce -inject-tli-mappings -deadargelim -nary-reassociate -slp-vectorizer -mem2reg -correlated-propagation -constmerge -strip-nondebug -adce -partial-inliner -tailcallelim -ipsccp -mem2reg -aggressive-instcombine -jump-threading -sccp -guard-widening -name-anon-globals -gvn -strip -div-rem-pairs -loop-unroll -globalsplit -partially-inline-libcalls -simplifycfg -correlated-propagation input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9583391977480648,16.2684326171875,opt -jump-threading -loop-reduce -lower-expect -insert-gcov-profiling -add-discriminators -rpo-functionattrs -deadargelim -break-crit-edges -loop-distribute -flattencfg -early-cse-memssa -constmerge -float2int -slp-vectorizer -jump-threading -strip -loop-unroll -strip-nondebug -lower-expect -newgvn -globalsplit -separate-const-offset-from-gep -mem2reg -ipsccp -simplifycfg -sroa -loop-versioning-licm -flattencfg -pgo-memop-opt -float2int -loop-unroll -lower-constant-intrinsics -memcpyopt -deadargelim -libcalls-shrinkwrap -loop-distribute -constprop -loop-simplify -gvn -slsr -sink -canonicalize-aliases -slsr -lower-constant-intrinsics -loop-idiom -indvars -hotcoldsplit -rewrite-statepoints-for-gc -globalopt -loop-simplifycfg -rpo-functionattrs -lower-constant-intrinsics -strip-nondebug -ee-instrument -aggressive-instcombine -lower-guard-intrinsic -loop-reroll -attributor -add-discriminators -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9601688951442646,16.670270681381226,opt -globalopt -newgvn -loop-interchange -lower-constant-intrinsics -lower-widenable-condition -strip-nondebug -cross-dso-cfi -slp-vectorizer -canonicalize-aliases -consthoist -gvn -mem2reg -coro-split -sroa -instsimplify -mergefunc -loop-predication -ee-instrument -ee-instrument -gvn-hoist -mem2reg -loop-predication -rewrite-statepoints-for-gc -callsite-splitting -elim-avail-extern -loop-predication -infer-address-spaces -elim-avail-extern -lower-guard-intrinsic -loop-reroll -mem2reg -loop-versioning-licm -mergefunc -loop-fusion -loop-vectorize -licm -always-inline -simplifycfg -loop-versioning -sancov -loop-idiom -lower-guard-intrinsic -loop-distribute -loop-unroll -coro-cleanup -break-crit-edges -coro-early -instcombine -attributor -float2int -sancov -inject-tli-mappings -loop-guard-widening -strip-nondebug -simple-loop-unswitch -loop-distribute -gvn -always-inline -coro-elide -adce -loop-interchange -slsr -libcalls-shrinkwrap -strip-dead-prototypes -partially-inline-libcalls -prune-eh -lower-expect -globalsplit -loop-instsimplify -strip-debug-declare -div-rem-pairs -load-store-vectorizer -ee-instrument -sroa -strip-dead-prototypes -sccp -instnamer -inferattrs -irce -sroa -loop-data-prefetch -lower-expect -redundant-dbg-inst-elim -div-rem-pairs -canonicalize-aliases -inject-tli-mappings -consthoist -loop-unroll -callsite-splitting -barrier -coro-split -cross-dso-cfi -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9607318789584799,15.463008642196655,opt -speculative-execution -barrier -prune-eh -early-cse-memssa -inferattrs -coro-elide -loop-vectorize -ipsccp -rpo-functionattrs -globaldce -loop-versioning-licm -name-anon-globals -called-value-propagation -gvn -reassociate -mem2reg -early-cse-memssa -post-inline-ee-instrument -attributor -div-rem-pairs -irce -sccp -bdce -simplifycfg -gvn-hoist -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9653764954257565,16.424754858016968,opt -loop-unroll -speculative-execution -loop-load-elim -newgvn -lower-widenable-condition -insert-gcov-profiling -loop-versioning-licm -indvars -inject-tli-mappings -loop-simplify -die -infer-address-spaces -early-cse-memssa -barrier -loop-guard-widening -reassociate -rewrite-statepoints-for-gc -coro-early -globalopt -scalarizer -ee-instrument -forceattrs -loop-simplify -rpo-functionattrs -loop-load-elim -lower-matrix-intrinsics -constmerge -dce -loop-reduce -jump-threading -correlated-propagation -separate-const-offset-from-gep -loop-instsimplify -lowerinvoke -loop-unroll -rewrite-statepoints-for-gc -constmerge -functionattrs -insert-gcov-profiling -lower-expect -strip -lowerswitch -newgvn -globaldce -instcombine -instsimplify -lowerswitch -lower-matrix-intrinsics -strip-debug-declare -coro-early -mldst-motion -coro-cleanup -sroa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9655172413793099,16.854193210601807,opt -loop-distribute -redundant-dbg-inst-elim -elim-avail-extern -sancov -lowerinvoke -mldst-motion -elim-avail-extern -reg2mem -dce -lower-guard-intrinsic -canonicalize-aliases -slsr -lower-expect -always-inline -sink -bdce -dce -loop-deletion -redundant-dbg-inst-elim -called-value-propagation -bdce -globalsplit -lower-constant-intrinsics -ipsccp -inferattrs -speculative-execution -mergeicmps -slsr -nary-reassociate -prune-eh -rewrite-statepoints-for-gc -alignment-from-assumptions -strip -strip-nondebug -sink -sink -sroa -newgvn -rpo-functionattrs -name-anon-globals -loop-interchange -loop-versioning -licm -mldst-motion -functionattrs -add-discriminators -lower-expect -ipconstprop -libcalls-shrinkwrap -called-value-propagation -lowerinvoke -loop-distribute -loop-data-prefetch -loop-versioning-licm -gvn -globalopt -coro-early -instcombine -coro-split -coro-cleanup -loop-data-prefetch -speculative-execution -barrier -partially-inline-libcalls -speculative-execution -sancov -loop-simplify -loop-simplify -mergereturn -bdce -dse -constmerge -argpromotion -memcpyopt -mergefunc -cross-dso-cfi -loop-sink -speculative-execution -newgvn -insert-gcov-profiling -coro-cleanup -instcombine -loop-unroll-and-jam -coro-early -licm -canonicalize-aliases -strip-dead-prototypes -add-discriminators -scalarizer -dse -aggressive-instcombine -loop-fusion -ee-instrument -hotcoldsplit -rpo-functionattrs -lower-expect -globaldce -loop-load-elim -rpo-functionattrs -div-rem-pairs -sccp -loop-vectorize -loop-instsimplify -loop-vectorize -lower-guard-intrinsic -globalopt -coro-early -loop-reroll -partially-inline-libcalls -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -elim-avail-extern -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9809992962702324,16.816142797470093,opt -loop-idiom -scalarizer -lower-widenable-condition -lcssa -loop-reduce -lower-widenable-condition -coro-elide -lower-widenable-condition -lower-guard-intrinsic -coro-split -loop-reduce -cross-dso-cfi -pgo-memop-opt -newgvn -canonicalize-aliases -tailcallelim -inferattrs -reg2mem -loop-guard-widening -sccp -called-value-propagation -post-inline-ee-instrument -strip-dead-prototypes -called-value-propagation -sancov -strip-dead-prototypes -mergereturn -globalsplit -strip-dead-prototypes -sccp -reg2mem -loop-instsimplify -prune-eh -functionattrs -mergeicmps -tailcallelim -alignment-from-assumptions -simple-loop-unswitch -coro-elide -loop-deletion -ipsccp -loop-unroll-and-jam -mldst-motion -div-rem-pairs -strip-dead-prototypes -reassociate -always-inline -float2int -alignment-from-assumptions -loop-versioning-licm -slsr -deadargelim -sccp -redundant-dbg-inst-elim -reassociate -load-store-vectorizer -consthoist -early-cse-memssa -loop-predication -indvars -jump-threading -consthoist -load-store-vectorizer -argpromotion -mergereturn -coro-early -correlated-propagation -adce -mem2reg -loop-deletion -infer-address-spaces -lowerinvoke -gvn -coro-split -loop-instsimplify -coro-early -canonicalize-aliases -instnamer -barrier -callsite-splitting -simplifycfg -cross-dso-cfi -inject-tli-mappings -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9884588318085854,17.402209043502808,opt -bdce -speculative-execution -post-inline-ee-instrument -globalopt -separate-const-offset-from-gep -canonicalize-aliases -coro-early -gvn -loop-unroll-and-jam -load-store-vectorizer -float2int -cross-dso-cfi -newgvn -mem2reg -loop-unroll -elim-avail-extern -coro-elide -cross-dso-cfi -scalarizer -early-cse-memssa -instnamer -insert-gcov-profiling -ee-instrument -simplifycfg -loop-load-elim -div-rem-pairs -lower-guard-intrinsic -attributor -guard-widening -add-discriminators -coro-elide -loop-versioning -loop-vectorize -strip -correlated-propagation -dse -prune-eh -loop-predication -float2int -loop-versioning-licm -div-rem-pairs -loop-unroll-and-jam -lower-guard-intrinsic -loop-simplifycfg -strip-debug-declare -instcombine -coro-cleanup -coro-split -tailcallelim -correlated-propagation -instnamer -early-cse-memssa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,1.0002814919071077,16.02399444580078,opt -mem2reg -early-cse-memssa -sancov -always-inline -strip-debug-declare -forceattrs -forceattrs -nary-reassociate -early-cse-memssa -loop-vectorize -newgvn -ipconstprop -div-rem-pairs -dse -strip-dead-prototypes -barrier -dce -simple-loop-unswitch -barrier -inject-tli-mappings -nary-reassociate -callsite-splitting -simplifycfg -instsimplify -loop-guard-widening -break-crit-edges -strip-debug-declare -mergefunc -loop-fusion -loop-interchange -dse -post-inline-ee-instrument -loop-load-elim -globalopt -simplifycfg -loop-deletion -guard-widening -lower-expect -newgvn -instcombine -strip-dead-prototypes -hotcoldsplit -strip-dead-prototypes -tailcallelim -forceattrs -strip-debug-declare -ipsccp -nary-reassociate -loop-predication -flattencfg -called-value-propagation -attributor -loop-simplify -scalarizer -mergeicmps -add-discriminators -coro-early -libcalls-shrinkwrap -mem2reg -deadargelim -loop-idiom -mergefunc -sroa -speculative-execution -globalopt -early-cse-memssa -lower-constant-intrinsics -argpromotion -instcombine -sink -die -lower-expect -lowerinvoke -lowerinvoke -div-rem-pairs -loop-simplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,0.9791053104752456,49.419673442840576,opt -break-crit-edges -add-discriminators -lcssa -loop-unroll-and-jam -nary-reassociate -mldst-motion -licm -inferattrs -mem2reg -rpo-functionattrs -callsite-splitting -cross-dso-cfi -loop-distribute -reg2mem -barrier -lowerswitch -separate-const-offset-from-gep -coro-early -newgvn -simple-loop-unswitch -lowerswitch -cross-dso-cfi -dce -infer-address-spaces -canonicalize-aliases -inferattrs -instcombine -sroa -called-value-propagation -strip-dead-prototypes -inferattrs -callsite-splitting -tailcallelim -slp-vectorizer -functionattrs -simplifycfg -ipconstprop -name-anon-globals -coro-cleanup -constprop -loweratomic -globaldce -hotcoldsplit -div-rem-pairs -div-rem-pairs -mergeicmps -constmerge -functionattrs -mldst-motion -memcpyopt -argpromotion -strip -simplifycfg -strip-dead-prototypes -speculative-execution -bdce input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,0.9851815109898626,40.56418228149414,opt -lowerinvoke -mem2reg -gvn-hoist -functionattrs -irce -instsimplify -insert-gcov-profiling -loweratomic -aggressive-instcombine -lcssa -infer-address-spaces -barrier -insert-gcov-profiling -nary-reassociate -adce -loop-guard-widening -libcalls-shrinkwrap -irce -coro-early -licm -rewrite-statepoints-for-gc -die -hotcoldsplit -lowerinvoke -consthoist -globalsplit -div-rem-pairs -globalsplit -loop-deletion -loop-idiom -loop-unroll-and-jam -loop-predication -coro-cleanup -sroa -lower-widenable-condition -coro-early -globalopt -jump-threading -lower-matrix-intrinsics -loop-interchange -licm -die -functionattrs -loop-versioning-licm -post-inline-ee-instrument -simple-loop-unswitch -strip-nondebug -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,0.9937377933471805,39.32756042480469,opt -dse -indvars -sccp -lowerinvoke -loop-unswitch -functionattrs -constmerge -coro-early -lower-expect -loop-unroll-and-jam -called-value-propagation -rpo-functionattrs -aggressive-instcombine -attributor -cross-dso-cfi -lower-widenable-condition -dce -rewrite-statepoints-for-gc -sroa -constmerge -partially-inline-libcalls -loop-unroll -elim-avail-extern -loop-idiom -barrier -libcalls-shrinkwrap -loop-sink -redundant-dbg-inst-elim -coro-elide -loop-unswitch -argpromotion -simple-loop-unswitch -nary-reassociate -loop-reroll -loop-predication -insert-gcov-profiling -strip-debug-declare -cross-dso-cfi -loop-sink -forceattrs -strip-nondebug -sccp -tailcallelim -irce -loop-predication -loop-unroll -loop-reroll -simplifycfg -loop-simplifycfg -early-cse-memssa -add-discriminators -loop-deletion -load-store-vectorizer -strip-dead-prototypes -div-rem-pairs -callsite-splitting -loop-deletion -cross-dso-cfi -float2int -loop-sink -lcssa -indvars -consthoist -infer-address-spaces -slp-vectorizer -loop-sink -redundant-dbg-inst-elim -loop-unswitch -attributor -add-discriminators -libcalls-shrinkwrap -simplifycfg -globalopt -nary-reassociate -globalopt -mergereturn -instcombine -early-cse-memssa -deadargelim -jump-threading input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,0.9965588864432526,37.86662936210632,opt -irce -dse -rewrite-statepoints-for-gc -mldst-motion -ee-instrument -strip-debug-declare -inject-tli-mappings -coro-split -prune-eh -strip-dead-prototypes -gvn -lower-matrix-intrinsics -coro-split -loop-fusion -lower-expect -mem2reg -loop-load-elim -redundant-dbg-inst-elim -memcpyopt -loop-simplify -loop-deletion -instcombine -constmerge -inferattrs -sancov -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,0.9974889171342651,37.16405701637268,opt -always-inline -loop-idiom -post-inline-ee-instrument -simple-loop-unswitch -prune-eh -aggressive-instcombine -licm -lower-guard-intrinsic -licm -mem2reg -coro-split -name-anon-globals -correlated-propagation -infer-address-spaces -instcombine -instcombine -inject-tli-mappings -elim-avail-extern -loweratomic -scalarizer -loop-simplify -correlated-propagation -coro-elide -rewrite-statepoints-for-gc -mergefunc -strip-dead-prototypes -rpo-functionattrs -hotcoldsplit -lowerinvoke -functionattrs -lower-guard-intrinsic -loop-load-elim -newgvn -separate-const-offset-from-gep -float2int -sroa -loop-guard-widening -sroa -slp-vectorizer -coro-cleanup -coro-cleanup -rewrite-statepoints-for-gc -loop-interchange -irce -lower-widenable-condition -jump-threading -tailcallelim -strip -aggressive-instcombine -lowerswitch -prune-eh -mem2reg -constmerge -sink -loop-reroll -loop-predication -reassociate -post-inline-ee-instrument -ipsccp -speculative-execution -correlated-propagation -float2int -strip-debug-declare -post-inline-ee-instrument -partially-inline-libcalls -lower-constant-intrinsics -adce -canonicalize-aliases -irce -dce -simple-loop-unswitch -bdce -mergereturn -speculative-execution -post-inline-ee-instrument -loop-fusion -dce -gvn -die -mem2reg -loop-interchange -indvars -instsimplify input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.004588151408996,41.63024926185608,opt -strip-nondebug -loop-predication -elim-avail-extern -loop-versioning-licm -newgvn -loop-distribute -always-inline -deadargelim -loop-load-elim -loop-guard-widening -mem2reg -loop-instsimplify -strip-dead-prototypes -indvars -lcssa -tailcallelim -strip -sancov -strip-debug-declare -separate-const-offset-from-gep -mergefunc -deadargelim -cross-dso-cfi -irce -coro-split -loop-versioning-licm -inject-tli-mappings -instsimplify -loop-reroll -mergefunc -correlated-propagation -sccp -lower-matrix-intrinsics -sink -load-store-vectorizer -ipconstprop -correlated-propagation -loop-guard-widening -callsite-splitting -lower-widenable-condition -strip-nondebug -callsite-splitting -coro-cleanup -constmerge -div-rem-pairs -simplifycfg -constprop -loop-unroll -ipconstprop -early-cse-memssa -cross-dso-cfi -lower-guard-intrinsic -consthoist -loop-load-elim -consthoist -globalopt -lower-guard-intrinsic -break-crit-edges -nary-reassociate -loop-idiom -sccp -loweratomic -flattencfg -aggressive-instcombine -speculative-execution -loop-instsimplify -mergereturn -attributor -loop-simplifycfg -aggressive-instcombine -correlated-propagation -instnamer -newgvn -sink -globalopt -coro-elide -speculative-execution -ipconstprop -loop-distribute -loop-unroll -loop-deletion -loop-interchange -globalopt -libcalls-shrinkwrap -gvn -jump-threading -alignment-from-assumptions -lower-matrix-intrinsics -separate-const-offset-from-gep -div-rem-pairs -consthoist -instcombine -simple-loop-unswitch -always-inline -loop-idiom -bdce -ee-instrument -infer-address-spaces -sancov -simple-loop-unswitch -ipconstprop -always-inline -barrier -guard-widening -cross-dso-cfi -libcalls-shrinkwrap -loop-unroll -redundant-dbg-inst-elim -inferattrs -guard-widening -strip -div-rem-pairs -alignment-from-assumptions -instsimplify -separate-const-offset-from-gep -div-rem-pairs -instcombine -loop-sink -loop-reroll -pgo-memop-opt -reg2mem -lowerinvoke -dse -loop-simplifycfg -partial-inliner -mem2reg -post-inline-ee-instrument -sink -bdce -post-inline-ee-instrument -sink -loop-versioning-licm -coro-early -strip -partially-inline-libcalls -mem2reg -rewrite-statepoints-for-gc -coro-split -instcombine -early-cse-memssa -partial-inliner -gvn-hoist -loop-idiom -partially-inline-libcalls -strip-nondebug -globaldce -loop-unroll -loop-versioning-licm -break-crit-edges -loop-interchange -irce -mergeicmps -strip -reassociate -constmerge -early-cse-memssa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0055181821000094,42.71349883079529,opt -lower-matrix-intrinsics -aggressive-instcombine -rpo-functionattrs -deadargelim -inferattrs -reassociate -mergeicmps -functionattrs -mergefunc -loop-distribute -slsr -adce -name-anon-globals -mergereturn -strip-debug-declare -slsr -gvn-hoist -correlated-propagation -simple-loop-unswitch -irce -loop-versioning-licm -sroa -lower-widenable-condition -adce -loop-predication -jump-threading -coro-early -loop-reroll -load-store-vectorizer -always-inline -barrier -instcombine -lower-widenable-condition -aggressive-instcombine -jump-threading -callsite-splitting -die -canonicalize-aliases -globalsplit -ee-instrument -speculative-execution -argpromotion -newgvn -forceattrs -called-value-propagation -coro-cleanup -jump-threading input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.00750224757417,40.76293182373047,opt -loop-instsimplify -lower-constant-intrinsics -simple-loop-unswitch -loop-interchange -indvars -add-discriminators -newgvn -lower-matrix-intrinsics -break-crit-edges -mergeicmps -loop-unroll-and-jam -lowerinvoke -instnamer -reg2mem -inferattrs -loop-unswitch -flattencfg -called-value-propagation -lowerinvoke -alignment-from-assumptions -correlated-propagation -ipsccp -add-discriminators -loop-reduce -loop-idiom -jump-threading -forceattrs -loop-load-elim -called-value-propagation -globaldce -ipsccp -loop-simplifycfg -loop-deletion -always-inline -loop-simplifycfg -correlated-propagation -loop-reduce -attributor -globalopt -loweratomic -loop-versioning-licm -deadargelim -irce -loop-reduce -canonicalize-aliases -infer-address-spaces -indvars -simple-loop-unswitch -reg2mem -rpo-functionattrs -ipsccp -instsimplify -infer-address-spaces -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -mem2reg -speculative-execution -instcombine -lower-widenable-condition -slp-vectorizer -simplifycfg -deadargelim -sroa -instcombine -bdce -slp-vectorizer -aggressive-instcombine -lowerinvoke -lowerinvoke -mergereturn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0162135350466563,37.60094594955444,opt -post-inline-ee-instrument -inject-tli-mappings -die -hotcoldsplit -loop-interchange -loop-versioning -sroa -forceattrs -strip -gvn-hoist -argpromotion -loop-reroll -argpromotion -canonicalize-aliases -globalsplit -instcombine -inferattrs -post-inline-ee-instrument -strip-dead-prototypes -mldst-motion -loop-sink -die -loweratomic -flattencfg -speculative-execution -early-cse-memssa -pgo-memop-opt -lower-guard-intrinsic -add-discriminators -mergefunc -loop-data-prefetch -elim-avail-extern -indvars -attributor -simple-loop-unswitch -loop-fusion -ipsccp -attributor -strip-nondebug -simplifycfg -slp-vectorizer input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0305050066652195,43.867016553878784,opt -bdce -attributor -guard-widening -instsimplify -mem2reg -loop-instsimplify -flattencfg -rewrite-statepoints-for-gc -globalsplit -loop-idiom -lower-constant-intrinsics -die -loop-guard-widening -gvn-hoist -loop-distribute -licm -lower-widenable-condition -functionattrs -jump-threading -rpo-functionattrs -bdce -div-rem-pairs -gvn -sccp -lcssa -sccp -libcalls-shrinkwrap -coro-split -instnamer -newgvn -inferattrs -forceattrs -correlated-propagation -mem2reg -dse -dse -licm -partially-inline-libcalls -ipsccp -loop-unroll-and-jam -lower-guard-intrinsic -lower-matrix-intrinsics -gvn -indvars -attributor -licm -libcalls-shrinkwrap -mldst-motion -sccp -rpo-functionattrs -flattencfg -nary-reassociate -strip-nondebug -loop-simplifycfg -loop-versioning-licm -lcssa -lower-expect -mergefunc -name-anon-globals -strip-debug-declare -ipconstprop -licm -strip-dead-prototypes -loop-deletion -separate-const-offset-from-gep -partially-inline-libcalls -correlated-propagation -mergereturn -deadargelim -newgvn -loop-deletion -instcombine -lower-widenable-condition -dse -jump-threading -mem2reg -always-inline -pgo-memop-opt -mergereturn -loop-data-prefetch -loop-versioning-licm -simplifycfg -speculative-execution -licm -functionattrs -die -prune-eh -functionattrs -libcalls-shrinkwrap -globalopt -rpo-functionattrs -irce -loweratomic -loop-simplify -lower-matrix-intrinsics -loop-unroll-and-jam -flattencfg -reassociate -loop-simplify -slsr -partially-inline-libcalls -loop-data-prefetch -div-rem-pairs -loop-instsimplify -called-value-propagation -loop-distribute -ipsccp -memcpyopt -dce -guard-widening -ee-instrument -cross-dso-cfi -instsimplify input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,0.9849319037960012,44.77920889854431,opt -always-inline -simple-loop-unswitch -scalarizer -coro-elide -coro-early -constmerge -sccp -lower-matrix-intrinsics -dce -scalarizer -ipconstprop -loop-sink -instnamer -sccp -mergeicmps -newgvn -simplifycfg -ipconstprop -lower-expect -strip-debug-declare -sink -constprop -sroa -flattencfg -strip -strip -lcssa -consthoist -coro-early -attributor -slp-vectorizer -cross-dso-cfi -lower-widenable-condition -coro-split -constprop -mldst-motion -constmerge -functionattrs -forceattrs -mergefunc -aggressive-instcombine -slsr -lower-expect -loop-load-elim -forceattrs -rpo-functionattrs -sancov -loweratomic -licm -lower-expect -loop-simplify -loop-guard-widening -strip-dead-prototypes -ipconstprop -inferattrs -sancov -sccp -always-inline -rewrite-statepoints-for-gc -loop-vectorize -loop-versioning -mldst-motion -speculative-execution -loop-vectorize -loop-predication -ee-instrument -coro-elide -gvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,0.9866383334943173,41.430155515670776,opt -coro-early -callsite-splitting -float2int -libcalls-shrinkwrap -sccp -forceattrs -lower-guard-intrinsic -gvn-hoist -called-value-propagation -loop-idiom -gvn -prune-eh -indvars -post-inline-ee-instrument -loweratomic -sroa -sroa -lower-constant-intrinsics -lowerswitch -canonicalize-aliases -newgvn -argpromotion -float2int -insert-gcov-profiling -loop-reroll -nary-reassociate -gvn-hoist -lower-constant-intrinsics -loop-simplify -separate-const-offset-from-gep -ipsccp -simplifycfg -libcalls-shrinkwrap -newgvn -bdce input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,0.9939148073022314,41.397254943847656,opt -attributor -speculative-execution -sink -called-value-propagation -canonicalize-aliases -irce -lower-constant-intrinsics -dse -lowerswitch -functionattrs -globalopt -separate-const-offset-from-gep -instnamer -elim-avail-extern -hotcoldsplit -lower-constant-intrinsics -jump-threading -lowerswitch -inferattrs -jump-threading -lower-expect -instsimplify -gvn -dse -called-value-propagation -lcssa -memcpyopt -correlated-propagation -newgvn -reg2mem -elim-avail-extern -called-value-propagation -div-rem-pairs -loop-unswitch -redundant-dbg-inst-elim -ipconstprop -speculative-execution -loop-unroll-and-jam -loop-guard-widening -loop-fusion -mergeicmps -globaldce -lowerinvoke -ee-instrument -mem2reg -loop-load-elim -constmerge -lowerswitch -loop-deletion -attributor -lower-expect -newgvn -ee-instrument -forceattrs -strip -loop-versioning-licm -deadargelim -loop-distribute -early-cse-memssa -break-crit-edges -constmerge -lowerswitch -globalsplit -globaldce -always-inline -loop-simplifycfg -mergereturn -loop-interchange -bdce -aggressive-instcombine -guard-widening -irce -gvn-hoist -always-inline -reg2mem -gvn -globalopt -loop-fusion -lower-guard-intrinsic -flattencfg -sccp -div-rem-pairs -mergereturn -separate-const-offset-from-gep -loop-fusion -div-rem-pairs -rewrite-statepoints-for-gc -loweratomic -callsite-splitting -float2int -functionattrs -loop-data-prefetch -infer-address-spaces -instcombine -infer-address-spaces -loop-fusion -ipconstprop -lower-constant-intrinsics -sink -lower-constant-intrinsics -coro-early -loop-distribute -ipsccp -sink -instnamer -mem2reg -loop-idiom -loop-idiom -coro-cleanup -coro-split -jump-threading -globalsplit -instnamer -instcombine input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,0.994140184809556,38.051066637039185,opt -loop-load-elim -loop-data-prefetch -coro-split -redundant-dbg-inst-elim -loop-distribute -mem2reg -speculative-execution -loop-predication -jump-threading -mem2reg -gvn -sccp -forceattrs -cross-dso-cfi -loop-data-prefetch -loweratomic -elim-avail-extern -bdce -flattencfg -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,0.9964261566695642,48.110989570617676,opt -argpromotion -strip -gvn -lowerswitch -post-inline-ee-instrument -loop-vectorize -strip-debug-declare -libcalls-shrinkwrap -float2int -tailcallelim -adce -instsimplify -prune-eh -dse -add-discriminators -mergereturn -prune-eh -cross-dso-cfi -loop-vectorize -instsimplify -loop-vectorize -deadargelim -reassociate -loweratomic -indvars -globalopt -lcssa -bdce -licm -memcpyopt -newgvn -jump-threading -ipsccp -pgo-memop-opt -loop-sink -instcombine -called-value-propagation -nary-reassociate -loop-fusion -loop-reroll -mergereturn -alignment-from-assumptions -lower-guard-intrinsic -dce -loweratomic -flattencfg -inject-tli-mappings -jump-threading -separate-const-offset-from-gep -instcombine -flattencfg -memcpyopt -mldst-motion -loop-unroll-and-jam -loweratomic -sccp -reassociate -loop-rotate -inject-tli-mappings -loop-guard-widening -alignment-from-assumptions -called-value-propagation -strip-nondebug -slsr -instsimplify -strip-debug-declare -lowerinvoke -functionattrs -elim-avail-extern -gvn -mergereturn -strip -deadargelim -prune-eh -barrier -instsimplify -strip-nondebug -separate-const-offset-from-gep -tailcallelim -jump-threading -redundant-dbg-inst-elim -instnamer -reassociate -partially-inline-libcalls -instcombine -ee-instrument -instnamer -globalopt -inferattrs -adce -rpo-functionattrs -called-value-propagation -constmerge -add-discriminators -add-discriminators -globaldce -ipsccp -sroa -coro-early -elim-avail-extern -guard-widening -argpromotion -instnamer -loop-instsimplify -attributor -ipconstprop -alignment-from-assumptions -name-anon-globals -globalsplit -mldst-motion -lowerswitch -loop-deletion -slsr -dse -redundant-dbg-inst-elim -simplifycfg -mldst-motion -rewrite-statepoints-for-gc -loop-data-prefetch -lower-expect -licm -simple-loop-unswitch -loop-fusion -loop-data-prefetch -post-inline-ee-instrument -mergefunc -loop-reroll -ipsccp -functionattrs -lower-matrix-intrinsics -strip-nondebug -guard-widening -partially-inline-libcalls -infer-address-spaces -called-value-propagation -mergefunc -sccp -cross-dso-cfi -indvars -argpromotion -loop-reroll -elim-avail-extern -inferattrs -partially-inline-libcalls -slp-vectorizer -deadargelim -loop-versioning-licm -post-inline-ee-instrument -ee-instrument -deadargelim -loop-data-prefetch -bdce -loop-predication -loop-distribute -slsr -hotcoldsplit -instnamer -instsimplify -loop-deletion -globaldce -name-anon-globals -ee-instrument -coro-split -die -consthoist -pgo-memop-opt -lower-widenable-condition -strip-nondebug -jump-threading -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0002575742940853,327.2070269584656,opt -insert-gcov-profiling -lcssa -gvn -called-value-propagation -mergefunc -loop-load-elim -strip-debug-declare -indvars -loop-versioning -loop-unroll-and-jam -strip-debug-declare -loop-deletion -constprop -ipconstprop -argpromotion -lower-constant-intrinsics -globalsplit -sroa -rpo-functionattrs -sink -adce -float2int -name-anon-globals -loop-sink -loop-sink -guard-widening -barrier -loop-sink -forceattrs -mergeicmps -mergeicmps -load-store-vectorizer -bdce -float2int -loop-data-prefetch -mergeicmps -partially-inline-libcalls -alignment-from-assumptions -loop-idiom -scalarizer -instsimplify -ipconstprop -loop-interchange -ipsccp -memcpyopt -instcombine -loweratomic -instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0043787629994525,40.50717830657959,opt -sccp -coro-split -mem2reg -lower-matrix-intrinsics -loop-sink -instcombine -rpo-functionattrs -redundant-dbg-inst-elim -coro-early -strip-debug-declare -inferattrs -elim-avail-extern -rewrite-statepoints-for-gc -indvars -lowerinvoke -consthoist -ee-instrument -elim-avail-extern -mem2reg -add-discriminators -globalsplit -argpromotion -mergereturn -partially-inline-libcalls -sroa -mergereturn -reassociate -scalarizer -inferattrs -pgo-memop-opt -loop-unroll-and-jam -loop-instsimplify -functionattrs -inject-tli-mappings -lowerinvoke -slsr -consthoist -libcalls-shrinkwrap -lowerswitch -correlated-propagation -lower-constant-intrinsics -break-crit-edges -called-value-propagation -coro-split -loop-distribute -div-rem-pairs -guard-widening -nary-reassociate -indvars -aggressive-instcombine -dse -sccp -loop-guard-widening -constmerge -globalsplit -loop-sink -constprop -barrier -ipsccp -loop-reroll -ipsccp -strip-nondebug -called-value-propagation -sink -load-store-vectorizer -lower-constant-intrinsics -flattencfg -speculative-execution -early-cse-memssa -lower-expect -reassociate -ipconstprop -instsimplify -loop-instsimplify -reassociate -partial-inliner -slsr -mem2reg -infer-address-spaces -loop-instsimplify -irce -always-inline -cross-dso-cfi -lower-matrix-intrinsics -loop-simplify -loop-load-elim -ipconstprop -elim-avail-extern -ipsccp -loop-vectorize -die -hotcoldsplit -hotcoldsplit -sancov -scalarizer -loop-guard-widening -called-value-propagation -break-crit-edges -loop-guard-widening -loop-guard-widening -loop-versioning-licm -instcombine -loop-deletion -canonicalize-aliases -loop-interchange -consthoist -aggressive-instcombine -attributor -adce -mergeicmps -coro-cleanup -redundant-dbg-inst-elim -mergefunc -dce -elim-avail-extern -load-store-vectorizer -loop-guard-widening -elim-avail-extern -simplifycfg -lcssa -strip -called-value-propagation -lowerswitch -rpo-functionattrs -strip-nondebug -ipconstprop -mergefunc -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0189317106152807,39.96248817443848,opt -mem2reg -adce -post-inline-ee-instrument -mergereturn -mergereturn -loop-vectorize -float2int -float2int -globalopt -simplifycfg -sccp -redundant-dbg-inst-elim -forceattrs -slsr -insert-gcov-profiling -bdce -lower-expect -functionattrs -instcombine -rpo-functionattrs -float2int -tailcallelim -loop-data-prefetch -lcssa -forceattrs -speculative-execution -always-inline -scalarizer -instsimplify -barrier -instcombine -globaldce -guard-widening -loweratomic -strip-dead-prototypes -forceattrs -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0236002446955792,40.084962129592896,opt -ipconstprop -simple-loop-unswitch -loop-fusion -sroa -jump-threading -loop-idiom -loop-distribute -functionattrs -loop-distribute -lowerswitch -strip-debug-declare -indvars -barrier -mergefunc -redundant-dbg-inst-elim -add-discriminators -simple-loop-unswitch -licm -consthoist -instsimplify -inject-tli-mappings -loop-data-prefetch -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -slp-vectorizer -inferattrs -callsite-splitting -correlated-propagation -alignment-from-assumptions -early-cse-memssa -mergefunc -sroa -scalarizer -loop-data-prefetch -prune-eh -inject-tli-mappings -rewrite-statepoints-for-gc -indvars -tailcallelim -instnamer -name-anon-globals -argpromotion -loop-instsimplify -argpromotion -ee-instrument -forceattrs -lcssa -loop-simplifycfg -indvars -inferattrs -loop-load-elim -gvn -reassociate -partially-inline-libcalls -sancov -instcombine -bdce -loop-data-prefetch -lower-guard-intrinsic -strip-dead-prototypes -strip-nondebug -simplifycfg -prune-eh -sccp -functionattrs -consthoist -libcalls-shrinkwrap -strip-dead-prototypes -coro-cleanup -die -prune-eh -gvn -lower-constant-intrinsics input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0255964454747417,36.70538592338562,opt -bdce -dse -memcpyopt -inject-tli-mappings -die -globaldce -strip-debug-declare -prune-eh -reg2mem -coro-early -die -lower-widenable-condition -lower-constant-intrinsics -instnamer -loweratomic -attributor -rewrite-statepoints-for-gc -coro-split -lower-guard-intrinsic -separate-const-offset-from-gep -sroa -loop-distribute -mergefunc -early-cse-memssa -instsimplify -simplifycfg -instcombine -scalarizer -separate-const-offset-from-gep -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0058073331815074,34.02283263206482,opt -gvn-hoist -instcombine -loop-load-elim -strip-nondebug -instsimplify -sroa -sancov -inferattrs -add-discriminators -loop-vectorize -loop-load-elim -lower-expect -newgvn -early-cse-memssa -instcombine -lower-constant-intrinsics -slsr -jump-threading input.bc -o output.bc -benchmark://cBench-v1/lame,1.0103241478782359,66.14738416671753,opt -loop-distribute -early-cse-memssa -loop-load-elim -jump-threading -break-crit-edges -jump-threading -gvn -rpo-functionattrs -ee-instrument -loop-fusion -loop-unswitch -loop-reroll -mergereturn -correlated-propagation -deadargelim -float2int -guard-widening -reassociate -loop-interchange -name-anon-globals -div-rem-pairs -barrier -tailcallelim -pgo-memop-opt -lower-widenable-condition -coro-split -loop-interchange -constprop -dse -reassociate -add-discriminators -elim-avail-extern -loop-distribute -lower-constant-intrinsics -lower-matrix-intrinsics -dse -hotcoldsplit -loop-distribute -redundant-dbg-inst-elim -indvars -constmerge -mergefunc -break-crit-edges -loop-simplifycfg -jump-threading -lowerswitch -flattencfg -instcombine -memcpyopt -sccp -ipsccp -loop-sink -separate-const-offset-from-gep -strip -pgo-memop-opt -adce -constprop -lcssa -lowerinvoke -simple-loop-unswitch -simple-loop-unswitch -called-value-propagation -loop-versioning -loop-fusion -memcpyopt -simplifycfg -lowerinvoke -ipsccp -consthoist -loop-deletion -licm -scalarizer -consthoist -insert-gcov-profiling -loop-interchange -loop-versioning -inferattrs -inject-tli-mappings -cross-dso-cfi -adce -tailcallelim -tailcallelim -dse -simple-loop-unswitch -ipsccp -load-store-vectorizer -loop-deletion -elim-avail-extern -break-crit-edges -loop-idiom -simplifycfg -inject-tli-mappings -loop-instsimplify -callsite-splitting -infer-address-spaces -dce -slp-vectorizer -pgo-memop-opt -loop-fusion -loop-fusion -aggressive-instcombine -rpo-functionattrs -instcombine -loop-unswitch -break-crit-edges -name-anon-globals -loop-guard-widening -bdce -deadargelim -licm -break-crit-edges -newgvn -globaldce -instsimplify -scalarizer -ipconstprop -strip-dead-prototypes -bdce -mem2reg -globalsplit -div-rem-pairs -flattencfg -die -dce -pgo-memop-opt -tailcallelim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.012373794883474,38.40332770347595,opt -loop-guard-widening -separate-const-offset-from-gep -slsr -loop-data-prefetch -loop-load-elim -load-store-vectorizer -mem2reg -instcombine -globaldce -globalopt -break-crit-edges -ipsccp -dse -loop-load-elim -loop-reroll -loop-rotate -loop-idiom -redundant-dbg-inst-elim -mergeicmps -bdce -load-store-vectorizer -load-store-vectorizer -inject-tli-mappings -die -loop-vectorize -barrier -div-rem-pairs -deadargelim -libcalls-shrinkwrap -mergefunc -early-cse-memssa -nary-reassociate -rpo-functionattrs -loop-predication -early-cse-memssa -instnamer -called-value-propagation -loweratomic -loop-reroll -ee-instrument -loop-deletion -functionattrs -loop-fusion -break-crit-edges -mergefunc -lower-widenable-condition -slp-vectorizer -globaldce -bdce -globaldce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0212176421468158,64.10320901870728,opt -indvars -loop-data-prefetch -float2int -attributor -sancov -reassociate -lcssa -ee-instrument -deadargelim -simplifycfg -lowerinvoke -loop-simplify -always-inline -loop-simplify -mergefunc -die -gvn-hoist -speculative-execution -early-cse-memssa -attributor -loop-simplifycfg -lowerinvoke -loop-interchange -irce -gvn-hoist -instsimplify -forceattrs -loop-predication -loop-rotate -loop-distribute -prune-eh -correlated-propagation -rewrite-statepoints-for-gc -globalsplit -die -ipconstprop -loop-unswitch -lower-constant-intrinsics -hotcoldsplit -lower-widenable-condition -redundant-dbg-inst-elim -loop-vectorize -add-discriminators -newgvn -constmerge -instcombine -globaldce -dse -mem2reg -irce -bdce -consthoist -strip-nondebug -coro-split -mergeicmps -strip -loop-simplifycfg -functionattrs -mergereturn -coro-cleanup -licm -simplifycfg -loop-distribute -loweratomic -coro-elide -ipsccp -loop-deletion -lower-guard-intrinsic -newgvn -sink -newgvn -loop-deletion -lowerinvoke -gvn-hoist -globalopt -loop-distribute -insert-gcov-profiling -loop-unroll-and-jam -sroa -always-inline -loop-deletion -loop-simplify -callsite-splitting -flattencfg -lower-expect -post-inline-ee-instrument -coro-cleanup -speculative-execution -float2int -instcombine -newgvn input.bc -o output.bc -benchmark://cBench-v1/lame,1.0235709405602367,43.15250539779663,opt -instcombine -simple-loop-unswitch -functionattrs -simple-loop-unswitch -post-inline-ee-instrument -loop-simplify -instsimplify -bdce -always-inline -lcssa -float2int -functionattrs -ipsccp -globalsplit -nary-reassociate -coro-early -lowerinvoke -coro-early -loop-simplifycfg -lower-guard-intrinsic -mem2reg -bdce -loweratomic -always-inline -instnamer -elim-avail-extern -post-inline-ee-instrument -simple-loop-unswitch -die -strip-dead-prototypes -slsr -barrier -strip-debug-declare -loop-versioning -slsr -gvn -mem2reg -irce -load-store-vectorizer -speculative-execution -loop-idiom -licm -loop-guard-widening -licm -callsite-splitting -div-rem-pairs -ipsccp -loop-instsimplify -always-inline -licm -add-discriminators -div-rem-pairs -libcalls-shrinkwrap -indvars -mldst-motion -dse -sroa -loop-versioning-licm -loop-deletion -gvn-hoist -loop-versioning -lower-guard-intrinsic -die -float2int -correlated-propagation -loop-versioning -strip-nondebug -hotcoldsplit -functionattrs -slsr -inferattrs -constprop -loop-unroll-and-jam -lower-widenable-condition -loop-unswitch -mergereturn -early-cse-memssa -mldst-motion -prune-eh -loop-predication -loop-versioning-licm -loop-data-prefetch -consthoist -inferattrs -indvars -forceattrs -guard-widening -tailcallelim -sccp -load-store-vectorizer -coro-cleanup -strip-debug-declare -jump-threading -callsite-splitting -prune-eh -globaldce -instcombine -mem2reg -nary-reassociate -mergeicmps -insert-gcov-profiling -partially-inline-libcalls -globalopt -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0259621953996811,53.347551345825195,opt -mldst-motion -coro-elide -loop-vectorize -loop-versioning -libcalls-shrinkwrap -ipconstprop -early-cse-memssa -simple-loop-unswitch -sink -bdce -forceattrs -elim-avail-extern -loop-guard-widening -hotcoldsplit -instcombine -lowerinvoke -aggressive-instcombine -aggressive-instcombine -instcombine -lower-constant-intrinsics -dse -argpromotion -libcalls-shrinkwrap -slp-vectorizer -loop-deletion -coro-cleanup -aggressive-instcombine -separate-const-offset-from-gep -nary-reassociate -libcalls-shrinkwrap -alignment-from-assumptions -constprop -loop-reroll -separate-const-offset-from-gep -jump-threading -coro-cleanup -consthoist -load-store-vectorizer -licm -slp-vectorizer -loop-deletion -adce -correlated-propagation -newgvn -loop-reroll -slp-vectorizer -loop-simplifycfg -inject-tli-mappings -sroa -load-store-vectorizer -strip-debug-declare -lower-guard-intrinsic -aggressive-instcombine -simple-loop-unswitch -lcssa -loop-interchange -slsr -ipsccp -die -loop-reroll -called-value-propagation -globalsplit -consthoist -prune-eh -simple-loop-unswitch -loop-reroll -mergefunc -guard-widening -loop-distribute -float2int -loop-simplify -loop-predication -loweratomic -loop-versioning -inject-tli-mappings -coro-split -lcssa -loop-distribute -forceattrs -flattencfg -instcombine -callsite-splitting -post-inline-ee-instrument -constprop -mldst-motion -jump-threading -consthoist -rewrite-statepoints-for-gc -coro-elide -irce -ipsccp -float2int -globaldce -loop-simplify -cross-dso-cfi -guard-widening -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0276322781446898,78.09253025054932,opt -coro-elide -coro-elide -cross-dso-cfi -nary-reassociate -alignment-from-assumptions -called-value-propagation -div-rem-pairs -nary-reassociate -lower-matrix-intrinsics -canonicalize-aliases -loop-unswitch -pgo-memop-opt -mldst-motion -strip-dead-prototypes -alignment-from-assumptions -simplifycfg -speculative-execution -called-value-propagation -loop-interchange -infer-address-spaces -attributor -prune-eh -deadargelim -indvars -strip-dead-prototypes -instnamer -loop-load-elim -ipsccp -strip-dead-prototypes -nary-reassociate -constmerge -dce -cross-dso-cfi -loop-vectorize -lower-guard-intrinsic -loop-predication -always-inline -coro-cleanup -gvn -correlated-propagation -cross-dso-cfi -aggressive-instcombine -newgvn -mem2reg -mergefunc -reassociate -simple-loop-unswitch -slp-vectorizer -scalarizer -instcombine -sancov -globaldce -simplifycfg -lower-expect -memcpyopt -argpromotion -add-discriminators -loop-distribute -dse input.bc -o output.bc -benchmark://cBench-v1/lame,1.0294541865937905,36.18445158004761,opt -mldst-motion -redundant-dbg-inst-elim -loop-unroll-and-jam -sroa -loweratomic -loop-reroll -loweratomic -nary-reassociate -partially-inline-libcalls -sccp -instsimplify -mergefunc -globalsplit -attributor -forceattrs -lowerinvoke -redundant-dbg-inst-elim -die -dse -inferattrs -loop-unswitch -licm -functionattrs -irce -memcpyopt -redundant-dbg-inst-elim -name-anon-globals -speculative-execution -sancov -ipconstprop -canonicalize-aliases -jump-threading -sink -loop-simplifycfg -float2int -loop-idiom -callsite-splitting -lower-guard-intrinsic -loop-idiom -libcalls-shrinkwrap -gvn -instcombine -mem2reg -ipconstprop -attributor -argpromotion -bdce -speculative-execution -prune-eh -cross-dso-cfi -dce -mldst-motion -mldst-motion -reassociate -mergeicmps -mergefunc -loop-versioning-licm -insert-gcov-profiling -lowerswitch -div-rem-pairs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0310863129127756,42.606950998306274,opt -loop-vectorize -loop-predication -loop-predication -lower-expect -rpo-functionattrs -loop-deletion -loop-reroll -lowerswitch -strip-dead-prototypes -elim-avail-extern -constmerge -partial-inliner -sancov -loop-versioning-licm -nary-reassociate -add-discriminators -gvn -break-crit-edges -guard-widening -coro-cleanup -correlated-propagation -instcombine -forceattrs -constprop -instcombine -globaldce -memcpyopt -alignment-from-assumptions -irce -nary-reassociate -functionattrs -loop-idiom -coro-split -newgvn -lower-widenable-condition -loop-idiom -instsimplify -instnamer -reg2mem -instnamer -memcpyopt -loop-simplifycfg -loop-unroll -loop-vectorize -globaldce -reassociate -inferattrs -coro-split -alignment-from-assumptions -deadargelim -lower-matrix-intrinsics -loop-unroll-and-jam -load-store-vectorizer -deadargelim -slsr -globaldce -globaldce -bdce -die -slsr -sroa -loop-idiom -newgvn -insert-gcov-profiling -name-anon-globals -loop-unswitch -functionattrs -coro-early -loop-fusion -simplifycfg -callsite-splitting -instcombine -newgvn -lower-widenable-condition -licm -ipconstprop -nary-reassociate -dce -slsr -argpromotion -alignment-from-assumptions -sccp -argpromotion -irce -called-value-propagation -globalsplit -loop-fusion -globaldce -called-value-propagation -lower-expect -coro-elide -loop-deletion -licm -loop-simplifycfg -ipsccp -reassociate -canonicalize-aliases -consthoist -ee-instrument -ipconstprop -newgvn -die -globaldce -elim-avail-extern -loop-guard-widening -redundant-dbg-inst-elim -simple-loop-unswitch -prune-eh -lower-guard-intrinsic -inject-tli-mappings -tailcallelim -functionattrs -memcpyopt -div-rem-pairs -mldst-motion -name-anon-globals -forceattrs -callsite-splitting -name-anon-globals -aggressive-instcombine -alignment-from-assumptions -slp-vectorizer -speculative-execution -licm -forceattrs -loop-deletion -div-rem-pairs -callsite-splitting -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/lame,1.0456615805055796,35.40720820426941,opt -strip-debug-declare -consthoist -sroa -loop-interchange -loop-fusion -speculative-execution -lower-matrix-intrinsics -strip -instcombine -gvn -name-anon-globals -gvn -loop-vectorize -slp-vectorizer -mergereturn -break-crit-edges -instsimplify -lcssa -deadargelim -loop-predication -licm -irce -lower-expect -loop-versioning -instcombine -gvn -coro-split -rpo-functionattrs -simplifycfg -lower-guard-intrinsic -bdce input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9866518353726363,11.925774574279785,opt -gvn-hoist -loop-unroll -loop-simplifycfg -consthoist -lower-constant-intrinsics -cross-dso-cfi -irce -bdce -strip-nondebug -mergefunc -rewrite-statepoints-for-gc -forceattrs -lowerinvoke -coro-elide -ipsccp -loop-versioning-licm -strip-dead-prototypes -libcalls-shrinkwrap -sink -loweratomic -early-cse-memssa -loop-vectorize -alignment-from-assumptions -break-crit-edges -loop-interchange -loop-distribute -strip -break-crit-edges -infer-address-spaces -canonicalize-aliases -always-inline -loop-unroll-and-jam -called-value-propagation -loweratomic -infer-address-spaces -memcpyopt -globalopt -mergereturn -licm -bdce -coro-early -simplifycfg -rpo-functionattrs -strip-dead-prototypes -pgo-memop-opt -barrier -mldst-motion -consthoist -insert-gcov-profiling -mergereturn -flattencfg -pgo-memop-opt -functionattrs -loop-sink -loop-reduce -redundant-dbg-inst-elim -post-inline-ee-instrument -insert-gcov-profiling -barrier -sancov -mem2reg -functionattrs -correlated-propagation -lower-expect -gvn-hoist -gvn -strip-dead-prototypes -instsimplify -strip -add-discriminators -lower-guard-intrinsic -ipsccp -inferattrs -reassociate -dce -prune-eh -jump-threading -adce input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9866518353726363,12.079885959625244,opt -loop-reduce -lower-guard-intrinsic -reg2mem -coro-split -loop-instsimplify -lower-constant-intrinsics -loop-reduce -coro-cleanup -canonicalize-aliases -elim-avail-extern -ee-instrument -jump-threading -correlated-propagation -lower-expect -loop-instsimplify -mldst-motion -functionattrs -div-rem-pairs -infer-address-spaces -loop-unswitch -instnamer -libcalls-shrinkwrap -loop-distribute -functionattrs -globalopt -loop-distribute -strip-dead-prototypes -libcalls-shrinkwrap -nary-reassociate -loop-simplify -lower-expect -coro-split -ipsccp -inferattrs -gvn -argpromotion -add-discriminators -lower-matrix-intrinsics -irce -globaldce -instnamer -simplifycfg -early-cse-memssa -functionattrs -instcombine -loop-unroll-and-jam -loop-deletion -gvn-hoist -jump-threading -coro-elide -tailcallelim -lower-guard-intrinsic -div-rem-pairs -attributor -adce -coro-elide -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9877641824249167,12.29286503791809,opt -slp-vectorizer -globalopt -load-store-vectorizer -dse -loop-vectorize -mem2reg -deadargelim -rewrite-statepoints-for-gc -loop-idiom -prune-eh -lower-constant-intrinsics -alignment-from-assumptions -loop-guard-widening -float2int -functionattrs -functionattrs -slp-vectorizer -mergereturn -ipsccp -consthoist -mldst-motion -instsimplify -speculative-execution -mldst-motion -simplifycfg -memcpyopt -loop-versioning -sink -loop-reroll -early-cse-memssa -coro-cleanup -loop-versioning-licm -loop-unroll -dce -guard-widening -dce -functionattrs -loop-guard-widening -speculative-execution -coro-early -div-rem-pairs -correlated-propagation -jump-threading -pgo-memop-opt -scalarizer -coro-cleanup -newgvn input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9877641824249169,12.073808193206787,opt -functionattrs -libcalls-shrinkwrap -loop-interchange -ipsccp -gvn -lower-widenable-condition -sroa -lower-guard-intrinsic -adce -loop-versioning-licm -licm -coro-cleanup -sccp -sancov -dse -barrier -infer-address-spaces -loop-interchange -licm -loop-unroll-and-jam -lower-expect -ipsccp -rewrite-statepoints-for-gc -mergefunc -loop-versioning-licm -coro-split -loop-instsimplify -rpo-functionattrs -early-cse-memssa -flattencfg -called-value-propagation -instcombine -infer-address-spaces -loop-versioning -guard-widening -gvn -globaldce -partially-inline-libcalls -nary-reassociate -indvars -inject-tli-mappings -loop-vectorize -lowerswitch -coro-early -ipconstprop -alignment-from-assumptions -bdce -aggressive-instcombine -loop-simplifycfg -globalopt -speculative-execution -lower-guard-intrinsic -memcpyopt -gvn -sancov -coro-early -loop-guard-widening -slp-vectorizer -mergefunc -loop-reduce -load-store-vectorizer -loop-fusion -lower-expect -callsite-splitting -inject-tli-mappings -scalarizer -die -coro-cleanup -simplifycfg -loop-sink -lower-widenable-condition -inject-tli-mappings -dse -libcalls-shrinkwrap -strip -ipsccp -gvn -constprop -die -ee-instrument -gvn -tailcallelim input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9888765294771972,13.508204936981201,opt -globalopt -mldst-motion -scalarizer -float2int -barrier -loop-simplify -elim-avail-extern -loop-reduce -die -newgvn -loop-fusion -cross-dso-cfi -loop-versioning-licm -infer-address-spaces -loop-distribute -slp-vectorizer -deadargelim -loop-simplifycfg -coro-elide -partial-inliner -hotcoldsplit -gvn -simplifycfg -correlated-propagation -sancov -mergereturn -lowerswitch -attributor -nary-reassociate -die -barrier -loop-reroll -loop-load-elim -libcalls-shrinkwrap -break-crit-edges -separate-const-offset-from-gep -adce -gvn -licm -die -globalsplit -post-inline-ee-instrument -float2int -bdce -loop-guard-widening -post-inline-ee-instrument -strip-nondebug -mergefunc -bdce -break-crit-edges -inject-tli-mappings -strip -sccp -jump-threading -loop-versioning-licm -constprop -functionattrs -indvars -mergereturn -flattencfg -instcombine -loop-distribute -mem2reg -loop-deletion -loop-unroll-and-jam -strip-dead-prototypes -coro-early -lcssa -rewrite-statepoints-for-gc -partially-inline-libcalls -loop-fusion -bdce -strip-nondebug -loop-reroll -functionattrs -lowerswitch -mldst-motion -jump-threading -newgvn -bdce -reg2mem -div-rem-pairs -name-anon-globals -lower-guard-intrinsic -sancov -instnamer -add-discriminators -always-inline -mergefunc -loop-load-elim -loop-reroll -loop-unroll -load-store-vectorizer -slp-vectorizer -loop-sink -elim-avail-extern -strip-nondebug -constprop -pgo-memop-opt -ee-instrument -loop-rotate -sink -coro-split -lcssa -dse -early-cse-memssa -pgo-memop-opt -lower-matrix-intrinsics -globalopt -newgvn -mergefunc -loop-distribute -loop-interchange -partial-inliner -loop-versioning -coro-elide -globalsplit -rewrite-statepoints-for-gc -irce -libcalls-shrinkwrap -sink -simplifycfg -constmerge -loop-unroll-and-jam -lowerinvoke -gvn -newgvn -loop-reroll -lower-constant-intrinsics -aggressive-instcombine -called-value-propagation -strip-dead-prototypes -globalsplit -rpo-functionattrs -gvn -div-rem-pairs -bdce -simplifycfg -forceattrs -callsite-splitting -insert-gcov-profiling -sroa -strip -simplifycfg -sccp -instnamer -globalopt -reassociate input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9911012235817576,12.252049684524536,opt -functionattrs -instsimplify -callsite-splitting -lowerswitch -aggressive-instcombine -licm -always-inline -nary-reassociate -cross-dso-cfi -add-discriminators -bdce -loop-interchange -redundant-dbg-inst-elim -slp-vectorizer -alignment-from-assumptions -ipsccp -coro-cleanup -lower-widenable-condition -div-rem-pairs -div-rem-pairs -correlated-propagation -loop-deletion -ee-instrument -mem2reg -mem2reg -gvn-hoist -memcpyopt -loop-fusion -inject-tli-mappings -consthoist -loop-instsimplify -strip-debug-declare -loop-instsimplify -slsr -adce -constmerge -loop-guard-widening -loop-fusion -loop-instsimplify -redundant-dbg-inst-elim -lowerinvoke -sccp -speculative-execution -strip-debug-declare -sancov -gvn-hoist -pgo-memop-opt -instcombine -aggressive-instcombine -speculative-execution -instsimplify -reassociate -irce -guard-widening -gvn -inferattrs -elim-avail-extern -alignment-from-assumptions -instnamer -guard-widening -loop-instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9933259176863184,11.92369031906128,opt -loop-predication -insert-gcov-profiling -forceattrs -speculative-execution -globalsplit -mldst-motion -pgo-memop-opt -functionattrs -called-value-propagation -loop-guard-widening -aggressive-instcombine -infer-address-spaces -indvars -partially-inline-libcalls -simplifycfg -functionattrs -partially-inline-libcalls -break-crit-edges -loop-vectorize -loop-simplify -adce -loop-interchange -mergefunc -hotcoldsplit -globalopt -partial-inliner -adce -loop-idiom -partial-inliner -coro-early -loop-unswitch -name-anon-globals -add-discriminators -scalarizer -sroa -argpromotion -separate-const-offset-from-gep -mergereturn -loop-instsimplify -pgo-memop-opt -lower-widenable-condition -instsimplify -globaldce -loop-vectorize -coro-split -newgvn -coro-elide -attributor -strip-dead-prototypes -pgo-memop-opt -ipconstprop -dce -dse -loop-distribute -alignment-from-assumptions -lower-guard-intrinsic -correlated-propagation -gvn -loop-vectorize -ipsccp -mergefunc -simplifycfg -ipconstprop -cross-dso-cfi -flattencfg -loop-sink -flattencfg -elim-avail-extern -mldst-motion -loop-guard-widening -simplifycfg -loop-reduce -deadargelim -slp-vectorizer -simplifycfg -loop-sink -loop-fusion -rpo-functionattrs -callsite-splitting -loop-instsimplify -loop-simplifycfg -break-crit-edges -nary-reassociate -constmerge -die -simplifycfg -strip -functionattrs -loop-distribute -loop-reduce -ipconstprop -load-store-vectorizer -loop-interchange -licm -barrier -prune-eh -tailcallelim -scalarizer -loop-guard-widening -float2int -slsr -licm -mldst-motion -called-value-propagation -strip -coro-cleanup -div-rem-pairs -loop-distribute -sroa -loop-unroll -strip-nondebug -lower-constant-intrinsics -constmerge -callsite-splitting -break-crit-edges -rewrite-statepoints-for-gc -forceattrs -flattencfg -instcombine -consthoist -post-inline-ee-instrument -globaldce -float2int -partial-inliner -mergeicmps -aggressive-instcombine -memcpyopt -simplifycfg -gvn input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9966629588431589,14.353923320770264,opt -deadargelim -loweratomic -loop-reduce -div-rem-pairs -jump-threading -loop-interchange -slp-vectorizer -lower-constant-intrinsics -loop-distribute -lower-constant-intrinsics -inferattrs -strip -gvn -simplifycfg -loweratomic -loop-predication -bdce -lower-guard-intrinsic -loop-distribute -ee-instrument -globalsplit -loop-fusion -partial-inliner -loop-simplifycfg -loop-reroll -dse -loop-guard-widening -correlated-propagation -dse -insert-gcov-profiling -called-value-propagation -loop-deletion -loop-vectorize -strip-debug-declare -name-anon-globals -argpromotion -loop-data-prefetch -strip-dead-prototypes -lower-matrix-intrinsics -called-value-propagation -argpromotion -mem2reg -alignment-from-assumptions -dse -flattencfg -partially-inline-libcalls -ee-instrument -flattencfg -loop-load-elim -sroa -ipconstprop -indvars -deadargelim -flattencfg -loop-unroll -post-inline-ee-instrument -loweratomic -early-cse-memssa -globaldce -nary-reassociate -globaldce -break-crit-edges -globalopt -loop-instsimplify -coro-cleanup -indvars -mergereturn -loop-simplifycfg -sccp -reassociate -jump-threading -mergereturn -tailcallelim -break-crit-edges -loop-distribute -coro-early -prune-eh -partially-inline-libcalls -alignment-from-assumptions -loop-versioning-licm -prune-eh -reassociate -loop-versioning -callsite-splitting -nary-reassociate -gvn-hoist -loop-idiom -strip-nondebug -loop-predication -sroa -loop-unroll-and-jam -lower-expect -loop-data-prefetch -prune-eh -inferattrs -licm -mem2reg -memcpyopt -jump-threading -mergefunc -aggressive-instcombine -always-inline -dse -inject-tli-mappings -correlated-propagation -inject-tli-mappings -loop-simplifycfg -break-crit-edges -sroa -div-rem-pairs -globaldce -memcpyopt -rpo-functionattrs -sroa -speculative-execution -loop-predication -mergefunc -hotcoldsplit -strip-nondebug -instcombine -rpo-functionattrs -break-crit-edges -loop-predication -load-store-vectorizer -loop-guard-widening -loop-reduce -strip-debug-declare -loop-vectorize -ee-instrument -constmerge -indvars -mldst-motion -post-inline-ee-instrument -loop-simplifycfg -gvn-hoist -functionattrs -simple-loop-unswitch -mergeicmps -libcalls-shrinkwrap -loop-distribute -ipconstprop -loop-deletion -mldst-motion -deadargelim -simple-loop-unswitch -loweratomic -partial-inliner -strip -elim-avail-extern -coro-cleanup -coro-elide -loop-simplify -elim-avail-extern -scalarizer -loop-unroll -add-discriminators -speculative-execution -strip-debug-declare -instcombine -loop-simplifycfg -post-inline-ee-instrument -break-crit-edges -nary-reassociate -die -div-rem-pairs -simplifycfg -licm -mergeicmps -strip-nondebug -gvn input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9977753058954394,12.289266586303711,opt -correlated-propagation -die -mergefunc -functionattrs -loop-sink -coro-early -strip -loop-unroll -sccp -licm -scalarizer -loop-simplifycfg -coro-early -rpo-functionattrs -strip-dead-prototypes -simplifycfg -argpromotion -speculative-execution -aggressive-instcombine -load-store-vectorizer -name-anon-globals -canonicalize-aliases -callsite-splitting -lower-widenable-condition -loop-load-elim -functionattrs -canonicalize-aliases -deadargelim -tailcallelim -lower-widenable-condition -inject-tli-mappings -loop-versioning -lower-expect -reassociate -early-cse-memssa -elim-avail-extern -break-crit-edges -lower-guard-intrinsic -sink -partially-inline-libcalls -speculative-execution -mergefunc -loop-reroll -loop-distribute -globalopt -separate-const-offset-from-gep -lowerswitch -licm -lower-expect -partially-inline-libcalls -loop-deletion -loop-reduce -globalsplit -hotcoldsplit -redundant-dbg-inst-elim -loop-idiom -sroa -infer-address-spaces -hotcoldsplit -functionattrs -argpromotion -post-inline-ee-instrument -functionattrs -lower-widenable-condition -separate-const-offset-from-gep -always-inline -separate-const-offset-from-gep -constmerge -adce -slp-vectorizer -lower-constant-intrinsics -loop-simplifycfg -constprop -strip-dead-prototypes -loop-unroll -rewrite-statepoints-for-gc -ipsccp -bdce -loop-versioning-licm -jump-threading -reg2mem -licm -rpo-functionattrs -instnamer -newgvn -loop-simplifycfg -loop-vectorize -barrier -scalarizer -loop-guard-widening -post-inline-ee-instrument -loop-interchange -gvn -lower-widenable-condition -loop-versioning -always-inline -instcombine -ipsccp -deadargelim -flattencfg -sccp -loop-deletion -loop-idiom -inferattrs -globalsplit -licm -jump-threading -cross-dso-cfi -irce -always-inline -dce -ipconstprop -dce -jump-threading -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/patricia,1.0022246941045605,12.50986385345459,opt -redundant-dbg-inst-elim -strip-nondebug -flattencfg -loop-unroll-and-jam -correlated-propagation -loop-versioning -loop-vectorize -die -coro-early -hotcoldsplit -ipsccp -functionattrs -lower-constant-intrinsics -gvn -mergeicmps -globaldce -canonicalize-aliases -instsimplify -lowerinvoke -flattencfg -loop-fusion -lower-expect -constmerge -scalarizer -ee-instrument -strip-nondebug -dse -gvn -deadargelim -consthoist -nary-reassociate -slsr -instnamer -reassociate -indvars -memcpyopt -tailcallelim -callsite-splitting -partially-inline-libcalls -instsimplify -correlated-propagation -lower-guard-intrinsic -coro-early -coro-split -canonicalize-aliases -mergefunc -ee-instrument -speculative-execution -loop-fusion -callsite-splitting -partially-inline-libcalls -barrier -libcalls-shrinkwrap -lowerswitch -sccp -add-discriminators -sccp -inject-tli-mappings -div-rem-pairs -reassociate -canonicalize-aliases -loop-versioning-licm -coro-cleanup -instsimplify -coro-cleanup -mergefunc -forceattrs -insert-gcov-profiling -barrier -coro-elide -die -loop-distribute -strip-dead-prototypes -adce -irce -nary-reassociate -instsimplify -loop-load-elim -load-store-vectorizer -rewrite-statepoints-for-gc -speculative-execution -libcalls-shrinkwrap -inferattrs -post-inline-ee-instrument -loop-unroll -mergeicmps -loop-distribute -float2int -speculative-execution -coro-cleanup -nary-reassociate -forceattrs -loop-unroll -mergereturn -post-inline-ee-instrument -post-inline-ee-instrument -loop-unroll-and-jam -mergereturn -lcssa -slsr -simple-loop-unswitch -strip-dead-prototypes -mergeicmps -coro-cleanup -globalsplit -inject-tli-mappings -nary-reassociate -loop-fusion -guard-widening -gvn -sink -always-inline -bdce -separate-const-offset-from-gep -functionattrs -instcombine -loop-distribute -loop-guard-widening -pgo-memop-opt -mergeicmps -mergereturn -canonicalize-aliases -coro-elide -coro-split -coro-elide -gvn-hoist -float2int -flattencfg -loop-simplify -aggressive-instcombine -loop-versioning-licm -loop-predication -mergefunc -ipconstprop -simple-loop-unswitch -libcalls-shrinkwrap -coro-split -loop-data-prefetch -always-inline -bdce -speculative-execution -alignment-from-assumptions -lower-constant-intrinsics -attributor -globalopt -lowerswitch -coro-elide -name-anon-globals -instnamer -elim-avail-extern -dse -ee-instrument -loop-versioning -float2int -loop-simplify -coro-split -always-inline -barrier -tailcallelim -loop-versioning-licm -loop-simplifycfg -called-value-propagation -tailcallelim -always-inline -pgo-memop-opt -globaldce -scalarizer -lower-expect -called-value-propagation -newgvn -separate-const-offset-from-gep -called-value-propagation -sink -name-anon-globals -adce -instcombine -name-anon-globals -guard-widening -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.0959752321981424,12.017142057418823,opt -lowerinvoke -loop-unroll -globalsplit -loop-vectorize -loop-fusion -loop-predication -loop-deletion -lowerswitch -loop-reroll -lowerswitch -lowerswitch -always-inline -loop-interchange -strip -loop-fusion -deadargelim -newgvn -partially-inline-libcalls -lowerswitch -ee-instrument -loop-reroll -loop-unswitch -constmerge -loop-instsimplify -sancov -loop-reroll -mergeicmps -constprop -ipsccp -loop-instsimplify -memcpyopt -strip -nary-reassociate -strip -mem2reg -sink -redundant-dbg-inst-elim -lower-constant-intrinsics -lowerinvoke -coro-early -prune-eh -guard-widening -loop-versioning-licm -loop-simplify -loop-deletion -sroa -canonicalize-aliases -load-store-vectorizer -inferattrs -dce -barrier -loop-deletion -sroa -barrier -loop-unroll-and-jam -lower-expect -bdce -strip-dead-prototypes -dse -elim-avail-extern -bdce -inject-tli-mappings -inject-tli-mappings -gvn-hoist -tailcallelim -loop-predication -irce -dce -coro-elide -deadargelim -load-store-vectorizer -correlated-propagation -aggressive-instcombine -loop-unroll -redundant-dbg-inst-elim -sccp -simplifycfg -loop-versioning -loop-unroll-and-jam -loop-interchange -mem2reg -div-rem-pairs -inject-tli-mappings -flattencfg -barrier -lowerinvoke -memcpyopt -speculative-execution -lowerinvoke -loop-sink -called-value-propagation -slsr -separate-const-offset-from-gep -bdce -bdce -simplifycfg -lower-matrix-intrinsics -libcalls-shrinkwrap -loop-unroll-and-jam -irce -instcombine input.bc -o output.bc -benchmark://cBench-v1/qsort,1.0990712074303406,11.887055158615112,opt -lower-constant-intrinsics -coro-cleanup -loop-instsimplify -mergereturn -pgo-memop-opt -coro-elide -gvn -sink -consthoist -callsite-splitting -dce -partial-inliner -mem2reg -loop-simplify -instnamer -nary-reassociate -simple-loop-unswitch -memcpyopt -flattencfg -alignment-from-assumptions -loop-instsimplify -pgo-memop-opt -insert-gcov-profiling -constprop -loop-versioning -coro-elide -speculative-execution -globalsplit -infer-address-spaces -jump-threading -guard-widening -partially-inline-libcalls -consthoist -break-crit-edges -strip-nondebug -loop-data-prefetch -reassociate -newgvn -coro-split -newgvn -simplifycfg -strip-debug-declare -simplifycfg -lcssa -loop-idiom -coro-elide -loop-predication -loop-load-elim -ee-instrument -reassociate -always-inline -simplifycfg -nary-reassociate -functionattrs -elim-avail-extern -load-store-vectorizer -jump-threading -flattencfg -lower-widenable-condition -instcombine input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1021671826625385,11.789689779281616,opt -early-cse-memssa -attributor -loop-simplify -libcalls-shrinkwrap -reassociate -instnamer -strip-dead-prototypes -functionattrs -mergeicmps -prune-eh -globalsplit -dce -loop-predication -globalsplit -mergereturn -scalarizer -mem2reg -loop-distribute -div-rem-pairs -mergeicmps -partially-inline-libcalls -elim-avail-extern -insert-gcov-profiling -loop-guard-widening -loop-data-prefetch -irce -separate-const-offset-from-gep -barrier -lower-expect -lower-guard-intrinsic -sancov -mergeicmps -partially-inline-libcalls -slsr -sancov -separate-const-offset-from-gep -gvn-hoist -loop-vectorize -load-store-vectorizer -constprop -loop-unroll -aggressive-instcombine -sink -loop-sink -loop-interchange -mergefunc -loop-data-prefetch -simplifycfg -instsimplify -lower-guard-intrinsic -forceattrs -loop-interchange -globaldce -pgo-memop-opt -ipsccp -alignment-from-assumptions -licm -mergefunc -sccp -constprop -infer-address-spaces -insert-gcov-profiling -loop-simplifycfg -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.105263157894737,11.881323337554932,opt -loop-predication -insert-gcov-profiling -strip-nondebug -loop-distribute -licm -instnamer -ipconstprop -coro-elide -loop-guard-widening -loop-versioning-licm -coro-elide -globalopt -mergereturn -mergeicmps -infer-address-spaces -sink -speculative-execution -cross-dso-cfi -slp-vectorizer -argpromotion -gvn-hoist -ipconstprop -constprop -sroa -loop-instsimplify -simplifycfg -instcombine -instcombine -lower-constant-intrinsics -lowerswitch -loop-sink -irce -early-cse-memssa -instnamer -loop-instsimplify -sancov -consthoist -pgo-memop-opt -coro-cleanup -loop-unswitch -loop-instsimplify -lower-expect -load-store-vectorizer -newgvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.108359133126935,11.847872734069824,opt -correlated-propagation -lower-expect -sink -lowerinvoke -newgvn -sink -break-crit-edges -break-crit-edges -loop-idiom -gvn -called-value-propagation -flattencfg -scalarizer -loop-load-elim -slp-vectorizer -correlated-propagation -sancov -argpromotion -alignment-from-assumptions -strip-nondebug -newgvn -lower-matrix-intrinsics -div-rem-pairs -ee-instrument -ee-instrument -infer-address-spaces -mergereturn -lowerinvoke -simplifycfg -instcombine -licm -rpo-functionattrs -constmerge -loop-deletion -newgvn -cross-dso-cfi -jump-threading input.bc -o output.bc -benchmark://cBench-v1/qsort,1.108359133126935,11.972721815109253,opt -separate-const-offset-from-gep -coro-elide -loop-interchange -indvars -loop-predication -guard-widening -irce -called-value-propagation -globalsplit -redundant-dbg-inst-elim -partially-inline-libcalls -rewrite-statepoints-for-gc -mergereturn -add-discriminators -dce -jump-threading -loop-data-prefetch -redundant-dbg-inst-elim -inject-tli-mappings -mem2reg -loop-versioning-licm -redundant-dbg-inst-elim -insert-gcov-profiling -lowerinvoke -gvn -mldst-motion -simple-loop-unswitch -loop-fusion -constmerge -alignment-from-assumptions -indvars -bdce -tailcallelim -elim-avail-extern -strip-dead-prototypes -die -simple-loop-unswitch -instcombine -partially-inline-libcalls -loweratomic -mergefunc -lowerinvoke -ee-instrument -rpo-functionattrs -lower-constant-intrinsics -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.108359133126935,12.017470836639404,opt -loop-deletion -indvars -loop-reroll -slp-vectorizer -loop-deletion -rewrite-statepoints-for-gc -coro-early -lcssa -loop-versioning -loop-reduce -strip-debug-declare -dce -guard-widening -mem2reg -infer-address-spaces -lower-constant-intrinsics -indvars -constmerge -attributor -lowerswitch -loop-simplifycfg -break-crit-edges -lcssa -dse -die -coro-elide -ipconstprop -alignment-from-assumptions -mergereturn -gvn -sancov -simplifycfg -loop-sink -hotcoldsplit -loop-deletion -lower-guard-intrinsic -float2int -loop-fusion -add-discriminators -instcombine -gvn-hoist -loop-idiom -gvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.108359133126935,12.212085723876953,opt -loop-vectorize -strip -globalsplit -loop-reroll -guard-widening -gvn -post-inline-ee-instrument -globalopt -bdce -mergeicmps -sancov -loop-guard-widening -sancov -break-crit-edges -tailcallelim -canonicalize-aliases -strip -add-discriminators -globalopt -globalsplit -flattencfg -loweratomic -globalsplit -attributor -mergeicmps -cross-dso-cfi -loop-simplify -sancov -partial-inliner -strip-debug-declare -prune-eh -argpromotion -gvn -reg2mem -attributor -mem2reg -forceattrs -newgvn -coro-early -strip-nondebug -loop-reroll -strip-debug-declare -loop-unswitch -loop-unroll -lower-widenable-condition -licm -loop-distribute -loop-distribute -loop-reroll -sancov -lower-constant-intrinsics -loop-deletion -coro-split -bdce -mem2reg -loop-simplify -canonicalize-aliases -mldst-motion -loop-sink -gvn-hoist -inject-tli-mappings -loop-instsimplify -mergereturn -coro-early -constmerge -constprop -instnamer -lower-matrix-intrinsics -partial-inliner -float2int -flattencfg -die -lower-constant-intrinsics -add-discriminators -lcssa -add-discriminators -mldst-motion -coro-elide -instsimplify -div-rem-pairs -instcombine -loop-predication -strip -insert-gcov-profiling -indvars -lowerswitch -nary-reassociate -dce -loweratomic -insert-gcov-profiling -libcalls-shrinkwrap -mldst-motion -instcombine -lower-widenable-condition -inject-tli-mappings -globalopt -lowerinvoke -gvn-hoist -strip-nondebug -loop-simplifycfg -elim-avail-extern -loop-distribute -rpo-functionattrs -memcpyopt -globalopt -barrier -consthoist -simple-loop-unswitch -load-store-vectorizer -sancov -partially-inline-libcalls -lower-constant-intrinsics -pgo-memop-opt -canonicalize-aliases -deadargelim -load-store-vectorizer -loop-interchange -mem2reg -memcpyopt -strip-nondebug -infer-address-spaces -simple-loop-unswitch -jump-threading -name-anon-globals -pgo-memop-opt -mergeicmps -instcombine -ipconstprop -sink -argpromotion -adce -cross-dso-cfi -partially-inline-libcalls -tailcallelim -sccp -infer-address-spaces -inject-tli-mappings -mergefunc -strip-debug-declare -loop-data-prefetch -flattencfg -dce -nary-reassociate -coro-cleanup -die -strip-dead-prototypes -newgvn -attributor -instnamer -early-cse-memssa -mergeicmps -ee-instrument -forceattrs -loop-simplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1145510835913313,11.989583253860474,opt -coro-cleanup -reg2mem -rewrite-statepoints-for-gc -dse -partially-inline-libcalls -jump-threading -gvn-hoist -consthoist -pgo-memop-opt -loweratomic -guard-widening -globalopt -deadargelim -scalarizer -strip-debug-declare -tailcallelim -loop-reduce -coro-split -mem2reg -add-discriminators -loweratomic -loop-sink -globaldce -sancov -sink -load-store-vectorizer -loop-unroll -hotcoldsplit -add-discriminators -strip-dead-prototypes -gvn-hoist -div-rem-pairs -jump-threading -coro-cleanup -constmerge -slsr -gvn -lower-constant-intrinsics -lower-expect -rewrite-statepoints-for-gc -div-rem-pairs -cross-dso-cfi -infer-address-spaces -ee-instrument -nary-reassociate -loop-unswitch -sancov -loop-reroll -rpo-functionattrs -slp-vectorizer -insert-gcov-profiling -simple-loop-unswitch -lowerswitch -consthoist -argpromotion -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1207430340557278,11.769915342330933,opt -separate-const-offset-from-gep -loop-fusion -forceattrs -always-inline -slsr -loop-interchange -argpromotion -loop-load-elim -float2int -flattencfg -speculative-execution -sroa -div-rem-pairs -always-inline -float2int -mergefunc -dce -newgvn -lower-constant-intrinsics -strip-dead-prototypes -coro-split -constmerge -lower-matrix-intrinsics -lower-widenable-condition -lcssa -always-inline -instcombine -name-anon-globals -float2int -attributor -loop-interchange -post-inline-ee-instrument -coro-elide -loweratomic -newgvn -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.093522422384055,12.692811965942383,opt -mergefunc -rpo-functionattrs -newgvn -strip-dead-prototypes -separate-const-offset-from-gep -loop-data-prefetch -loop-versioning -canonicalize-aliases -lower-matrix-intrinsics -mem2reg -instcombine -post-inline-ee-instrument -globaldce -reassociate -mergereturn -instcombine -gvn-hoist -instcombine -deadargelim -strip-nondebug -float2int -dce -memcpyopt -separate-const-offset-from-gep -hotcoldsplit -loop-data-prefetch -loop-simplify -attributor -partially-inline-libcalls -loop-interchange -die -bdce -break-crit-edges -bdce -mergeicmps -infer-address-spaces -strip-debug-declare -strip -speculative-execution -coro-cleanup -coro-early -canonicalize-aliases -loop-guard-widening -slp-vectorizer -mem2reg -loop-simplify -name-anon-globals -callsite-splitting -functionattrs -libcalls-shrinkwrap -globalopt -loop-rotate -slsr -speculative-execution -strip-nondebug -lowerinvoke -loop-guard-widening -mergeicmps -called-value-propagation -flattencfg -strip-nondebug -gvn -cross-dso-cfi -insert-gcov-profiling -loop-data-prefetch -simplifycfg -deadargelim -slsr -inferattrs -globaldce -rewrite-statepoints-for-gc -post-inline-ee-instrument -memcpyopt -constmerge -consthoist -speculative-execution -lower-matrix-intrinsics -coro-cleanup -gvn-hoist -adce -loop-instsimplify -loweratomic -early-cse-memssa -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.0946722882330395,12.9319007396698,opt -loop-data-prefetch -sink -mldst-motion -consthoist -loop-versioning -consthoist -reassociate -guard-widening -div-rem-pairs -rewrite-statepoints-for-gc -ipconstprop -instnamer -add-discriminators -slp-vectorizer -flattencfg -functionattrs -loop-unroll -loop-data-prefetch -separate-const-offset-from-gep -ee-instrument -callsite-splitting -strip-nondebug -irce -name-anon-globals -loop-distribute -ipconstprop -loop-instsimplify -constmerge -attributor -gvn-hoist -loop-unswitch -loop-distribute -aggressive-instcombine -loop-interchange -dse -instsimplify -consthoist -mem2reg -lower-expect -loop-unroll-and-jam -gvn-hoist -newgvn -argpromotion -float2int -coro-early -called-value-propagation -loop-fusion -mldst-motion -elim-avail-extern -loop-simplifycfg -loop-load-elim -strip-nondebug -simplifycfg -coro-elide -loop-idiom -barrier -lowerinvoke -die -constprop -callsite-splitting -barrier -guard-widening -loweratomic -mem2reg -name-anon-globals -loop-predication -ipsccp -lower-matrix-intrinsics -prune-eh -gvn -always-inline -cross-dso-cfi -loop-interchange -dse -argpromotion -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.0965887313146796,12.338773727416992,opt -loop-predication -loop-predication -infer-address-spaces -loop-unroll-and-jam -prune-eh -loop-reduce -constmerge -mergeicmps -loop-distribute -attributor -lowerinvoke -loop-deletion -loop-sink -coro-elide -reg2mem -licm -constmerge -instsimplify -mergefunc -reg2mem -sancov -bdce -strip -forceattrs -div-rem-pairs -loop-distribute -loop-data-prefetch -functionattrs -loop-idiom -loop-versioning -correlated-propagation -inject-tli-mappings -partial-inliner -licm -loweratomic -strip-nondebug -coro-cleanup -reg2mem -ipconstprop -loop-deletion -loop-deletion -lower-expect -constprop -coro-split -strip-nondebug -name-anon-globals -name-anon-globals -break-crit-edges -simple-loop-unswitch -sink -globaldce -sccp -reg2mem -loop-load-elim -speculative-execution -sroa -inferattrs -strip-dead-prototypes -early-cse-memssa -deadargelim -name-anon-globals -prune-eh -gvn-hoist -loop-data-prefetch -coro-elide -strip-debug-declare -constmerge -slp-vectorizer -partially-inline-libcalls -callsite-splitting -loop-deletion -simplifycfg -loop-guard-widening -early-cse-memssa -ipconstprop -break-crit-edges -rpo-functionattrs -loop-versioning-licm -coro-early -mem2reg -strip-debug-declare -instsimplify -callsite-splitting -forceattrs -simplifycfg -deadargelim -jump-threading -lower-guard-intrinsic -loop-distribute -dse -tailcallelim -constmerge -rewrite-statepoints-for-gc -elim-avail-extern -lower-matrix-intrinsics -dce -partially-inline-libcalls -insert-gcov-profiling -name-anon-globals -partially-inline-libcalls -infer-address-spaces -coro-split -loop-sink -gvn -lower-expect -simple-loop-unswitch -loop-versioning -loop-deletion -constprop -rpo-functionattrs -jump-threading -speculative-execution -lcssa -lcssa -hotcoldsplit -insert-gcov-profiling -elim-avail-extern -lower-matrix-intrinsics -loop-unroll-and-jam -elim-avail-extern -reassociate -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.0969720199310082,13.111221075057983,opt -functionattrs -loop-simplify -early-cse-memssa -sccp -dce -loweratomic -tailcallelim -bdce -cross-dso-cfi -inject-tli-mappings -loop-unswitch -instsimplify -loop-versioning -aggressive-instcombine -bdce -gvn-hoist -lower-widenable-condition -argpromotion -elim-avail-extern -coro-cleanup -elim-avail-extern -instnamer -lower-widenable-condition -loop-versioning -loop-interchange -forceattrs -lowerinvoke -lcssa -bdce -nary-reassociate -add-discriminators -correlated-propagation -sancov -name-anon-globals -globalsplit -loop-instsimplify -tailcallelim -sroa -loop-unroll-and-jam -partially-inline-libcalls -mergefunc -deadargelim -ipsccp -early-cse-memssa -lower-matrix-intrinsics -scalarizer -redundant-dbg-inst-elim -lower-matrix-intrinsics -newgvn -globalsplit -loop-rotate -infer-address-spaces -correlated-propagation -infer-address-spaces -sccp -sroa -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.097355308547336,12.750953435897827,opt -sroa -elim-avail-extern -coro-split -canonicalize-aliases -float2int -simple-loop-unswitch -correlated-propagation -pgo-memop-opt -rewrite-statepoints-for-gc -alignment-from-assumptions -die -cross-dso-cfi -newgvn -simplifycfg -loweratomic -insert-gcov-profiling -deadargelim -separate-const-offset-from-gep -float2int -loop-load-elim -barrier -separate-const-offset-from-gep -bdce -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.0992717516289765,12.554092168807983,opt -tailcallelim -globalopt -post-inline-ee-instrument -dse -correlated-propagation -lowerinvoke -mergefunc -mldst-motion -irce -lower-widenable-condition -callsite-splitting -coro-early -rpo-functionattrs -strip-dead-prototypes -coro-cleanup -flattencfg -alignment-from-assumptions -lower-matrix-intrinsics -globaldce -coro-early -loop-instsimplify -lowerinvoke -mldst-motion -canonicalize-aliases -globalopt -lower-constant-intrinsics -simplifycfg -hotcoldsplit -gvn-hoist -flattencfg -memcpyopt -tailcallelim -sroa -partially-inline-libcalls -strip -hotcoldsplit -newgvn -loop-idiom -dse -dse -instcombine -slp-vectorizer -slp-vectorizer -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.099271751628977,12.885164499282837,opt -coro-early -loop-instsimplify -argpromotion -strip-dead-prototypes -loop-simplify -sccp -bdce -constprop -mergereturn -separate-const-offset-from-gep -libcalls-shrinkwrap -jump-threading -loop-reduce -indvars -functionattrs -lowerinvoke -alignment-from-assumptions -constprop -functionattrs -strip-dead-prototypes -loop-data-prefetch -inject-tli-mappings -bdce -coro-cleanup -dse -lowerinvoke -tailcallelim -sroa -instsimplify -consthoist -loop-simplifycfg -sancov -libcalls-shrinkwrap -gvn -loop-data-prefetch -partially-inline-libcalls -coro-early -dce -instcombine -mergeicmps -attributor -partial-inliner -mldst-motion -instnamer -loop-load-elim -lower-expect -correlated-propagation -speculative-execution -coro-split -cross-dso-cfi -indvars -early-cse-memssa -canonicalize-aliases -gvn-hoist -redundant-dbg-inst-elim -lcssa -simple-loop-unswitch -lower-widenable-condition -coro-early -loop-distribute -constprop -coro-split -pgo-memop-opt -lower-constant-intrinsics -infer-address-spaces -loop-fusion -constmerge -nary-reassociate -inject-tli-mappings -cross-dso-cfi -mergereturn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1004216174779609,15.460011005401611,opt -die -infer-address-spaces -loop-unroll -sroa -elim-avail-extern -cross-dso-cfi -mldst-motion -barrier -mergefunc -loop-sink -aggressive-instcombine -correlated-propagation -scalarizer -scalarizer -break-crit-edges -add-discriminators -lower-guard-intrinsic -instcombine -barrier -pgo-memop-opt -float2int -called-value-propagation -sccp -lower-guard-intrinsic -speculative-execution -elim-avail-extern -mergefunc -loop-simplify -coro-split -globalopt -infer-address-spaces -adce -loop-idiom -ipconstprop -loop-guard-widening -indvars -lower-expect -aggressive-instcombine -loop-idiom -deadargelim -cross-dso-cfi -insert-gcov-profiling -lower-widenable-condition -loop-reroll -ipsccp -break-crit-edges -early-cse-memssa -loop-reroll -div-rem-pairs -canonicalize-aliases -functionattrs -die -forceattrs -coro-early -tailcallelim -adce -prune-eh -inject-tli-mappings -guard-widening -slsr -gvn -sroa -loop-load-elim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1004216174779613,12.831381559371948,opt -instcombine -float2int -globalopt -redundant-dbg-inst-elim -lower-matrix-intrinsics -loop-versioning -argpromotion -rpo-functionattrs -loop-interchange -loop-data-prefetch -barrier -aggressive-instcombine -loop-simplifycfg -aggressive-instcombine -rewrite-statepoints-for-gc -canonicalize-aliases -mergeicmps -barrier -partially-inline-libcalls -always-inline -aggressive-instcombine -gvn-hoist -insert-gcov-profiling -ipsccp -sink -loop-instsimplify -loop-guard-widening -argpromotion -lower-guard-intrinsic -hotcoldsplit -mergefunc -ipconstprop -redundant-dbg-inst-elim -sroa -lowerinvoke -slsr -newgvn -dce -break-crit-edges -simplifycfg -infer-address-spaces -instnamer -functionattrs -die -die -scalarizer -infer-address-spaces -strip -lowerinvoke -jump-threading -correlated-propagation -libcalls-shrinkwrap -constmerge -loweratomic -lower-expect -loop-reroll -scalarizer -ipsccp -ee-instrument -lower-widenable-condition -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1023380605596014,14.866809129714966,opt -mergeicmps -mergereturn -strip-debug-declare -globaldce -mergereturn -loop-instsimplify -alignment-from-assumptions -float2int -slp-vectorizer -sccp -flattencfg -callsite-splitting -infer-address-spaces -always-inline -loop-simplifycfg -flattencfg -newgvn -mem2reg -cross-dso-cfi -lower-matrix-intrinsics -instcombine -early-cse-memssa -reassociate -infer-address-spaces -rewrite-statepoints-for-gc -loop-simplifycfg -instnamer -coro-cleanup -loop-data-prefetch -loop-versioning-licm -correlated-propagation -loop-reroll -strip-nondebug -irce -loop-versioning-licm -ipconstprop -functionattrs -simplifycfg -argpromotion -sroa -memcpyopt -name-anon-globals -lcssa -sink -die -loop-simplify -forceattrs -strip -reg2mem -irce -loop-deletion -slsr -elim-avail-extern -mem2reg -lower-expect -lowerinvoke -coro-split -coro-split -dce -strip-dead-prototypes -float2int -loop-instsimplify -ipsccp -loweratomic -loop-predication -newgvn -ipconstprop -mergeicmps -float2int -simple-loop-unswitch -licm -ipsccp -loop-distribute -mergefunc -slsr -inject-tli-mappings -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/sha,1.4682274247491636,11.895204067230225,opt -lowerswitch -loop-reduce -mergefunc -reg2mem -infer-address-spaces -licm -pgo-memop-opt -lowerinvoke -insert-gcov-profiling -early-cse-memssa -aggressive-instcombine -inferattrs -canonicalize-aliases -div-rem-pairs -slsr -instnamer -load-store-vectorizer -loop-instsimplify -aggressive-instcombine -mem2reg -loop-distribute -attributor -argpromotion -loweratomic -instsimplify -loop-guard-widening -ee-instrument -lowerswitch -indvars -cross-dso-cfi -irce -break-crit-edges -loop-simplify -always-inline -constprop -dse -ipsccp -correlated-propagation -mergeicmps -loop-vectorize -mem2reg -ee-instrument -guard-widening -sink -instsimplify -loop-guard-widening -loop-predication -strip-nondebug -irce -simplifycfg -scalarizer -slp-vectorizer -forceattrs -float2int -newgvn input.bc -o output.bc -benchmark://cBench-v1/sha,1.4715719063545152,11.981029510498047,opt -mem2reg -div-rem-pairs -inject-tli-mappings -forceattrs -mergeicmps -dce -loop-unroll-and-jam -loop-fusion -loop-versioning -aggressive-instcombine -break-crit-edges -simplifycfg -irce -loop-sink -guard-widening -loop-sink -break-crit-edges -div-rem-pairs -separate-const-offset-from-gep -scalarizer -inferattrs -flattencfg -loweratomic -bdce -instcombine -post-inline-ee-instrument -lcssa -add-discriminators -flattencfg -instcombine -loop-reroll -inject-tli-mappings -elim-avail-extern -loop-versioning-licm -coro-elide -partial-inliner -loop-reroll -loop-data-prefetch -lower-matrix-intrinsics -correlated-propagation -consthoist -instnamer -partially-inline-libcalls -lower-matrix-intrinsics -lowerswitch -loop-versioning-licm -canonicalize-aliases -prune-eh -globalsplit -rewrite-statepoints-for-gc -ipsccp -jump-threading -coro-split -newgvn -memcpyopt -loop-versioning-licm -slp-vectorizer -reassociate -simplifycfg -newgvn -lcssa -simplifycfg -lower-matrix-intrinsics -dce -aggressive-instcombine -loop-distribute -loop-data-prefetch -infer-address-spaces -irce -instsimplify -lower-expect -correlated-propagation -sancov -alignment-from-assumptions -adce -tailcallelim -functionattrs -partial-inliner -bdce -strip-nondebug -ipconstprop -globalsplit -cross-dso-cfi -coro-early -instcombine -coro-early -bdce -loop-unroll-and-jam -sroa -aggressive-instcombine -loweratomic -indvars -loop-data-prefetch -cross-dso-cfi -coro-early -globalopt -canonicalize-aliases -break-crit-edges -insert-gcov-profiling -redundant-dbg-inst-elim -loop-deletion -reassociate -loop-distribute -simplifycfg -div-rem-pairs -loop-fusion -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/sha,1.474916387959866,11.905332565307617,opt -coro-cleanup -gvn -inferattrs -loop-versioning -name-anon-globals -simplifycfg -loop-interchange -div-rem-pairs -loop-deletion -mergefunc -ee-instrument -dce -flattencfg -mldst-motion -callsite-splitting -sccp -consthoist -functionattrs -attributor -aggressive-instcombine -loop-instsimplify -loop-deletion -mem2reg -mergefunc -flattencfg -rewrite-statepoints-for-gc -name-anon-globals -strip -bdce -prune-eh -lower-widenable-condition -loop-vectorize -sccp -instsimplify -mldst-motion -instnamer -div-rem-pairs -mldst-motion -canonicalize-aliases -newgvn -lower-constant-intrinsics -sink -indvars -alignment-from-assumptions -argpromotion -rewrite-statepoints-for-gc -early-cse-memssa -attributor -post-inline-ee-instrument -early-cse-memssa -loop-guard-widening -constmerge -lower-constant-intrinsics -prune-eh -strip -rpo-functionattrs -instcombine input.bc -o output.bc -benchmark://cBench-v1/sha,1.4749163879598663,11.936026334762573,opt -strip -always-inline -lower-expect -partially-inline-libcalls -gvn-hoist -loop-guard-widening -instnamer -reg2mem -slsr -loop-unroll -instnamer -slp-vectorizer -cross-dso-cfi -loop-distribute -called-value-propagation -ee-instrument -jump-threading -rewrite-statepoints-for-gc -loop-data-prefetch -globalsplit -partial-inliner -rpo-functionattrs -strip -strip-debug-declare -lower-guard-intrinsic -loop-distribute -ipconstprop -partially-inline-libcalls -irce -speculative-execution -flattencfg -redundant-dbg-inst-elim -loop-instsimplify -functionattrs -loop-reroll -hotcoldsplit -insert-gcov-profiling -loop-reroll -lower-expect -consthoist -lower-matrix-intrinsics -early-cse-memssa -prune-eh -loop-distribute -globalsplit -inject-tli-mappings -irce -mergefunc -hotcoldsplit -argpromotion -name-anon-globals -loop-simplifycfg -partially-inline-libcalls -slsr -barrier -flattencfg -post-inline-ee-instrument -sink -loop-vectorize -loop-vectorize -coro-cleanup -lowerinvoke -inject-tli-mappings -canonicalize-aliases -float2int -lowerswitch -indvars -lower-matrix-intrinsics -lowerinvoke -redundant-dbg-inst-elim -prune-eh -aggressive-instcombine -hotcoldsplit -strip-debug-declare -early-cse-memssa -licm -load-store-vectorizer -insert-gcov-profiling -sancov -pgo-memop-opt -sink -barrier -mem2reg -strip-debug-declare -cross-dso-cfi -callsite-splitting -gvn -simplifycfg -licm -memcpyopt -ipconstprop -lowerswitch -loop-guard-widening -functionattrs -loop-interchange -coro-elide -simple-loop-unswitch -separate-const-offset-from-gep -instcombine -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/sha,1.4782608695652173,11.766895771026611,opt -alignment-from-assumptions -sroa -indvars -adce -jump-threading -add-discriminators -ipconstprop -div-rem-pairs -bdce -instnamer -indvars -simplifycfg -mem2reg -lower-widenable-condition -loop-interchange -sancov -argpromotion -inject-tli-mappings -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.4782608695652173,12.040958642959595,opt -instcombine -loop-sink -functionattrs -strip -jump-threading -insert-gcov-profiling -lower-guard-intrinsic -simple-loop-unswitch -mldst-motion -loop-reduce -strip-dead-prototypes -slsr -partial-inliner -loop-data-prefetch -argpromotion -mldst-motion -always-inline -pgo-memop-opt -mergeicmps -mergeicmps -attributor -lower-expect -called-value-propagation -coro-cleanup -barrier -loop-unswitch -lowerinvoke -ipconstprop -inject-tli-mappings -lower-widenable-condition -loop-unroll -loop-predication -loop-simplify -mergefunc -loop-unroll -elim-avail-extern -rpo-functionattrs -licm -loop-distribute -simplifycfg -loop-load-elim -scalarizer -bdce -coro-cleanup -gvn -licm -strip-debug-declare -early-cse-memssa -loop-unroll-and-jam -add-discriminators -reg2mem -gvn -instsimplify -rewrite-statepoints-for-gc -strip -canonicalize-aliases -sccp -simplifycfg -simplifycfg -lower-widenable-condition -bdce -sroa -loop-distribute -loop-versioning -redundant-dbg-inst-elim -guard-widening -adce -constprop -insert-gcov-profiling -load-store-vectorizer -pgo-memop-opt -attributor -ee-instrument -loop-fusion -prune-eh -slsr -inferattrs -loop-deletion -loop-load-elim -loweratomic -strip-debug-declare -functionattrs -insert-gcov-profiling -libcalls-shrinkwrap -loop-unroll-and-jam -barrier -functionattrs -scalarizer -loop-instsimplify -loop-guard-widening -die -aggressive-instcombine -nary-reassociate -indvars -simple-loop-unswitch -scalarizer -strip -loop-guard-widening -scalarizer -load-store-vectorizer -lowerinvoke -lowerinvoke -coro-cleanup -instcombine input.bc -o output.bc -benchmark://cBench-v1/sha,1.4849498327759196,12.055265426635742,opt -simplifycfg -ipsccp -aggressive-instcombine -loweratomic -licm -loop-interchange -deadargelim -canonicalize-aliases -break-crit-edges -alignment-from-assumptions -loop-simplifycfg -barrier -strip-nondebug -gvn -flattencfg -coro-split -load-store-vectorizer -strip -ipsccp -instcombine -redundant-dbg-inst-elim -libcalls-shrinkwrap -correlated-propagation -forceattrs -partially-inline-libcalls -ipconstprop -constprop -mergereturn -newgvn -lower-guard-intrinsic -load-store-vectorizer -sroa -lowerswitch -strip-debug-declare -adce -separate-const-offset-from-gep -inject-tli-mappings -load-store-vectorizer -always-inline -libcalls-shrinkwrap -correlated-propagation -ipconstprop -loop-fusion -globalopt -slp-vectorizer -partially-inline-libcalls -forceattrs -newgvn -elim-avail-extern -early-cse-memssa -globaldce -inject-tli-mappings -aggressive-instcombine -separate-const-offset-from-gep -alignment-from-assumptions -name-anon-globals -attributor -globalopt -loop-reroll -lower-matrix-intrinsics -called-value-propagation -indvars -elim-avail-extern -loop-interchange -mem2reg -loop-load-elim -instcombine input.bc -o output.bc -benchmark://cBench-v1/sha,1.4949832775919731,11.823912382125854,opt -pgo-memop-opt -aggressive-instcombine -lower-widenable-condition -dce -strip-debug-declare -globaldce -partial-inliner -simplifycfg -div-rem-pairs -slsr -infer-address-spaces -separate-const-offset-from-gep -newgvn -loop-unroll-and-jam -inferattrs -barrier -coro-cleanup -loop-predication -instcombine -early-cse-memssa -reg2mem -lower-widenable-condition -infer-address-spaces -sancov -alignment-from-assumptions -early-cse-memssa -name-anon-globals -lower-widenable-condition -dce -tailcallelim -loop-data-prefetch -loop-instsimplify -loop-simplifycfg -instnamer -cross-dso-cfi -mem2reg -coro-elide -loop-distribute -called-value-propagation -always-inline -alignment-from-assumptions -strip-dead-prototypes -irce -lower-guard-intrinsic -load-store-vectorizer -insert-gcov-profiling -loop-instsimplify -die -loop-rotate -nary-reassociate -post-inline-ee-instrument -separate-const-offset-from-gep -div-rem-pairs -coro-split -loop-sink -redundant-dbg-inst-elim -partially-inline-libcalls -die -loop-unroll-and-jam -loweratomic -hotcoldsplit -coro-cleanup -libcalls-shrinkwrap -mergefunc -simple-loop-unswitch -ee-instrument -simplifycfg -coro-cleanup -lcssa -simple-loop-unswitch -deadargelim -instcombine -loweratomic -nary-reassociate -guard-widening -separate-const-offset-from-gep -constmerge -redundant-dbg-inst-elim -instsimplify -dse -functionattrs -newgvn -licm -flattencfg -callsite-splitting -loop-fusion -strip-dead-prototypes -instsimplify -callsite-splitting -simplifycfg -dse -lower-constant-intrinsics -gvn-hoist -mergereturn -memcpyopt -dce -loop-idiom -loop-instsimplify -rewrite-statepoints-for-gc -hotcoldsplit -speculative-execution -licm -speculative-execution -argpromotion -newgvn -adce -sancov -rpo-functionattrs -instnamer -redundant-dbg-inst-elim -coro-cleanup -name-anon-globals -sroa -always-inline -partially-inline-libcalls -guard-widening -loop-idiom -strip-dead-prototypes -constprop -mergereturn -loop-interchange -separate-const-offset-from-gep -barrier -alignment-from-assumptions -bdce -loop-unroll-and-jam -gvn-hoist -attributor -reassociate -loop-data-prefetch -simplifycfg -div-rem-pairs -mergeicmps -mem2reg -elim-avail-extern -simplifycfg -adce -loop-idiom -nary-reassociate -loop-data-prefetch -indvars -sccp -gvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.5050167224080264,11.817471742630005,opt -simplifycfg -partially-inline-libcalls -partial-inliner -loweratomic -lower-widenable-condition -separate-const-offset-from-gep -float2int -partial-inliner -lower-expect -sccp -hotcoldsplit -infer-address-spaces -loop-unswitch -gvn -barrier -separate-const-offset-from-gep -mergefunc -lower-constant-intrinsics -lower-matrix-intrinsics -indvars -functionattrs -called-value-propagation -mergeicmps -gvn-hoist -globalsplit -memcpyopt -loweratomic -partially-inline-libcalls -lowerinvoke -hotcoldsplit -die -loop-distribute -strip-dead-prototypes -coro-split -loop-distribute -loop-vectorize -loop-vectorize -die -coro-split -argpromotion -loop-deletion -early-cse-memssa -lower-guard-intrinsic -loop-simplify -lower-expect -loop-data-prefetch -attributor -ee-instrument -reassociate -coro-elide -correlated-propagation -div-rem-pairs -break-crit-edges -coro-cleanup -lower-widenable-condition -name-anon-globals -instcombine -reg2mem -jump-threading -callsite-splitting -loop-fusion -instnamer -early-cse-memssa -post-inline-ee-instrument -alignment-from-assumptions -speculative-execution -dce -bdce -libcalls-shrinkwrap -sroa -partial-inliner -reg2mem -mergefunc -sccp -break-crit-edges -loop-unroll-and-jam -lower-constant-intrinsics -flattencfg -pgo-memop-opt -tailcallelim -coro-split -indvars -sroa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.5050167224080266,11.961605548858643,opt -coro-elide -barrier -ipconstprop -loop-data-prefetch -rpo-functionattrs -loop-reduce -rpo-functionattrs -speculative-execution -constmerge -strip-debug-declare -break-crit-edges -reg2mem -mldst-motion -lower-guard-intrinsic -argpromotion -always-inline -loop-distribute -sancov -always-inline -mergeicmps -globalsplit -strip-debug-declare -div-rem-pairs -add-discriminators -irce -loop-distribute -cross-dso-cfi -functionattrs -load-store-vectorizer -aggressive-instcombine -simplifycfg -elim-avail-extern -separate-const-offset-from-gep -loop-guard-widening -tailcallelim -newgvn -always-inline -mergefunc -coro-early -loweratomic -loop-predication -strip-debug-declare -lowerswitch -consthoist -gvn -jump-threading -break-crit-edges -sccp -loop-fusion -deadargelim -tailcallelim -rewrite-statepoints-for-gc -lcssa -sancov -inject-tli-mappings -early-cse-memssa -instcombine -ee-instrument -mergefunc -loop-distribute -sancov -loop-guard-widening -barrier -div-rem-pairs -consthoist -aggressive-instcombine -deadargelim -loop-simplify -called-value-propagation -always-inline -inject-tli-mappings -simplifycfg -strip -insert-gcov-profiling -redundant-dbg-inst-elim -constprop -canonicalize-aliases -memcpyopt -tailcallelim -jump-threading -coro-elide -name-anon-globals -dse -loop-versioning -insert-gcov-profiling -loop-unroll-and-jam -slp-vectorizer -indvars -inferattrs -argpromotion -sccp -lower-expect -loop-idiom -dce -flattencfg -coro-split -scalarizer -functionattrs -callsite-splitting -canonicalize-aliases -barrier -elim-avail-extern -tailcallelim -loop-guard-widening -loop-fusion -lcssa -lowerswitch -instcombine -simplifycfg -slsr -ipconstprop -correlated-propagation -indvars -flattencfg -name-anon-globals -lowerinvoke -canonicalize-aliases -consthoist -attributor -coro-elide -scalarizer -ipsccp -partially-inline-libcalls -instsimplify -coro-elide -rewrite-statepoints-for-gc -strip-dead-prototypes -scalarizer -canonicalize-aliases -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9767759562841531,12.063631057739258,opt -globalopt -loop-deletion -float2int -reassociate -lower-matrix-intrinsics -loop-guard-widening -strip -ee-instrument -deadargelim -lower-widenable-condition -post-inline-ee-instrument -coro-cleanup -elim-avail-extern -die -mem2reg -early-cse-memssa -guard-widening -loop-vectorize -constmerge -rewrite-statepoints-for-gc -rewrite-statepoints-for-gc -dse -loop-unroll -instcombine -loop-distribute -prune-eh -functionattrs -globalopt -flattencfg -ee-instrument -partially-inline-libcalls -adce -argpromotion -consthoist -consthoist -instcombine -called-value-propagation -simplifycfg -gvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9795081967213116,11.88592791557312,opt -loop-rotate -loop-reroll -loop-unroll-and-jam -consthoist -loop-rotate -adce -loop-sink -ipsccp -loop-instsimplify -mem2reg -mergeicmps -reassociate -loop-load-elim -mergereturn -sroa -loop-simplifycfg -loop-data-prefetch -mergefunc -flattencfg -newgvn -loop-idiom -loop-vectorize -coro-split -deadargelim -globalsplit -die -loop-fusion -loop-instsimplify -dce -loop-predication -mergeicmps -sink -simple-loop-unswitch -globalsplit -guard-widening -mem2reg -jump-threading -loop-simplifycfg -lower-expect -post-inline-ee-instrument -lower-constant-intrinsics -always-inline -constprop -inject-tli-mappings -gvn-hoist -mergefunc -strip -lower-widenable-condition -simplifycfg -barrier -adce -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9808743169398909,12.13899278640747,opt -newgvn -slsr -lowerinvoke -lowerinvoke -loop-distribute -lower-guard-intrinsic -globaldce -memcpyopt -sancov -callsite-splitting -callsite-splitting -inject-tli-mappings -licm -early-cse-memssa -loop-simplify -loop-deletion -lowerinvoke -ipsccp -speculative-execution -scalarizer -loop-guard-widening -jump-threading -attributor -flattencfg -licm -insert-gcov-profiling -slsr -jump-threading -mergereturn -alignment-from-assumptions -reassociate -indvars -loop-simplifycfg -constprop -sancov -loop-unroll -loop-reroll -jump-threading -guard-widening -simplifycfg -partially-inline-libcalls -constprop -hotcoldsplit -loop-instsimplify -partially-inline-libcalls -pgo-memop-opt -name-anon-globals -coro-early -mergeicmps -indvars -sccp -simplifycfg -reassociate -bdce -loop-vectorize -jump-threading -lowerswitch -correlated-propagation -ipsccp -loop-unroll-and-jam -loop-unroll -strip -inline -inject-tli-mappings -gvn-hoist -loop-data-prefetch -alignment-from-assumptions -sccp -bdce -loop-interchange -functionattrs -infer-address-spaces -forceattrs -strip-debug-declare -lcssa -break-crit-edges -lower-guard-intrinsic -slsr -strip-dead-prototypes -loop-distribute -lower-guard-intrinsic -break-crit-edges -partially-inline-libcalls -nary-reassociate -reassociate -dce -loop-unroll-and-jam -argpromotion -lower-expect -loop-data-prefetch -lower-expect -always-inline -loop-simplify -add-discriminators -irce -slp-vectorizer -name-anon-globals -ee-instrument -newgvn -gvn-hoist -inject-tli-mappings -lower-guard-intrinsic -licm -simplifycfg -loop-instsimplify -partial-inliner -lower-widenable-condition -flattencfg -rewrite-statepoints-for-gc -loop-instsimplify -lowerswitch -gvn -lowerinvoke -loop-instsimplify -lowerswitch -guard-widening -lower-widenable-condition -mergeicmps -lower-guard-intrinsic -lower-matrix-intrinsics -correlated-propagation -globalsplit -loop-interchange -infer-address-spaces -loop-versioning -deadargelim -lower-guard-intrinsic -mem2reg -post-inline-ee-instrument -instcombine -globalsplit -simple-loop-unswitch -loop-vectorize -attributor -lowerinvoke -loop-deletion -rpo-functionattrs -loop-load-elim -adce -attributor -coro-cleanup -argpromotion -newgvn -barrier -loop-reroll -mergeicmps -bdce -strip-debug-declare -adce -separate-const-offset-from-gep -lower-matrix-intrinsics -bdce -loop-deletion -loop-unswitch -sink -coro-elide -instcombine -loop-data-prefetch -loop-versioning -die -slsr -jump-threading -adce -die -lower-expect -rewrite-statepoints-for-gc -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9836065573770493,12.070388317108154,opt -consthoist -lower-constant-intrinsics -always-inline -globaldce -memcpyopt -loop-instsimplify -guard-widening -globalsplit -consthoist -loop-data-prefetch -canonicalize-aliases -simple-loop-unswitch -slp-vectorizer -lowerinvoke -flattencfg -simplifycfg -infer-address-spaces -gvn -float2int -mergeicmps -partially-inline-libcalls -add-discriminators -coro-split -correlated-propagation -lower-matrix-intrinsics -loop-vectorize -strip-nondebug -rewrite-statepoints-for-gc -partial-inliner -loop-guard-widening -coro-elide -coro-split -strip -rewrite-statepoints-for-gc -loop-fusion -float2int -attributor -elim-avail-extern -functionattrs -correlated-propagation -mergeicmps -loop-data-prefetch -flattencfg -hotcoldsplit -loop-idiom -consthoist -loweratomic -loop-idiom -reg2mem -mem2reg -mergeicmps -add-discriminators -loop-guard-widening -ee-instrument -scalarizer -memcpyopt -speculative-execution -aggressive-instcombine -post-inline-ee-instrument -tailcallelim -sancov -redundant-dbg-inst-elim -loop-predication -loop-predication -called-value-propagation -name-anon-globals -consthoist -separate-const-offset-from-gep -lowerswitch -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -loop-guard-widening -argpromotion -hotcoldsplit -libcalls-shrinkwrap -mergefunc -dse -dse -sccp -loop-guard-widening -pgo-memop-opt -lowerswitch -simple-loop-unswitch -nary-reassociate -indvars -slsr -slsr -memcpyopt -functionattrs -loop-unswitch -prune-eh -mergereturn -mergereturn -globalsplit -loop-idiom -mergefunc -redundant-dbg-inst-elim -mergeicmps -forceattrs -globalopt -dse -licm -mergereturn -dse -constprop -cross-dso-cfi -rewrite-statepoints-for-gc -adce -simplifycfg -rpo-functionattrs -sroa -ipconstprop -strip -load-store-vectorizer -insert-gcov-profiling -instcombine -jump-threading -canonicalize-aliases -mem2reg -tailcallelim -globalopt -loop-simplify -loop-instsimplify -correlated-propagation -loop-unroll-and-jam -gvn -loop-sink -sancov -memcpyopt -loop-vectorize -strip-nondebug -adce -ipconstprop -loop-versioning-licm -loop-simplifycfg -loop-versioning-licm -simplifycfg -irce -strip -loop-data-prefetch -strip-dead-prototypes -loop-versioning-licm -mergeicmps -lcssa -lowerswitch -div-rem-pairs -gvn -loop-sink -globalsplit -aggressive-instcombine -loop-distribute -insert-gcov-profiling -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9904371584699454,14.024319648742676,opt -dse -instsimplify -strip-nondebug -lcssa -instsimplify -instnamer -strip-dead-prototypes -loop-deletion -loop-instsimplify -deadargelim -dce -instsimplify -strip -instnamer -sink -lower-constant-intrinsics -loop-data-prefetch -simplifycfg -correlated-propagation -ipsccp -speculative-execution -alignment-from-assumptions -float2int -loop-unroll -partially-inline-libcalls -functionattrs -redundant-dbg-inst-elim -loop-unroll-and-jam -reassociate -loop-simplifycfg -mldst-motion -loop-predication -mldst-motion -called-value-propagation -div-rem-pairs -elim-avail-extern -lower-matrix-intrinsics -flattencfg -barrier -float2int -functionattrs -elim-avail-extern -loop-instsimplify -inject-tli-mappings -loop-instsimplify -loop-reroll -consthoist -lcssa -globalopt -strip -nary-reassociate -loop-vectorize -newgvn -rpo-functionattrs -loop-load-elim -loop-deletion -infer-address-spaces -guard-widening -strip-dead-prototypes -separate-const-offset-from-gep -sancov -forceattrs -partial-inliner -gvn -sroa -load-store-vectorizer -loop-data-prefetch -globaldce -speculative-execution -lcssa -strip -lower-matrix-intrinsics -speculative-execution -loop-instsimplify -nary-reassociate -loop-instsimplify -div-rem-pairs -speculative-execution -slp-vectorizer -slp-vectorizer -coro-cleanup -mergefunc -cross-dso-cfi -guard-widening -slp-vectorizer -rewrite-statepoints-for-gc -ee-instrument -correlated-propagation -loop-data-prefetch -loop-instsimplify -strip-dead-prototypes -mergefunc -slp-vectorizer -loop-vectorize -forceattrs -consthoist -insert-gcov-profiling -barrier -name-anon-globals -licm -strip-dead-prototypes -irce -infer-address-spaces -die -mem2reg -post-inline-ee-instrument -rewrite-statepoints-for-gc -div-rem-pairs -globalsplit -aggressive-instcombine -loop-unroll-and-jam -loop-versioning -loop-instsimplify -mem2reg -bdce -loop-interchange -bdce -lower-widenable-condition -ipsccp -add-discriminators -sccp -attributor -reassociate -constmerge -scalarizer -strip-debug-declare -strip-dead-prototypes -infer-address-spaces -rpo-functionattrs -deadargelim -mergereturn -inferattrs -inferattrs -separate-const-offset-from-gep -loop-fusion -scalarizer -loop-deletion -inferattrs -lower-expect -partial-inliner -simplifycfg -mergereturn -lcssa -sccp -separate-const-offset-from-gep -irce -insert-gcov-profiling -globaldce -barrier -ee-instrument -always-inline -flattencfg -tailcallelim -alignment-from-assumptions -name-anon-globals -loop-simplifycfg -coro-early -ipsccp -early-cse-memssa -simplifycfg -deadargelim -loop-sink -globaldce -flattencfg -coro-elide -licm -instcombine -name-anon-globals -mldst-motion -infer-address-spaces -loweratomic -pgo-memop-opt -globaldce -always-inline -sccp -indvars -strip-nondebug -loop-unroll-and-jam -correlated-propagation -post-inline-ee-instrument -sancov -loop-reduce -memcpyopt -loop-simplify -instnamer -separate-const-offset-from-gep -separate-const-offset-from-gep -strip -coro-early -mem2reg -lower-guard-intrinsic -jump-threading -strip-debug-declare -simplifycfg -nary-reassociate -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9918032786885245,11.971539974212646,opt -loop-reduce -simplifycfg -die -inferattrs -constmerge -tailcallelim -loop-guard-widening -memcpyopt -partially-inline-libcalls -adce -float2int -sancov -newgvn -prune-eh -sink -alignment-from-assumptions -constmerge -sroa -die -instcombine -attributor -globaldce -coro-early -loop-versioning -mldst-motion -strip-debug-declare -attributor -loop-unroll-and-jam -dce -lower-constant-intrinsics -break-crit-edges -mldst-motion -rewrite-statepoints-for-gc -load-store-vectorizer -argpromotion -separate-const-offset-from-gep -break-crit-edges -slsr -functionattrs -lowerswitch -canonicalize-aliases -loop-data-prefetch -loop-unroll -loop-unswitch -mem2reg -loop-unswitch -deadargelim -dse -loweratomic -newgvn -globalsplit -loop-reroll -adce -functionattrs -flattencfg -sink -dse -loop-fusion -inject-tli-mappings -simplifycfg -early-cse-memssa -functionattrs -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9918032786885245,12.370582818984985,opt -coro-cleanup -flattencfg -indvars -strip-nondebug -rewrite-statepoints-for-gc -globalsplit -libcalls-shrinkwrap -lowerswitch -coro-elide -deadargelim -simplifycfg -partial-inliner -loop-reduce -elim-avail-extern -reg2mem -lcssa -globalsplit -loop-data-prefetch -libcalls-shrinkwrap -scalarizer -lcssa -ipconstprop -attributor -die -dse -insert-gcov-profiling -partial-inliner -mem2reg -lowerinvoke -loop-simplify -loop-sink -die -mergeicmps -memcpyopt -aggressive-instcombine -callsite-splitting -globalopt -lower-guard-intrinsic -hotcoldsplit -globalopt -lcssa -float2int -lowerinvoke -speculative-execution -loop-reroll -jump-threading -loop-simplify -coro-elide -strip -lower-guard-intrinsic -tailcallelim -speculative-execution -alignment-from-assumptions -elim-avail-extern -loop-idiom -loop-simplify -loop-simplify -partial-inliner -attributor -globalsplit -early-cse-memssa -loop-vectorize -lower-constant-intrinsics -constmerge -loop-interchange -flattencfg -globalopt -libcalls-shrinkwrap -lower-constant-intrinsics -infer-address-spaces -lowerswitch -mergeicmps -reassociate -break-crit-edges -loop-vectorize -lower-constant-intrinsics -strip-nondebug -pgo-memop-opt -loop-simplify -loop-reroll -insert-gcov-profiling -guard-widening -memcpyopt -loop-unroll -deadargelim -loop-simplifycfg -inject-tli-mappings -instnamer -loop-reroll -loop-deletion -early-cse-memssa -reg2mem -slp-vectorizer -div-rem-pairs -constprop -called-value-propagation -gvn -aggressive-instcombine -flattencfg -pgo-memop-opt -gvn-hoist -globalsplit -elim-avail-extern -reassociate -licm -coro-elide -irce -prune-eh -loop-unroll-and-jam -partially-inline-libcalls -globaldce -loop-distribute -break-crit-edges -loop-reroll -sancov -float2int -loweratomic -insert-gcov-profiling -redundant-dbg-inst-elim -deadargelim -speculative-execution -loop-unroll-and-jam -infer-address-spaces -mem2reg -name-anon-globals -pgo-memop-opt -correlated-propagation -rpo-functionattrs -infer-address-spaces -speculative-execution -aggressive-instcombine -post-inline-ee-instrument -lcssa -elim-avail-extern -loop-unroll -dse -break-crit-edges -mem2reg -dse -partial-inliner -licm -slsr -memcpyopt -indvars -loop-load-elim -div-rem-pairs -lower-guard-intrinsic -flattencfg -loop-vectorize -insert-gcov-profiling -reg2mem -loop-deletion -die -rewrite-statepoints-for-gc -div-rem-pairs -prune-eh -coro-early -loop-distribute -scalarizer -mldst-motion -loop-simplifycfg -loop-instsimplify -lower-widenable-condition -slp-vectorizer -ee-instrument -cross-dso-cfi -sink -constprop -tailcallelim -simple-loop-unswitch -lower-widenable-condition -float2int -mergereturn -mem2reg -lower-matrix-intrinsics -loop-reroll -constmerge -loop-versioning-licm -scalarizer -loop-reroll -memcpyopt -gvn -forceattrs -cross-dso-cfi -alignment-from-assumptions -break-crit-edges -bdce -sink -loop-predication -infer-address-spaces -loop-simplify -adce -loop-reroll -adce -mldst-motion -jump-threading -sancov -argpromotion -correlated-propagation -argpromotion -ee-instrument -barrier -dse -consthoist -loop-guard-widening -die -loop-load-elim -loop-unswitch -loop-guard-widening -coro-split -strip -barrier -loop-deletion -loop-predication -instcombine -called-value-propagation -tailcallelim -always-inline -consthoist -loop-fusion -slp-vectorizer -loop-sink -loop-versioning-licm -post-inline-ee-instrument -lowerinvoke -loop-versioning -load-store-vectorizer -loop-simplifycfg -barrier -functionattrs -loop-unroll-and-jam -slp-vectorizer -gvn -globalopt input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9931693989071037,12.058562278747559,opt -correlated-propagation -coro-early -ee-instrument -loweratomic -strip-debug-declare -post-inline-ee-instrument -cross-dso-cfi -partially-inline-libcalls -gvn-hoist -globaldce -sccp -coro-cleanup -consthoist -constprop -barrier -loop-distribute -rpo-functionattrs -partially-inline-libcalls -simple-loop-unswitch -partial-inliner -globalsplit -loop-reduce -coro-split -ipsccp -loop-sink -irce -indvars -mldst-motion -coro-elide -hotcoldsplit -ipsccp -lower-matrix-intrinsics -ipsccp -sroa -reg2mem -newgvn -constprop -sancov -reassociate -globalopt -slp-vectorizer -loop-reduce -tailcallelim -loop-instsimplify -sink -globaldce -functionattrs -cross-dso-cfi -loop-vectorize -loop-vectorize -loop-vectorize -loop-interchange -loop-instsimplify -strip-nondebug -partially-inline-libcalls -alignment-from-assumptions -lower-guard-intrinsic -globaldce -lower-constant-intrinsics -coro-early -sroa -lowerswitch -loop-distribute -lowerswitch -strip-nondebug -globalopt -pgo-memop-opt -globaldce -load-store-vectorizer -div-rem-pairs -called-value-propagation -lower-matrix-intrinsics -loop-predication -strip-debug-declare -dse -partially-inline-libcalls -simplifycfg -instnamer -canonicalize-aliases -partially-inline-libcalls -loop-deletion -always-inline -loop-simplify -gvn -div-rem-pairs -adce -dce -strip-nondebug -slp-vectorizer -strip-nondebug -loop-sink -loweratomic -hotcoldsplit -functionattrs -loop-versioning-licm -ee-instrument -loop-data-prefetch -strip-debug-declare -tailcallelim -redundant-dbg-inst-elim -gvn-hoist -newgvn -dse -loop-versioning -memcpyopt -mldst-motion -hotcoldsplit -always-inline -newgvn -loop-data-prefetch -loop-data-prefetch -tailcallelim -loop-fusion -gvn -inferattrs -load-store-vectorizer -dce -lowerinvoke -elim-avail-extern -guard-widening -loop-reduce -simple-loop-unswitch -cross-dso-cfi -coro-split -always-inline -globaldce -loop-unroll-and-jam -called-value-propagation -lcssa -instcombine -sccp -mergefunc -rewrite-statepoints-for-gc -instcombine -globalsplit -jump-threading -guard-widening -insert-gcov-profiling -callsite-splitting -barrier -rpo-functionattrs -argpromotion -inferattrs -guard-widening -coro-cleanup -strip -slsr -loop-versioning-licm -loop-instsimplify -simplifycfg -dse -sccp -coro-elide -early-cse-memssa -lower-guard-intrinsic -loop-vectorize -instcombine -slp-vectorizer -instsimplify -mldst-motion -libcalls-shrinkwrap -barrier -insert-gcov-profiling -early-cse-memssa -loop-versioning-licm -redundant-dbg-inst-elim -lower-constant-intrinsics -loop-instsimplify -rpo-functionattrs -lower-widenable-condition -lower-expect -libcalls-shrinkwrap -sroa -rpo-functionattrs -lower-widenable-condition -cross-dso-cfi -correlated-propagation -strip-nondebug -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0013661202185793,12.024682760238647,opt -newgvn -loop-versioning-licm -loop-instsimplify -coro-early -instcombine -strip-nondebug -name-anon-globals -loop-vectorize -loop-deletion -lowerswitch -instcombine -forceattrs -load-store-vectorizer -lowerswitch -separate-const-offset-from-gep -aggressive-instcombine -globalsplit -globalopt -loop-simplifycfg -sccp -loop-versioning -mergereturn -break-crit-edges -ipsccp -sink -loop-versioning -separate-const-offset-from-gep -loop-unroll -inferattrs -elim-avail-extern -break-crit-edges -loop-instsimplify -strip-dead-prototypes -slsr -mem2reg -loop-data-prefetch -jump-threading -instcombine -coro-early -loop-simplify -simplifycfg -dce -lower-constant-intrinsics input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0040983606557372,11.870396137237549,opt -instnamer -barrier -simple-loop-unswitch -lower-matrix-intrinsics -licm -loop-idiom -scalarizer -post-inline-ee-instrument -loop-unswitch -name-anon-globals -ipconstprop -cross-dso-cfi -ipconstprop -lower-widenable-condition -cross-dso-cfi -slp-vectorizer -constprop -cross-dso-cfi -early-cse-memssa -deadargelim -insert-gcov-profiling -lcssa -dse -lowerswitch -rpo-functionattrs -separate-const-offset-from-gep -simplifycfg -sink -loop-fusion -mem2reg -callsite-splitting -libcalls-shrinkwrap -reassociate -gvn -deadargelim -flattencfg -strip-dead-prototypes -rpo-functionattrs -consthoist -pgo-memop-opt -libcalls-shrinkwrap -lower-expect -lower-constant-intrinsics -loop-idiom -memcpyopt -lower-constant-intrinsics -flattencfg -mldst-motion -cross-dso-cfi -load-store-vectorizer -functionattrs -gvn -mergeicmps -strip-dead-prototypes -instcombine -cross-dso-cfi -die -loop-load-elim -lowerswitch -dse -loop-simplify -lowerinvoke -loop-simplifycfg -loop-reroll -loop-fusion -always-inline -lcssa -rpo-functionattrs -rewrite-statepoints-for-gc -partial-inliner -aggressive-instcombine -licm -bdce -scalarizer -load-store-vectorizer -memcpyopt -reg2mem -load-store-vectorizer -lower-matrix-intrinsics -mem2reg -libcalls-shrinkwrap -scalarizer -rewrite-statepoints-for-gc -speculative-execution -sccp -jump-threading -speculative-execution -speculative-execution -inject-tli-mappings -mergefunc -irce -ee-instrument -constprop -rpo-functionattrs -elim-avail-extern -coro-cleanup -strip -deadargelim -loop-vectorize -lower-expect -jump-threading -instcombine -lower-constant-intrinsics -loop-versioning-licm -alignment-from-assumptions -loop-fusion -globaldce -loop-vectorize -dce -name-anon-globals -deadargelim -die -loop-guard-widening -argpromotion -bdce -loop-deletion -loop-versioning -slp-vectorizer -loop-simplifycfg -strip-debug-declare -loop-simplify -loop-unroll-and-jam -inferattrs -speculative-execution -gvn -load-store-vectorizer -alignment-from-assumptions -gvn-hoist -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9664179104477612,11.904651880264282,opt -guard-widening -ee-instrument -correlated-propagation -lcssa -ee-instrument -loop-idiom -jump-threading -guard-widening -elim-avail-extern -reassociate -slp-vectorizer -newgvn -mem2reg -loop-idiom -loop-fusion -alignment-from-assumptions -libcalls-shrinkwrap -strip -redundant-dbg-inst-elim -loop-distribute -simplifycfg -ipsccp -pgo-memop-opt -infer-address-spaces -post-inline-ee-instrument -redundant-dbg-inst-elim -bdce -lower-widenable-condition -functionattrs -float2int -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9738805970149257,12.163768291473389,opt -bdce -coro-split -lower-widenable-condition -canonicalize-aliases -partially-inline-libcalls -loop-simplify -newgvn -lowerswitch -mergefunc -sink -dse -insert-gcov-profiling -dse -strip-dead-prototypes -loop-versioning -instsimplify -constprop -partial-inliner -prune-eh -strip -rpo-functionattrs -loop-simplifycfg -mem2reg -alignment-from-assumptions -slp-vectorizer -lower-guard-intrinsic -strip-debug-declare -lower-guard-intrinsic -loop-vectorize -mergefunc -gvn-hoist -strip-dead-prototypes -loop-guard-widening -lcssa -loop-idiom -loop-fusion -rpo-functionattrs -instsimplify -coro-split -forceattrs -callsite-splitting -coro-elide -callsite-splitting -cross-dso-cfi -early-cse-memssa -called-value-propagation -partial-inliner -canonicalize-aliases -jump-threading -mergefunc -div-rem-pairs -infer-address-spaces -lowerinvoke -forceattrs -newgvn -loop-reduce -inferattrs -loop-simplify -consthoist -float2int -redundant-dbg-inst-elim -licm -elim-avail-extern -newgvn -sancov -add-discriminators -name-anon-globals -loop-reroll -scalarizer -barrier -instcombine -strip-dead-prototypes -reassociate -dse -loop-reduce -instsimplify -forceattrs -coro-split -lower-constant-intrinsics -speculative-execution -ipconstprop -constprop -loop-reduce -aggressive-instcombine -functionattrs -loop-vectorize -jump-threading -sccp -tailcallelim -irce -add-discriminators -strip -slp-vectorizer -jump-threading -ee-instrument -indvars -reg2mem -strip -argpromotion -irce -rpo-functionattrs -callsite-splitting -loop-sink -post-inline-ee-instrument -globalsplit -memcpyopt -separate-const-offset-from-gep -loop-simplifycfg -nary-reassociate -loop-reduce -gvn-hoist -inferattrs -coro-cleanup -reg2mem -bdce -sink -float2int -sroa -constmerge -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9776119402985074,14.341261625289917,opt -loop-interchange -loop-deletion -loop-distribute -loop-versioning -insert-gcov-profiling -float2int -newgvn -loop-simplify -functionattrs -loop-idiom -slsr -functionattrs -sink -elim-avail-extern -mergefunc -loop-distribute -lcssa -lcssa -float2int -loop-sink -sink -die -canonicalize-aliases -infer-address-spaces -name-anon-globals -lower-matrix-intrinsics -mergereturn -simple-loop-unswitch -licm -loop-simplifycfg -globaldce -constmerge -lower-guard-intrinsic -simple-loop-unswitch -loop-fusion -lcssa -loop-unroll-and-jam -tailcallelim -break-crit-edges -strip-debug-declare -forceattrs -inferattrs -constmerge -sink -loop-unswitch -early-cse-memssa -rewrite-statepoints-for-gc -coro-split -irce -sroa -globalopt -mergefunc -strip-debug-declare -called-value-propagation -called-value-propagation -redundant-dbg-inst-elim -ipsccp -break-crit-edges -ee-instrument -always-inline -redundant-dbg-inst-elim -gvn-hoist -die -attributor -lower-guard-intrinsic -loop-guard-widening -simplifycfg -pgo-memop-opt -indvars -float2int -ipsccp -simplifycfg -hotcoldsplit -sink -loop-simplify -partially-inline-libcalls -pgo-memop-opt -gvn -ee-instrument -sink -slp-vectorizer -constprop -coro-elide -loop-interchange -mergeicmps -loweratomic -inject-tli-mappings -loop-idiom -aggressive-instcombine -mldst-motion -functionattrs -sccp -always-inline -newgvn -loop-distribute -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820894,13.230485677719116,opt -called-value-propagation -licm -strip-nondebug -alignment-from-assumptions -jump-threading -libcalls-shrinkwrap -loop-vectorize -alignment-from-assumptions -lower-widenable-condition -correlated-propagation -scalarizer -coro-early -sancov -lowerinvoke -ee-instrument -coro-split -dse -pgo-memop-opt -constmerge -lower-constant-intrinsics -libcalls-shrinkwrap -coro-elide -lower-guard-intrinsic -float2int -loop-reroll -elim-avail-extern -partial-inliner -instnamer -coro-cleanup -loop-versioning -alignment-from-assumptions -globaldce -ipsccp -ipconstprop -loop-reroll -sink -mem2reg -lowerswitch -mergereturn -instnamer -mem2reg -die -lowerinvoke -tailcallelim -strip-debug-declare -sink -gvn-hoist -coro-split -die -float2int -dse -loop-versioning -float2int -strip-nondebug -functionattrs -coro-split -die -lcssa -loop-interchange -float2int -loop-vectorize -mergeicmps -instcombine -gvn-hoist -early-cse-memssa -separate-const-offset-from-gep -partially-inline-libcalls -load-store-vectorizer -loop-instsimplify -loop-deletion -gvn -tailcallelim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820896,12.88115906715393,opt -break-crit-edges -mldst-motion -ipsccp -loop-predication -loop-load-elim -sroa -redundant-dbg-inst-elim -loop-load-elim -globaldce -nary-reassociate -instsimplify -sroa -irce -instnamer -barrier -consthoist -adce -forceattrs -newgvn -instcombine -loop-unswitch -lower-expect -called-value-propagation -constmerge -strip-debug-declare -simplifycfg -elim-avail-extern -gvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9813432835820897,15.134238719940186,opt -loop-fusion -ipconstprop -prune-eh -early-cse-memssa -inferattrs -newgvn -sink -load-store-vectorizer -coro-early -instnamer -reassociate -coro-cleanup -coro-cleanup -barrier -coro-split -argpromotion -guard-widening -insert-gcov-profiling -loop-idiom -sccp -loop-guard-widening -lower-matrix-intrinsics -globalopt -tailcallelim -name-anon-globals -consthoist -name-anon-globals -dse -loop-data-prefetch -libcalls-shrinkwrap -loop-unroll-and-jam -jump-threading -barrier -instnamer -tailcallelim -mergeicmps -inject-tli-mappings -elim-avail-extern -always-inline -loop-unswitch -partial-inliner -always-inline -licm -lowerswitch -rewrite-statepoints-for-gc -loop-versioning -barrier -mem2reg -loop-reroll -lowerswitch -loop-data-prefetch -coro-elide -lowerswitch -simplifycfg -load-store-vectorizer -constprop -strip -strip -die -slsr -elim-avail-extern -lowerinvoke -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9850746268656717,12.014153242111206,opt -pgo-memop-opt -early-cse-memssa -loop-unroll-and-jam -irce -loop-instsimplify -loop-guard-widening -rewrite-statepoints-for-gc -lower-guard-intrinsic -float2int -nary-reassociate -consthoist -hotcoldsplit -loop-distribute -bdce -nary-reassociate -libcalls-shrinkwrap -load-store-vectorizer -elim-avail-extern -slsr -simple-loop-unswitch -sroa -lcssa -early-cse-memssa -lower-constant-intrinsics -nary-reassociate -lcssa -loop-distribute -instnamer -cross-dso-cfi -coro-split -canonicalize-aliases -loop-unswitch -partially-inline-libcalls -name-anon-globals -constprop -coro-split -strip -separate-const-offset-from-gep -loop-load-elim -sancov -mldst-motion -ipconstprop -always-inline -load-store-vectorizer -loop-unroll-and-jam -slp-vectorizer -elim-avail-extern -adce -newgvn -mem2reg -loop-predication -indvars -rewrite-statepoints-for-gc -lowerinvoke -reg2mem -instsimplify -partially-inline-libcalls -loop-deletion -add-discriminators -loop-simplify -forceattrs -sroa -globalsplit -loweratomic -gvn -bdce -rewrite-statepoints-for-gc -reg2mem -mldst-motion -coro-split -mergefunc -sroa -post-inline-ee-instrument -float2int -loop-deletion -loop-unroll-and-jam -name-anon-globals -canonicalize-aliases -aggressive-instcombine -alignment-from-assumptions -early-cse-memssa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9850746268656717,12.287578821182251,opt -inject-tli-mappings -strip-nondebug -die -constprop -loop-fusion -sancov -sroa -lcssa -instcombine -globaldce -inferattrs -load-store-vectorizer -aggressive-instcombine -partial-inliner -barrier -strip-nondebug -loop-idiom -mergeicmps -cross-dso-cfi -sancov -elim-avail-extern -sroa -simplifycfg -loop-sink -loop-instsimplify -mldst-motion -dse -newgvn -ipconstprop -instsimplify -dce -break-crit-edges -add-discriminators -dse -globalsplit -mem2reg -tailcallelim -loop-interchange -speculative-execution -simplifycfg -lower-expect -reassociate -speculative-execution -loop-unroll-and-jam -jump-threading -inject-tli-mappings -sink -loop-simplify -insert-gcov-profiling -loop-load-elim -cross-dso-cfi -loop-distribute -simplifycfg -die -mem2reg -callsite-splitting -lower-constant-intrinsics -constprop -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9888059701492538,12.100034475326538,opt -inferattrs -mergeicmps -loop-sink -mem2reg -attributor -insert-gcov-profiling -add-discriminators -sink -loop-data-prefetch -loop-instsimplify -loop-fusion -div-rem-pairs -deadargelim -coro-early -speculative-execution -argpromotion -coro-cleanup -load-store-vectorizer -inferattrs -loop-simplifycfg -early-cse-memssa -indvars -mem2reg -constprop -adce -ipconstprop -strip-nondebug -die -insert-gcov-profiling -constprop -gvn -loop-sink -instsimplify -guard-widening -loop-unroll -prune-eh -constmerge -lower-widenable-condition -redundant-dbg-inst-elim -lowerinvoke -flattencfg -loop-simplify -mergereturn -tailcallelim -loop-unroll -prune-eh -sccp -separate-const-offset-from-gep -loop-versioning -lower-guard-intrinsic -early-cse-memssa -mergefunc -elim-avail-extern -correlated-propagation -ipconstprop -partially-inline-libcalls -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9888059701492539,12.108437776565552,opt -sancov -strip-nondebug -globaldce -add-discriminators -loop-reduce -strip-nondebug -rpo-functionattrs -partially-inline-libcalls -newgvn -sancov -cross-dso-cfi -simplifycfg -jump-threading -loop-instsimplify -aggressive-instcombine -reassociate -lowerswitch -instcombine -lcssa -loop-simplify -simple-loop-unswitch -memcpyopt -nary-reassociate -die -coro-split -loop-vectorize -indvars -lower-widenable-condition -globalsplit -partially-inline-libcalls -die -always-inline -sccp -dce -loop-unroll-and-jam -lower-expect -dse -lower-widenable-condition -early-cse-memssa -loop-instsimplify -always-inline -canonicalize-aliases -die -gvn-hoist -slp-vectorizer -memcpyopt -jump-threading -loop-instsimplify -globaldce -loop-fusion -loop-unroll -flattencfg -coro-elide -constprop -speculative-execution -loop-fusion -lower-widenable-condition -coro-split -lower-guard-intrinsic -rewrite-statepoints-for-gc -barrier -reassociate -loop-interchange -globaldce -coro-elide -float2int -sancov -lower-constant-intrinsics -mem2reg -lower-widenable-condition -instcombine -newgvn -simple-loop-unswitch -instcombine -partial-inliner -consthoist -sccp -tailcallelim -coro-cleanup -lower-expect -loop-interchange -functionattrs -inferattrs -coro-elide -mldst-motion -newgvn -post-inline-ee-instrument -post-inline-ee-instrument -adce -constprop -loop-predication -globalsplit -reassociate -post-inline-ee-instrument -lowerswitch -sroa -loop-deletion -simplifycfg -tailcallelim -constprop -gvn input.bc -o output.bc -benchmark://cBench-v1/susan,0.977476324545687,14.979936361312866,opt -canonicalize-aliases -loop-guard-widening -float2int -loop-versioning-licm -redundant-dbg-inst-elim -callsite-splitting -loop-load-elim -lowerswitch -loop-unroll-and-jam -lower-guard-intrinsic -forceattrs -instnamer -licm -memcpyopt -prune-eh -loop-unswitch -correlated-propagation -adce -called-value-propagation -loop-predication -loop-load-elim -lower-matrix-intrinsics -sccp -instcombine -globalopt -loop-simplifycfg -lcssa -guard-widening -die -alignment-from-assumptions -partially-inline-libcalls -loop-unroll-and-jam -inject-tli-mappings -sancov -redundant-dbg-inst-elim -cross-dso-cfi -float2int -lower-constant-intrinsics -argpromotion -elim-avail-extern -loop-unroll -argpromotion -loop-predication -lowerswitch -sccp -memcpyopt -dce -add-discriminators -flattencfg -guard-widening -instcombine -speculative-execution -coro-cleanup -ipsccp -early-cse-memssa -instcombine -mem2reg -lower-guard-intrinsic -insert-gcov-profiling -separate-const-offset-from-gep -alignment-from-assumptions -strip -lowerinvoke -elim-avail-extern -scalarizer -insert-gcov-profiling -lower-expect -strip-debug-declare -licm -bdce -hotcoldsplit -sccp -loop-guard-widening -simple-loop-unswitch -loop-versioning -prune-eh -strip-nondebug -gvn -simplifycfg -loop-load-elim -redundant-dbg-inst-elim -coro-elide -prune-eh -partial-inliner -instsimplify -loop-guard-widening -loop-vectorize -barrier -strip-dead-prototypes -inferattrs -adce -load-store-vectorizer -div-rem-pairs -mergeicmps -lower-constant-intrinsics -globalopt -coro-split -reassociate -nary-reassociate -indvars -memcpyopt -scalarizer -lower-guard-intrinsic -ipsccp -bdce -div-rem-pairs -separate-const-offset-from-gep -mldst-motion -alignment-from-assumptions -separate-const-offset-from-gep -ee-instrument -consthoist -post-inline-ee-instrument -correlated-propagation -globaldce -loop-guard-widening -loop-predication -gvn-hoist -guard-widening -always-inline -rewrite-statepoints-for-gc -callsite-splitting -rewrite-statepoints-for-gc -mem2reg -instsimplify -strip -lower-expect -lower-matrix-intrinsics -deadargelim -lcssa -loop-simplify -slp-vectorizer -strip-debug-declare -loop-simplify -forceattrs -early-cse-memssa -inject-tli-mappings -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,0.9824673662656768,14.057718515396118,opt -bdce -partially-inline-libcalls -mem2reg -sccp -attributor -pgo-memop-opt -constmerge -ipconstprop -coro-elide -loop-interchange -insert-gcov-profiling -constmerge -strip-nondebug -loweratomic -insert-gcov-profiling -guard-widening -guard-widening -gvn -loop-load-elim -loop-idiom -instcombine -coro-elide -strip-dead-prototypes -sink -callsite-splitting -mem2reg -loop-interchange -always-inline -dce -elim-avail-extern -newgvn -called-value-propagation -lower-guard-intrinsic -lower-matrix-intrinsics -div-rem-pairs -globaldce -instnamer -sroa -nary-reassociate -prune-eh -separate-const-offset-from-gep -lower-guard-intrinsic -newgvn -sancov -sccp -infer-address-spaces -bdce -partial-inliner -mergeicmps -sccp -rewrite-statepoints-for-gc -early-cse-memssa -early-cse-memssa -dse -called-value-propagation -div-rem-pairs -globalopt -strip-dead-prototypes -slsr -functionattrs -flattencfg -callsite-splitting -loop-predication -forceattrs -indvars -die -loop-reroll -rpo-functionattrs -ipconstprop -gvn-hoist -post-inline-ee-instrument -redundant-dbg-inst-elim -post-inline-ee-instrument -loweratomic -loop-interchange -lower-guard-intrinsic -nary-reassociate -loop-instsimplify -sink -instsimplify -globaldce -loop-versioning-licm -inferattrs -attributor -jump-threading input.bc -o output.bc -benchmark://cBench-v1/susan,0.991041719989762,14.902771949768066,opt -argpromotion -loweratomic -loop-unroll -slsr -loop-versioning -consthoist -functionattrs -alignment-from-assumptions -alignment-from-assumptions -dse -strip-dead-prototypes -loop-data-prefetch -lower-guard-intrinsic -loop-fusion -irce -dse -float2int -loop-distribute -correlated-propagation -elim-avail-extern -rewrite-statepoints-for-gc -prune-eh -loop-fusion -prune-eh -loop-distribute -redundant-dbg-inst-elim -load-store-vectorizer -alignment-from-assumptions -prune-eh -loop-unroll -simplifycfg -argpromotion -lower-guard-intrinsic -mem2reg -strip-nondebug -gvn -elim-avail-extern -loop-deletion -loop-sink -functionattrs -simple-loop-unswitch -loop-unroll-and-jam -separate-const-offset-from-gep -sccp -strip -simple-loop-unswitch -mergeicmps -mergeicmps -licm -name-anon-globals -irce -correlated-propagation -coro-early -loop-load-elim -early-cse-memssa -strip -rewrite-statepoints-for-gc -barrier -loop-data-prefetch -ee-instrument -libcalls-shrinkwrap -tailcallelim -strip-nondebug -canonicalize-aliases -elim-avail-extern -loop-fusion -early-cse-memssa -strip-nondebug -loop-sink -lowerinvoke -ipconstprop -inferattrs -slsr -ee-instrument -loop-deletion -coro-early -dse -lowerswitch -loop-reroll -inject-tli-mappings -instnamer -sink -loop-simplifycfg -lowerinvoke -load-store-vectorizer -speculative-execution -canonicalize-aliases -loop-versioning -simple-loop-unswitch -loop-fusion -adce -dce -loop-interchange -loop-load-elim -always-inline -elim-avail-extern -loop-distribute -always-inline -scalarizer -instsimplify -mldst-motion -mergefunc -newgvn -constmerge -ipsccp -separate-const-offset-from-gep -flattencfg -lower-matrix-intrinsics -simplifycfg -indvars -loop-unswitch -speculative-execution -adce -simple-loop-unswitch -separate-const-offset-from-gep -loop-simplify -loop-interchange -prune-eh -licm -mem2reg -speculative-execution -globalopt -instcombine -loop-versioning-licm -sccp -deadargelim -correlated-propagation -ipsccp -slp-vectorizer -load-store-vectorizer -loop-unroll-and-jam -licm -slp-vectorizer -forceattrs -loop-vectorize -partially-inline-libcalls -indvars -scalarizer -redundant-dbg-inst-elim -newgvn -mergereturn -slsr -strip-debug-declare -consthoist -loop-interchange -constmerge -instsimplify -constprop -inferattrs -add-discriminators -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/susan,0.9928333759918095,15.974971294403076,opt -dse -add-discriminators -mem2reg -loop-predication -loop-reroll -prune-eh -guard-widening -irce -strip-nondebug -loop-distribute -separate-const-offset-from-gep -loop-versioning-licm -ipconstprop -memcpyopt -newgvn -newgvn -consthoist -name-anon-globals -correlated-propagation -mldst-motion -redundant-dbg-inst-elim -licm -callsite-splitting -constmerge -scalarizer -canonicalize-aliases -argpromotion -instcombine -loop-unroll -instsimplify -nary-reassociate -loop-simplify -early-cse-memssa -loop-unswitch -mergeicmps -canonicalize-aliases -ipsccp -globaldce -loop-fusion -lower-matrix-intrinsics -post-inline-ee-instrument -post-inline-ee-instrument -loop-versioning-licm -sink -strip -dse -libcalls-shrinkwrap -float2int -loop-instsimplify -break-crit-edges -sccp -constmerge -alignment-from-assumptions -add-discriminators -argpromotion -instcombine -loweratomic -constmerge -loop-instsimplify -prune-eh -loop-vectorize -float2int -lower-expect -lcssa -forceattrs -coro-cleanup -div-rem-pairs -loop-fusion -nary-reassociate -argpromotion -irce -separate-const-offset-from-gep -separate-const-offset-from-gep -globalopt -redundant-dbg-inst-elim -lower-matrix-intrinsics -loop-vectorize -loop-versioning -gvn-hoist -loop-data-prefetch -correlated-propagation -loop-unswitch -ipsccp -add-discriminators -loop-guard-widening -globaldce -ee-instrument -speculative-execution -loop-data-prefetch -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,0.9929613514205275,15.52566409111023,opt -constprop -lowerswitch -float2int -barrier -loop-deletion -loop-predication -lower-constant-intrinsics -speculative-execution -early-cse-memssa -lower-guard-intrinsic -reassociate -globaldce -load-store-vectorizer -insert-gcov-profiling -loop-fusion -globaldce -prune-eh -prune-eh -div-rem-pairs -sroa -correlated-propagation -loop-guard-widening -coro-early -mergereturn -gvn -add-discriminators -sccp -speculative-execution -break-crit-edges -strip-dead-prototypes -rpo-functionattrs -lower-expect -loop-sink -rewrite-statepoints-for-gc -callsite-splitting -mergefunc -infer-address-spaces -rpo-functionattrs -coro-early -speculative-execution -aggressive-instcombine -globaldce -loop-guard-widening -strip-nondebug -indvars -loop-deletion -coro-early -reassociate -loop-idiom -loop-vectorize -strip -bdce -scalarizer -callsite-splitting -die -gvn -globalopt -mem2reg -loop-load-elim -loop-load-elim -mergefunc -instsimplify -loop-instsimplify -lower-matrix-intrinsics -attributor -callsite-splitting -lower-guard-intrinsic -scalarizer -hotcoldsplit -loop-unroll-and-jam -loop-versioning-licm -lower-widenable-condition -simple-loop-unswitch -mergereturn -globalsplit -canonicalize-aliases -lower-constant-intrinsics -consthoist -pgo-memop-opt -hotcoldsplit -insert-gcov-profiling -callsite-splitting -slp-vectorizer -alignment-from-assumptions -inject-tli-mappings -guard-widening -add-discriminators -early-cse-memssa -elim-avail-extern -licm -pgo-memop-opt -functionattrs -loop-sink -jump-threading -tailcallelim -name-anon-globals -loop-reroll -cross-dso-cfi -sccp -dce -loop-instsimplify -globalopt -always-inline -elim-avail-extern -globalopt -nary-reassociate -early-cse-memssa -partial-inliner -loop-distribute -indvars -simplifycfg -partially-inline-libcalls -div-rem-pairs -loop-load-elim -loop-fusion -inject-tli-mappings -sancov -loop-instsimplify -constprop -die -flattencfg -loop-predication -gvn-hoist -adce -loop-load-elim -scalarizer -reassociate -callsite-splitting -cross-dso-cfi -lower-matrix-intrinsics -name-anon-globals -lower-matrix-intrinsics -loop-guard-widening -canonicalize-aliases -loop-distribute -sancov -ipsccp -coro-cleanup -reg2mem -load-store-vectorizer -deadargelim -loop-data-prefetch -ipconstprop -load-store-vectorizer -canonicalize-aliases -loop-guard-widening -attributor -ipsccp -loop-unroll -mergereturn -loop-versioning -add-discriminators -load-store-vectorizer -barrier -loop-interchange -guard-widening -loop-reroll -simple-loop-unswitch -gvn-hoist -functionattrs -elim-avail-extern -partially-inline-libcalls -cross-dso-cfi -coro-early -ipconstprop -reassociate -strip-dead-prototypes -mergefunc -sroa -rpo-functionattrs -add-discriminators -scalarizer -float2int -lower-expect -hotcoldsplit -dce -coro-split -name-anon-globals -simplifycfg -rewrite-statepoints-for-gc -callsite-splitting -speculative-execution -adce -loop-unroll -constmerge -early-cse-memssa -sccp -constmerge -loop-instsimplify -adce -attributor -sccp -instsimplify -libcalls-shrinkwrap -loop-guard-widening -hotcoldsplit -prune-eh -canonicalize-aliases -constmerge -lowerinvoke -loop-unswitch -name-anon-globals -cross-dso-cfi -redundant-dbg-inst-elim -loop-simplifycfg -rewrite-statepoints-for-gc -strip-debug-declare -loop-data-prefetch -coro-early -mergereturn -scalarizer -simple-loop-unswitch -loweratomic -lower-constant-intrinsics -gvn-hoist -inferattrs -lower-matrix-intrinsics -slsr -libcalls-shrinkwrap -gvn -sink -mergefunc -lower-guard-intrinsic -flattencfg -instnamer -licm -guard-widening -always-inline -flattencfg -functionattrs -barrier -instcombine input.bc -o output.bc -benchmark://cBench-v1/susan,0.9946250319938573,311.2034537792206,opt -irce -dce -speculative-execution -rewrite-statepoints-for-gc -aggressive-instcombine -ipsccp -loop-distribute -slp-vectorizer -loop-simplify -loop-rotate -memcpyopt -reg2mem -inferattrs -inferattrs -hotcoldsplit -lower-constant-intrinsics -loop-guard-widening -consthoist -pgo-memop-opt -always-inline -loop-unroll-and-jam -cross-dso-cfi -loop-fusion -speculative-execution -name-anon-globals -lcssa -sink -strip-dead-prototypes -loop-versioning -barrier -loop-data-prefetch -loop-reduce -dce -sink -ipsccp -mem2reg -scalarizer -globalopt -bdce -newgvn -coro-elide -libcalls-shrinkwrap -loop-data-prefetch -coro-split -mem2reg -speculative-execution -speculative-execution -sancov -globalopt -infer-address-spaces -loop-simplify -globaldce -post-inline-ee-instrument -loop-data-prefetch -break-crit-edges -coro-elide -partial-inliner -forceattrs -constprop -break-crit-edges -ee-instrument -indvars -loop-unroll -mergefunc -coro-split -float2int -argpromotion -correlated-propagation -lowerswitch -simplifycfg -aggressive-instcombine -strip -infer-address-spaces -mem2reg -reassociate -hotcoldsplit -coro-early -lower-expect -alignment-from-assumptions -jump-threading -loop-guard-widening -instnamer -constprop -inferattrs -gvn -early-cse-memssa -instcombine -loop-versioning -gvn -loop-sink -gvn-hoist -slp-vectorizer -sancov -guard-widening -lower-widenable-condition -mergeicmps -constmerge -indvars -irce -pgo-memop-opt -lower-expect -lowerswitch -loop-load-elim -div-rem-pairs -ipconstprop -functionattrs -dse -lower-widenable-condition -loop-fusion -aggressive-instcombine -elim-avail-extern -sroa -sccp -flattencfg -loop-simplify -loop-versioning -simplifycfg -flattencfg -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/susan,0.9974404914256462,14.56405782699585,opt -mem2reg -scalarizer -instsimplify -sink -loop-instsimplify -inferattrs -loop-versioning-licm -sancov -early-cse-memssa -dse -mergeicmps -called-value-propagation -simple-loop-unswitch -die -simplifycfg -add-discriminators -loop-sink -flattencfg -sink -libcalls-shrinkwrap -always-inline -coro-cleanup -mldst-motion -loop-versioning -partial-inliner -aggressive-instcombine -reg2mem -loop-reroll -name-anon-globals -lcssa -sroa -slsr -loop-unswitch -hotcoldsplit -sccp -reassociate -strip-dead-prototypes -partially-inline-libcalls -partial-inliner -add-discriminators -lowerinvoke -globalopt -rewrite-statepoints-for-gc -strip -sccp -instsimplify -loop-instsimplify -sccp -loop-simplifycfg -div-rem-pairs -infer-address-spaces -mldst-motion -partial-inliner -early-cse-memssa -sccp -strip-debug-declare -indvars -correlated-propagation -deadargelim -strip -memcpyopt -sancov -simple-loop-unswitch -inferattrs -loop-data-prefetch -bdce -inject-tli-mappings -ipsccp -loop-predication -licm -inject-tli-mappings -flattencfg -elim-avail-extern -simplifycfg -sancov -argpromotion -ee-instrument -pgo-memop-opt -lower-widenable-condition -loop-predication -rewrite-statepoints-for-gc -loop-unswitch -loop-fusion -loop-load-elim -lcssa -loop-reroll -lower-expect -instsimplify -scalarizer -guard-widening -partially-inline-libcalls -instcombine -callsite-splitting -coro-cleanup -jump-threading -deadargelim -loop-vectorize -loop-reroll -bdce -lower-matrix-intrinsics -scalarizer -early-cse-memssa -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/susan,1.000767852572306,13.883830785751343,opt -speculative-execution -elim-avail-extern -newgvn -strip-dead-prototypes -hotcoldsplit -loop-vectorize -die -simplifycfg -mldst-motion -lower-guard-intrinsic -consthoist -loop-unroll-and-jam -loop-load-elim -loweratomic -strip-nondebug -post-inline-ee-instrument -guard-widening -always-inline -ee-instrument -loop-sink -loop-unroll -insert-gcov-profiling -loop-data-prefetch -dse -consthoist -loop-reroll -mergefunc -partially-inline-libcalls -strip-dead-prototypes -die -lower-constant-intrinsics -alignment-from-assumptions -attributor -attributor -correlated-propagation -simple-loop-unswitch -consthoist -loop-instsimplify -add-discriminators -coro-cleanup -nary-reassociate -loop-distribute -newgvn -break-crit-edges -lcssa -loop-versioning -post-inline-ee-instrument -pgo-memop-opt -loop-simplify -coro-split -loop-unroll -partially-inline-libcalls -rpo-functionattrs -guard-widening -lower-matrix-intrinsics -newgvn -sroa -newgvn -loweratomic -mergereturn -strip -reg2mem -coro-split -early-cse-memssa -globalsplit -coro-early -rewrite-statepoints-for-gc -loop-load-elim -loop-predication -strip-dead-prototypes -loop-unswitch -consthoist -slsr -inferattrs -newgvn -loop-unroll-and-jam -deadargelim -irce -lower-expect -loop-interchange -loop-unroll -constprop -loop-guard-widening -globalopt -rewrite-statepoints-for-gc -sroa -callsite-splitting -globalsplit -elim-avail-extern -globalsplit -indvars -reassociate -strip-nondebug -dce -mergeicmps -dce -guard-widening -name-anon-globals -constprop -irce -sancov -gvn -instcombine -loop-vectorize -constprop -speculative-execution -canonicalize-aliases -break-crit-edges -add-discriminators -irce -loop-load-elim -bdce -called-value-propagation -loop-unroll-and-jam -loop-distribute -loop-idiom -slsr -argpromotion -pgo-memop-opt -infer-address-spaces -dse -inferattrs -loop-reroll -correlated-propagation -lower-widenable-condition -loop-simplify -indvars -callsite-splitting -scalarizer -lowerinvoke -jump-threading -loop-predication -hotcoldsplit -lower-matrix-intrinsics -post-inline-ee-instrument -mergeicmps -infer-address-spaces -loop-interchange -loop-vectorize -instsimplify input.bc -o output.bc -benchmark://cBench-v1/susan,1.0015357051446123,13.91321086883545,opt -sroa -jump-threading -sccp -lower-constant-intrinsics -ee-instrument -rpo-functionattrs -jump-threading -simplifycfg -mem2reg -name-anon-globals -coro-split -alignment-from-assumptions -loop-interchange -loop-data-prefetch -reg2mem -loop-unroll-and-jam -infer-address-spaces -loop-fusion -sroa -globaldce -callsite-splitting -loweratomic -loop-deletion -post-inline-ee-instrument -loop-instsimplify -indvars -slsr -ipconstprop -consthoist -simplifycfg -mergefunc -aggressive-instcombine -instsimplify -canonicalize-aliases -strip-dead-prototypes -partially-inline-libcalls -loop-interchange -gvn-hoist -add-discriminators -correlated-propagation -constprop -loop-versioning-licm -loop-versioning -instcombine -globalopt -float2int -float2int -inject-tli-mappings -dse -constmerge -loop-unroll -forceattrs -strip-dead-prototypes -aggressive-instcombine -loop-fusion -coro-split -ee-instrument -loop-unroll -simplifycfg -mldst-motion -indvars -inferattrs -loop-instsimplify -sccp -rewrite-statepoints-for-gc -pgo-memop-opt -add-discriminators -insert-gcov-profiling -loweratomic -loop-simplifycfg -scalarizer -loop-guard-widening -strip-debug-declare -constprop -loop-instsimplify -globaldce -partial-inliner -simple-loop-unswitch -called-value-propagation -loop-guard-widening -prune-eh -alignment-from-assumptions -canonicalize-aliases -lower-widenable-condition -loop-guard-widening -licm -rewrite-statepoints-for-gc -float2int -infer-address-spaces -elim-avail-extern -slp-vectorizer -consthoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/susan,1.0239314051702073,13.509535074234009,opt -canonicalize-aliases -lower-matrix-intrinsics -memcpyopt -scalarizer -mem2reg -insert-gcov-profiling -newgvn -reg2mem -argpromotion -strip -simplifycfg -constprop -jump-threading -reg2mem -consthoist -barrier -partial-inliner -flattencfg -slp-vectorizer -add-discriminators -loop-instsimplify -instnamer -functionattrs -barrier -loop-unroll -loop-unroll -loop-sink -simplifycfg -die -loop-interchange -simple-loop-unswitch -reg2mem -loweratomic -globalsplit -mldst-motion -instnamer -loop-data-prefetch -rpo-functionattrs -lower-guard-intrinsic -lowerswitch -reassociate -mergereturn -indvars -deadargelim -speculative-execution -newgvn -attributor -load-store-vectorizer -coro-elide -loop-unswitch -dse -sccp -infer-address-spaces -loop-unroll-and-jam -loop-unroll-and-jam -add-discriminators -loop-data-prefetch -loop-simplifycfg -ipconstprop -div-rem-pairs -elim-avail-extern -loop-versioning -gvn -dce -rewrite-statepoints-for-gc -argpromotion -loop-instsimplify -strip-dead-prototypes -coro-cleanup -loop-unroll-and-jam -instcombine -loop-data-prefetch -newgvn -lower-widenable-condition -strip-dead-prototypes -inferattrs -tailcallelim -dce -div-rem-pairs -loop-guard-widening -dse -partial-inliner -coro-elide -instcombine -simple-loop-unswitch -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,0.9724202156237686,42.7266845703125,opt -break-crit-edges -guard-widening -partially-inline-libcalls -correlated-propagation -argpromotion -loop-versioning -redundant-dbg-inst-elim -dce -indvars -loop-instsimplify -loop-simplifycfg -loop-deletion -hotcoldsplit -globalopt -loop-data-prefetch -inject-tli-mappings -rpo-functionattrs -loop-unroll -functionattrs -lowerinvoke -globalsplit -lowerswitch -mergereturn -loop-predication -functionattrs -lcssa -post-inline-ee-instrument -argpromotion -licm -loop-data-prefetch -scalarizer -deadargelim -slsr -slsr -loop-deletion -guard-widening -strip-nondebug -die -libcalls-shrinkwrap -called-value-propagation -always-inline -hotcoldsplit -separate-const-offset-from-gep -loop-deletion -ipconstprop -mem2reg -flattencfg -loop-simplifycfg -insert-gcov-profiling -simplifycfg -forceattrs -gvn-hoist -alignment-from-assumptions -inferattrs -jump-threading -infer-address-spaces -slsr -loop-deletion -jump-threading -lower-expect -loop-data-prefetch -speculative-execution -newgvn -break-crit-edges -globaldce -instcombine -loweratomic -callsite-splitting -dce -die -inject-tli-mappings -slp-vectorizer -lowerinvoke -barrier -ipsccp -sccp -post-inline-ee-instrument -loop-versioning -slsr -dce -coro-split -gvn -memcpyopt -memcpyopt -loop-vectorize -loop-deletion -loop-sink -constprop -loop-vectorize -loop-simplify -mergefunc -ipsccp -loop-distribute -gvn -insert-gcov-profiling -coro-cleanup -loop-unroll -jump-threading -gvn -cross-dso-cfi -prune-eh -constprop -loop-guard-widening -lower-widenable-condition -mergefunc -adce -loop-idiom -loop-versioning-licm -coro-split -sroa -reassociate -coro-split -loop-vectorize -early-cse-memssa -loop-interchange -flattencfg -loop-reroll -slsr -strip-dead-prototypes -nary-reassociate -strip-dead-prototypes -loweratomic -gvn-hoist -attributor -slsr -name-anon-globals -prune-eh -called-value-propagation -cross-dso-cfi -cross-dso-cfi -gvn -div-rem-pairs -loop-versioning -elim-avail-extern -lower-matrix-intrinsics -instnamer -nary-reassociate -load-store-vectorizer -constmerge -instcombine -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,0.9850997528564778,43.625590324401855,opt -reassociate -lower-widenable-condition -nary-reassociate -loop-idiom -always-inline -cross-dso-cfi -infer-address-spaces -sink -bdce -loop-unroll -load-store-vectorizer -separate-const-offset-from-gep -deadargelim -bdce -callsite-splitting -loop-distribute -barrier -deadargelim -loop-unswitch -loop-versioning-licm -rpo-functionattrs -loop-guard-widening -loop-deletion -loop-idiom -canonicalize-aliases -speculative-execution -dse -break-crit-edges -loweratomic -cross-dso-cfi -div-rem-pairs -correlated-propagation -libcalls-shrinkwrap -inferattrs -early-cse-memssa -mem2reg -partial-inliner -loop-simplifycfg -loop-simplify -argpromotion -barrier -loop-reduce -canonicalize-aliases -slsr -speculative-execution -sancov -mldst-motion -constmerge -flattencfg -div-rem-pairs -redundant-dbg-inst-elim -lower-expect -instcombine -dce -libcalls-shrinkwrap -argpromotion -break-crit-edges -ipsccp -simple-loop-unswitch -simplifycfg -nary-reassociate -canonicalize-aliases -hotcoldsplit -mergeicmps -lower-constant-intrinsics -instsimplify input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,0.9884308177226978,42.622666358947754,opt -strip -globaldce -insert-gcov-profiling -irce -sancov -redundant-dbg-inst-elim -consthoist -sroa -globaldce -loop-fusion -slsr -jump-threading -tailcallelim -indvars -globalsplit -die -newgvn -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,0.9915111572764067,39.32834792137146,opt -lower-expect -simplifycfg -loop-instsimplify -insert-gcov-profiling -barrier -consthoist -post-inline-ee-instrument -tailcallelim -strip-nondebug -loop-simplify -loop-simplify -coro-cleanup -loop-distribute -name-anon-globals -sroa -bdce -ipsccp -insert-gcov-profiling -dce -globaldce -mem2reg -rpo-functionattrs -prune-eh -mergereturn -loop-versioning-licm -loop-distribute -bdce -ipconstprop -strip-debug-declare -bdce -gvn-hoist -alignment-from-assumptions -loop-data-prefetch -lower-expect -early-cse-memssa -instnamer -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,0.9944124073211789,42.087604999542236,opt -load-store-vectorizer -ipconstprop -canonicalize-aliases -libcalls-shrinkwrap -loop-unswitch -loop-guard-widening -loop-sink -argpromotion -dce -loop-instsimplify -loop-unroll -sccp -barrier -mem2reg -dce -separate-const-offset-from-gep -loweratomic -pgo-memop-opt -globalopt -irce -irce -called-value-propagation -lower-matrix-intrinsics -irce -indvars -sancov -called-value-propagation -coro-elide -break-crit-edges -rewrite-statepoints-for-gc -loop-deletion -prune-eh -loop-data-prefetch -strip-debug-declare -lower-guard-intrinsic -canonicalize-aliases -elim-avail-extern -lower-widenable-condition -newgvn -strip -called-value-propagation -coro-early -strip -ipsccp -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,0.9955585801783728,44.708903789520264,opt -inject-tli-mappings -sroa -loop-predication -globalopt -rewrite-statepoints-for-gc -sink -loop-instsimplify -functionattrs -loop-idiom -canonicalize-aliases -separate-const-offset-from-gep -aggressive-instcombine -ipconstprop -loop-simplify -lower-expect -gvn -scalarizer -reassociate -die -loop-interchange -sroa -lower-widenable-condition -consthoist -redundant-dbg-inst-elim -hotcoldsplit -constprop -loop-reroll -consthoist -sroa -canonicalize-aliases -strip -mergeicmps -add-discriminators -rpo-functionattrs -slsr -irce -constprop -constprop -sancov -lower-guard-intrinsic -break-crit-edges -loop-simplify -indvars -loop-instsimplify -mergefunc -loweratomic -irce -gvn-hoist -add-discriminators -instsimplify -aggressive-instcombine -coro-cleanup -inferattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,0.9997492746874888,38.4443724155426,opt -consthoist -bdce -sroa -simplifycfg -early-cse-memssa -jump-threading -dce -lower-expect -gvn -gvn-hoist -redundant-dbg-inst-elim -constmerge -mergefunc -lowerinvoke -speculative-execution -slp-vectorizer -irce -mergereturn -float2int -early-cse-memssa -lowerinvoke -prune-eh -prune-eh -loop-reroll -lower-guard-intrinsic -loop-guard-widening -lowerinvoke -newgvn -post-inline-ee-instrument -aggressive-instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0063039507145672,50.186365604400635,opt -globaldce -lower-constant-intrinsics -coro-early -loop-unroll-and-jam -mergeicmps -lower-guard-intrinsic -loop-reduce -lower-guard-intrinsic -irce -bdce -callsite-splitting -elim-avail-extern -newgvn -float2int -simplifycfg -break-crit-edges -inject-tli-mappings -mergeicmps -add-discriminators -hotcoldsplit -deadargelim -attributor -lower-constant-intrinsics -float2int -name-anon-globals -always-inline -correlated-propagation -sroa -consthoist -strip-dead-prototypes -ipsccp -memcpyopt -globaldce -loop-instsimplify -loop-interchange -strip -reassociate -gvn -loop-versioning -irce -instnamer -barrier -lower-expect -barrier -loop-simplifycfg -strip-debug-declare -lower-guard-intrinsic -cross-dso-cfi -loop-instsimplify -gvn-hoist -gvn-hoist -sancov -mergereturn -aggressive-instcombine -mergefunc -bdce -loop-idiom -licm -coro-cleanup -sccp -ee-instrument -gvn -canonicalize-aliases -lower-widenable-condition -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0131809878577311,40.80617117881775,opt -functionattrs -mem2reg -tailcallelim -loop-distribute -break-crit-edges -gvn-hoist -rewrite-statepoints-for-gc -coro-elide -float2int -globalsplit -ipconstprop -guard-widening -infer-address-spaces -scalarizer -lower-expect -add-discriminators -bdce -insert-gcov-profiling -loop-simplify -irce -lowerinvoke -loop-reroll -slp-vectorizer -slsr -rewrite-statepoints-for-gc -forceattrs -licm -sccp -simple-loop-unswitch -loop-versioning -coro-early -slsr -coro-early -instsimplify -loop-versioning-licm -coro-cleanup -irce -sancov -indvars -elim-avail-extern -div-rem-pairs -bdce -called-value-propagation -loop-load-elim -loop-idiom -mem2reg -speculative-execution -consthoist -strip -licm -loop-predication -rewrite-statepoints-for-gc -insert-gcov-profiling -gvn -post-inline-ee-instrument -dse -nary-reassociate -strip-debug-declare -lower-expect -loop-unroll-and-jam -lower-guard-intrinsic -scalarizer -early-cse-memssa -rpo-functionattrs -sancov -loop-load-elim -loop-reduce -speculative-execution -functionattrs -mergefunc -memcpyopt -irce -loop-predication -deadargelim -strip-nondebug -functionattrs -speculative-execution -gvn -instcombine -memcpyopt -sccp -prune-eh -loop-vectorize -dse -reassociate -lower-matrix-intrinsics -simplifycfg -coro-cleanup -lower-constant-intrinsics -alignment-from-assumptions -cross-dso-cfi -irce -loop-unroll -instcombine -hotcoldsplit -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0268276084386976,46.057499408721924,opt -coro-split -loop-instsimplify -post-inline-ee-instrument -insert-gcov-profiling -guard-widening -loop-unroll -strip -dce -guard-widening -indvars -sancov -simplifycfg -lcssa -flattencfg -called-value-propagation -loop-distribute -jump-threading -lower-matrix-intrinsics -simple-loop-unswitch -mergefunc -loop-unroll -insert-gcov-profiling -mem2reg -adce -consthoist -strip-debug-declare -lower-expect -loop-guard-widening -loop-load-elim -mergefunc -deadargelim -irce -strip-dead-prototypes -gvn-hoist -slsr -loop-versioning -loop-fusion -memcpyopt -functionattrs -loop-distribute -loop-interchange -reassociate -barrier -float2int -pgo-memop-opt -indvars -slp-vectorizer -prune-eh -lower-widenable-condition -argpromotion -alignment-from-assumptions -elim-avail-extern -forceattrs -coro-elide -instcombine -aggressive-instcombine -reassociate -mem2reg -loop-versioning-licm -gvn -speculative-execution -loop-versioning-licm -bdce -tailcallelim -reg2mem -lower-constant-intrinsics -loop-fusion -sancov -mem2reg -instsimplify -loop-vectorize -globalsplit -partial-inliner -strip-debug-declare -flattencfg -loop-guard-widening -newgvn -irce -loop-versioning-licm -prune-eh -functionattrs -load-store-vectorizer -newgvn -lcssa -inject-tli-mappings -globalsplit -loop-deletion -loop-sink -inferattrs -loop-load-elim -hotcoldsplit -simple-loop-unswitch -loop-interchange -rewrite-statepoints-for-gc -hotcoldsplit -loop-data-prefetch -hotcoldsplit -functionattrs -flattencfg -deadargelim -aggressive-instcombine -post-inline-ee-instrument -break-crit-edges -bdce -lower-widenable-condition -flattencfg -inferattrs -gvn -globaldce -indvars -strip-debug-declare -licm -mergefunc -constmerge -irce -coro-split -post-inline-ee-instrument -loop-load-elim -redundant-dbg-inst-elim -rpo-functionattrs -gvn-hoist -loop-distribute -guard-widening -tailcallelim -adce -sroa -coro-early -jump-threading -speculative-execution -rewrite-statepoints-for-gc -early-cse-memssa -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,0.9719230216860548,43.69095706939697,opt -adce -barrier -guard-widening -sancov -name-anon-globals -speculative-execution -mem2reg -ipconstprop -simple-loop-unswitch -strip -separate-const-offset-from-gep -always-inline -loop-versioning -loop-predication -loop-distribute -guard-widening -coro-split -constprop -lower-constant-intrinsics -constmerge -instcombine -tailcallelim -slp-vectorizer -mldst-motion -ee-instrument -loop-unroll -constprop -sroa -loop-sink -sink -libcalls-shrinkwrap -lowerswitch -ipsccp -instcombine -constmerge -separate-const-offset-from-gep -lower-matrix-intrinsics -simplifycfg -canonicalize-aliases -tailcallelim -ipsccp -always-inline -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,0.9994614390348989,43.0509147644043,opt -loop-unroll-and-jam -coro-split -loop-vectorize -strip-debug-declare -lowerinvoke -adce -guard-widening -reassociate -correlated-propagation -infer-address-spaces -coro-early -instnamer -loop-simplify -separate-const-offset-from-gep -newgvn -loop-vectorize -argpromotion -sancov -loop-reroll -coro-cleanup -ee-instrument -coro-early -post-inline-ee-instrument -instsimplify -canonicalize-aliases -strip-dead-prototypes -name-anon-globals -mem2reg -loop-fusion -gvn-hoist -lowerinvoke -called-value-propagation -loop-rotate -jump-threading -loop-instsimplify -lcssa -lower-expect -float2int -infer-address-spaces -mergefunc -mergereturn -mldst-motion -separate-const-offset-from-gep -lower-matrix-intrinsics -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0002872325147207,40.322293758392334,opt -loop-fusion -strip-nondebug -strip-debug-declare -jump-threading -gvn-hoist -mergeicmps -sroa -adce -ee-instrument -globaldce -loop-guard-widening -loop-data-prefetch -constprop -tailcallelim -guard-widening -sccp -indvars -loop-unroll -loop-unswitch -jump-threading -gvn -add-discriminators -always-inline -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0014002585092634,43.58587026596069,opt -break-crit-edges -coro-early -strip -loop-versioning -mergefunc -mem2reg -reassociate -nary-reassociate -flattencfg -insert-gcov-profiling -sroa -strip-dead-prototypes -loop-versioning -die -correlated-propagation -slsr -loop-vectorize -div-rem-pairs -barrier -barrier -loop-predication -elim-avail-extern -gvn -loop-unroll-and-jam -loop-interchange -coro-split -attributor -inject-tli-mappings -pgo-memop-opt -jump-threading -lower-constant-intrinsics -loop-instsimplify -instsimplify -memcpyopt -mem2reg -always-inline -nary-reassociate -loop-deletion -dce -mergereturn -lcssa -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0040212552060892,110.09268641471863,opt -ipsccp -callsite-splitting -mldst-motion -libcalls-shrinkwrap -loop-unroll -mldst-motion -loop-unroll -loop-unswitch -sroa -constmerge -lcssa -sccp -div-rem-pairs -constmerge -argpromotion -early-cse-memssa -prune-eh -insert-gcov-profiling -rpo-functionattrs -rewrite-statepoints-for-gc -constprop -attributor -dse -strip-nondebug -gvn-hoist -deadargelim -lower-constant-intrinsics -sroa -early-cse-memssa -coro-cleanup -strip-debug-declare -strip-dead-prototypes -div-rem-pairs -alignment-from-assumptions -scalarizer -licm -ee-instrument -rewrite-statepoints-for-gc -functionattrs -correlated-propagation -always-inline -loop-instsimplify -insert-gcov-profiling -reassociate -die -dse -strip -canonicalize-aliases -ipconstprop -early-cse-memssa -rpo-functionattrs -coro-cleanup -simple-loop-unswitch -libcalls-shrinkwrap -lower-guard-intrinsic -globaldce -loop-deletion -loweratomic -mergeicmps -inject-tli-mappings -coro-split -loop-unroll -callsite-splitting -loop-unroll -scalarizer -sroa -loop-data-prefetch -strip-dead-prototypes -div-rem-pairs -dse -slsr -libcalls-shrinkwrap -loop-data-prefetch -add-discriminators -adce -gvn -bdce -loop-instsimplify -loop-fusion -die -instsimplify -correlated-propagation -constmerge -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0187060175211833,35.92176580429077,opt -coro-early -attributor -mem2reg -argpromotion -ipconstprop -coro-cleanup -strip-debug-declare -scalarizer -break-crit-edges -inject-tli-mappings -loop-distribute -inferattrs -coro-cleanup -loop-simplifycfg -gvn -bdce -libcalls-shrinkwrap -consthoist -consthoist -bdce -loop-distribute -simplifycfg -coro-split -inject-tli-mappings -alignment-from-assumptions -always-inline -name-anon-globals -dse -barrier -rewrite-statepoints-for-gc -lower-matrix-intrinsics -coro-elide -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0204653166738475,47.219963788986206,opt -loop-load-elim -gvn-hoist -irce -argpromotion -consthoist -ipconstprop -loop-distribute -alignment-from-assumptions -redundant-dbg-inst-elim -sroa -jump-threading -inferattrs -loop-reroll -instnamer -callsite-splitting -jump-threading -instnamer -lower-matrix-intrinsics -indvars -sancov -always-inline -loop-sink -lower-expect -mergefunc -coro-elide -tailcallelim -gvn-hoist -float2int -globaldce -early-cse-memssa -indvars -bdce -mem2reg -simplifycfg -memcpyopt -jump-threading -ee-instrument -infer-address-spaces -indvars -add-discriminators -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0306979750107712,42.30078458786011,opt -rpo-functionattrs -globalopt -inject-tli-mappings -rewrite-statepoints-for-gc -name-anon-globals -loop-versioning -add-discriminators -bdce -globaldce -dce -load-store-vectorizer -mem2reg -ee-instrument -loop-simplifycfg -loop-interchange -break-crit-edges -infer-address-spaces -loop-versioning-licm -pgo-memop-opt -dce -loop-predication -speculative-execution -slp-vectorizer -callsite-splitting -bdce -dce -cross-dso-cfi -adce -partially-inline-libcalls -canonicalize-aliases -lower-widenable-condition -instcombine -correlated-propagation -inferattrs -coro-early -loop-unroll-and-jam -loop-interchange -globaldce -newgvn -simplifycfg -strip-nondebug -scalarizer -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0324213700990954,46.63143301010132,opt -scalarizer -sccp -loop-unroll -infer-address-spaces -irce -lower-constant-intrinsics -forceattrs -instsimplify -inferattrs -elim-avail-extern -loop-distribute -loop-unswitch -mergefunc -lower-matrix-intrinsics -globalopt -consthoist -loop-versioning-licm -correlated-propagation -inferattrs -loop-versioning-licm -reassociate -libcalls-shrinkwrap -coro-early -load-store-vectorizer -loop-data-prefetch -redundant-dbg-inst-elim -tailcallelim -sroa -simplifycfg -add-discriminators -instnamer -simplifycfg -licm -simple-loop-unswitch -prune-eh -newgvn -loop-simplify -loop-fusion -rpo-functionattrs -loop-simplifycfg -jump-threading -always-inline -post-inline-ee-instrument -functionattrs -argpromotion -inferattrs -constprop -insert-gcov-profiling -sccp -alignment-from-assumptions -tailcallelim -dce -jump-threading -instcombine -loop-distribute -globaldce -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0421872755995978,62.661231994628906,opt -lower-constant-intrinsics -libcalls-shrinkwrap -lcssa -loop-simplifycfg -loop-data-prefetch -deadargelim -load-store-vectorizer -lower-guard-intrinsic -libcalls-shrinkwrap -loop-instsimplify -reg2mem -strip-debug-declare -sccp -inferattrs -globalopt -jump-threading -memcpyopt -loop-instsimplify -loop-sink -loop-unroll-and-jam -coro-early -attributor -loop-simplify -lower-widenable-condition -coro-early -ee-instrument -called-value-propagation -hotcoldsplit -loop-unroll -speculative-execution -coro-split -rpo-functionattrs -newgvn -div-rem-pairs -hotcoldsplit -tailcallelim -strip-dead-prototypes -lowerinvoke -canonicalize-aliases -name-anon-globals -sancov -gvn-hoist -separate-const-offset-from-gep -name-anon-globals -loop-simplifycfg -memcpyopt -strip-dead-prototypes -tailcallelim -sroa -cross-dso-cfi -loop-deletion -instsimplify -sancov -consthoist -loop-unroll -memcpyopt -loop-distribute -loop-predication -loweratomic -loop-data-prefetch -speculative-execution -name-anon-globals -aggressive-instcombine -coro-cleanup -lcssa -aggressive-instcombine -called-value-propagation -sancov -loop-predication -loop-fusion -libcalls-shrinkwrap -partially-inline-libcalls -coro-cleanup -constprop -loop-guard-widening -break-crit-edges -separate-const-offset-from-gep -lower-matrix-intrinsics -always-inline -mergereturn -sink -lower-guard-intrinsic -break-crit-edges -slsr -sancov -loop-load-elim -strip -lcssa -instcombine -callsite-splitting -coro-split -bdce -rpo-functionattrs -early-cse-memssa -loop-reroll -sancov -die -simplifycfg -coro-elide -lower-constant-intrinsics -loop-data-prefetch -mergefunc -lcssa -nary-reassociate -simple-loop-unswitch -attributor -loop-reroll -name-anon-globals -adce -inferattrs -licm -cross-dso-cfi -newgvn -newgvn -indvars -inferattrs -inject-tli-mappings -loop-unroll -guard-widening -loop-interchange -loop-simplify -instcombine -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,0.9824466551326413,41.701881647109985,opt -dse -constprop -coro-split -sroa -mergereturn -cross-dso-cfi -rpo-functionattrs -memcpyopt -lower-widenable-condition -lowerinvoke -attributor -lowerinvoke -mergefunc -mergefunc -lower-constant-intrinsics -coro-early -prune-eh -loop-unroll-and-jam -slp-vectorizer -loop-unswitch -memcpyopt -loop-idiom -lcssa -post-inline-ee-instrument -jump-threading -constprop -gvn-hoist -simplifycfg -libcalls-shrinkwrap -gvn input.bc -o output.bc -benchmark://cBench-v1/tiffdither,0.9888985005767011,41.054413080215454,opt -infer-address-spaces -sink -elim-avail-extern -deadargelim -loop-distribute -gvn -loop-idiom -loop-deletion -rpo-functionattrs -ee-instrument -loop-versioning -simple-loop-unswitch -constprop -lower-expect -sancov -globalopt -elim-avail-extern -elim-avail-extern -dce -mergefunc -gvn -early-cse-memssa -die -irce -guard-widening -barrier -rewrite-statepoints-for-gc -mergereturn -gvn-hoist -loop-data-prefetch -functionattrs -mem2reg -partial-inliner -die -partial-inliner -strip-debug-declare -loop-distribute -coro-early -tailcallelim -mergereturn -lcssa -mldst-motion -libcalls-shrinkwrap -slsr -consthoist -infer-address-spaces -die -instsimplify -loop-load-elim -mergereturn -gvn -aggressive-instcombine -coro-cleanup -rewrite-statepoints-for-gc -consthoist -tailcallelim -aggressive-instcombine -hotcoldsplit -loop-reroll -strip-debug-declare -globalopt -memcpyopt -lower-matrix-intrinsics -correlated-propagation -newgvn -instcombine -strip -loop-guard-widening -loop-deletion -forceattrs -name-anon-globals -dse -libcalls-shrinkwrap -mergefunc -redundant-dbg-inst-elim -strip-nondebug -scalarizer -mldst-motion -sroa -globaldce -inferattrs -guard-widening -loop-unroll-and-jam -loop-instsimplify -instsimplify -partially-inline-libcalls -lower-widenable-condition -jump-threading -called-value-propagation -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiffdither,0.9970444059976932,49.48758888244629,opt -guard-widening -pgo-memop-opt -gvn-hoist -early-cse-memssa -aggressive-instcombine -strip-nondebug -name-anon-globals -guard-widening -instsimplify -cross-dso-cfi -mem2reg -float2int -loop-data-prefetch -lower-expect -loop-predication -correlated-propagation -insert-gcov-profiling -sink -redundant-dbg-inst-elim -scalarizer -coro-early -elim-avail-extern -adce -scalarizer -separate-const-offset-from-gep -aggressive-instcombine -strip-dead-prototypes -partially-inline-libcalls -licm -loop-simplify -loop-unroll -called-value-propagation -scalarizer -add-discriminators -gvn -callsite-splitting -gvn -inject-tli-mappings -deadargelim -redundant-dbg-inst-elim -loop-rotate -gvn-hoist -functionattrs -simple-loop-unswitch -strip -instnamer -instcombine -loop-data-prefetch -lcssa -early-cse-memssa -indvars -reassociate -strip-nondebug -instcombine -early-cse-memssa -lower-widenable-condition -loop-reroll -post-inline-ee-instrument -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,0.999315167243368,62.450594902038574,opt -lower-widenable-condition -gvn -cross-dso-cfi -strip-nondebug -always-inline -loweratomic -tailcallelim -lower-constant-intrinsics -indvars -mem2reg -float2int -ipconstprop -argpromotion -die -pgo-memop-opt -speculative-execution -dse -globalsplit -loop-fusion -pgo-memop-opt -called-value-propagation -flattencfg -callsite-splitting -loop-data-prefetch -loop-predication -prune-eh -jump-threading -callsite-splitting -div-rem-pairs -loop-simplifycfg -indvars -die -loop-unroll -licm -ipsccp -newgvn -simplifycfg -gvn-hoist -globalopt -coro-early -loop-simplify -loop-deletion -ipsccp -canonicalize-aliases -always-inline -coro-cleanup -globaldce -constprop -gvn -loop-load-elim -lower-guard-intrinsic -nary-reassociate -barrier -infer-address-spaces -lowerinvoke -always-inline -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0058751441753175,39.923675298690796,opt -post-inline-ee-instrument -coro-early -coro-early -add-discriminators -sroa -hotcoldsplit -loop-unroll -always-inline -insert-gcov-profiling -insert-gcov-profiling -indvars -memcpyopt -ipconstprop -always-inline -instcombine -insert-gcov-profiling -ee-instrument -rpo-functionattrs -adce -reg2mem -gvn-hoist -pgo-memop-opt -instnamer -called-value-propagation -rewrite-statepoints-for-gc -tailcallelim -sccp -barrier -flattencfg -simplifycfg -loweratomic -mergefunc -coro-elide -mem2reg -dse -forceattrs -deadargelim -strip-nondebug -loop-simplify -rpo-functionattrs -slsr -early-cse-memssa -loop-idiom -break-crit-edges -memcpyopt -called-value-propagation -loop-simplifycfg -lower-widenable-condition -mem2reg -dce -consthoist -jump-threading -licm -loop-simplify -adce -strip-dead-prototypes -loop-guard-widening -loop-idiom -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0083621683967705,67.24185132980347,opt -prune-eh -coro-early -loop-deletion -simplifycfg -instnamer -inject-tli-mappings -bdce -lower-expect -div-rem-pairs -lowerinvoke -loop-load-elim -mergefunc -nary-reassociate -partially-inline-libcalls -prune-eh -sroa -aggressive-instcombine -tailcallelim -gvn-hoist -loop-simplifycfg -sccp -simplifycfg -instsimplify -early-cse-memssa -forceattrs -add-discriminators -dse -insert-gcov-profiling -correlated-propagation -lower-matrix-intrinsics -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0100562283737027,38.78786373138428,opt -reg2mem -post-inline-ee-instrument -lower-matrix-intrinsics -dce -loop-distribute -ipsccp -newgvn -consthoist -sancov -load-store-vectorizer -mem2reg -indvars -sink -bdce -early-cse-memssa -loop-guard-widening -slp-vectorizer -tailcallelim -scalarizer -strip -licm -constmerge -cross-dso-cfi -mergereturn -gvn -simplifycfg -redundant-dbg-inst-elim -globalopt -inject-tli-mappings -inferattrs -libcalls-shrinkwrap -canonicalize-aliases -bdce -globaldce -instnamer -always-inline -rewrite-statepoints-for-gc -rpo-functionattrs -loop-vectorize -dse -div-rem-pairs -div-rem-pairs -simple-loop-unswitch -prune-eh -flattencfg -gvn -loop-deletion -elim-avail-extern -adce -functionattrs -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0121828143021916,41.328232288360596,opt -deadargelim -scalarizer -sancov -sancov -name-anon-globals -lowerinvoke -reg2mem -slsr -loop-guard-widening -die -jump-threading -argpromotion -loop-vectorize -loop-distribute -lower-constant-intrinsics -simple-loop-unswitch -loop-reroll -lower-expect -adce -separate-const-offset-from-gep -lower-guard-intrinsic -simple-loop-unswitch -reassociate -mem2reg -cross-dso-cfi -attributor -sroa -div-rem-pairs -guard-widening -mergefunc -barrier -forceattrs -redundant-dbg-inst-elim -lower-widenable-condition -loop-idiom -consthoist -mergeicmps -callsite-splitting -tailcallelim -globalsplit -add-discriminators -inject-tli-mappings -argpromotion -globalopt -loop-instsimplify -scalarizer -loop-guard-widening -loop-load-elim -mergefunc -instsimplify -nary-reassociate -loop-simplifycfg -deadargelim -loop-instsimplify -scalarizer -hotcoldsplit -simple-loop-unswitch -lower-expect -die -lcssa -early-cse-memssa -rewrite-statepoints-for-gc -strip-dead-prototypes -licm -loop-unswitch -instcombine -separate-const-offset-from-gep -loop-deletion -loop-versioning-licm -loop-versioning -simplifycfg -loop-interchange -attributor -redundant-dbg-inst-elim -globalopt -mldst-motion -gvn -loop-unroll-and-jam -argpromotion -cross-dso-cfi -loop-deletion -sancov -lower-expect -instcombine -loop-predication -gvn input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0269247404844288,40.07159352302551,opt -div-rem-pairs -mem2reg -mergereturn -mergeicmps -loop-distribute -instcombine -mergefunc -loop-load-elim -infer-address-spaces -loop-distribute -lcssa -forceattrs -loop-predication -dce -libcalls-shrinkwrap -mergeicmps -loop-versioning-licm -memcpyopt -irce -float2int -loop-fusion -float2int -break-crit-edges -div-rem-pairs -coro-elide -attributor -loop-deletion -coro-elide -name-anon-globals -rpo-functionattrs -irce -inferattrs -canonicalize-aliases -newgvn -lower-constant-intrinsics -lower-constant-intrinsics -argpromotion -simplifycfg -forceattrs -add-discriminators -loop-instsimplify -instcombine -inferattrs -prune-eh -slp-vectorizer -correlated-propagation -aggressive-instcombine -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0273212226066895,331.82224774360657,opt -strip-dead-prototypes -cross-dso-cfi -loop-distribute -mergefunc -loop-idiom -loop-distribute -lower-widenable-condition -loop-deletion -coro-cleanup -lcssa -post-inline-ee-instrument -elim-avail-extern -add-discriminators -consthoist -inferattrs -partially-inline-libcalls -sink -reg2mem -loop-deletion -coro-early -simplifycfg -strip-nondebug -lcssa -coro-cleanup -indvars -load-store-vectorizer -licm -always-inline -simple-loop-unswitch -instsimplify -sroa -mergeicmps -globaldce -separate-const-offset-from-gep -loweratomic -instcombine -tailcallelim -canonicalize-aliases -loop-predication -tailcallelim -newgvn -partially-inline-libcalls -callsite-splitting -alignment-from-assumptions -strip-nondebug -coro-elide -loop-interchange -coro-split -load-store-vectorizer -lower-constant-intrinsics -guard-widening -nary-reassociate -lowerinvoke -loop-deletion -float2int -constprop -loop-simplify -simplifycfg -separate-const-offset-from-gep -consthoist -early-cse-memssa -jump-threading -newgvn -cross-dso-cfi -pgo-memop-opt -elim-avail-extern -attributor -scalarizer -barrier -coro-cleanup -early-cse-memssa -nary-reassociate -inferattrs -loop-simplify -ipconstprop -speculative-execution -strip -strip-dead-prototypes -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.9665311977049962,47.10209608078003,opt -name-anon-globals -globalopt -loop-rotate -lower-widenable-condition -flattencfg -instnamer -div-rem-pairs -lcssa -loop-deletion -loop-rotate -die -ipconstprop -libcalls-shrinkwrap -sink -simplifycfg -loop-simplifycfg -infer-address-spaces -coro-early -attributor -scalarizer -bdce -mem2reg -lowerinvoke -attributor -loop-unroll-and-jam -pgo-memop-opt -ipconstprop -globalsplit -instsimplify -strip -hotcoldsplit -newgvn -instsimplify -licm -loop-distribute -loop-distribute -lcssa -nary-reassociate -lower-guard-intrinsic -reassociate -loop-unroll -guard-widening -lcssa -irce -indvars -strip -coro-early -strip -constprop -mergeicmps -canonicalize-aliases -instcombine -instsimplify -loop-reroll -mergeicmps -loop-fusion -float2int -dse -gvn -rpo-functionattrs -gvn-hoist -flattencfg -loop-distribute -reassociate input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.9784843413817833,45.35628080368042,opt -sink -deadargelim -mldst-motion -gvn-hoist -globalopt -elim-avail-extern -infer-address-spaces -instnamer -lcssa -ipconstprop -insert-gcov-profiling -insert-gcov-profiling -inferattrs -mergeicmps -adce -loop-simplifycfg -callsite-splitting -mem2reg -loop-fusion -instsimplify -redundant-dbg-inst-elim -callsite-splitting -mem2reg -tailcallelim -aggressive-instcombine -loop-rotate -constprop -attributor -gvn -consthoist -mldst-motion -sancov -argpromotion -redundant-dbg-inst-elim -simplifycfg -nary-reassociate input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.9825142583928143,44.82570767402649,opt -callsite-splitting -rpo-functionattrs -loop-load-elim -partially-inline-libcalls -lower-matrix-intrinsics -separate-const-offset-from-gep -nary-reassociate -lowerinvoke -dse -sink -loop-data-prefetch -separate-const-offset-from-gep -strip-nondebug -gvn -elim-avail-extern -loop-vectorize -strip-nondebug -strip -lower-expect -coro-cleanup -irce -bdce -loop-load-elim -constprop -lowerinvoke -mem2reg -gvn -simplifycfg -inferattrs -ipsccp -lower-guard-intrinsic -memcpyopt -early-cse-memssa -mergeicmps -attributor -strip -argpromotion -loop-distribute -loop-fusion -ipsccp -coro-cleanup -newgvn -slp-vectorizer -loop-data-prefetch -mem2reg -die -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.990608244253953,337.1097273826599,opt -partially-inline-libcalls -mem2reg -attributor -consthoist -loweratomic -libcalls-shrinkwrap -loop-guard-widening -loweratomic -lower-expect -instcombine -loop-fusion -inferattrs -argpromotion -aggressive-instcombine -loop-rotate -elim-avail-extern -cross-dso-cfi -strip -div-rem-pairs -correlated-propagation -ee-instrument -sccp -post-inline-ee-instrument -simple-loop-unswitch -loop-interchange -forceattrs -add-discriminators -lcssa -loop-load-elim -rewrite-statepoints-for-gc -inject-tli-mappings -sink -mergeicmps -strip -coro-early -rewrite-statepoints-for-gc -lower-guard-intrinsic -lower-constant-intrinsics -argpromotion -newgvn -cross-dso-cfi -cross-dso-cfi -lower-constant-intrinsics -instnamer -loop-idiom -hotcoldsplit -mergereturn -licm -loop-load-elim -tailcallelim -coro-cleanup -sink -sccp -sroa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.9914278883917897,41.52029347419739,opt -rpo-functionattrs -loop-unswitch -elim-avail-extern -ipsccp -dse -float2int -consthoist -lower-widenable-condition -flattencfg -strip-dead-prototypes -functionattrs -instcombine -partially-inline-libcalls -coro-cleanup -hotcoldsplit -rpo-functionattrs -libcalls-shrinkwrap -rpo-functionattrs -partially-inline-libcalls -slp-vectorizer -mergeicmps -coro-early -gvn-hoist -simple-loop-unswitch -loop-instsimplify -loop-guard-widening -pgo-memop-opt -loop-guard-widening -loop-reduce -div-rem-pairs -instsimplify -alignment-from-assumptions -rewrite-statepoints-for-gc -gvn-hoist -name-anon-globals -sroa -loop-instsimplify -coro-early -reassociate -libcalls-shrinkwrap -float2int -sancov -break-crit-edges -partial-inliner -lcssa -scalarizer -strip -early-cse-memssa -newgvn -memcpyopt -globalopt -deadargelim -globalsplit -simplifycfg -mergeicmps -functionattrs -mldst-motion -lower-matrix-intrinsics -ipsccp -coro-cleanup -dse -loop-unswitch -instcombine -ipconstprop -reg2mem -flattencfg -flattencfg -loop-reduce -coro-split -loop-deletion -loop-simplify -canonicalize-aliases -loop-load-elim -prune-eh -called-value-propagation -sccp -loop-versioning -coro-split -break-crit-edges -inject-tli-mappings -sroa -ipconstprop -lower-matrix-intrinsics -functionattrs -always-inline -elim-avail-extern -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.9923499880468563,40.777365922927856,opt -cross-dso-cfi -gvn -die -mem2reg -lcssa -rpo-functionattrs -reassociate -simplifycfg -name-anon-globals -lower-guard-intrinsic -inject-tli-mappings -irce -irce -jump-threading -loop-versioning-licm -inject-tli-mappings -aggressive-instcombine -newgvn -strip-debug-declare -sink -reassociate -aggressive-instcombine input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.9933062395409992,46.45159435272217,opt -separate-const-offset-from-gep -mergefunc -strip -ee-instrument -reg2mem -always-inline -scalarizer -coro-cleanup -flattencfg -lcssa -globaldce -sroa -memcpyopt -slp-vectorizer -loop-deletion -coro-early -loop-reduce -break-crit-edges -die -callsite-splitting -instsimplify -coro-split -sroa -instcombine -flattencfg -lower-widenable-condition -loop-unroll-and-jam -bdce -coro-cleanup -mergeicmps -redundant-dbg-inst-elim -loop-simplifycfg -prune-eh -rewrite-statepoints-for-gc -instsimplify -elim-avail-extern -ipsccp -strip-nondebug -dse -gvn -strip -consthoist -elim-avail-extern -partially-inline-libcalls -slsr -loop-idiom -div-rem-pairs -alignment-from-assumptions -coro-elide -simplifycfg -die input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,0.9949796796557496,49.326151609420776,opt -forceattrs -loop-distribute -slp-vectorizer -constmerge -libcalls-shrinkwrap -loop-idiom -sroa -gvn-hoist -simplifycfg -loop-sink -instnamer -instnamer -gvn -constmerge -loop-guard-widening -lower-constant-intrinsics -pgo-memop-opt -forceattrs -rpo-functionattrs -scalarizer -instnamer -loop-rotate -loweratomic -canonicalize-aliases -sink -instcombine -separate-const-offset-from-gep -aggressive-instcombine -loop-predication -instsimplify -ee-instrument -deadargelim -coro-cleanup -coro-split -callsite-splitting -lower-matrix-intrinsics -slsr -loop-predication -hotcoldsplit -mergeicmps -reassociate -always-inline -bdce -strip-nondebug -globaldce -loop-fusion -hotcoldsplit -loop-instsimplify -ipsccp -coro-split -ipconstprop -globaldce -barrier -strip-nondebug -coro-cleanup -sroa -inferattrs -mldst-motion -mergeicmps -post-inline-ee-instrument -globalsplit -globalsplit -adce -lower-guard-intrinsic -sccp -strip-nondebug -loop-reduce -break-crit-edges -deadargelim -memcpyopt -globalopt -sccp -loop-fusion -alignment-from-assumptions -loop-unroll -adce -speculative-execution -dse -die -gvn -coro-cleanup -strip -simple-loop-unswitch -correlated-propagation -lower-guard-intrinsic -constmerge -simplifycfg -gvn -gvn-hoist -lowerinvoke -called-value-propagation -instsimplify input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0114408660906389,45.817564964294434,opt -deadargelim -separate-const-offset-from-gep -alignment-from-assumptions -lower-widenable-condition -loop-versioning -sroa -loop-fusion -loop-distribute -mergereturn -alignment-from-assumptions -guard-widening -partially-inline-libcalls -hotcoldsplit -elim-avail-extern -break-crit-edges -rpo-functionattrs -alignment-from-assumptions -deadargelim -gvn-hoist -deadargelim -consthoist -break-crit-edges -loop-vectorize -reassociate -loop-load-elim -strip-nondebug -instcombine -div-rem-pairs -callsite-splitting -lowerinvoke -strip-dead-prototypes -loop-guard-widening -constprop -loop-versioning-licm -loop-interchange -loop-guard-widening -sroa -load-store-vectorizer -instcombine -loop-interchange -loop-vectorize -strip -newgvn -loop-sink -sroa -rewrite-statepoints-for-gc -simple-loop-unswitch -loop-unroll-and-jam -simplifycfg -loop-sink -float2int -simplifycfg -loop-fusion -separate-const-offset-from-gep -loop-predication -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0162221235613536,45.437578201293945,opt -lowerinvoke -strip -inject-tli-mappings -mem2reg -called-value-propagation -callsite-splitting -globalopt -irce -simplifycfg -irce -sccp -infer-address-spaces -instcombine -loop-predication -slp-vectorizer -constmerge -instsimplify -canonicalize-aliases -memcpyopt -always-inline -dse -functionattrs -sancov -rewrite-statepoints-for-gc -lower-expect -dse -irce -jump-threading -aggressive-instcombine -loop-deletion -adce -separate-const-offset-from-gep -deadargelim -globalsplit -add-discriminators -loop-sink -strip-nondebug -mem2reg -scalarizer -constmerge -newgvn input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.994413407821229,12.527162551879883,opt -indvars -loop-unroll -infer-address-spaces -guard-widening -loop-reroll -loop-simplifycfg -loop-interchange -partial-inliner -nary-reassociate -loop-unroll-and-jam -coro-cleanup -rewrite-statepoints-for-gc -mergeicmps -slsr -loop-distribute -reassociate -lcssa -inferattrs -alignment-from-assumptions -coro-cleanup -loop-load-elim -mem2reg -slp-vectorizer -instsimplify -canonicalize-aliases -globalsplit -loop-reroll -instcombine -loop-load-elim -loop-simplifycfg -sroa -lower-widenable-condition -loop-instsimplify -rewrite-statepoints-for-gc -simplifycfg -rpo-functionattrs -sccp -nary-reassociate -lowerinvoke -loop-data-prefetch -lower-guard-intrinsic -loop-predication -sink -rpo-functionattrs -constprop -loop-unswitch -reassociate -lower-matrix-intrinsics -attributor -pgo-memop-opt -elim-avail-extern -inline -reassociate -speculative-execution -mem2reg -libcalls-shrinkwrap -jump-threading -loop-vectorize -loop-reduce -coro-split -functionattrs -simplifycfg -load-store-vectorizer -constprop -infer-address-spaces -loop-distribute -loop-versioning-licm -mergefunc -globalsplit -licm -lower-matrix-intrinsics -barrier -forceattrs -name-anon-globals -ee-instrument -cross-dso-cfi -lowerinvoke -instsimplify -pgo-memop-opt -die -reassociate -gvn input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9972067039106146,11.98168158531189,opt -post-inline-ee-instrument -called-value-propagation -alignment-from-assumptions -licm -prune-eh -loop-simplifycfg -loop-deletion -redundant-dbg-inst-elim -loop-sink -sroa -coro-early -mergereturn -lowerswitch -constprop -instsimplify -name-anon-globals -mergereturn -ipconstprop -alignment-from-assumptions -cross-dso-cfi -nary-reassociate -strip-debug-declare -instsimplify -argpromotion -post-inline-ee-instrument -loop-unswitch -barrier -indvars -strip-debug-declare -lowerinvoke -ee-instrument -instcombine -simplifycfg -loop-load-elim -break-crit-edges -argpromotion -load-store-vectorizer -loop-load-elim -callsite-splitting -newgvn -loop-reduce -gvn-hoist -inferattrs -loop-reduce -slp-vectorizer -irce -callsite-splitting -coro-early -add-discriminators -loop-sink -loop-reduce -die -called-value-propagation -constprop -rpo-functionattrs -irce -loop-versioning -deadargelim -loop-idiom -strip-debug-declare -post-inline-ee-instrument -loop-unroll -indvars -strip-debug-declare -separate-const-offset-from-gep -inline -loweratomic -loop-guard-widening -indvars -libcalls-shrinkwrap -loop-idiom -loweratomic -memcpyopt -callsite-splitting -coro-cleanup -pgo-memop-opt -instsimplify -reg2mem -float2int -add-discriminators -lower-constant-intrinsics -lower-expect -loop-simplify -globaldce -inject-tli-mappings -flattencfg -inject-tli-mappings -globalsplit -sroa -lower-expect -adce -forceattrs -loop-deletion -loop-simplify -inject-tli-mappings -sancov -inferattrs -loop-versioning -newgvn -loop-reroll -loop-load-elim -simplifycfg -instsimplify input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9972067039106146,12.768595933914185,opt -barrier -loop-predication -infer-address-spaces -loop-reroll -add-discriminators -prune-eh -aggressive-instcombine -strip -reg2mem -mldst-motion -alignment-from-assumptions -callsite-splitting -loop-unroll-and-jam -sancov -loop-predication -memcpyopt -loop-distribute -lower-expect -licm -break-crit-edges -deadargelim -sccp -loop-predication -sancov -correlated-propagation -slp-vectorizer -globalopt -gvn -slsr -lower-constant-intrinsics -loop-distribute -post-inline-ee-instrument -aggressive-instcombine -simplifycfg -instnamer -simple-loop-unswitch -reg2mem -inject-tli-mappings -constmerge -called-value-propagation -dce -mergeicmps -reassociate -strip-nondebug -forceattrs -consthoist -ipconstprop -strip-dead-prototypes -strip -redundant-dbg-inst-elim -attributor -deadargelim -mergereturn -loop-distribute -strip-dead-prototypes -forceattrs -constprop -partial-inliner -constmerge -argpromotion -elim-avail-extern -inferattrs -loop-simplify -globalsplit -loop-simplifycfg -lowerinvoke -sroa -mem2reg -loop-sink -deadargelim -adce -lower-matrix-intrinsics -loop-unroll -slp-vectorizer -globalopt -loop-instsimplify -nary-reassociate -loop-reduce -lowerinvoke -libcalls-shrinkwrap -rewrite-statepoints-for-gc -deadargelim -inject-tli-mappings -pgo-memop-opt -loop-unswitch -gvn-hoist -sroa -tailcallelim -lowerinvoke -simple-loop-unswitch -inline -loop-load-elim -consthoist -strip -strip-nondebug -slp-vectorizer -prune-eh -add-discriminators -lower-guard-intrinsic -add-discriminators -canonicalize-aliases -flattencfg -mldst-motion -simple-loop-unswitch -globalsplit -simple-loop-unswitch -mergeicmps -slsr -mergeicmps -strip-dead-prototypes -instnamer -load-store-vectorizer -float2int -mldst-motion -coro-early -partially-inline-libcalls -sccp -consthoist -float2int -attributor -constmerge -strip-dead-prototypes -ee-instrument -sccp -early-cse-memssa -strip -instsimplify -early-cse-memssa -die -loop-load-elim -loop-sink -mergereturn -gvn-hoist -consthoist -dce -constprop -sccp -float2int -inject-tli-mappings -guard-widening -slp-vectorizer -loop-unroll-and-jam -lowerswitch -inferattrs -lower-widenable-condition -globaldce -lowerswitch -sccp -lower-constant-intrinsics -float2int -inline -slp-vectorizer -sroa -dse -loop-unroll-and-jam -loop-versioning -tailcallelim -mem2reg -partial-inliner -loop-fusion -infer-address-spaces -mldst-motion -break-crit-edges -loop-predication -loop-unroll -newgvn -callsite-splitting -die -div-rem-pairs -instcombine -loop-data-prefetch -constmerge -float2int -redundant-dbg-inst-elim -simple-loop-unswitch -sroa -simple-loop-unswitch -loop-deletion -callsite-splitting -simplifycfg -loweratomic -loop-sink -inline -memcpyopt -add-discriminators -instnamer -loop-unroll -loop-deletion -globaldce -constprop -inject-tli-mappings -rewrite-statepoints-for-gc -always-inline -loop-simplify -lower-expect -loop-reroll -simple-loop-unswitch -correlated-propagation -coro-split -flattencfg -loweratomic -aggressive-instcombine -scalarizer -loop-idiom -separate-const-offset-from-gep -attributor -die -rewrite-statepoints-for-gc -coro-split -newgvn input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9972067039106147,12.197010517120361,opt -guard-widening -name-anon-globals -name-anon-globals -barrier -strip-nondebug -mem2reg -add-discriminators -pgo-memop-opt -insert-gcov-profiling -sink -die -sancov -strip-dead-prototypes -indvars -mergereturn -rewrite-statepoints-for-gc -loop-versioning-licm -loop-reduce -bdce -mergefunc -adce -flattencfg -guard-widening -break-crit-edges -mldst-motion -instsimplify -instnamer -instsimplify -bdce -instcombine -mergefunc -forceattrs -coro-early -loweratomic -loop-unswitch -infer-address-spaces -loop-fusion -load-store-vectorizer -rewrite-statepoints-for-gc -licm -ipsccp -separate-const-offset-from-gep -post-inline-ee-instrument -mergeicmps -mldst-motion -partial-inliner -attributor -load-store-vectorizer -partially-inline-libcalls -ee-instrument -nary-reassociate -dce -attributor -loop-distribute -functionattrs -name-anon-globals -nary-reassociate -ipsccp -globalsplit -strip-debug-declare -rpo-functionattrs -ee-instrument -strip-debug-declare -licm -inject-tli-mappings -sancov -forceattrs -early-cse-memssa -instnamer -bdce -licm -lower-widenable-condition -deadargelim -always-inline -loop-deletion -partially-inline-libcalls -newgvn -sink -ipsccp -add-discriminators -slp-vectorizer -div-rem-pairs -infer-address-spaces -loop-deletion -correlated-propagation -correlated-propagation -instnamer -loop-idiom -name-anon-globals -deadargelim -mergeicmps -coro-split -irce -tailcallelim -called-value-propagation -lower-expect -licm -loop-versioning -mergereturn -tailcallelim -loop-versioning-licm -aggressive-instcombine -functionattrs -mem2reg -constprop -sroa -lower-expect -mem2reg -libcalls-shrinkwrap -loweratomic -sccp -sccp -ipconstprop -barrier -loop-distribute -loop-versioning -lower-constant-intrinsics -redundant-dbg-inst-elim -scalarizer -aggressive-instcombine -gvn-hoist -speculative-execution -loop-unroll -partial-inliner -simple-loop-unswitch -alignment-from-assumptions -memcpyopt -strip -float2int -loop-vectorize -loop-versioning-licm -loop-vectorize -loop-reduce -rpo-functionattrs -die -loop-versioning-licm -loop-unswitch -licm -loop-reroll -called-value-propagation -always-inline -strip -lower-expect -newgvn -constmerge -loop-versioning-licm -adce -loop-predication -simple-loop-unswitch -consthoist -cross-dso-cfi -licm -adce -lower-widenable-condition -loop-idiom -simplifycfg -barrier -slp-vectorizer -loop-simplify -loop-unroll-and-jam -gvn-hoist -strip-dead-prototypes -inferattrs -loop-data-prefetch -elim-avail-extern -sccp -loweratomic -correlated-propagation -div-rem-pairs -lcssa -add-discriminators -functionattrs -instcombine -constprop -loop-instsimplify -strip-nondebug -separate-const-offset-from-gep -loop-load-elim -sccp -name-anon-globals -float2int -lower-expect -loop-simplify -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9972067039106147,12.215384006500244,opt -scalarizer -loop-distribute -mldst-motion -hotcoldsplit -loop-guard-widening -mergefunc -infer-address-spaces -add-discriminators -ipconstprop -cross-dso-cfi -tailcallelim -deadargelim -dce -instsimplify -loop-deletion -strip-nondebug -ipsccp -constprop -loop-instsimplify -inferattrs -loop-instsimplify -adce -forceattrs -tailcallelim -inferattrs -div-rem-pairs -loop-guard-widening -canonicalize-aliases -infer-address-spaces -always-inline -inject-tli-mappings -name-anon-globals -elim-avail-extern -scalarizer -strip-nondebug -elim-avail-extern -partial-inliner -coro-cleanup -irce -deadargelim -loop-reroll -ipconstprop -loop-simplify -redundant-dbg-inst-elim -loop-reroll -mergeicmps -scalarizer -lower-guard-intrinsic -loop-instsimplify -loop-deletion -irce -barrier -loop-unswitch -lower-expect -name-anon-globals -lower-widenable-condition -infer-address-spaces -mem2reg -loop-simplifycfg -elim-avail-extern -rewrite-statepoints-for-gc -adce -libcalls-shrinkwrap -post-inline-ee-instrument -reg2mem -bdce -strip -loop-instsimplify -newgvn -lower-expect -pgo-memop-opt -loop-simplify -globalopt -coro-split -sancov -instsimplify -constprop -loop-vectorize -mem2reg -redundant-dbg-inst-elim -slp-vectorizer -partially-inline-libcalls -callsite-splitting -constmerge -loop-simplify -loop-interchange -loop-unroll -loop-load-elim -inline -loop-load-elim -rewrite-statepoints-for-gc -memcpyopt -rpo-functionattrs -scalarizer -sancov -strip-dead-prototypes -constmerge -loop-sink -name-anon-globals -constmerge -globalsplit -lower-expect -nary-reassociate -loop-versioning-licm -lower-guard-intrinsic -adce -partial-inliner -loop-vectorize -called-value-propagation -partial-inliner -lower-guard-intrinsic -strip -loop-simplifycfg -lower-expect -mem2reg -simplifycfg -coro-cleanup -nary-reassociate -loop-simplify -barrier -loop-guard-widening -lower-matrix-intrinsics -bdce -deadargelim -loop-fusion -cross-dso-cfi -strip-nondebug -separate-const-offset-from-gep -sink -loop-vectorize -cross-dso-cfi -loop-unroll -correlated-propagation -loop-simplifycfg -lcssa -ipsccp -load-store-vectorizer -loop-reroll -simplifycfg -coro-elide -consthoist -gvn-hoist -elim-avail-extern -instsimplify -jump-threading -instsimplify -sancov -deadargelim -die -instnamer -add-discriminators -alignment-from-assumptions -sink -forceattrs -coro-early -dse -ipconstprop -loop-reroll -aggressive-instcombine -loop-reroll -globalsplit -mergeicmps -gvn -strip-debug-declare -sroa -instnamer -irce -sink -newgvn -add-discriminators -loop-deletion -strip-nondebug -instsimplify -loop-unroll -barrier -guard-widening -name-anon-globals -mergereturn -loop-vectorize -early-cse-memssa -die -bdce -reassociate -bdce -pgo-memop-opt -cross-dso-cfi -loop-interchange -mldst-motion -lower-widenable-condition -adce -add-discriminators -strip-dead-prototypes -lower-constant-intrinsics -attributor -simple-loop-unswitch -deadargelim -lowerswitch -loweratomic -callsite-splitting -gvn-hoist -flattencfg -speculative-execution -loop-unswitch -lowerswitch -mem2reg -loop-simplify -slsr -lcssa -canonicalize-aliases -canonicalize-aliases -slsr -always-inline -cross-dso-cfi -lowerinvoke -indvars -early-cse-memssa -callsite-splitting -globalsplit -lower-guard-intrinsic -coro-elide -insert-gcov-profiling -lower-widenable-condition -gvn-hoist -elim-avail-extern -dce -loweratomic -lower-constant-intrinsics -nary-reassociate -add-discriminators -adce -prune-eh -gvn -insert-gcov-profiling -cross-dso-cfi -memcpyopt -ipsccp -called-value-propagation -reassociate -irce -pgo-memop-opt -licm -loop-unroll-and-jam -deadargelim -dse -lower-widenable-condition -loop-simplify -lowerinvoke -memcpyopt -bdce -sancov -instsimplify -forceattrs -strip-dead-prototypes -consthoist -mem2reg -redundant-dbg-inst-elim -memcpyopt -inline -hotcoldsplit -jump-threading -gvn-hoist -mergeicmps -gvn -mem2reg -name-anon-globals -lower-expect -loop-sink -strip-nondebug -ee-instrument -attributor -ipsccp -licm -pgo-memop-opt -post-inline-ee-instrument -sink -loop-reduce -early-cse-memssa -loop-guard-widening -licm -break-crit-edges -lower-constant-intrinsics -canonicalize-aliases -loop-data-prefetch -coro-early -instnamer -simplifycfg -infer-address-spaces -instcombine -lowerswitch -coro-early -instsimplify -loop-versioning -add-discriminators -slsr -partial-inliner -barrier -coro-cleanup -lowerswitch -reassociate -licm -loop-unroll -loop-sink -strip-dead-prototypes -nary-reassociate -deadargelim -globaldce -simplifycfg -argpromotion -libcalls-shrinkwrap -prune-eh -loop-deletion -infer-address-spaces -early-cse-memssa -loop-unroll -infer-address-spaces -attributor -add-discriminators -flattencfg -load-store-vectorizer -lower-constant-intrinsics -loop-predication -early-cse-memssa -ipsccp -lowerswitch -speculative-execution -newgvn -sancov -flattencfg -reg2mem -ipsccp -libcalls-shrinkwrap -loop-idiom -lower-widenable-condition -loop-idiom -argpromotion -functionattrs -memcpyopt -mergefunc -loop-sink -globalsplit -always-inline -inject-tli-mappings -ee-instrument -loop-distribute -constprop -memcpyopt -simplifycfg -guard-widening -globaldce -ee-instrument -lowerinvoke -loop-sink -inject-tli-mappings -consthoist -rpo-functionattrs -infer-address-spaces -float2int -lower-guard-intrinsic -tailcallelim -correlated-propagation -loop-unroll-and-jam -pgo-memop-opt -scalarizer -load-store-vectorizer -instnamer -insert-gcov-profiling -alignment-from-assumptions -globalsplit -inject-tli-mappings -cross-dso-cfi -slsr -tailcallelim -dce -loop-data-prefetch -callsite-splitting -mergeicmps -callsite-splitting -globalopt -dse -pgo-memop-opt -aggressive-instcombine -irce -div-rem-pairs -lowerswitch -dce -post-inline-ee-instrument -libcalls-shrinkwrap -ipconstprop -lcssa -callsite-splitting -attributor -loop-idiom -mem2reg input.bc -o output.bc +benchmark://cbench-v1/adpcm,0.9999999999999999,12.475622177124023,opt -loweratomic -prune-eh -guard-widening -prune-eh -constmerge -gvn-hoist -gvn -coro-cleanup -load-store-vectorizer -scalarizer -jump-threading -slp-vectorizer -lower-guard-intrinsic -loop-reduce -nary-reassociate -mem2reg -lower-matrix-intrinsics -tailcallelim -constmerge -aggressive-instcombine -forceattrs -name-anon-globals -licm -constprop -consthoist -loop-deletion -pgo-memop-opt -div-rem-pairs -loop-simplifycfg -argpromotion -inject-tli-mappings -globalopt -slsr -loop-deletion -gvn -coro-elide -hotcoldsplit -instcombine -infer-address-spaces -loop-guard-widening -loop-vectorize -loop-sink -name-anon-globals -elim-avail-extern -redundant-dbg-inst-elim -loop-versioning -break-crit-edges -scalarizer -elim-avail-extern -irce -functionattrs -constprop -coro-cleanup -lower-constant-intrinsics -coro-early -mem2reg -correlated-propagation -sink -early-cse-memssa -early-cse-memssa -add-discriminators -dse -loop-distribute -libcalls-shrinkwrap -constprop -loop-instsimplify -loop-distribute -strip-dead-prototypes -strip-nondebug -libcalls-shrinkwrap -lower-matrix-intrinsics -coro-elide -tailcallelim -callsite-splitting -lowerswitch -libcalls-shrinkwrap -loop-simplify -lcssa -gvn-hoist -flattencfg -instnamer -load-store-vectorizer -dse -infer-address-spaces -loop-unswitch -prune-eh -forceattrs -alignment-from-assumptions -consthoist -guard-widening -lower-matrix-intrinsics -redundant-dbg-inst-elim -coro-cleanup -scalarizer -simple-loop-unswitch -rewrite-statepoints-for-gc -coro-early -sink -lcssa -gvn-hoist -loop-distribute -loop-deletion -insert-gcov-profiling -loop-distribute -loop-interchange -globalsplit -add-discriminators -loop-simplify -simplifycfg -prune-eh -always-inline -lower-guard-intrinsic -irce -simplifycfg -strip-debug-declare -argpromotion -strip -instcombine -sancov -gvn-hoist -consthoist -lowerinvoke -globalopt -loop-reduce -consthoist -argpromotion -rpo-functionattrs -deadargelim -jump-threading -barrier -functionattrs -speculative-execution -argpromotion -loop-distribute -bdce -mergereturn -ipconstprop -loop-fusion -loop-idiom -loop-guard-widening -mldst-motion -name-anon-globals -post-inline-ee-instrument -newgvn -functionattrs -lower-matrix-intrinsics -float2int -loop-sink -post-inline-ee-instrument -loop-idiom -scalarizer -always-inline -name-anon-globals -coro-early -strip -gvn -load-store-vectorizer -loop-reduce -flattencfg -inferattrs -reg2mem -aggressive-instcombine -bdce -argpromotion -memcpyopt -lcssa -loop-distribute -infer-address-spaces -add-discriminators -coro-split -lower-widenable-condition -strip-dead-prototypes -lower-guard-intrinsic -always-inline -add-discriminators -called-value-propagation -bdce -mergefunc -instnamer -loop-reroll -tailcallelim -div-rem-pairs -loweratomic -reg2mem -sancov -coro-elide -ee-instrument -sroa -argpromotion -simplifycfg -simplifycfg -partially-inline-libcalls -inferattrs -gvn -sancov -strip-nondebug -lcssa -licm -tailcallelim -ee-instrument -canonicalize-aliases -loop-fusion -functionattrs -lowerswitch -always-inline -alignment-from-assumptions -loop-simplify -lowerinvoke -separate-const-offset-from-gep -lowerswitch -lcssa -gvn -alignment-from-assumptions -sink -aggressive-instcombine -break-crit-edges -scalarizer -float2int -indvars -gvn -ipconstprop -loop-guard-widening -nary-reassociate -instcombine -die -loop-unswitch -loop-idiom -pgo-memop-opt -consthoist -loop-unroll-and-jam -slsr -attributor -adce -gvn-hoist -slp-vectorizer -strip -mem2reg -lower-widenable-condition -strip-nondebug -licm -coro-elide -ee-instrument -consthoist -constprop -simplifycfg -functionattrs -coro-cleanup -alignment-from-assumptions -called-value-propagation -slsr -functionattrs -loop-reroll -loop-simplifycfg -forceattrs -cross-dso-cfi -loop-data-prefetch -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0000000000000002,12.368368148803711,opt -libcalls-shrinkwrap -globaldce -globalopt -loop-sink -callsite-splitting -post-inline-ee-instrument -mergeicmps -jump-threading -loop-instsimplify -mldst-motion -lowerswitch -sccp -sccp -elim-avail-extern -gvn -add-discriminators -ipsccp -loop-versioning-licm -insert-gcov-profiling -mergeicmps -coro-cleanup -bdce -constprop -strip -loop-fusion -callsite-splitting -early-cse-memssa -mergefunc -loop-instsimplify -strip-nondebug -forceattrs -forceattrs -mergereturn -strip-dead-prototypes -coro-split -aggressive-instcombine -reassociate -coro-cleanup -loop-simplifycfg -sink -load-store-vectorizer -constprop -loop-unswitch -loop-distribute -lower-matrix-intrinsics -float2int -pgo-memop-opt -loop-unroll -loop-unroll-and-jam -guard-widening -reg2mem -ee-instrument -always-inline -strip -slp-vectorizer -flattencfg -deadargelim -called-value-propagation -globalopt -mldst-motion -consthoist -infer-address-spaces -loop-fusion -infer-address-spaces -post-inline-ee-instrument -partial-inliner -loop-sink -deadargelim -sroa -lcssa -loop-versioning-licm -simplifycfg -simplifycfg -load-store-vectorizer -deadargelim -partial-inliner -loop-fusion -redundant-dbg-inst-elim -partial-inliner -partially-inline-libcalls -elim-avail-extern -constprop -loop-deletion -memcpyopt -lowerswitch -loop-predication -strip-debug-declare -lower-guard-intrinsic -dce -indvars -licm -deadargelim -coro-early -partially-inline-libcalls -functionattrs -loop-instsimplify -loop-idiom -lowerswitch -separate-const-offset-from-gep -instsimplify -redundant-dbg-inst-elim -loop-deletion -scalarizer -instcombine -memcpyopt -irce -lower-guard-intrinsic -indvars -loop-distribute -mem2reg -gvn -aggressive-instcombine -loop-interchange -always-inline -rewrite-statepoints-for-gc -lower-widenable-condition -partial-inliner -sccp -alignment-from-assumptions -gvn-hoist -attributor -dse -bdce -insert-gcov-profiling -argpromotion -gvn -loop-distribute -loop-simplify -die -instnamer -memcpyopt -coro-elide -coro-split -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0027932960893855,12.703411340713501,opt -irce -consthoist -separate-const-offset-from-gep -sroa -add-discriminators -inferattrs -sroa -loop-data-prefetch -forceattrs -partially-inline-libcalls -loop-fusion -mldst-motion -flattencfg -loop-distribute -simplifycfg -callsite-splitting -separate-const-offset-from-gep -sccp -lower-constant-intrinsics -instcombine -indvars -loop-vectorize -add-discriminators -nary-reassociate -strip-debug-declare -float2int -loop-distribute -insert-gcov-profiling -jump-threading -reassociate -flattencfg -sink -add-discriminators -memcpyopt -strip-dead-prototypes -loop-vectorize -ipconstprop -loop-vectorize -lower-constant-intrinsics -prune-eh -correlated-propagation -loop-idiom -loop-fusion -coro-cleanup -lowerswitch -cross-dso-cfi -adce -strip-nondebug -speculative-execution -mergefunc -lower-widenable-condition -infer-address-spaces -alignment-from-assumptions -sccp -gvn -newgvn -strip-debug-declare -loop-sink -strip -div-rem-pairs -guard-widening -strip-debug-declare -slsr -strip-dead-prototypes -strip -loop-interchange -always-inline -mergefunc -sccp -gvn -tailcallelim -consthoist -separate-const-offset-from-gep -instcombine input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.005586592178771,12.421398878097534,opt -loop-interchange -mldst-motion -instcombine -speculative-execution -loop-load-elim -loop-versioning -strip-debug-declare -partially-inline-libcalls -simplifycfg -libcalls-shrinkwrap -globaldce -globalopt -barrier -prune-eh -infer-address-spaces -reassociate -loop-unroll -callsite-splitting -reg2mem -loop-load-elim -dse -called-value-propagation -loop-versioning-licm -infer-address-spaces -mergefunc -loop-interchange -nary-reassociate -die -loop-data-prefetch -coro-early -loop-vectorize -constprop -newgvn -scalarizer -mergefunc -loop-guard-widening -globalsplit -loop-unswitch -correlated-propagation -partially-inline-libcalls -early-cse-memssa -strip-nondebug -sancov -loop-versioning -speculative-execution -newgvn -alignment-from-assumptions -mergereturn -licm -coro-split -mergeicmps -newgvn -lower-widenable-condition -strip-nondebug -redundant-dbg-inst-elim -globaldce -tailcallelim -jump-threading -coro-elide -instnamer -redundant-dbg-inst-elim -break-crit-edges -add-discriminators -mergefunc -argpromotion -add-discriminators -newgvn -tailcallelim -ipconstprop -lowerinvoke -attributor -insert-gcov-profiling -load-store-vectorizer -loop-versioning -indvars -lower-expect -simplifycfg -instsimplify -constmerge -loop-distribute -loop-load-elim -sink -cross-dso-cfi -cross-dso-cfi -loop-simplify -attributor -loop-reduce -loop-idiom -argpromotion -pgo-memop-opt -loop-load-elim -partial-inliner -mem2reg -instcombine -coro-early -mem2reg -gvn-hoist -sink -div-rem-pairs -tailcallelim -sroa -reassociate -callsite-splitting -aggressive-instcombine -aggressive-instcombine -loop-reroll -memcpyopt -ee-instrument -div-rem-pairs -break-crit-edges -globaldce -tailcallelim -early-cse-memssa -die -loop-reroll -functionattrs -strip -loop-distribute -load-store-vectorizer -div-rem-pairs -infer-address-spaces -slp-vectorizer -canonicalize-aliases -coro-cleanup -load-store-vectorizer -strip-debug-declare -cross-dso-cfi -loop-simplifycfg -gvn-hoist -sroa -simplifycfg -loop-versioning-licm -loop-vectorize -nary-reassociate -forceattrs -lower-matrix-intrinsics -barrier -partially-inline-libcalls -flattencfg -aggressive-instcombine -flattencfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.005586592178771,12.565289497375488,opt -coro-cleanup -loop-versioning-licm -libcalls-shrinkwrap -loop-versioning-licm -redundant-dbg-inst-elim -lower-guard-intrinsic -loop-simplifycfg -slp-vectorizer -functionattrs -lower-widenable-condition -nary-reassociate -loop-idiom -adce -loop-instsimplify -lowerinvoke -constprop -cross-dso-cfi -globaldce -argpromotion -loop-unroll-and-jam -strip-nondebug -irce -strip -dse -load-store-vectorizer -loop-fusion -pgo-memop-opt -canonicalize-aliases -memcpyopt -load-store-vectorizer -slp-vectorizer -canonicalize-aliases -elim-avail-extern -separate-const-offset-from-gep -reassociate -alignment-from-assumptions -flattencfg -lcssa -globalopt -post-inline-ee-instrument -bdce -coro-split -sink -rpo-functionattrs -loop-reroll -reg2mem -consthoist -lower-matrix-intrinsics -strip-debug-declare -simplifycfg -alignment-from-assumptions -separate-const-offset-from-gep -always-inline -loop-distribute -loop-predication -loop-simplifycfg -deadargelim -lowerinvoke -loop-data-prefetch -loop-load-elim -libcalls-shrinkwrap -lcssa -loop-load-elim -float2int -scalarizer -scalarizer -nary-reassociate -lower-matrix-intrinsics -mergereturn -lower-expect -name-anon-globals -lowerswitch -ipconstprop -mergefunc -loop-reroll -coro-cleanup -guard-widening -loop-simplify -alignment-from-assumptions -div-rem-pairs -barrier -partial-inliner -loop-fusion -gvn-hoist -licm -strip-debug-declare -sink -aggressive-instcombine -loop-deletion -slsr -ee-instrument -lower-constant-intrinsics -mergereturn -insert-gcov-profiling -bdce -memcpyopt -simplifycfg -loop-versioning -globalopt -elim-avail-extern -loop-unswitch -prune-eh -ipconstprop -irce -inject-tli-mappings -lowerinvoke -rewrite-statepoints-for-gc -dse -forceattrs -sink -loop-fusion -alignment-from-assumptions -loop-unroll-and-jam -libcalls-shrinkwrap -scalarizer -instcombine -post-inline-ee-instrument -lower-guard-intrinsic -redundant-dbg-inst-elim -gvn -strip-debug-declare -cross-dso-cfi -instcombine -called-value-propagation -newgvn -lowerswitch -functionattrs -early-cse-memssa -inject-tli-mappings -mergeicmps -indvars -sancov -infer-address-spaces -die -loop-versioning-licm -div-rem-pairs -loop-vectorize -early-cse-memssa -ee-instrument -gvn-hoist -ipconstprop -alignment-from-assumptions -instcombine -constmerge -alignment-from-assumptions -gvn-hoist -dse -functionattrs -reg2mem -strip-debug-declare -lowerswitch -irce -memcpyopt -aggressive-instcombine -early-cse-memssa -globalopt -strip -loop-simplifycfg -loop-deletion -rewrite-statepoints-for-gc -partial-inliner -cross-dso-cfi -newgvn -sccp -post-inline-ee-instrument -correlated-propagation -adce -alignment-from-assumptions -deadargelim -loop-instsimplify -coro-split -attributor -strip-nondebug -ipsccp -break-crit-edges -insert-gcov-profiling -ipconstprop -sroa -elim-avail-extern -bdce -partial-inliner -loop-simplifycfg -jump-threading -inject-tli-mappings -lowerinvoke -loop-unswitch -lower-expect -attributor -nary-reassociate -globalopt -redundant-dbg-inst-elim -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/bitcount,0.9867256637168141,12.089999437332153,opt -canonicalize-aliases -globaldce -newgvn -callsite-splitting -sancov -globalsplit -sroa -scalarizer -inject-tli-mappings -die -mergeicmps -coro-split -loop-deletion -jump-threading -strip -coro-cleanup -infer-address-spaces -flattencfg -inferattrs -loop-idiom -lower-matrix-intrinsics -alignment-from-assumptions -indvars -mergereturn -globalopt -lowerswitch -lowerinvoke -sccp -inferattrs -jump-threading -mem2reg -strip-debug-declare -hotcoldsplit -simplifycfg -loop-predication -coro-cleanup -jump-threading -partially-inline-libcalls -mergeicmps -strip-dead-prototypes -guard-widening -simplifycfg -loop-unroll -memcpyopt -memcpyopt -instcombine -sccp -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/bitcount,0.991150442477876,12.189716339111328,opt -barrier -reassociate -sancov -partial-inliner -adce -globalsplit -gvn -cross-dso-cfi -inject-tli-mappings -nary-reassociate -coro-elide -loop-vectorize -loop-data-prefetch -mldst-motion -inferattrs -mergeicmps -add-discriminators -loop-fusion -mergefunc -ipsccp -loop-reduce -licm -coro-cleanup -strip-nondebug -loop-reroll -newgvn -deadargelim -coro-elide -barrier -load-store-vectorizer -gvn -lower-guard-intrinsic -always-inline -loop-reduce -always-inline -mergeicmps -lower-guard-intrinsic -die -alignment-from-assumptions -mergereturn -constprop -loop-idiom -correlated-propagation -ipconstprop -globaldce -scalarizer -gvn -partial-inliner -loop-fusion -coro-cleanup -functionattrs -partially-inline-libcalls -infer-address-spaces -mldst-motion -loop-unswitch -strip-nondebug -deadargelim -libcalls-shrinkwrap -inferattrs -rpo-functionattrs -loop-predication -loop-data-prefetch -post-inline-ee-instrument -loop-unswitch -newgvn -callsite-splitting -loop-deletion -ipsccp -inferattrs -early-cse-memssa -loop-unswitch -instnamer -lower-matrix-intrinsics -instsimplify -elim-avail-extern -loop-simplifycfg -ipsccp -attributor -simplifycfg -licm -float2int -instnamer -div-rem-pairs -loop-sink -reassociate -loop-unroll -ee-instrument -sroa -called-value-propagation -newgvn -mergefunc -bdce -loop-guard-widening -pgo-memop-opt -rpo-functionattrs -die -consthoist -loop-distribute -loop-load-elim -div-rem-pairs -nary-reassociate -nary-reassociate -rewrite-statepoints-for-gc -barrier -speculative-execution -instsimplify -sink -lower-widenable-condition -prune-eh -coro-elide -jump-threading -attributor -constprop -float2int -coro-elide -reassociate -loop-distribute -globalsplit -load-store-vectorizer -rpo-functionattrs -licm -strip-dead-prototypes -separate-const-offset-from-gep -rewrite-statepoints-for-gc -dse -constprop -licm -strip -loop-predication -inject-tli-mappings -aggressive-instcombine -constmerge -loop-versioning -licm -simple-loop-unswitch -elim-avail-extern -constmerge -loop-load-elim -dce -rpo-functionattrs -sancov -strip-nondebug -float2int -indvars -irce -strip -loop-reroll -gvn-hoist -infer-address-spaces -pgo-memop-opt -scalarizer -prune-eh -bdce -loop-instsimplify -rpo-functionattrs -ee-instrument -loop-idiom -redundant-dbg-inst-elim -scalarizer -aggressive-instcombine -partially-inline-libcalls -post-inline-ee-instrument -loop-unroll-and-jam -consthoist -scalarizer -indvars -lower-guard-intrinsic -lower-matrix-intrinsics -flattencfg -newgvn -globalopt -instnamer -irce -slsr -callsite-splitting -loop-distribute -ee-instrument -lowerswitch -rewrite-statepoints-for-gc -dce -flattencfg -canonicalize-aliases -load-store-vectorizer -insert-gcov-profiling -name-anon-globals -ipconstprop -loop-deletion -bdce -strip -instcombine -lowerswitch -pgo-memop-opt -loop-guard-widening -functionattrs -name-anon-globals -loop-unroll -instcombine -float2int -slsr -irce -loop-fusion -adce -loop-instsimplify -lowerinvoke -loop-reduce -loop-instsimplify -post-inline-ee-instrument -instnamer -prune-eh -loop-simplify -consthoist -canonicalize-aliases -guard-widening -lowerswitch -partially-inline-libcalls -elim-avail-extern -coro-cleanup -mergeicmps -loop-unswitch -mem2reg -licm -inferattrs -name-anon-globals -infer-address-spaces -loop-simplify -loop-instsimplify -elim-avail-extern -gvn-hoist -jump-threading -loop-reduce -functionattrs -globalsplit -add-discriminators -loop-unroll -loop-predication -slsr -loop-unswitch -instsimplify -newgvn -adce -constprop -callsite-splitting -deadargelim -constmerge -adce -flattencfg -dce -jump-threading -lower-widenable-condition -lowerswitch -licm -loop-data-prefetch -lower-constant-intrinsics -loop-vectorize -loop-reduce -strip -memcpyopt -loweratomic -constprop -ipsccp -div-rem-pairs -aggressive-instcombine -strip -correlated-propagation -loop-load-elim -ipsccp -deadargelim -strip -load-store-vectorizer -loop-distribute -deadargelim -lcssa -loop-reduce -strip-debug-declare -called-value-propagation -canonicalize-aliases -dse -scalarizer -loop-instsimplify -loop-vectorize -jump-threading -mergereturn -flattencfg -loop-simplifycfg -inject-tli-mappings -constprop -scalarizer -simple-loop-unswitch -sccp -insert-gcov-profiling -separate-const-offset-from-gep -mergeicmps -loop-guard-widening -loop-unroll -loop-deletion -loop-guard-widening -constmerge -bdce -libcalls-shrinkwrap -loop-distribute -simple-loop-unswitch -mergefunc -newgvn -loop-versioning-licm -always-inline -lowerswitch -loop-distribute -elim-avail-extern -newgvn -gvn-hoist -cross-dso-cfi -rpo-functionattrs -libcalls-shrinkwrap -dce -called-value-propagation -adce -mldst-motion -sroa -coro-cleanup -rewrite-statepoints-for-gc -insert-gcov-profiling -ee-instrument -simple-loop-unswitch -attributor -forceattrs -float2int -inject-tli-mappings -loop-data-prefetch -slsr -strip-nondebug -prune-eh -attributor -mergereturn -gvn -slsr -canonicalize-aliases -post-inline-ee-instrument -always-inline -bdce -licm -speculative-execution -tailcallelim -lower-matrix-intrinsics -coro-cleanup -loop-unroll -ipconstprop -inline -separate-const-offset-from-gep -loop-instsimplify -scalarizer -consthoist -nary-reassociate -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,0.9933628318584071,15.541126012802124,opt -hotcoldsplit -globaldce -adce -loop-predication -ee-instrument -adce -always-inline -div-rem-pairs -loop-reduce -mergefunc -constprop -rewrite-statepoints-for-gc -gvn-hoist -sroa -nary-reassociate -coro-early -lower-guard-intrinsic -elim-avail-extern -sink -strip-dead-prototypes -loop-idiom -guard-widening -lowerswitch -mergefunc -inject-tli-mappings -redundant-dbg-inst-elim -gvn-hoist -separate-const-offset-from-gep -loop-load-elim -nary-reassociate -coro-cleanup -nary-reassociate -strip-nondebug -mldst-motion -globalopt -name-anon-globals -jump-threading -div-rem-pairs -lower-guard-intrinsic -lower-guard-intrinsic -guard-widening -strip-debug-declare -barrier -loop-reroll -reg2mem -strip -rpo-functionattrs -dce -ee-instrument -gvn-hoist -deadargelim -globalopt -loop-interchange -loop-interchange -sancov -div-rem-pairs -loop-guard-widening -loop-simplify -jump-threading -sink -loweratomic -lower-guard-intrinsic -mergeicmps -strip -lower-guard-intrinsic -inject-tli-mappings -jump-threading -loop-predication -infer-address-spaces -indvars -loop-simplifycfg -loop-vectorize -sink -loop-deletion -loop-vectorize -instcombine -lower-constant-intrinsics -strip -loop-versioning -gvn-hoist -partial-inliner -reassociate -inferattrs -loop-vectorize -redundant-dbg-inst-elim -lower-expect -break-crit-edges -loop-versioning-licm -forceattrs -strip-nondebug -inject-tli-mappings -reg2mem -loop-simplify -loop-predication -lower-expect -instnamer -flattencfg -instsimplify -cross-dso-cfi -barrier -loop-vectorize -tailcallelim -die -lcssa -instnamer -instsimplify -infer-address-spaces -inferattrs -argpromotion -loop-sink -flattencfg -memcpyopt -correlated-propagation -loop-fusion -insert-gcov-profiling -ipsccp -loop-simplify -redundant-dbg-inst-elim -mergeicmps -slsr -loop-data-prefetch -reg2mem -instcombine -lowerinvoke -die -gvn-hoist -globalsplit -strip-dead-prototypes -strip-nondebug -callsite-splitting -sroa -inject-tli-mappings -jump-threading -mldst-motion -loop-simplify -loop-simplify -guard-widening -loop-versioning-licm -loop-interchange -memcpyopt -cross-dso-cfi -insert-gcov-profiling -forceattrs -simplifycfg -mldst-motion -scalarizer -loop-vectorize -loweratomic -die -hotcoldsplit -consthoist -called-value-propagation -irce -constmerge -name-anon-globals -redundant-dbg-inst-elim -loop-distribute -prune-eh -loop-predication -insert-gcov-profiling -loop-simplifycfg -loweratomic -tailcallelim -instcombine -mergeicmps -div-rem-pairs -forceattrs -elim-avail-extern -constprop -lowerswitch -inline -lowerswitch -globaldce -forceattrs -rewrite-statepoints-for-gc -alignment-from-assumptions -irce -loop-fusion -indvars -loop-predication -sccp -canonicalize-aliases -prune-eh -functionattrs -nary-reassociate -loop-reduce -coro-cleanup -instcombine -lower-guard-intrinsic -irce -slsr -prune-eh -constprop -cross-dso-cfi -deadargelim -alignment-from-assumptions -name-anon-globals -prune-eh -early-cse-memssa -prune-eh -slp-vectorizer -early-cse-memssa -ee-instrument -loop-simplifycfg -libcalls-shrinkwrap -separate-const-offset-from-gep -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,0.9955752212389379,12.356438875198364,opt -loop-predication -gvn-hoist -add-discriminators -prune-eh -loop-vectorize -globalsplit -callsite-splitting -mem2reg -loop-interchange -loop-simplify -infer-address-spaces -speculative-execution -float2int -coro-early -mergeicmps -cross-dso-cfi -loop-interchange -adce -loop-unroll-and-jam -instnamer -hotcoldsplit -coro-cleanup -lower-expect -loop-predication -infer-address-spaces -float2int -gvn -break-crit-edges -instnamer -loop-predication -called-value-propagation -argpromotion -callsite-splitting -instnamer -loop-interchange -loop-deletion -lower-guard-intrinsic -loop-predication -indvars -callsite-splitting -libcalls-shrinkwrap -elim-avail-extern -strip -pgo-memop-opt -callsite-splitting -aggressive-instcombine -sancov -loop-simplifycfg -forceattrs -sccp -lower-matrix-intrinsics -libcalls-shrinkwrap -pgo-memop-opt -gvn -slsr -redundant-dbg-inst-elim -strip-dead-prototypes -loop-distribute -coro-early -sroa -inferattrs -redundant-dbg-inst-elim -infer-address-spaces -correlated-propagation -loop-reroll -coro-split -strip-dead-prototypes -simple-loop-unswitch -pgo-memop-opt -strip -loop-distribute -instcombine -div-rem-pairs -consthoist -canonicalize-aliases -loop-sink -loop-guard-widening -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,0.995575221238938,12.109670162200928,opt -lowerswitch -newgvn -redundant-dbg-inst-elim -loop-distribute -rewrite-statepoints-for-gc -canonicalize-aliases -globaldce -rpo-functionattrs -loop-distribute -loop-predication -coro-early -strip -irce -lowerinvoke -lowerswitch -globalopt -coro-cleanup -loop-unroll -argpromotion -loop-versioning -speculative-execution -die -add-discriminators -sancov -speculative-execution -strip-debug-declare -sancov -loop-vectorize -consthoist -gvn -globalopt -loop-interchange -flattencfg -loop-versioning -libcalls-shrinkwrap -ee-instrument -loop-fusion -loop-unroll-and-jam -infer-address-spaces -libcalls-shrinkwrap -globalopt -globaldce -dce -consthoist -loop-unroll -loop-interchange -coro-split -coro-elide -globaldce -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0022123893805308,12.428935766220093,opt -aggressive-instcombine -strip-nondebug -loop-instsimplify -scalarizer -loop-unroll -adce -infer-address-spaces -prune-eh -deadargelim -scalarizer -lower-matrix-intrinsics -coro-elide -name-anon-globals -loop-versioning-licm -tailcallelim -loweratomic -tailcallelim -simplifycfg -loop-simplifycfg -insert-gcov-profiling -gvn-hoist -coro-split -guard-widening -slsr -loop-vectorize -scalarizer -reg2mem -functionattrs -insert-gcov-profiling -inferattrs -slp-vectorizer -early-cse-memssa -irce -memcpyopt -dce -libcalls-shrinkwrap -aggressive-instcombine -dse -ipconstprop -consthoist -loop-guard-widening -lcssa -loop-deletion -loop-sink -reg2mem -mergefunc -inject-tli-mappings -div-rem-pairs -sink -always-inline -called-value-propagation -sink -float2int -coro-elide -insert-gcov-profiling -attributor -sink -coro-split -gvn-hoist -mergereturn -argpromotion -argpromotion -lower-expect -partial-inliner -globalsplit -lower-expect -licm -loop-instsimplify -die -redundant-dbg-inst-elim -lower-constant-intrinsics -mem2reg -elim-avail-extern -inferattrs -lower-matrix-intrinsics -lower-matrix-intrinsics -guard-widening -mergereturn -loop-unroll -lower-widenable-condition -loop-predication -strip -loop-versioning-licm -partial-inliner -insert-gcov-profiling -inline -scalarizer -adce -div-rem-pairs -indvars -rewrite-statepoints-for-gc -constprop -loop-data-prefetch -memcpyopt -loop-vectorize -mldst-motion -loweratomic -adce -lower-constant-intrinsics -sroa -loop-simplifycfg -jump-threading -licm -mldst-motion -indvars -simple-loop-unswitch -rpo-functionattrs -slp-vectorizer -constmerge -consthoist -loop-idiom -loop-guard-widening -pgo-memop-opt -functionattrs -constmerge -aggressive-instcombine -ee-instrument -nary-reassociate -newgvn -gvn-hoist -loop-distribute -div-rem-pairs -pgo-memop-opt -die -redundant-dbg-inst-elim -functionattrs -cross-dso-cfi -canonicalize-aliases -constprop -elim-avail-extern -mergefunc -rewrite-statepoints-for-gc -instcombine -loop-simplify -mem2reg -loop-data-prefetch -instnamer -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0088495575221237,12.064459800720215,opt -loop-distribute -aggressive-instcombine -float2int -float2int -add-discriminators -functionattrs -float2int -libcalls-shrinkwrap -lowerswitch -consthoist -simple-loop-unswitch -slp-vectorizer -functionattrs -slsr -loop-sink -nary-reassociate -die -loop-deletion -memcpyopt -loop-deletion -break-crit-edges -lowerinvoke -inject-tli-mappings -loop-deletion -loop-fusion -barrier -memcpyopt -newgvn -loop-instsimplify -flattencfg -sink -forceattrs -irce -rewrite-statepoints-for-gc -barrier -break-crit-edges -coro-elide -lower-matrix-intrinsics -libcalls-shrinkwrap -name-anon-globals -slsr -callsite-splitting -lower-guard-intrinsic -loop-fusion -insert-gcov-profiling -partial-inliner -consthoist -prune-eh -ee-instrument -constmerge -lowerswitch -inject-tli-mappings -sroa -gvn-hoist -mergeicmps -tailcallelim -loop-guard-widening -indvars -deadargelim -tailcallelim -loop-interchange -globalsplit -lowerswitch -loop-idiom -redundant-dbg-inst-elim -coro-cleanup -sancov -loop-unroll -lower-widenable-condition -add-discriminators -barrier -scalarizer -nary-reassociate -constmerge -jump-threading -post-inline-ee-instrument -inject-tli-mappings -instcombine -coro-elide -callsite-splitting -rpo-functionattrs -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0088495575221237,12.131162881851196,opt -sancov -coro-split -loop-idiom -libcalls-shrinkwrap -loweratomic -lower-widenable-condition -globalopt -speculative-execution -flattencfg -strip-dead-prototypes -consthoist -newgvn -strip-nondebug -callsite-splitting -inject-tli-mappings -prune-eh -irce -loop-unswitch -loop-simplifycfg -simplifycfg -loop-fusion -rewrite-statepoints-for-gc -deadargelim -lowerswitch -nary-reassociate -globalsplit -loop-versioning-licm -die -licm -lowerinvoke -speculative-execution -loop-guard-widening -newgvn -strip-dead-prototypes -newgvn -strip-nondebug -dse -coro-early -loop-unroll-and-jam -licm -coro-split -loop-idiom -constmerge -adce -partial-inliner -float2int -speculative-execution -globalsplit -slsr -loop-unroll-and-jam -prune-eh -float2int -instcombine -loop-reduce -loop-simplify -loop-unroll -newgvn -loop-guard-widening -dse -sroa -loop-fusion -ipconstprop -scalarizer -indvars -loop-unroll-and-jam -inline -flattencfg -sink -coro-elide -speculative-execution -lower-guard-intrinsic -sancov -gvn-hoist -coro-split -loop-predication -barrier -dse -jump-threading -loop-reduce -separate-const-offset-from-gep -loop-versioning-licm -flattencfg -instsimplify -called-value-propagation -instnamer -strip-dead-prototypes -irce -canonicalize-aliases -lower-matrix-intrinsics -inject-tli-mappings -infer-address-spaces -name-anon-globals -simple-loop-unswitch -die -partial-inliner -newgvn -add-discriminators -aggressive-instcombine -sink -loop-versioning -loop-data-prefetch -coro-split -sroa -attributor -loop-simplify -loop-unroll -correlated-propagation -partially-inline-libcalls -barrier -globalsplit -called-value-propagation -inferattrs -inferattrs -argpromotion -slsr -prune-eh -guard-widening -loop-idiom -irce -tailcallelim -lower-widenable-condition -inject-tli-mappings -float2int -pgo-memop-opt -indvars -strip-nondebug -loop-interchange -flattencfg -redundant-dbg-inst-elim -elim-avail-extern -coro-early -constmerge -sroa -gvn-hoist -ipsccp -scalarizer -lcssa -constmerge -libcalls-shrinkwrap -globalsplit -loop-interchange -sroa -deadargelim -rewrite-statepoints-for-gc -loop-predication -libcalls-shrinkwrap -flattencfg -gvn-hoist -prune-eh -lower-matrix-intrinsics -inline -canonicalize-aliases -ee-instrument -loop-load-elim -attributor -globaldce -nary-reassociate -barrier -loop-simplify -newgvn -loop-instsimplify -memcpyopt -aggressive-instcombine -instcombine -functionattrs -separate-const-offset-from-gep -loop-deletion -barrier -newgvn -loop-unroll-and-jam -loop-predication -post-inline-ee-instrument -coro-split -slp-vectorizer -loop-versioning-licm -simple-loop-unswitch -rpo-functionattrs -inferattrs -div-rem-pairs -indvars -loop-versioning-licm -dse -sroa -sink -indvars -gvn-hoist -guard-widening -sink -loop-unroll-and-jam -coro-early -globalsplit -coro-cleanup -always-inline -simplifycfg -memcpyopt -newgvn input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.008849557522124,12.092485666275024,opt -loop-guard-widening -loop-sink -licm -attributor -canonicalize-aliases -rewrite-statepoints-for-gc -loop-vectorize -loweratomic -aggressive-instcombine -cross-dso-cfi -deadargelim -mergereturn -functionattrs -loop-reroll -loop-distribute -prune-eh -inferattrs -insert-gcov-profiling -loop-interchange -lower-widenable-condition -adce -instcombine -rpo-functionattrs -inline -mergeicmps -constmerge -nary-reassociate -instcombine -instnamer -loop-data-prefetch -constmerge -loop-versioning-licm -attributor -inline -newgvn -speculative-execution -strip-nondebug -early-cse-memssa -instsimplify -loop-versioning -loop-instsimplify -sroa -separate-const-offset-from-gep -functionattrs -lower-guard-intrinsic -post-inline-ee-instrument -functionattrs -instsimplify -mergeicmps -partial-inliner -constmerge -inject-tli-mappings -strip-debug-declare -barrier -forceattrs -prune-eh -loop-distribute -irce -strip-nondebug -reassociate -loweratomic -constmerge -redundant-dbg-inst-elim -elim-avail-extern -add-discriminators -bdce -ipsccp -ipsccp -break-crit-edges -lcssa -loop-simplifycfg -loop-deletion -lowerinvoke -lower-guard-intrinsic -reassociate -loop-sink -called-value-propagation -strip-debug-declare -break-crit-edges -scalarizer -flattencfg -deadargelim -div-rem-pairs -dse -instsimplify -functionattrs -instcombine -partial-inliner -name-anon-globals -libcalls-shrinkwrap -loop-deletion -rewrite-statepoints-for-gc -early-cse-memssa -tailcallelim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0088495575221241,12.038225173950195,opt -strip -correlated-propagation -sroa -loop-versioning -mem2reg -add-discriminators -loop-predication -bdce -memcpyopt -sancov -loop-reroll -instcombine -partially-inline-libcalls -speculative-execution -loop-unroll -coro-cleanup -loop-versioning-licm -lower-widenable-condition -consthoist -simplifycfg -canonicalize-aliases -coro-early -break-crit-edges -loop-unswitch -rewrite-statepoints-for-gc -loop-unswitch -newgvn -coro-early -partial-inliner -coro-elide -bdce -instsimplify -coro-split -strip -flattencfg -inline -loop-guard-widening -ipsccp -loop-simplifycfg -globaldce -lcssa -adce -lower-expect -loop-simplifycfg -coro-cleanup -coro-split -globalsplit -mergefunc -loop-versioning-licm -libcalls-shrinkwrap -globalopt -functionattrs -licm -instcombine -sroa -infer-address-spaces -consthoist -partially-inline-libcalls -loop-data-prefetch -constmerge -strip-nondebug -globalopt -sccp -loop-unroll -ipsccp -loop-instsimplify -libcalls-shrinkwrap -speculative-execution -correlated-propagation -dce -strip-dead-prototypes -gvn -speculative-execution -inline -infer-address-spaces -constprop -float2int -functionattrs -loop-deletion -sroa -deadargelim -instsimplify -mergefunc -bdce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0249363867684482,12.77646517753601,opt -hotcoldsplit -lowerswitch -canonicalize-aliases -mem2reg -speculative-execution -lower-expect -redundant-dbg-inst-elim -inferattrs -loop-vectorize -speculative-execution -aggressive-instcombine -loop-vectorize -loweratomic -lower-widenable-condition -guard-widening -early-cse-memssa -speculative-execution -lowerswitch -pgo-memop-opt -strip-dead-prototypes -lowerinvoke -always-inline -aggressive-instcombine -loop-sink -reg2mem -sroa -dce -coro-split -post-inline-ee-instrument -simplifycfg -redundant-dbg-inst-elim -globalopt -globaldce -loop-idiom -slp-vectorizer -globalopt -argpromotion -loop-versioning -jump-threading -argpromotion -strip-dead-prototypes -insert-gcov-profiling -lower-expect -strip-nondebug -globalsplit -loweratomic -coro-early -sancov -separate-const-offset-from-gep -loop-fusion -add-discriminators -lcssa -licm -lower-constant-intrinsics -libcalls-shrinkwrap -instcombine -argpromotion -jump-threading -hotcoldsplit -float2int -libcalls-shrinkwrap -elim-avail-extern -sroa -callsite-splitting -called-value-propagation -barrier -speculative-execution -redundant-dbg-inst-elim -slp-vectorizer -memcpyopt -lower-guard-intrinsic -argpromotion -flattencfg -always-inline -indvars -dse -loop-interchange -memcpyopt -mergereturn -lower-widenable-condition -scalarizer -ipconstprop -loop-unroll -loop-guard-widening -loop-reduce -attributor -indvars -early-cse-memssa -tailcallelim -sink -irce -slp-vectorizer -dce -prune-eh -name-anon-globals -load-store-vectorizer -slsr -sccp -coro-split -loop-rotate -strip-debug-declare -post-inline-ee-instrument -ee-instrument -memcpyopt -aggressive-instcombine -globaldce -strip-dead-prototypes -libcalls-shrinkwrap -strip-nondebug -rewrite-statepoints-for-gc -early-cse-memssa -canonicalize-aliases -callsite-splitting -die -instnamer -hotcoldsplit -lower-matrix-intrinsics -cross-dso-cfi -coro-cleanup -loop-versioning -correlated-propagation -newgvn -coro-split -ipconstprop -sancov -lowerinvoke -partial-inliner -scalarizer -loop-reroll -slsr -gvn -instcombine -loop-deletion -bdce -slsr -loop-rotate -alignment-from-assumptions -lower-matrix-intrinsics -loop-predication -loop-instsimplify -infer-address-spaces -instnamer -always-inline -lower-constant-intrinsics -loop-unroll -early-cse-memssa -adce -loop-reroll -cross-dso-cfi -forceattrs -callsite-splitting -div-rem-pairs -speculative-execution -redundant-dbg-inst-elim -loop-versioning -loop-data-prefetch -lower-expect -slsr -correlated-propagation -name-anon-globals -partial-inliner -dse -ipsccp -constmerge -pgo-memop-opt -loop-reduce -gvn-hoist -speculative-execution -lowerswitch -ee-instrument -globalsplit -guard-widening -load-store-vectorizer -loop-idiom -licm -separate-const-offset-from-gep -mergeicmps -simple-loop-unswitch -loop-predication -mldst-motion -loweratomic -bdce -early-cse-memssa -inferattrs -mergeicmps -consthoist -mergefunc -ee-instrument -sccp -break-crit-edges -lower-constant-intrinsics -mldst-motion -called-value-propagation -loweratomic -ipconstprop -sccp -deadargelim -loop-data-prefetch -loop-sink -separate-const-offset-from-gep -guard-widening -loop-fusion -gvn -slp-vectorizer -called-value-propagation -scalarizer -attributor -pgo-memop-opt -loop-reduce -instnamer -break-crit-edges -pgo-memop-opt -mldst-motion -adce -memcpyopt -partially-inline-libcalls -loop-simplifycfg -reassociate -lower-matrix-intrinsics -sccp -loop-idiom -insert-gcov-profiling -div-rem-pairs -mergeicmps -licm -add-discriminators -licm -strip-nondebug -flattencfg -loop-vectorize -aggressive-instcombine -loop-versioning -partially-inline-libcalls -loop-versioning -flattencfg -simplifycfg -infer-address-spaces -break-crit-edges -ipconstprop -coro-cleanup -early-cse-memssa -loop-versioning -aggressive-instcombine -loop-vectorize -mergereturn -speculative-execution -slp-vectorizer -indvars -loop-reroll -infer-address-spaces -sancov -loop-load-elim -instcombine -inline -inline -float2int -loop-vectorize -aggressive-instcombine -speculative-execution -mergereturn -indvars -loop-simplify -strip-debug-declare -sccp -consthoist -loop-unroll -jump-threading -alignment-from-assumptions -loop-versioning-licm -pgo-memop-opt -loop-unswitch -loop-deletion -reassociate -loop-versioning -ee-instrument -functionattrs -mldst-motion -lower-widenable-condition -flattencfg -coro-cleanup -strip-nondebug -ipsccp -inject-tli-mappings -loop-fusion -name-anon-globals -barrier -scalarizer -slp-vectorizer -strip-nondebug -sink -loop-unswitch -forceattrs -coro-cleanup -aggressive-instcombine -sink -deadargelim -infer-address-spaces -loop-versioning -loop-deletion -called-value-propagation -lower-constant-intrinsics -constmerge -slp-vectorizer -coro-elide -strip-dead-prototypes -partial-inliner -redundant-dbg-inst-elim -ipconstprop -loop-instsimplify -simplifycfg -loop-predication -instcombine input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0300254452926212,13.093162536621094,opt -ipsccp -scalarizer -mem2reg -break-crit-edges -loop-guard-widening -separate-const-offset-from-gep -inject-tli-mappings -lowerinvoke -rewrite-statepoints-for-gc -separate-const-offset-from-gep -inline -attributor -ee-instrument -loop-interchange -loop-distribute -loop-unroll -correlated-propagation -sccp -coro-early -loop-predication -loop-deletion -dce -loop-instsimplify -loop-unroll-and-jam -mergefunc -coro-cleanup -lower-matrix-intrinsics -lowerinvoke -ipconstprop -gvn-hoist -lower-widenable-condition -loop-rotate -gvn-hoist -separate-const-offset-from-gep -sroa -lower-constant-intrinsics -strip-debug-declare -loop-sink -adce -loop-interchange -coro-cleanup -loop-unroll-and-jam -loop-guard-widening -loop-fusion -coro-elide -post-inline-ee-instrument -irce -mergereturn -instcombine -load-store-vectorizer -lowerswitch -correlated-propagation -memcpyopt -strip-nondebug -cross-dso-cfi -loop-fusion -argpromotion -irce -lowerinvoke -slsr -elim-avail-extern -speculative-execution -loop-fusion -separate-const-offset-from-gep -loop-versioning -inline -loop-fusion -coro-split -loop-instsimplify -loweratomic -licm -lower-widenable-condition -loop-rotate -elim-avail-extern -globalsplit -loop-vectorize -loop-deletion -lower-widenable-condition -newgvn -loop-reroll -loop-versioning -libcalls-shrinkwrap -loop-predication -reg2mem -loop-rotate -strip-debug-declare -insert-gcov-profiling -strip-debug-declare -div-rem-pairs -globaldce -loop-versioning-licm -reg2mem -strip -separate-const-offset-from-gep -loop-unswitch -nary-reassociate -irce -mldst-motion -rpo-functionattrs -constmerge -mergefunc -bdce -consthoist -strip-debug-declare -simplifycfg -mem2reg -alignment-from-assumptions -loop-instsimplify -jump-threading -correlated-propagation -strip-debug-declare -break-crit-edges -constmerge -lower-constant-intrinsics -prune-eh -indvars -loweratomic -separate-const-offset-from-gep -prune-eh -name-anon-globals -early-cse-memssa -indvars -forceattrs -loop-rotate -load-store-vectorizer -globaldce -sancov -partial-inliner -instcombine -elim-avail-extern -bdce -irce -lcssa -mldst-motion -instsimplify -loop-guard-widening -loop-rotate -jump-threading -break-crit-edges -always-inline -post-inline-ee-instrument -partially-inline-libcalls -barrier -insert-gcov-profiling -simple-loop-unswitch -deadargelim -strip -strip -gvn -ipsccp -lowerinvoke -partial-inliner -lower-constant-intrinsics -called-value-propagation -loop-idiom -coro-cleanup -slp-vectorizer -instcombine -prune-eh -dce -elim-avail-extern -constprop -loop-fusion -deadargelim -loop-instsimplify -instcombine -lower-guard-intrinsic -break-crit-edges -loweratomic -cross-dso-cfi -partial-inliner -loop-interchange -loop-guard-widening -indvars -irce -lower-matrix-intrinsics -gvn -loop-unroll-and-jam -load-store-vectorizer -mem2reg -globaldce -loop-versioning -strip-dead-prototypes -loop-sink -strip-dead-prototypes -reassociate -indvars -lower-guard-intrinsic -loop-interchange -gvn -callsite-splitting -loop-interchange -sccp -attributor -loop-predication -constprop -speculative-execution -loop-idiom -name-anon-globals -coro-elide -elim-avail-extern -pgo-memop-opt -simplifycfg -sink -globalopt -mem2reg -reg2mem -constprop -name-anon-globals -argpromotion -coro-cleanup -jump-threading -called-value-propagation -reg2mem -rewrite-statepoints-for-gc -loop-sink -globalsplit -mldst-motion -lower-constant-intrinsics -callsite-splitting -barrier -infer-address-spaces -lowerswitch -consthoist -ee-instrument -add-discriminators -forceattrs -hotcoldsplit -loop-unroll -mergefunc -attributor -lowerswitch -coro-early -reassociate -lower-widenable-condition -prune-eh -loop-predication -ee-instrument -deadargelim -loop-distribute -newgvn -name-anon-globals -canonicalize-aliases -memcpyopt -dse -sancov -flattencfg -loweratomic -coro-cleanup -strip-nondebug -inject-tli-mappings -prune-eh -gvn -speculative-execution -correlated-propagation -loop-unswitch -strip -sroa -lowerinvoke -redundant-dbg-inst-elim -mem2reg -mergereturn -barrier -tailcallelim -loop-sink -pgo-memop-opt -lcssa -instsimplify -functionattrs -licm -strip -strip-dead-prototypes -lower-matrix-intrinsics -loop-sink -guard-widening -loop-versioning-licm -lower-constant-intrinsics -functionattrs -indvars -loop-unroll-and-jam -elim-avail-extern -loop-sink -globaldce -licm -pgo-memop-opt -instcombine -lower-guard-intrinsic -mldst-motion -jump-threading -callsite-splitting -coro-split -mergeicmps -insert-gcov-profiling -coro-cleanup -sccp -add-discriminators -early-cse-memssa -licm -div-rem-pairs -globaldce -functionattrs -loop-vectorize -div-rem-pairs -loop-predication -inferattrs -alignment-from-assumptions -dce -inject-tli-mappings -memcpyopt -lower-matrix-intrinsics -loop-predication -licm -newgvn -tailcallelim -adce -memcpyopt -early-cse-memssa -coro-elide -dce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.033587786259542,12.856059074401855,opt -lower-matrix-intrinsics -lower-matrix-intrinsics -sink -dse -loop-interchange -scalarizer -cross-dso-cfi -instnamer -loop-fusion -lower-expect -break-crit-edges -infer-address-spaces -post-inline-ee-instrument -sancov -barrier -coro-split -ipsccp -loop-load-elim -lower-widenable-condition -strip-debug-declare -forceattrs -add-discriminators -loop-fusion -strip-debug-declare -lower-constant-intrinsics -load-store-vectorizer -deadargelim -loop-unroll-and-jam -loop-data-prefetch -gvn-hoist -deadargelim -sink -loop-load-elim -lower-widenable-condition -adce -slp-vectorizer -callsite-splitting -lower-expect -reassociate -instnamer -elim-avail-extern -strip-nondebug -lower-constant-intrinsics -lowerswitch -strip-debug-declare -irce -gvn-hoist -loop-simplify -loop-interchange -separate-const-offset-from-gep -loop-simplify -break-crit-edges -loop-data-prefetch -dce -mergefunc -redundant-dbg-inst-elim -instsimplify -deadargelim -mldst-motion -loop-guard-widening -loop-unroll -correlated-propagation -hotcoldsplit -gvn-hoist -mergefunc -loop-interchange -ee-instrument -correlated-propagation -alignment-from-assumptions -coro-early -loop-simplify -mldst-motion -loop-distribute -guard-widening -post-inline-ee-instrument -loop-reroll -dce -sroa -globalsplit -canonicalize-aliases -lower-widenable-condition -loop-load-elim -add-discriminators -coro-early -loop-vectorize -mergefunc -simple-loop-unswitch -alignment-from-assumptions -strip -constprop -div-rem-pairs -libcalls-shrinkwrap -simple-loop-unswitch -loop-idiom -gvn-hoist -newgvn -post-inline-ee-instrument -strip-dead-prototypes -instcombine -dse -partial-inliner -lower-widenable-condition -sccp -adce -speculative-execution -simplifycfg -slp-vectorizer -newgvn -mldst-motion -memcpyopt -slsr -load-store-vectorizer -mergeicmps -argpromotion -rpo-functionattrs -correlated-propagation -strip-dead-prototypes -memcpyopt -loop-predication -alignment-from-assumptions -adce -deadargelim -partially-inline-libcalls -tailcallelim -elim-avail-extern -lower-expect -globaldce -nary-reassociate -irce -loop-reroll -loop-distribute -loop-instsimplify -loop-reroll -lower-matrix-intrinsics -loop-data-prefetch -tailcallelim -loop-reduce -name-anon-globals -canonicalize-aliases -instnamer -memcpyopt -lower-guard-intrinsic -cross-dso-cfi -simple-loop-unswitch -memcpyopt -pgo-memop-opt -break-crit-edges -strip-debug-declare -lower-constant-intrinsics -flattencfg -loop-simplifycfg -globaldce -sink -loop-vectorize -reassociate -loop-instsimplify -callsite-splitting -globalsplit -lowerswitch -insert-gcov-profiling -slp-vectorizer -flattencfg -partial-inliner -ipsccp -elim-avail-extern -mergereturn -rewrite-statepoints-for-gc -loop-unroll-and-jam -loop-unswitch -strip-debug-declare -mergefunc -constmerge -redundant-dbg-inst-elim -barrier -alignment-from-assumptions -flattencfg -ee-instrument -nary-reassociate -loop-predication -bdce -slsr -elim-avail-extern -inject-tli-mappings -coro-elide -licm -infer-address-spaces -die -sccp -partially-inline-libcalls -loop-distribute -callsite-splitting -float2int -lower-widenable-condition -instsimplify -instcombine -ipconstprop -constprop -prune-eh -loop-guard-widening -ipconstprop -correlated-propagation -mergeicmps -loop-unswitch -ipconstprop -separate-const-offset-from-gep -separate-const-offset-from-gep -instnamer -die -inline -sancov -loop-interchange -canonicalize-aliases -sroa -loop-fusion -lowerinvoke -strip-dead-prototypes -loop-instsimplify -instnamer -lower-constant-intrinsics -gvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.033587786259542,13.356575012207031,opt -globaldce -infer-address-spaces -always-inline -loop-fusion -constprop -bdce -globaldce -sink -loweratomic -memcpyopt -loop-sink -lower-expect -newgvn -pgo-memop-opt -callsite-splitting -strip-debug-declare -jump-threading -loop-unswitch -loop-simplify -loop-simplify -inferattrs -loop-unswitch -separate-const-offset-from-gep -loop-predication -instnamer -alignment-from-assumptions -load-store-vectorizer -loop-data-prefetch -simple-loop-unswitch -elim-avail-extern -loop-unswitch -globalsplit -mem2reg -globalopt -reassociate -consthoist -gvn -sink -post-inline-ee-instrument -instcombine -dse -simplifycfg -flattencfg -load-store-vectorizer -load-store-vectorizer -float2int -loop-load-elim -tailcallelim -elim-avail-extern -coro-split -globaldce -licm -coro-split -strip-debug-declare -ee-instrument -prune-eh -loop-reroll -pgo-memop-opt -lowerinvoke -adce -loop-vectorize -scalarizer -sccp -loop-versioning-licm -always-inline -guard-widening -dse -deadargelim -libcalls-shrinkwrap -called-value-propagation -coro-elide -dce -lower-widenable-condition -loop-vectorize -correlated-propagation -loop-unroll -coro-elide -loop-instsimplify -coro-split -simple-loop-unswitch -loop-unroll -loop-simplifycfg -loop-deletion -lower-guard-intrinsic -globalopt -argpromotion -loop-simplifycfg -simplifycfg -argpromotion -mem2reg -gvn-hoist -lower-guard-intrinsic -guard-widening -separate-const-offset-from-gep -simple-loop-unswitch -hotcoldsplit -sink -newgvn -globalsplit -loop-guard-widening -correlated-propagation -slsr -prune-eh -inject-tli-mappings -break-crit-edges -coro-cleanup -licm -strip-dead-prototypes -loop-deletion -rpo-functionattrs -rpo-functionattrs -loop-interchange -licm -gvn -slsr -instnamer -instcombine -attributor -constprop -memcpyopt -coro-cleanup -cross-dso-cfi -mergeicmps -instnamer -always-inline -lcssa -separate-const-offset-from-gep -loop-simplify -argpromotion -licm -simple-loop-unswitch -argpromotion -loop-versioning -loop-distribute -globalsplit -sccp -lcssa -partial-inliner -redundant-dbg-inst-elim -loop-simplify -strip-dead-prototypes -memcpyopt -strip-dead-prototypes -slp-vectorizer -adce -loop-unroll-and-jam -instsimplify -mergereturn -loop-reroll -instcombine -coro-early -loop-reroll -memcpyopt -correlated-propagation -inline -slp-vectorizer -simple-loop-unswitch -coro-cleanup -strip-nondebug -slsr -nary-reassociate -loop-versioning -lower-widenable-condition -float2int -loop-predication -loop-versioning -strip -loweratomic -consthoist -separate-const-offset-from-gep -mergefunc -loop-versioning-licm -instsimplify -loop-unroll-and-jam -cross-dso-cfi -prune-eh -simple-loop-unswitch -loop-data-prefetch -elim-avail-extern -indvars -pgo-memop-opt -forceattrs -mem2reg -constmerge -dce -bdce -loop-distribute -loop-idiom -post-inline-ee-instrument -argpromotion -loop-vectorize -indvars -globaldce -instcombine input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0346055979643767,12.67380666732788,opt -constmerge -partially-inline-libcalls -correlated-propagation -coro-elide -lowerswitch -coro-split -functionattrs -add-discriminators -sroa -instcombine -slp-vectorizer -loop-versioning-licm -loop-distribute -name-anon-globals -loop-predication -cross-dso-cfi -lower-expect -float2int -lcssa -lowerswitch -forceattrs -reg2mem -hotcoldsplit -correlated-propagation -strip-dead-prototypes -globalsplit -coro-split -loop-reroll -alignment-from-assumptions -loop-sink -reg2mem -early-cse-memssa -lower-expect -loop-versioning -gvn-hoist -newgvn -loweratomic -alignment-from-assumptions -loop-vectorize -coro-split -loop-sink -instnamer -loop-unroll -tailcallelim -pgo-memop-opt -functionattrs -ipconstprop -sink -pgo-memop-opt -dce -hotcoldsplit -globalopt -attributor -strip -loop-reroll -cross-dso-cfi -aggressive-instcombine -strip-dead-prototypes -rpo-functionattrs -loop-sink -break-crit-edges -canonicalize-aliases -loop-unroll-and-jam -globaldce -hotcoldsplit -bdce -aggressive-instcombine -mergefunc -consthoist -always-inline -insert-gcov-profiling -correlated-propagation -div-rem-pairs -strip -prune-eh -mergeicmps -loop-interchange -globaldce -prune-eh -loop-vectorize -jump-threading -instnamer -insert-gcov-profiling -reg2mem -simple-loop-unswitch -nary-reassociate -forceattrs -loop-unroll-and-jam -globalopt -globalsplit -lowerinvoke -loop-load-elim -lower-widenable-condition -loop-guard-widening -simplifycfg -coro-elide -deadargelim -jump-threading -libcalls-shrinkwrap -loop-predication -loop-load-elim -attributor -called-value-propagation -instcombine -scalarizer -newgvn -globalsplit -insert-gcov-profiling -strip-nondebug -loop-interchange -pgo-memop-opt -libcalls-shrinkwrap -loop-guard-widening -break-crit-edges -loweratomic -newgvn -loop-instsimplify -loop-unswitch -sccp -always-inline -elim-avail-extern -lower-guard-intrinsic -rewrite-statepoints-for-gc -slp-vectorizer -mem2reg -forceattrs -sroa -functionattrs -loop-simplifycfg -coro-elide -globalsplit -elim-avail-extern -guard-widening -loop-idiom -irce -add-discriminators -separate-const-offset-from-gep -libcalls-shrinkwrap -mem2reg -add-discriminators -callsite-splitting -name-anon-globals -called-value-propagation -infer-address-spaces -loop-unroll -dce -mergefunc -flattencfg -deadargelim -sroa -lower-constant-intrinsics -loop-predication -rpo-functionattrs -tailcallelim -loop-data-prefetch -elim-avail-extern -load-store-vectorizer -mergeicmps -prune-eh -bdce -dce -globalopt -strip-debug-declare -strip-nondebug -slsr -loop-interchange -loop-reduce -lowerswitch -elim-avail-extern -globalopt -callsite-splitting -newgvn -lower-expect -ee-instrument -sancov -lowerswitch -licm -add-discriminators -gvn -early-cse-memssa -correlated-propagation -add-discriminators -memcpyopt -adce -mergereturn -strip-nondebug -callsite-splitting -break-crit-edges -loop-distribute -loop-simplifycfg -strip-nondebug -lcssa -mem2reg -attributor -dse -strip-debug-declare -strip -dce -loop-reduce -post-inline-ee-instrument -loop-distribute -loop-idiom -loop-unroll-and-jam -canonicalize-aliases -licm -deadargelim -loop-load-elim -speculative-execution -loop-unswitch -redundant-dbg-inst-elim -rpo-functionattrs -separate-const-offset-from-gep -flattencfg -die -lower-guard-intrinsic -loop-unroll-and-jam -lowerswitch -globalopt -coro-split -loop-reduce -loop-deletion -coro-split -mem2reg -adce -nary-reassociate -early-cse-memssa -float2int -newgvn -functionattrs -indvars -forceattrs -canonicalize-aliases -early-cse-memssa -slp-vectorizer -irce -loop-unroll -sccp -sink -globalsplit -strip-debug-declare -lower-expect -sancov -sancov -gvn-hoist -loop-reduce -barrier -newgvn -lowerswitch -ee-instrument -lower-constant-intrinsics -early-cse-memssa -loop-fusion -coro-elide -licm -callsite-splitting -dse -instnamer -aggressive-instcombine -newgvn -flattencfg -loop-deletion -strip-nondebug -load-store-vectorizer -speculative-execution -lower-constant-intrinsics -coro-elide -loop-simplifycfg -indvars -early-cse-memssa -strip-nondebug -loop-idiom -dce -hotcoldsplit -lower-guard-intrinsic -partially-inline-libcalls -alignment-from-assumptions -tailcallelim -hotcoldsplit -loop-simplifycfg -globalopt -constprop -ee-instrument -lcssa -functionattrs -loop-sink -loop-reduce -loop-vectorize -argpromotion -flattencfg -sroa -deadargelim -mem2reg -sccp -always-inline -lower-expect -ipconstprop -reassociate -slp-vectorizer -lowerinvoke -loop-vectorize -inject-tli-mappings -insert-gcov-profiling -correlated-propagation -loop-vectorize -ipconstprop -name-anon-globals -instcombine -loop-versioning-licm -rewrite-statepoints-for-gc -bdce -name-anon-globals -consthoist -float2int -infer-address-spaces -prune-eh -div-rem-pairs -simple-loop-unswitch -consthoist -lower-expect -mldst-motion -loop-simplifycfg -ee-instrument -loop-interchange -constmerge -consthoist -loop-unroll-and-jam -loop-distribute -jump-threading -loop-data-prefetch -mem2reg -instnamer -constprop -sink -loop-distribute -slsr -post-inline-ee-instrument -loop-vectorize -gvn-hoist -mldst-motion -constmerge -loop-reroll -indvars -forceattrs -die -insert-gcov-profiling -argpromotion -correlated-propagation -pgo-memop-opt -instcombine -licm -reassociate -coro-early -name-anon-globals -lower-widenable-condition -dce -loop-instsimplify -lower-constant-intrinsics -elim-avail-extern -loop-guard-widening -loop-simplifycfg -partial-inliner -gvn -irce -post-inline-ee-instrument -adce -constprop -callsite-splitting -loop-fusion -attributor -inferattrs -strip-dead-prototypes -inline -aggressive-instcombine -gvn-hoist -mergefunc -speculative-execution -die -forceattrs -insert-gcov-profiling -callsite-splitting -slsr -loop-simplify -loop-versioning-licm -add-discriminators -rpo-functionattrs -sccp -die -loop-interchange -strip -globaldce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0417302798982189,12.396470785140991,opt -prune-eh -loop-idiom -nary-reassociate -post-inline-ee-instrument -loop-unswitch -slsr -reassociate -separate-const-offset-from-gep -loop-fusion -loop-deletion -coro-elide -slsr -forceattrs -mergeicmps -globaldce -elim-avail-extern -pgo-memop-opt -loop-predication -canonicalize-aliases -instsimplify -loop-fusion -simplifycfg -simple-loop-unswitch -attributor -canonicalize-aliases -loop-predication -licm -hotcoldsplit -ipsccp -indvars -partial-inliner -tailcallelim -coro-cleanup -lcssa -strip-dead-prototypes -sancov -scalarizer -float2int -loop-unswitch -strip-dead-prototypes -loop-versioning -strip-dead-prototypes -globaldce -callsite-splitting -gvn -mem2reg -instcombine -memcpyopt -functionattrs -add-discriminators -slsr -deadargelim -mergereturn -lcssa -loop-distribute -guard-widening -lower-expect -loop-idiom -licm -coro-split -strip-nondebug -rpo-functionattrs -loop-predication -hotcoldsplit -reassociate -lower-matrix-intrinsics -coro-cleanup -rewrite-statepoints-for-gc -lcssa -lowerswitch -lcssa -mem2reg -loop-simplify -strip-dead-prototypes -loop-vectorize -coro-early -loop-predication -attributor -reassociate -forceattrs -sccp -newgvn -add-discriminators -mldst-motion -loop-deletion -sink -loop-predication -newgvn -loop-data-prefetch -mergeicmps -loop-unroll -globalsplit -adce -argpromotion -rewrite-statepoints-for-gc -loop-simplifycfg -partial-inliner -loop-guard-widening -loop-load-elim -sroa -simplifycfg -consthoist -separate-const-offset-from-gep -globaldce -bdce -loop-instsimplify -canonicalize-aliases -barrier -ipconstprop -rpo-functionattrs -rpo-functionattrs -deadargelim -bdce -loweratomic -ipsccp -coro-early -loop-simplifycfg -load-store-vectorizer -argpromotion -gvn-hoist -indvars -globalsplit -gvn -coro-split -lowerinvoke -reassociate -rewrite-statepoints-for-gc -sccp -coro-early -bdce -strip-nondebug -infer-address-spaces -dse -simple-loop-unswitch -callsite-splitting -irce -mergefunc -sccp -infer-address-spaces -slp-vectorizer -argpromotion -called-value-propagation -deadargelim -flattencfg -hotcoldsplit -loop-distribute -partial-inliner -strip -instcombine input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.043765903307888,12.748835325241089,opt -rpo-functionattrs -constmerge -functionattrs -scalarizer -canonicalize-aliases -jump-threading -loop-simplify -lower-constant-intrinsics -loop-interchange -aggressive-instcombine -loop-versioning -float2int -newgvn -loop-simplify -partially-inline-libcalls -loop-distribute -irce -lower-widenable-condition -instcombine -licm -sccp -coro-cleanup -dse -partially-inline-libcalls -lower-guard-intrinsic -lower-matrix-intrinsics -gvn -alignment-from-assumptions -guard-widening -rewrite-statepoints-for-gc -consthoist -dce -rewrite-statepoints-for-gc -mldst-motion -loop-guard-widening -instsimplify -attributor -mergereturn -strip-debug-declare -ipconstprop -instnamer -alignment-from-assumptions -loop-unroll-and-jam -prune-eh -dse -loop-idiom -loop-unroll -add-discriminators -strip-debug-declare -globaldce -loop-versioning -name-anon-globals -argpromotion -gvn -constprop -attributor -rewrite-statepoints-for-gc -lcssa -mergefunc -ipsccp -loop-idiom -loop-fusion -loop-versioning -called-value-propagation -flattencfg -guard-widening -inline -functionattrs -barrier -insert-gcov-profiling -partially-inline-libcalls -name-anon-globals -loop-versioning -infer-address-spaces -strip -bdce -add-discriminators -name-anon-globals -constmerge -barrier -mem2reg -loop-simplifycfg -redundant-dbg-inst-elim -coro-split -loop-guard-widening -strip-dead-prototypes -slsr -mem2reg -alignment-from-assumptions -partial-inliner -irce -memcpyopt -strip-nondebug -early-cse-memssa -coro-cleanup -loop-sink -separate-const-offset-from-gep -inject-tli-mappings -early-cse-memssa -tailcallelim -loop-unroll -licm -loop-vectorize -prune-eh -partially-inline-libcalls -newgvn -loop-reroll -break-crit-edges -post-inline-ee-instrument -rewrite-statepoints-for-gc -rpo-functionattrs -libcalls-shrinkwrap -ipsccp -nary-reassociate -load-store-vectorizer -mldst-motion -post-inline-ee-instrument -always-inline -rpo-functionattrs -flattencfg -coro-cleanup -simple-loop-unswitch -aggressive-instcombine -simple-loop-unswitch -coro-early -ipsccp -loop-guard-widening -adce -div-rem-pairs -instcombine -lower-widenable-condition -sancov -dse -loop-simplifycfg -loop-predication -memcpyopt -dce -dse -infer-address-spaces -loop-rotate -callsite-splitting -break-crit-edges -dce -partially-inline-libcalls -bdce -ipsccp -redundant-dbg-inst-elim -loop-idiom -slp-vectorizer -mergereturn -reassociate -loop-deletion -loop-fusion -jump-threading -gvn-hoist -simplifycfg -simple-loop-unswitch -loop-versioning-licm -always-inline -irce -instcombine input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0478371501272268,12.708849906921387,opt -sink -loop-vectorize -consthoist -coro-cleanup -coro-early -scalarizer -sroa -guard-widening -consthoist -correlated-propagation -loop-guard-widening -loop-idiom -instcombine -newgvn -instnamer -lcssa -strip-dead-prototypes -canonicalize-aliases -lowerinvoke -reassociate -redundant-dbg-inst-elim -ipsccp -pgo-memop-opt -add-discriminators -loop-unroll -canonicalize-aliases -indvars -coro-early -forceattrs -loop-guard-widening -loop-guard-widening -lowerswitch -ipconstprop -loop-versioning-licm -lcssa -rewrite-statepoints-for-gc -indvars -indvars -coro-cleanup -partially-inline-libcalls -loop-deletion -mem2reg -elim-avail-extern -lcssa -memcpyopt -irce -early-cse-memssa -coro-early -loop-unroll -loop-guard-widening -name-anon-globals -separate-const-offset-from-gep -loop-predication -canonicalize-aliases -ipsccp -prune-eh -consthoist -adce -called-value-propagation -loop-sink -loop-deletion -jump-threading -loop-instsimplify -adce -loop-unroll -hotcoldsplit -libcalls-shrinkwrap -consthoist -partially-inline-libcalls -infer-address-spaces -slp-vectorizer -rpo-functionattrs -sink -instcombine -dse -constprop -argpromotion -infer-address-spaces -tailcallelim -newgvn -flattencfg -mergereturn -memcpyopt -loop-unroll-and-jam -coro-cleanup -reassociate -div-rem-pairs -ee-instrument -dse -simple-loop-unswitch -strip-dead-prototypes -memcpyopt -libcalls-shrinkwrap -correlated-propagation -loop-data-prefetch -strip -simple-loop-unswitch -partial-inliner -mergefunc -loop-unroll -lowerswitch -sink -lower-matrix-intrinsics -loop-deletion -inferattrs -constprop -loop-data-prefetch -mem2reg -strip-debug-declare -attributor -lower-expect -gvn-hoist -nary-reassociate -partially-inline-libcalls -globalsplit -pgo-memop-opt -lower-widenable-condition -sancov -early-cse-memssa -consthoist -inferattrs -consthoist -reg2mem -partial-inliner -name-anon-globals -loop-vectorize -strip-debug-declare -constmerge -loop-guard-widening -div-rem-pairs -scalarizer -pgo-memop-opt -ipsccp -sccp -rpo-functionattrs -instsimplify -constmerge -loop-load-elim -coro-cleanup -lower-constant-intrinsics -mem2reg -always-inline -tailcallelim -gvn-hoist -dse -attributor -lower-expect -lowerinvoke -bdce -newgvn -mem2reg -instcombine -globalopt -elim-avail-extern -rpo-functionattrs -slsr -slsr -loweratomic -always-inline -libcalls-shrinkwrap -sancov -deadargelim -mergefunc -globaldce -loop-data-prefetch -dse -separate-const-offset-from-gep -globalsplit -globalsplit -tailcallelim -newgvn -ee-instrument -sccp -loop-versioning-licm -loop-simplify -reassociate -loop-simplifycfg -globalsplit -reassociate -post-inline-ee-instrument -ee-instrument -loop-instsimplify -break-crit-edges -constmerge -gvn-hoist -newgvn -attributor -globaldce -separate-const-offset-from-gep -mergereturn -simplifycfg -instsimplify -load-store-vectorizer -loop-instsimplify -inferattrs -irce -loweratomic -gvn -adce -loop-interchange -consthoist -argpromotion -irce -loop-versioning -reg2mem -loop-simplifycfg -strip-nondebug -strip-dead-prototypes -loop-deletion -loop-simplifycfg -inferattrs -inferattrs -strip-debug-declare -coro-elide -loop-load-elim -adce -flattencfg -inject-tli-mappings -reassociate -mergeicmps -sccp -loop-versioning-licm -name-anon-globals -rewrite-statepoints-for-gc -licm -sccp -loop-guard-widening -loop-unroll -speculative-execution -lowerinvoke -loop-deletion -mergereturn -correlated-propagation -indvars -insert-gcov-profiling -nary-reassociate -coro-early -dce -loop-reduce -functionattrs -mergereturn -simplifycfg -ee-instrument -loop-unswitch -loop-distribute -speculative-execution -loop-instsimplify -gvn-hoist -reassociate -loop-reduce -loop-unroll -loop-data-prefetch -deadargelim -coro-split -mergefunc -sroa -loop-unroll -functionattrs -lowerswitch -lcssa -canonicalize-aliases -redundant-dbg-inst-elim -correlated-propagation -loop-data-prefetch -irce -slp-vectorizer -loop-data-prefetch -coro-split -loop-simplify -loop-distribute -indvars -div-rem-pairs -indvars -loop-guard-widening -instcombine -mergeicmps -loop-unswitch -attributor -sroa -loop-data-prefetch -gvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0498727735368956,12.672531366348267,opt -alignment-from-assumptions -loop-vectorize -attributor -speculative-execution -loop-guard-widening -called-value-propagation -consthoist -aggressive-instcombine -break-crit-edges -constprop -inferattrs -loop-versioning-licm -instnamer -rpo-functionattrs -break-crit-edges -strip -load-store-vectorizer -name-anon-globals -globalopt -post-inline-ee-instrument -correlated-propagation -insert-gcov-profiling -partial-inliner -loop-idiom -globaldce -memcpyopt -tailcallelim -globaldce -insert-gcov-profiling -sink -coro-cleanup -irce -loop-deletion -slp-vectorizer -loop-deletion -lowerswitch -flattencfg -partially-inline-libcalls -cross-dso-cfi -lower-expect -always-inline -loop-guard-widening -cross-dso-cfi -rewrite-statepoints-for-gc -indvars -aggressive-instcombine -strip-dead-prototypes -loop-reduce -newgvn -sroa -scalarizer -loop-instsimplify -argpromotion -instcombine -constprop -rewrite-statepoints-for-gc -coro-split -hotcoldsplit -callsite-splitting -globaldce -correlated-propagation -sancov -jump-threading -forceattrs -scalarizer -globalopt -called-value-propagation -functionattrs -instnamer -ee-instrument -constmerge -attributor -memcpyopt -coro-split -loop-versioning-licm -lowerinvoke -loop-versioning -partially-inline-libcalls -guard-widening -loop-unroll-and-jam -lower-expect -slp-vectorizer -barrier -loop-versioning-licm -simple-loop-unswitch -tailcallelim -strip-debug-declare -callsite-splitting -rewrite-statepoints-for-gc -gvn-hoist -ee-instrument -dse -cross-dso-cfi -lower-constant-intrinsics -alignment-from-assumptions -constmerge -loop-distribute -scalarizer -inferattrs -sccp -add-discriminators -break-crit-edges -dse -correlated-propagation -instcombine -loop-versioning -sroa -tailcallelim -gvn-hoist -gvn -float2int -simplifycfg -float2int -loop-versioning -constprop -div-rem-pairs -inline -slsr -loop-guard-widening -loop-unroll -loop-distribute -gvn-hoist -bdce -insert-gcov-profiling -coro-cleanup -slp-vectorizer -reassociate -simplifycfg -add-discriminators -coro-elide -loop-versioning -barrier -prune-eh -loop-unroll -inline -called-value-propagation -strip-dead-prototypes -reg2mem -sink -bdce -add-discriminators -partial-inliner -gvn -lower-constant-intrinsics -scalarizer -mem2reg -indvars -scalarizer -loop-load-elim -loop-idiom -instsimplify -correlated-propagation -lcssa -redundant-dbg-inst-elim -loop-instsimplify -early-cse-memssa -called-value-propagation -partially-inline-libcalls -redundant-dbg-inst-elim -infer-address-spaces -loop-unroll-and-jam -loop-versioning -loop-simplifycfg -dce -inject-tli-mappings -globalsplit -rpo-functionattrs -loop-unroll -loop-unroll -infer-address-spaces -dce -instnamer -load-store-vectorizer -constmerge -sccp -hotcoldsplit -lower-matrix-intrinsics -tailcallelim -functionattrs -sink -sroa -loop-idiom -mergefunc -adce -lower-widenable-condition -licm -dce -gvn -always-inline -canonicalize-aliases -memcpyopt -ipsccp -loop-sink -coro-split -loop-unroll-and-jam -jump-threading -slp-vectorizer -loop-idiom -gvn -canonicalize-aliases -argpromotion -deadargelim -hotcoldsplit -coro-split -constprop -newgvn -loop-sink -deadargelim -loop-interchange -loop-distribute -guard-widening -coro-split -barrier -mem2reg -mergefunc -adce -memcpyopt -barrier -adce -loop-versioning-licm -strip-nondebug -sink -prune-eh -instcombine input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0519083969465652,12.692818880081177,opt -gvn-hoist -elim-avail-extern -loop-reduce -sink -coro-early -callsite-splitting -instnamer -called-value-propagation -lower-matrix-intrinsics -loop-distribute -instnamer -cross-dso-cfi -nary-reassociate -globalopt -argpromotion -lower-matrix-intrinsics -redundant-dbg-inst-elim -gvn -lowerswitch -gvn-hoist -mergefunc -coro-elide -lower-constant-intrinsics -aggressive-instcombine -correlated-propagation -lower-matrix-intrinsics -slp-vectorizer -loop-data-prefetch -ipsccp -indvars -mergefunc -prune-eh -lower-guard-intrinsic -bdce -coro-early -loop-simplify -reg2mem -irce -cross-dso-cfi -loop-instsimplify -sroa -loop-deletion -simple-loop-unswitch -functionattrs -sccp -strip-dead-prototypes -dce -callsite-splitting -globalsplit -hotcoldsplit -forceattrs -separate-const-offset-from-gep -correlated-propagation -aggressive-instcombine -loop-simplify -lower-matrix-intrinsics -early-cse-memssa -mem2reg -sink -licm -barrier -cross-dso-cfi -mergeicmps -elim-avail-extern -rpo-functionattrs -consthoist -lcssa -lowerinvoke -aggressive-instcombine -reg2mem -reg2mem -sink -partially-inline-libcalls -simplifycfg -memcpyopt -elim-avail-extern -break-crit-edges -loop-simplify -callsite-splitting -name-anon-globals -loweratomic -indvars -early-cse-memssa -loop-unroll -partial-inliner -cross-dso-cfi -lower-matrix-intrinsics -early-cse-memssa -div-rem-pairs -elim-avail-extern -separate-const-offset-from-gep -speculative-execution -callsite-splitting -instnamer -globaldce -loop-rotate -lowerinvoke -consthoist -loop-idiom -loop-simplify -libcalls-shrinkwrap -irce -loop-distribute -lower-expect -mergefunc -slsr -barrier -nary-reassociate -dce -lower-guard-intrinsic -lower-guard-intrinsic -irce -strip -coro-elide -loop-data-prefetch -mergefunc -mergefunc -mergeicmps -lcssa -canonicalize-aliases -loop-simplify -jump-threading -float2int -loop-vectorize -loop-sink -prune-eh -div-rem-pairs -instsimplify -loop-vectorize -irce -float2int -coro-elide -barrier -early-cse-memssa -early-cse-memssa -argpromotion -inline -prune-eh -slp-vectorizer -mem2reg -guard-widening -adce -inferattrs -simplifycfg -loweratomic -instcombine -simple-loop-unswitch -indvars -loweratomic -lower-widenable-condition -aggressive-instcombine -dse -irce -lowerswitch -alignment-from-assumptions -loop-predication -strip-dead-prototypes -inline -flattencfg -die -lowerinvoke -irce -loop-data-prefetch -add-discriminators -ipsccp -div-rem-pairs -loop-reroll -reg2mem -loop-distribute -lower-constant-intrinsics -adce -mem2reg -libcalls-shrinkwrap -lowerswitch -insert-gcov-profiling -instcombine -rewrite-statepoints-for-gc -speculative-execution -coro-elide -scalarizer -rpo-functionattrs -ipconstprop -nary-reassociate -ee-instrument -ipconstprop -partial-inliner -loop-deletion -lcssa -mem2reg -strip -coro-elide -loop-idiom -mergeicmps -globalsplit -mergereturn -reassociate -bdce -canonicalize-aliases -cross-dso-cfi -deadargelim -constmerge -mergereturn -lcssa -loop-predication -aggressive-instcombine -loop-guard-widening -functionattrs -early-cse-memssa -loop-instsimplify -instnamer -load-store-vectorizer -adce -lower-constant-intrinsics -partial-inliner -strip-nondebug -loop-fusion -flattencfg -ipconstprop -coro-elide -forceattrs -loop-idiom -globalsplit -constprop -deadargelim -scalarizer -memcpyopt -globalsplit -div-rem-pairs -tailcallelim -alignment-from-assumptions -newgvn -mergeicmps -instsimplify -lower-matrix-intrinsics -loop-reduce -loop-deletion -post-inline-ee-instrument -coro-split -tailcallelim -canonicalize-aliases -break-crit-edges -canonicalize-aliases -indvars -die -loop-deletion -argpromotion -partially-inline-libcalls -loop-fusion -mergefunc -lower-guard-intrinsic -ipsccp -loop-reroll -div-rem-pairs -barrier -jump-threading -coro-elide -ee-instrument -lcssa -loweratomic -gvn -argpromotion -loop-predication -dce -instsimplify -loop-guard-widening -loop-deletion -argpromotion -constprop -instcombine -sancov -sink -hotcoldsplit -inject-tli-mappings -redundant-dbg-inst-elim -strip-nondebug -loop-versioning-licm -instsimplify -dce -partial-inliner -ipsccp -speculative-execution -sroa -infer-address-spaces -alignment-from-assumptions -lcssa -lcssa -scalarizer -ee-instrument -globalopt -lower-matrix-intrinsics -gvn-hoist -mergeicmps -infer-address-spaces -instcombine -globalopt -coro-early -float2int -mem2reg -sancov -sink -inject-tli-mappings -loweratomic -lower-widenable-condition -always-inline -simplifycfg -reg2mem -argpromotion -strip-dead-prototypes -gvn-hoist -constmerge -inline -early-cse-memssa -lower-widenable-condition -reg2mem -coro-elide -instcombine -mem2reg -dse -flattencfg -loop-unroll-and-jam -sroa -consthoist -mldst-motion -ee-instrument -mergereturn -infer-address-spaces -ee-instrument -gvn -rewrite-statepoints-for-gc -guard-widening -mergefunc -mergereturn -callsite-splitting -canonicalize-aliases -instnamer -alignment-from-assumptions -argpromotion -simplifycfg -flattencfg -loop-reduce -gvn -loop-deletion -loop-versioning -flattencfg -strip -cross-dso-cfi -instsimplify -attributor -early-cse-memssa -insert-gcov-profiling -separate-const-offset-from-gep -indvars -slp-vectorizer -newgvn -functionattrs -loop-guard-widening -lower-widenable-condition -rpo-functionattrs -mergeicmps -load-store-vectorizer -reassociate -div-rem-pairs -loop-simplifycfg -post-inline-ee-instrument -redundant-dbg-inst-elim -dse -coro-split -bdce -attributor -forceattrs -lower-constant-intrinsics -loop-guard-widening -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1169348539290735,23.584031105041504,opt -loop-reduce -mem2reg -instnamer -called-value-propagation -loop-idiom -globalopt -loop-versioning -loop-unroll-and-jam -loop-instsimplify -insert-gcov-profiling -loop-instsimplify -strip-nondebug -coro-split -globalopt -mem2reg -alignment-from-assumptions -pgo-memop-opt -sink -loop-interchange -loop-deletion -consthoist -hotcoldsplit -separate-const-offset-from-gep -mem2reg -dce -div-rem-pairs -newgvn -functionattrs -dce -loop-data-prefetch -lcssa -inferattrs -correlated-propagation -sancov -strip-nondebug -speculative-execution -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1241212310576472,25.40641736984253,opt -rpo-functionattrs -mergeicmps -loop-predication -correlated-propagation -lowerinvoke -simplifycfg -post-inline-ee-instrument -pgo-memop-opt -inferattrs -ipconstprop -div-rem-pairs -loop-unroll-and-jam -mem2reg -mldst-motion -sroa -loop-vectorize -redundant-dbg-inst-elim -strip -infer-address-spaces -canonicalize-aliases -loop-versioning -aggressive-instcombine -strip-dead-prototypes -lower-guard-intrinsic -licm -loop-unroll -separate-const-offset-from-gep -inject-tli-mappings -loweratomic -inferattrs -lower-widenable-condition -dce -lowerinvoke -mergereturn -add-discriminators -cross-dso-cfi -coro-split -coro-split -speculative-execution -loop-instsimplify -rewrite-statepoints-for-gc -jump-threading -globalsplit -newgvn -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1369317294172785,25.428560495376587,opt -globalsplit -sancov -simple-loop-unswitch -functionattrs -partially-inline-libcalls -globaldce -pgo-memop-opt -indvars -forceattrs -loop-reduce -coro-split -newgvn -loop-simplifycfg -inject-tli-mappings -bdce -forceattrs -simplifycfg -consthoist -functionattrs -indvars -memcpyopt -hotcoldsplit -rpo-functionattrs -newgvn -flattencfg -bdce -dce -always-inline -simple-loop-unswitch -loop-reroll -insert-gcov-profiling -callsite-splitting -mergeicmps -instnamer -constprop -consthoist -add-discriminators -separate-const-offset-from-gep -correlated-propagation -slp-vectorizer -memcpyopt -slp-vectorizer -instnamer -nary-reassociate -lower-constant-intrinsics -functionattrs -lower-guard-intrinsic -loop-guard-widening -irce -loop-deletion -sccp -reassociate -loop-guard-widening -speculative-execution -reg2mem -coro-split -pgo-memop-opt -strip-nondebug -cross-dso-cfi -mem2reg -inject-tli-mappings -loop-load-elim -loop-deletion -lower-widenable-condition -argpromotion -sroa -loop-versioning-licm -inferattrs -loop-guard-widening -loop-interchange -die -correlated-propagation -partially-inline-libcalls -lower-guard-intrinsic -loop-reduce -cross-dso-cfi -lower-guard-intrinsic -loop-predication -lower-matrix-intrinsics -consthoist -sancov -mergefunc -strip-debug-declare -coro-elide -instnamer -strip -licm -reassociate -canonicalize-aliases -loop-sink -redundant-dbg-inst-elim -ipconstprop -sroa -globalopt -consthoist -name-anon-globals -mergefunc -partial-inliner -gvn-hoist -ipconstprop -loop-deletion -redundant-dbg-inst-elim -reassociate -libcalls-shrinkwrap -instcombine -lower-expect -lowerinvoke -globalopt -mem2reg -sancov -hotcoldsplit -insert-gcov-profiling -loop-fusion -nary-reassociate -forceattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1409935947508203,24.855397701263428,opt -loop-unswitch -loop-versioning -loop-guard-widening -mldst-motion -mldst-motion -loop-idiom -loop-versioning-licm -constprop -reassociate -inferattrs -coro-cleanup -loop-simplifycfg -adce -add-discriminators -sroa -cross-dso-cfi -pgo-memop-opt -consthoist -callsite-splitting -loop-simplify -simple-loop-unswitch -callsite-splitting -alignment-from-assumptions -loop-fusion -post-inline-ee-instrument -dce -partial-inliner -ee-instrument -prune-eh -reassociate -irce -memcpyopt -functionattrs -tailcallelim -loop-vectorize -inject-tli-mappings -deadargelim -gvn -name-anon-globals -loop-data-prefetch -sccp -loop-versioning-licm -mergeicmps -always-inline -mergereturn -loop-rotate -loop-sink -coro-cleanup -nary-reassociate -loop-simplifycfg -dse -simplifycfg -loop-deletion -jump-threading -memcpyopt -globalsplit -loop-instsimplify -die -inferattrs -instcombine -coro-split -consthoist -dce -mergefunc -forceattrs -name-anon-globals -lower-widenable-condition -loop-simplify -pgo-memop-opt -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1423996250585842,23.81988525390625,opt -simplifycfg -loop-simplify -gvn-hoist -early-cse-memssa -loop-instsimplify -correlated-propagation -functionattrs -simple-loop-unswitch -ipconstprop -loop-reduce -separate-const-offset-from-gep -tailcallelim -instnamer -loop-distribute -loop-load-elim -redundant-dbg-inst-elim -inject-tli-mappings -loop-deletion -loop-simplify -simplifycfg -ipsccp -elim-avail-extern -slsr -called-value-propagation -loop-deletion -loop-instsimplify -gvn-hoist -elim-avail-extern -canonicalize-aliases -reg2mem -break-crit-edges -lowerinvoke -loop-reduce -break-crit-edges -loop-instsimplify -rewrite-statepoints-for-gc -correlated-propagation -lower-guard-intrinsic -loop-sink -guard-widening -coro-early -loop-predication -simple-loop-unswitch -simplifycfg -canonicalize-aliases -reg2mem -globalsplit -strip-dead-prototypes -mergefunc -loop-predication -loop-unswitch -sink -loop-guard-widening -loop-predication -mergefunc -loop-instsimplify -lower-widenable-condition -sroa -gvn -instcombine -loop-fusion -globalsplit -ipsccp -partial-inliner -partially-inline-libcalls -alignment-from-assumptions -attributor -globalopt -early-cse-memssa -name-anon-globals -lower-constant-intrinsics -called-value-propagation -coro-early -deadargelim -loop-sink -break-crit-edges -rpo-functionattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1469301671613812,23.125929832458496,opt -load-store-vectorizer -sroa -lower-expect -mergeicmps -dse -globaldce -loop-interchange -gvn-hoist -simplifycfg -argpromotion -simplifycfg -lower-guard-intrinsic -coro-early -globaldce -loop-interchange -simple-loop-unswitch -libcalls-shrinkwrap -loop-simplify -loop-distribute -loop-guard-widening -scalarizer -scalarizer -strip-debug-declare -sancov -loop-simplify -slsr -instnamer -pgo-memop-opt -lower-guard-intrinsic -lower-constant-intrinsics -loop-unroll-and-jam -name-anon-globals -called-value-propagation -constmerge -mldst-motion -consthoist -canonicalize-aliases -redundant-dbg-inst-elim -memcpyopt -float2int -gvn -partially-inline-libcalls -loop-versioning -adce -speculative-execution -lower-guard-intrinsic -name-anon-globals -mergeicmps -loop-vectorize -adce -callsite-splitting -libcalls-shrinkwrap -add-discriminators -cross-dso-cfi -slp-vectorizer -newgvn -ipsccp -loop-vectorize -consthoist -always-inline -instsimplify -strip-debug-declare -functionattrs -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1548195594438369,23.729283809661865,opt -correlated-propagation -break-crit-edges -separate-const-offset-from-gep -name-anon-globals -slsr -sancov -loop-sink -barrier -prune-eh -forceattrs -constprop -deadargelim -mem2reg -coro-split -simplifycfg -gvn-hoist -deadargelim -loop-guard-widening -sroa -constprop -globalopt -guard-widening -loop-guard-widening -consthoist -die -newgvn -jump-threading -sroa -aggressive-instcombine -loweratomic -indvars -coro-split -instcombine -slp-vectorizer -post-inline-ee-instrument -newgvn -dse input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1548195594438382,24.505677223205566,opt -strip -break-crit-edges -loop-fusion -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -div-rem-pairs -separate-const-offset-from-gep -memcpyopt -redundant-dbg-inst-elim -sroa -simple-loop-unswitch -sccp -instcombine -mem2reg -gvn -loop-sink -barrier -insert-gcov-profiling -globalopt -instnamer -forceattrs -loop-versioning-licm -mergeicmps -tailcallelim -indvars -coro-early -reassociate -post-inline-ee-instrument -globalopt -inferattrs -bdce -dce -loop-interchange -ipsccp -loop-interchange -argpromotion -sroa -argpromotion -separate-const-offset-from-gep -called-value-propagation -mergefunc -separate-const-offset-from-gep -simplifycfg -loop-simplifycfg -insert-gcov-profiling -loop-simplify -adce -rpo-functionattrs -break-crit-edges -strip-dead-prototypes -mergereturn -ipsccp -loweratomic -callsite-splitting -ipsccp -instnamer -forceattrs -slp-vectorizer -guard-widening -adce -deadargelim -loop-idiom -mldst-motion -load-store-vectorizer -indvars -inferattrs -loop-versioning -deadargelim -lcssa -simplifycfg -functionattrs -coro-cleanup -coro-cleanup -lower-widenable-condition -loop-fusion -sancov -post-inline-ee-instrument -mem2reg -loweratomic -loop-fusion -rewrite-statepoints-for-gc -correlated-propagation -sroa -indvars -coro-elide -licm -loop-load-elim -loop-unroll-and-jam -licm -loop-instsimplify -sroa -loop-versioning-licm -simple-loop-unswitch -functionattrs -canonicalize-aliases -libcalls-shrinkwrap -loop-deletion -loop-deletion -loop-versioning -mergefunc -loop-simplify -instcombine -coro-cleanup -correlated-propagation -prune-eh -globaldce -forceattrs -lower-constant-intrinsics -dce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1602093422902673,29.369541883468628,opt -name-anon-globals -float2int -constmerge -prune-eh -loop-guard-widening -loop-load-elim -dse -lower-constant-intrinsics -loop-instsimplify -ipsccp -tailcallelim -cross-dso-cfi -constprop -strip-debug-declare -coro-cleanup -loop-guard-widening -loop-simplifycfg -loop-reduce -loop-simplify -consthoist -barrier -canonicalize-aliases -gvn -rewrite-statepoints-for-gc -partially-inline-libcalls -post-inline-ee-instrument -instnamer -partially-inline-libcalls -sroa -loop-versioning -coro-early -bdce -loop-unroll-and-jam -sink -loop-versioning-licm -strip-debug-declare -newgvn -slp-vectorizer -loop-idiom -newgvn -simplifycfg -loweratomic -loop-instsimplify -sccp -coro-split -forceattrs -licm -licm -early-cse-memssa -rewrite-statepoints-for-gc -strip-dead-prototypes -functionattrs -functionattrs -lcssa -constmerge -loop-versioning -indvars -strip-dead-prototypes -consthoist -pgo-memop-opt -lower-expect -partially-inline-libcalls -canonicalize-aliases -sink -loop-guard-widening -speculative-execution -coro-early -rewrite-statepoints-for-gc -separate-const-offset-from-gep -tailcallelim -loop-versioning -cross-dso-cfi -coro-cleanup -gvn -aggressive-instcombine -loop-data-prefetch -sroa -lowerinvoke -sancov -loop-predication -strip-dead-prototypes -loop-distribute -guard-widening -loop-simplifycfg -globalopt -called-value-propagation -lower-expect -early-cse-memssa -mergereturn -loop-load-elim -coro-split -instcombine -name-anon-globals -insert-gcov-profiling -loop-unroll-and-jam -globalopt -strip-debug-declare -strip -separate-const-offset-from-gep -strip-debug-declare -partially-inline-libcalls -globalsplit -mergefunc -die -loop-versioning-licm -irce -loop-predication -gvn -loop-versioning -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1766911420090613,27.65174961090088,opt -pgo-memop-opt -coro-elide -coro-cleanup -pgo-memop-opt -slsr -lower-matrix-intrinsics -loop-deletion -loop-versioning-licm -post-inline-ee-instrument -strip-dead-prototypes -sink -adce -lower-guard-intrinsic -strip-nondebug -coro-early -mem2reg -constmerge -adce -strip-nondebug -mergeicmps -irce -slsr -irce -tailcallelim -ipsccp -die -memcpyopt -separate-const-offset-from-gep -loop-load-elim -gvn -reassociate -pgo-memop-opt -separate-const-offset-from-gep -loop-data-prefetch -early-cse-memssa -scalarizer -lcssa -aggressive-instcombine -lower-guard-intrinsic -loop-sink -die -tailcallelim -dse -nary-reassociate -load-store-vectorizer -dce -lower-guard-intrinsic -callsite-splitting -adce -loop-load-elim -rpo-functionattrs -strip-debug-declare -loop-unswitch -slp-vectorizer -sink -inject-tli-mappings -loop-idiom -lowerinvoke -sccp -load-store-vectorizer -loweratomic -inferattrs -constmerge -hotcoldsplit -cross-dso-cfi -mldst-motion -loop-sink -lower-constant-intrinsics -separate-const-offset-from-gep -loop-fusion -loop-vectorize -strip-nondebug -lowerinvoke -div-rem-pairs -aggressive-instcombine -insert-gcov-profiling -mergeicmps -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,0.9921875,11.82210922241211,opt -instsimplify -instsimplify -loop-unswitch -partial-inliner -constprop -coro-split -slp-vectorizer -mergeicmps -callsite-splitting -mergereturn -sroa -attributor -name-anon-globals -aggressive-instcombine -scalarizer -globalopt -cross-dso-cfi -break-crit-edges -flattencfg -instnamer -loop-reduce -mergefunc -libcalls-shrinkwrap -sccp -loop-instsimplify -constprop -coro-split -indvars -deadargelim -loop-unroll -jump-threading -indvars -loop-guard-widening -loop-simplifycfg -deadargelim -bdce -constmerge -strip-nondebug -forceattrs -loop-reroll -inferattrs -mergefunc -sancov -speculative-execution -ipconstprop -speculative-execution -lower-guard-intrinsic -hotcoldsplit -lower-guard-intrinsic -forceattrs -adce -coro-cleanup -adce -pgo-memop-opt -slsr -dce -early-cse-memssa -ipconstprop -loop-predication -coro-elide -inject-tli-mappings -infer-address-spaces -argpromotion -float2int -separate-const-offset-from-gep -dce -loop-versioning-licm -coro-early -slp-vectorizer -adce -nary-reassociate -libcalls-shrinkwrap -instnamer -coro-early -add-discriminators -alignment-from-assumptions -lower-widenable-condition -rewrite-statepoints-for-gc -lower-widenable-condition -coro-early -argpromotion -pgo-memop-opt -inject-tli-mappings -lower-guard-intrinsic -mem2reg -lower-matrix-intrinsics -loop-sink -scalarizer -die -loop-fusion -slsr -coro-split -globaldce -inject-tli-mappings -ee-instrument -lower-constant-intrinsics -speculative-execution -dce -loop-reduce -strip -loop-unroll -prune-eh -callsite-splitting -post-inline-ee-instrument -instsimplify -mergefunc -adce -simplifycfg -callsite-splitting -gvn -globaldce -coro-early -early-cse-memssa -loop-data-prefetch -lower-expect -mergereturn -loop-vectorize -instnamer -sink -loop-versioning -cross-dso-cfi -instcombine -sancov -gvn-hoist -memcpyopt -loop-sink -nary-reassociate -loop-data-prefetch -lower-widenable-condition -add-discriminators -memcpyopt -mergefunc -inject-tli-mappings -sroa -barrier -loop-versioning -sccp -loop-data-prefetch -scalarizer -barrier -mergefunc -indvars -sccp -jump-threading -newgvn input.bc -o output.bc +benchmark://cbench-v1/crc32,0.9921875,11.96300196647644,opt -correlated-propagation -called-value-propagation -loop-versioning -slp-vectorizer -simple-loop-unswitch -always-inline -prune-eh -sroa -reg2mem -loop-idiom -nary-reassociate -prune-eh -reassociate -callsite-splitting -dce -loop-predication -float2int -partially-inline-libcalls -globaldce -coro-elide -rewrite-statepoints-for-gc -coro-split -tailcallelim -inferattrs -sancov -adce -lower-guard-intrinsic -loop-idiom -strip-nondebug -name-anon-globals -jump-threading -float2int -post-inline-ee-instrument -alignment-from-assumptions -loop-data-prefetch -tailcallelim -loop-load-elim -simple-loop-unswitch -sink -attributor -elim-avail-extern -aggressive-instcombine -break-crit-edges -lowerswitch -lowerinvoke -globalsplit -mergereturn -strip -indvars -loop-unroll-and-jam -loop-unroll -separate-const-offset-from-gep -infer-address-spaces -loop-versioning -loop-predication -loop-instsimplify -deadargelim -simplifycfg -strip-dead-prototypes -lowerinvoke -lower-constant-intrinsics -irce -inject-tli-mappings -partially-inline-libcalls -strip -constmerge -partial-inliner -pgo-memop-opt -infer-address-spaces -inline -irce -break-crit-edges -lower-matrix-intrinsics -globalsplit -slp-vectorizer -sroa -slp-vectorizer -loop-deletion -post-inline-ee-instrument -loop-unroll-and-jam -simple-loop-unswitch -mem2reg -mergereturn -sancov -loop-data-prefetch -simplifycfg -add-discriminators -gvn input.bc -o output.bc +benchmark://cbench-v1/crc32,0.9921875,12.11146593093872,opt -simple-loop-unswitch -loop-load-elim -nary-reassociate -nary-reassociate -slsr -post-inline-ee-instrument -lower-matrix-intrinsics -indvars -globalopt -mergereturn -coro-split -adce -simple-loop-unswitch -attributor -constmerge -strip-nondebug -separate-const-offset-from-gep -argpromotion -loop-interchange -gvn -strip-nondebug -add-discriminators -constmerge -mergeicmps -reg2mem -strip-debug-declare -speculative-execution -break-crit-edges -strip -loop-data-prefetch -name-anon-globals -globaldce -strip-dead-prototypes -loweratomic -sccp -partial-inliner -ee-instrument -aggressive-instcombine -scalarizer -forceattrs -argpromotion -argpromotion -instsimplify -strip-nondebug -ipconstprop -add-discriminators -loop-data-prefetch -globaldce -instsimplify -globalopt -alignment-from-assumptions -strip-dead-prototypes -newgvn -ee-instrument -strip-nondebug -loop-idiom -ipconstprop -guard-widening -correlated-propagation -gvn -lowerswitch -tailcallelim -barrier -dce -instnamer -loop-instsimplify -jump-threading -barrier -reg2mem -loop-vectorize -inline -loop-sink -mergefunc -licm -insert-gcov-profiling -constprop -aggressive-instcombine -lower-matrix-intrinsics -indvars -argpromotion -sroa -loop-data-prefetch -loop-predication -licm -loop-interchange -callsite-splitting -load-store-vectorizer -flattencfg -constmerge -reassociate -lower-matrix-intrinsics -jump-threading -loop-data-prefetch -coro-split -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,11.723689317703247,opt -partially-inline-libcalls -inferattrs -mem2reg -scalarizer -always-inline -coro-elide -loop-reroll -constmerge -loop-reroll -globalsplit -early-cse-memssa -insert-gcov-profiling -sroa -insert-gcov-profiling -jump-threading -simple-loop-unswitch -adce -deadargelim -simplifycfg -sccp -rpo-functionattrs -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,11.768340826034546,opt -strip -strip-debug-declare -prune-eh -add-discriminators -loop-interchange -infer-address-spaces -callsite-splitting -loop-interchange -loop-versioning -globalsplit -infer-address-spaces -rpo-functionattrs -attributor -loop-unswitch -guard-widening -deadargelim -loop-data-prefetch -loop-data-prefetch -newgvn -speculative-execution -instcombine -lower-guard-intrinsic -loop-sink -early-cse-memssa -loop-unroll -constmerge -inferattrs -called-value-propagation -lowerswitch -strip-nondebug -dce -redundant-dbg-inst-elim -sink -mergefunc -pgo-memop-opt -loop-distribute -sink -loop-deletion -name-anon-globals -lcssa -loop-idiom -irce -lowerswitch -loop-versioning-licm -bdce -prune-eh -rpo-functionattrs -loop-unroll-and-jam -loweratomic -libcalls-shrinkwrap -strip-dead-prototypes -strip-dead-prototypes -break-crit-edges -lower-expect -globaldce -slsr -adce -instcombine -insert-gcov-profiling -nary-reassociate -infer-address-spaces -prune-eh -load-store-vectorizer -argpromotion -ipconstprop -dse -tailcallelim -scalarizer -inferattrs -mldst-motion -slp-vectorizer -loop-fusion -reassociate -post-inline-ee-instrument -constprop -lcssa -globaldce -loweratomic -sancov -strip-dead-prototypes -lowerinvoke -mldst-motion -jump-threading -loop-predication -lower-matrix-intrinsics -load-store-vectorizer -globaldce -mergeicmps -float2int -loop-vectorize -gvn -tailcallelim -redundant-dbg-inst-elim -globalopt -irce -loop-load-elim -lcssa -called-value-propagation -speculative-execution -loop-instsimplify -simple-loop-unswitch -newgvn -reassociate -redundant-dbg-inst-elim -sroa -mergereturn -globalsplit -sroa -lower-matrix-intrinsics -called-value-propagation -mldst-motion -barrier -elim-avail-extern -dce -tailcallelim -loop-versioning -callsite-splitting -partially-inline-libcalls -aggressive-instcombine -simple-loop-unswitch -globaldce -dse -bdce -separate-const-offset-from-gep -mergeicmps -sancov -speculative-execution -elim-avail-extern -flattencfg -adce -forceattrs -flattencfg -loop-simplify -canonicalize-aliases -loop-load-elim -die -scalarizer -strip-dead-prototypes -cross-dso-cfi -lowerswitch -strip -nary-reassociate -slsr -bdce -instcombine -newgvn -float2int -cross-dso-cfi -canonicalize-aliases -loop-predication -partial-inliner -coro-elide -irce -globaldce -coro-elide -argpromotion -rewrite-statepoints-for-gc -reassociate -ipconstprop -early-cse-memssa -constmerge -coro-elide -loop-reroll -infer-address-spaces -coro-elide -coro-split -gvn-hoist -cross-dso-cfi -loop-versioning-licm -loop-distribute -tailcallelim -pgo-memop-opt -lower-guard-intrinsic -forceattrs -loop-interchange -nary-reassociate -sink -early-cse-memssa -coro-cleanup -loop-vectorize -loop-instsimplify -loop-versioning -mem2reg -lcssa -strip-nondebug -strip-dead-prototypes -coro-early -gvn -redundant-dbg-inst-elim -scalarizer -ipsccp -infer-address-spaces -instcombine -lower-matrix-intrinsics -irce -barrier -correlated-propagation -lower-constant-intrinsics -gvn-hoist -slp-vectorizer -loop-vectorize -loop-instsimplify -loop-instsimplify -instsimplify -deadargelim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,11.806458950042725,opt -lcssa -strip -always-inline -prune-eh -argpromotion -scalarizer -ee-instrument -inject-tli-mappings -lcssa -lower-expect -coro-cleanup -partial-inliner -loop-sink -sink -ipsccp -forceattrs -globalsplit -correlated-propagation -loop-guard-widening -strip-nondebug -name-anon-globals -load-store-vectorizer -rewrite-statepoints-for-gc -mldst-motion -mldst-motion -speculative-execution -attributor -name-anon-globals -tailcallelim -loop-fusion -alignment-from-assumptions -newgvn -separate-const-offset-from-gep -div-rem-pairs -lower-constant-intrinsics -inferattrs -forceattrs -globalsplit -loop-simplifycfg -callsite-splitting -bdce -sroa -mergefunc -lowerswitch -sroa -flattencfg -mergefunc -mergefunc -elim-avail-extern -loop-unroll -flattencfg -inferattrs -reassociate -strip-debug-declare -ipconstprop -gvn-hoist -speculative-execution -instsimplify -loop-deletion -gvn-hoist -guard-widening -loop-interchange -bdce -lower-matrix-intrinsics -cross-dso-cfi -loop-versioning -redundant-dbg-inst-elim -loop-simplifycfg -libcalls-shrinkwrap -tailcallelim -jump-threading -globalsplit -div-rem-pairs -constprop -ipconstprop -rewrite-statepoints-for-gc -loop-load-elim -lowerswitch -inject-tli-mappings -insert-gcov-profiling -break-crit-edges -called-value-propagation -simplifycfg -inject-tli-mappings -add-discriminators -dce -aggressive-instcombine -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,11.919891834259033,opt -globalsplit -loop-unroll-and-jam -barrier -partially-inline-libcalls -gvn-hoist -loop-interchange -loop-data-prefetch -lower-guard-intrinsic -lcssa -mem2reg -mergereturn -hotcoldsplit -newgvn -barrier -pgo-memop-opt -reassociate -simplifycfg -die -deadargelim -libcalls-shrinkwrap -lowerinvoke -mergeicmps -loop-vectorize -loop-fusion -mldst-motion -loop-vectorize -post-inline-ee-instrument -load-store-vectorizer -rpo-functionattrs -sancov -load-store-vectorizer -loop-fusion -lowerswitch -consthoist -libcalls-shrinkwrap -loop-versioning -globalsplit -post-inline-ee-instrument -constmerge -loop-guard-widening -adce -inject-tli-mappings -cross-dso-cfi -instcombine -float2int -loop-reroll -loop-vectorize -prune-eh -sccp -coro-elide -dce -elim-avail-extern -nary-reassociate -simplifycfg -gvn input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,11.926751136779785,opt -name-anon-globals -load-store-vectorizer -loop-versioning -float2int -bdce -float2int -loop-fusion -loop-distribute -loop-guard-widening -nary-reassociate -instsimplify -loop-interchange -sccp -lower-matrix-intrinsics -gvn-hoist -nary-reassociate -break-crit-edges -cross-dso-cfi -insert-gcov-profiling -prune-eh -loop-simplifycfg -loop-load-elim -mem2reg -die -strip-dead-prototypes -mergereturn -loop-vectorize -add-discriminators -loop-fusion -licm -strip-dead-prototypes -aggressive-instcombine -rewrite-statepoints-for-gc -ipsccp -deadargelim -loweratomic -reassociate -loop-predication -consthoist -div-rem-pairs -gvn-hoist -strip-dead-prototypes -lower-widenable-condition -correlated-propagation -inject-tli-mappings -ipconstprop -dse -reassociate -loop-unroll -barrier -strip -rpo-functionattrs -insert-gcov-profiling -gvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,11.97989559173584,opt -coro-elide -loop-unroll -early-cse-memssa -loop-simplify -always-inline -lower-expect -loop-interchange -loop-versioning-licm -lower-matrix-intrinsics -indvars -loop-unroll -elim-avail-extern -partially-inline-libcalls -loop-guard-widening -constmerge -ee-instrument -loweratomic -div-rem-pairs -adce -loop-unroll -loop-deletion -reassociate -constmerge -memcpyopt -consthoist -reassociate -simple-loop-unswitch -correlated-propagation -globalopt -aggressive-instcombine -coro-elide -attributor -lower-constant-intrinsics -partially-inline-libcalls -coro-split -reassociate -loop-simplify -licm -hotcoldsplit -tailcallelim -flattencfg -lower-matrix-intrinsics -die -strip-dead-prototypes -rewrite-statepoints-for-gc -argpromotion -instsimplify -inferattrs -break-crit-edges -mergeicmps -coro-early -loop-vectorize -ipconstprop -loop-deletion -lowerinvoke -break-crit-edges -constprop -instcombine -inject-tli-mappings -loop-distribute -partial-inliner -loop-unroll-and-jam -guard-widening -instsimplify -reassociate -coro-early -lower-constant-intrinsics -newgvn -ipsccp -tailcallelim -coro-elide -sroa -loop-simplify -loop-guard-widening -loop-load-elim -loop-sink -lcssa -slp-vectorizer -loop-reduce -mergefunc -load-store-vectorizer -lower-guard-intrinsic -prune-eh -ipsccp -dse -reassociate -loop-guard-widening -mergereturn -lower-widenable-condition -constmerge -inferattrs -attributor -loop-interchange -ee-instrument -load-store-vectorizer -simplifycfg -aggressive-instcombine -simplifycfg -lowerswitch -newgvn -loop-reduce -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,12.256370306015015,opt -separate-const-offset-from-gep -coro-split -globalopt -attributor -irce -lowerinvoke -consthoist -globalopt -mergeicmps -lcssa -loop-deletion -argpromotion -name-anon-globals -strip-debug-declare -constprop -scalarizer -sroa -die -sink -slsr -consthoist -dse -barrier -lcssa -ipsccp -always-inline -pgo-memop-opt -infer-address-spaces -slp-vectorizer -lower-expect -infer-address-spaces -loop-fusion -loop-sink -mem2reg -loop-reduce -strip-debug-declare -coro-cleanup -strip -pgo-memop-opt -instsimplify -constmerge -loop-unroll-and-jam -lowerinvoke -loop-guard-widening -loop-load-elim -loop-simplify -constprop -early-cse-memssa -irce -div-rem-pairs -post-inline-ee-instrument -div-rem-pairs -ee-instrument -ee-instrument -div-rem-pairs -lowerswitch -lower-matrix-intrinsics -lower-expect -strip-debug-declare -prune-eh -prune-eh -early-cse-memssa -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9540816326530615,12.104652643203735,opt -loop-reduce -loop-sink -mem2reg -pgo-memop-opt -pgo-memop-opt -bdce -hotcoldsplit -sancov -slp-vectorizer -instsimplify -reassociate -newgvn -speculative-execution -libcalls-shrinkwrap -mem2reg -elim-avail-extern -loop-simplify -irce -ipsccp -indvars -flattencfg -indvars -jump-threading -sroa -simple-loop-unswitch -lower-expect -loop-distribute -constprop -pgo-memop-opt -coro-early -inferattrs -loop-data-prefetch -newgvn -functionattrs -instsimplify -argpromotion -instcombine input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9693877551020408,12.26811695098877,opt -scalarizer -loop-sink -functionattrs -deadargelim -loop-simplifycfg -loop-sink -simple-loop-unswitch -slsr -pgo-memop-opt -loop-interchange -elim-avail-extern -indvars -loop-deletion -insert-gcov-profiling -mldst-motion -bdce -slsr -loop-unroll -speculative-execution -lower-expect -functionattrs -lower-widenable-condition -correlated-propagation -strip -loop-unroll -simple-loop-unswitch -dce -loop-vectorize -mldst-motion -tailcallelim -break-crit-edges -mergeicmps -insert-gcov-profiling -slp-vectorizer -lower-matrix-intrinsics -bdce -globaldce -name-anon-globals -ipconstprop -post-inline-ee-instrument -separate-const-offset-from-gep -loop-simplifycfg -gvn-hoist -sink -loop-sink -inject-tli-mappings -argpromotion -irce -coro-split -sink -loop-load-elim -lower-guard-intrinsic -early-cse-memssa -inferattrs -loop-predication -speculative-execution -licm -early-cse-memssa -forceattrs -infer-address-spaces -rpo-functionattrs -sroa -deadargelim -simple-loop-unswitch -correlated-propagation -strip-nondebug -loop-interchange -rpo-functionattrs -indvars -partial-inliner -lower-constant-intrinsics -early-cse-memssa -called-value-propagation -simplifycfg -loop-guard-widening -forceattrs -post-inline-ee-instrument -mem2reg -jump-threading -canonicalize-aliases -ee-instrument -newgvn -callsite-splitting -rpo-functionattrs -loweratomic -strip -loop-unroll-and-jam -prune-eh -instcombine -die -canonicalize-aliases -nary-reassociate -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9693877551020409,11.962674379348755,opt -forceattrs -infer-address-spaces -rewrite-statepoints-for-gc -hotcoldsplit -add-discriminators -name-anon-globals -die -loweratomic -newgvn -mem2reg -dse -speculative-execution -memcpyopt -simplifycfg -insert-gcov-profiling -sroa -globaldce -pgo-memop-opt -tailcallelim -lower-constant-intrinsics -lower-expect -speculative-execution -instcombine input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9693877551020409,12.425644397735596,opt -elim-avail-extern -rpo-functionattrs -jump-threading -loop-instsimplify -loop-simplify -alignment-from-assumptions -simple-loop-unswitch -inject-tli-mappings -load-store-vectorizer -sroa -instnamer -attributor -die -bdce -strip -always-inline -reassociate -loop-predication -coro-cleanup -sink -loop-unroll -scalarizer -mergeicmps -lcssa -instnamer -adce -coro-split -redundant-dbg-inst-elim -lcssa -constprop -elim-avail-extern -loop-unswitch -loop-unroll-and-jam -loweratomic -nary-reassociate -bdce -partially-inline-libcalls -gvn-hoist -inferattrs -irce -loop-unswitch -separate-const-offset-from-gep -sancov -ipsccp -constmerge -sroa -instnamer -redundant-dbg-inst-elim -loop-idiom -loop-distribute -slp-vectorizer -loop-vectorize -simple-loop-unswitch -float2int -sancov -sancov -slsr -called-value-propagation -loop-reduce -globaldce -scalarizer -prune-eh -loop-predication -lower-expect -loop-deletion -slsr -mem2reg -add-discriminators -loop-versioning -loop-reroll -forceattrs -lower-widenable-condition -loop-load-elim -coro-cleanup -partially-inline-libcalls -attributor -libcalls-shrinkwrap -loweratomic -called-value-propagation -instsimplify -loop-sink -called-value-propagation -jump-threading -load-store-vectorizer -sroa -constprop -slp-vectorizer -mldst-motion -guard-widening -gvn -loop-versioning-licm -dse -loop-predication -loop-reroll -hotcoldsplit -licm -mergereturn -sink -mergeicmps -div-rem-pairs -functionattrs -lower-expect -rpo-functionattrs -loop-predication -loop-data-prefetch -elim-avail-extern -always-inline -guard-widening -div-rem-pairs -prune-eh -strip -licm -reg2mem -loop-sink -rewrite-statepoints-for-gc -inject-tli-mappings -loop-sink -lower-matrix-intrinsics -strip-dead-prototypes -sroa -loop-sink -globaldce -barrier -post-inline-ee-instrument -dse -prune-eh -deadargelim -libcalls-shrinkwrap -rpo-functionattrs -forceattrs -name-anon-globals -sink -simplifycfg -gvn -loop-guard-widening -loop-guard-widening -slsr -loop-unroll -consthoist -loop-interchange -slsr -inferattrs -lower-widenable-condition -mem2reg -strip-debug-declare -simplifycfg -loop-reroll -lcssa -lower-constant-intrinsics -barrier -sancov -cross-dso-cfi -lower-expect -coro-elide -loop-load-elim -dse -simple-loop-unswitch -aggressive-instcombine -coro-elide -lower-guard-intrinsic -cross-dso-cfi -insert-gcov-profiling -early-cse-memssa -lowerinvoke -lower-expect -callsite-splitting -lowerinvoke -loop-reroll -load-store-vectorizer -guard-widening -rpo-functionattrs -instnamer -coro-cleanup -loop-versioning-licm -loop-data-prefetch -dce -coro-elide -loop-instsimplify -mergefunc -always-inline -instsimplify -ipsccp -instnamer -constprop -jump-threading -lower-expect -loop-fusion -ipsccp -coro-cleanup -break-crit-edges -ipsccp -loop-simplify -loop-unroll-and-jam -bdce -strip-debug-declare -dse -loop-reduce -slp-vectorizer -gvn -forceattrs -lowerswitch -rewrite-statepoints-for-gc -inject-tli-mappings -reassociate -licm -lowerswitch -name-anon-globals -pgo-memop-opt -dse -gvn-hoist -nary-reassociate -functionattrs -nary-reassociate -loop-deletion -loop-guard-widening -consthoist -barrier -loop-reroll -rpo-functionattrs -separate-const-offset-from-gep -strip-dead-prototypes -strip-debug-declare -instsimplify -nary-reassociate -mergefunc -lowerinvoke -flattencfg -loop-predication -reassociate -pgo-memop-opt -indvars -loop-distribute -mergefunc -aggressive-instcombine -coro-elide -loop-idiom -barrier -loop-vectorize -consthoist -simplifycfg -sroa -insert-gcov-profiling -lowerswitch -lcssa -instcombine input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9744897959183674,12.125283002853394,opt -functionattrs -loop-distribute -callsite-splitting -dce -sancov -add-discriminators -argpromotion -simplifycfg -loop-reduce -ee-instrument -redundant-dbg-inst-elim -instnamer -reg2mem -sink -partially-inline-libcalls -strip-debug-declare -loop-unroll -loop-predication -callsite-splitting -slsr -libcalls-shrinkwrap -partially-inline-libcalls -deadargelim -dce -argpromotion -forceattrs -aggressive-instcombine -barrier -div-rem-pairs -lower-constant-intrinsics -globaldce -ipsccp -barrier -rewrite-statepoints-for-gc -loop-data-prefetch -memcpyopt -callsite-splitting -ee-instrument -loop-unswitch -indvars -strip -memcpyopt -scalarizer -constmerge -coro-early -loop-distribute -lower-expect -lower-expect -loop-instsimplify -argpromotion -reassociate -slp-vectorizer -pgo-memop-opt -insert-gcov-profiling -functionattrs -loop-unroll -loop-reduce -callsite-splitting -lower-widenable-condition -coro-elide -coro-early -newgvn -loop-instsimplify -lower-widenable-condition -gvn-hoist -jump-threading -sroa -strip -ipsccp -strip-dead-prototypes -adce -memcpyopt -load-store-vectorizer -partially-inline-libcalls -indvars -early-cse-memssa -hotcoldsplit -newgvn -guard-widening -loop-unroll-and-jam -tailcallelim -lcssa -ee-instrument -newgvn -loweratomic -lowerinvoke -flattencfg -instsimplify -loop-interchange -speculative-execution -reassociate -always-inline -instcombine -lower-matrix-intrinsics -loop-predication -guard-widening -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9795918367346937,11.949142694473267,opt -instnamer -partially-inline-libcalls -loop-distribute -loop-predication -die -lower-expect -early-cse-memssa -rpo-functionattrs -redundant-dbg-inst-elim -separate-const-offset-from-gep -loop-load-elim -strip-nondebug -loop-versioning-licm -sancov -add-discriminators -float2int -loop-simplifycfg -inferattrs -alignment-from-assumptions -strip-debug-declare -loop-versioning -memcpyopt -indvars -loop-guard-widening -irce -guard-widening -loop-simplifycfg -lower-constant-intrinsics -argpromotion -loop-reroll -argpromotion -lowerinvoke -gvn-hoist -loop-unroll-and-jam -dse -sancov -newgvn -mem2reg -argpromotion -loop-load-elim -scalarizer -loop-sink -forceattrs -break-crit-edges -loop-unroll-and-jam -irce -canonicalize-aliases -memcpyopt -dce -mergereturn -adce -coro-elide -bdce -loop-predication -mem2reg -loop-reduce -simplifycfg -add-discriminators -scalarizer -libcalls-shrinkwrap -always-inline -reassociate -lower-constant-intrinsics -ipconstprop -aggressive-instcombine -called-value-propagation -gvn-hoist -die -loop-versioning-licm -loop-sink -mldst-motion -lower-guard-intrinsic -div-rem-pairs -mergeicmps -memcpyopt -loop-distribute -forceattrs -ipconstprop -rewrite-statepoints-for-gc -load-store-vectorizer -loop-versioning-licm -loop-reduce -simplifycfg -coro-elide -simple-loop-unswitch -loop-reroll -licm -loop-versioning -callsite-splitting -correlated-propagation -lower-guard-intrinsic -inferattrs -loop-guard-widening -cross-dso-cfi -name-anon-globals -loop-interchange -div-rem-pairs -dce -irce -loop-distribute -coro-early -loop-versioning -lower-guard-intrinsic -globalopt -loop-versioning-licm -instcombine -aggressive-instcombine -sink -jump-threading input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9795918367346937,12.17411756515503,opt -dse -loop-reduce -gvn-hoist -float2int -libcalls-shrinkwrap -called-value-propagation -instnamer -sink -rpo-functionattrs -loop-fusion -loop-versioning-licm -loop-distribute -instsimplify -ipsccp -sancov -loop-distribute -dce -lowerswitch -newgvn -instsimplify -aggressive-instcombine -globalsplit -lower-widenable-condition -mergefunc -ipconstprop -sroa -die -loop-sink -loop-reroll -sroa -globaldce -loop-distribute -speculative-execution -add-discriminators -sccp -tailcallelim -partially-inline-libcalls -functionattrs -loop-reroll -loweratomic -forceattrs -globalsplit -loop-load-elim -consthoist -instcombine -deadargelim -loop-instsimplify -div-rem-pairs -dse -instcombine -coro-elide -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9795918367346939,12.16299557685852,opt -loop-versioning -coro-early -scalarizer -bdce -nary-reassociate -partially-inline-libcalls -alignment-from-assumptions -div-rem-pairs -lcssa -newgvn -constmerge -forceattrs -alignment-from-assumptions -mem2reg -globaldce -mergefunc -separate-const-offset-from-gep -loop-unswitch -lower-widenable-condition -attributor -loop-versioning -alignment-from-assumptions -flattencfg -cross-dso-cfi -lower-constant-intrinsics -strip -instcombine -functionattrs -loop-vectorize -ipsccp -simplifycfg -attributor -aggressive-instcombine -lower-matrix-intrinsics -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9795918367346939,12.400394678115845,opt -coro-early -ipconstprop -canonicalize-aliases -lower-constant-intrinsics -instnamer -early-cse-memssa -lower-constant-intrinsics -float2int -mergefunc -loop-load-elim -mergereturn -loop-unroll -loop-idiom -libcalls-shrinkwrap -rpo-functionattrs -lcssa -strip-dead-prototypes -scalarizer -loop-fusion -reassociate -bdce -coro-cleanup -inject-tli-mappings -reassociate -loop-fusion -globaldce -reg2mem -strip -ipconstprop -reg2mem -sink -loop-simplifycfg -aggressive-instcombine -loop-instsimplify -prune-eh -reg2mem -tailcallelim -early-cse-memssa -barrier -barrier -mldst-motion -loop-data-prefetch -forceattrs -loop-versioning -sink -strip-dead-prototypes -speculative-execution -loop-deletion -slp-vectorizer -ipsccp -jump-threading -pgo-memop-opt -coro-split -loop-unroll -lowerinvoke -callsite-splitting -scalarizer -loop-simplify -irce -instnamer -sroa -instsimplify -cross-dso-cfi -newgvn -rpo-functionattrs -loop-reduce -attributor -loop-simplifycfg -coro-split -sroa -lower-expect -coro-early -ee-instrument -strip -lower-matrix-intrinsics -gvn-hoist -strip-debug-declare -separate-const-offset-from-gep -sancov -newgvn -loop-fusion -slsr -gvn-hoist -loop-simplify -strip -loop-guard-widening -simple-loop-unswitch -sroa -forceattrs -slp-vectorizer -loop-idiom -strip-dead-prototypes -sancov -canonicalize-aliases -simple-loop-unswitch -scalarizer -guard-widening -ipsccp -inject-tli-mappings -aggressive-instcombine -licm -elim-avail-extern -loop-versioning-licm -float2int -gvn-hoist -coro-split -coro-early -loop-reduce -coro-elide -simplifycfg -partially-inline-libcalls -canonicalize-aliases -loop-versioning-licm -loop-data-prefetch -callsite-splitting -simple-loop-unswitch -deadargelim -loop-deletion -loop-vectorize -functionattrs -loweratomic -jump-threading -loop-reroll -guard-widening -pgo-memop-opt -reg2mem -coro-elide -slsr -separate-const-offset-from-gep -coro-cleanup -sancov -elim-avail-extern -deadargelim -mem2reg -instcombine -constmerge -reg2mem -instsimplify -lower-expect -callsite-splitting -globaldce -sroa -loop-fusion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9948979591836736,11.850993156433105,opt -strip -sroa -globaldce -coro-split -lower-constant-intrinsics -loop-versioning -lower-constant-intrinsics -load-store-vectorizer -cross-dso-cfi -dce -lower-widenable-condition -loop-reroll -barrier -dce -loop-distribute -cross-dso-cfi -always-inline -newgvn -strip-debug-declare -loop-reroll -loop-predication -jump-threading -prune-eh -memcpyopt -gvn-hoist -libcalls-shrinkwrap -elim-avail-extern -mldst-motion -loop-reroll -callsite-splitting -float2int -loop-guard-widening -correlated-propagation -lowerinvoke -strip-debug-declare -slp-vectorizer -sccp -instcombine -dce -barrier -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.977961552919373,340.80205249786377,opt -libcalls-shrinkwrap -loop-unroll-and-jam -constmerge -lowerinvoke -loweratomic -inject-tli-mappings -ipsccp -consthoist -instsimplify -indvars -loop-simplifycfg -loop-instsimplify -rewrite-statepoints-for-gc -rewrite-statepoints-for-gc -sccp -functionattrs -strip-debug-declare -coro-cleanup -lowerinvoke -die -cross-dso-cfi -loop-sink -loop-predication -loop-guard-widening -add-discriminators -loop-distribute -mergereturn -guard-widening -loop-simplify -instnamer -prune-eh -pgo-memop-opt -deadargelim -slp-vectorizer -called-value-propagation -lower-matrix-intrinsics -die -strip -jump-threading -inject-tli-mappings -newgvn -loop-predication -deadargelim -gvn -elim-avail-extern -dse -infer-address-spaces -instnamer -loweratomic -loop-data-prefetch -mem2reg -dse -instcombine -bdce -memcpyopt -instsimplify -dse -licm -loop-vectorize -jump-threading -sroa -loop-sink -argpromotion -loop-unroll -loop-fusion -coro-early -gvn-hoist -loop-sink -post-inline-ee-instrument -coro-early -early-cse-memssa -callsite-splitting -libcalls-shrinkwrap -loop-distribute -scalarizer -scalarizer -loop-load-elim -sink -instnamer -break-crit-edges -inject-tli-mappings -loop-versioning-licm -separate-const-offset-from-gep -lowerswitch -partially-inline-libcalls -memcpyopt -strip -strip-nondebug -loop-vectorize -canonicalize-aliases -bdce -mergereturn -instnamer -scalarizer -indvars -die -partial-inliner -slsr -coro-elide -load-store-vectorizer -post-inline-ee-instrument -strip-debug-declare -ipconstprop -rewrite-statepoints-for-gc -called-value-propagation -bdce -mergereturn -forceattrs -ipsccp -die -reassociate -tailcallelim -lower-widenable-condition -infer-address-spaces -break-crit-edges -insert-gcov-profiling -memcpyopt -callsite-splitting -die -inject-tli-mappings -hotcoldsplit -mergefunc -name-anon-globals -instcombine -inject-tli-mappings -instnamer -constmerge -post-inline-ee-instrument -sroa -constmerge -attributor -loop-data-prefetch -scalarizer -sccp -slp-vectorizer -scalarizer -forceattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9786958764238445,435.53417801856995,opt -load-store-vectorizer -loop-sink -jump-threading -flattencfg -memcpyopt -consthoist -ipsccp -correlated-propagation -sccp -die -die -loop-unroll -sink -slsr -canonicalize-aliases -loop-unroll -post-inline-ee-instrument -correlated-propagation -deadargelim -forceattrs -mem2reg -loop-instsimplify -globalsplit -mergeicmps -deadargelim -loop-deletion -correlated-propagation -constmerge -lower-expect -callsite-splitting -loweratomic -always-inline -strip-dead-prototypes -loop-distribute -dce -canonicalize-aliases -irce -coro-split -loop-vectorize -mergeicmps -coro-cleanup -lowerswitch -called-value-propagation -hotcoldsplit -globaldce -always-inline -slp-vectorizer -dce -coro-elide -argpromotion -mldst-motion -memcpyopt -forceattrs -rpo-functionattrs -loop-deletion -loop-unroll -mldst-motion -simplifycfg -lower-expect -slp-vectorizer -loop-load-elim -gvn -lower-guard-intrinsic -licm -irce -dse -loop-fusion -redundant-dbg-inst-elim -instcombine -mldst-motion -strip-debug-declare -add-discriminators -gvn -div-rem-pairs -instsimplify -tailcallelim -loop-reduce -loop-unroll-and-jam -inferattrs -break-crit-edges -coro-cleanup -ipconstprop -lower-matrix-intrinsics -ipsccp -loop-interchange -name-anon-globals -break-crit-edges -lower-expect -tailcallelim -rewrite-statepoints-for-gc -die -newgvn -guard-widening -break-crit-edges -loop-unroll -hotcoldsplit -loop-unroll -lcssa -cross-dso-cfi -loop-predication -loop-deletion -libcalls-shrinkwrap -forceattrs -called-value-propagation -die -barrier -die -attributor -sink -loop-versioning -bdce -pgo-memop-opt -loop-versioning-licm -inferattrs -loop-distribute -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9787745539421807,293.76403188705444,opt -partially-inline-libcalls -newgvn -tailcallelim -sroa -instcombine -simplifycfg -slp-vectorizer input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9810343471077269,331.94740438461304,opt -newgvn -partially-inline-libcalls -nary-reassociate -pgo-memop-opt -attributor -strip -loop-distribute -loop-fusion -reg2mem -redundant-dbg-inst-elim -loop-load-elim -loop-sink -pgo-memop-opt -loop-deletion -cross-dso-cfi -jump-threading -argpromotion -reassociate -inferattrs -slp-vectorizer -barrier -lower-widenable-condition -correlated-propagation -newgvn -loweratomic -ipconstprop -separate-const-offset-from-gep -consthoist -loop-fusion -loop-unroll -loop-idiom -gvn -lower-guard-intrinsic -load-store-vectorizer -name-anon-globals -loop-vectorize -ipconstprop -globalopt -reg2mem -loop-versioning -coro-cleanup -insert-gcov-profiling -separate-const-offset-from-gep -loop-unroll -forceattrs -sroa -strip -div-rem-pairs -mergereturn -rewrite-statepoints-for-gc -reg2mem -loop-data-prefetch -loop-unswitch -mem2reg -nary-reassociate -lower-expect -lower-matrix-intrinsics -libcalls-shrinkwrap -memcpyopt -sccp -loop-instsimplify -forceattrs -loop-guard-widening -sancov -loop-unroll-and-jam -alignment-from-assumptions -loop-unroll-and-jam -simple-loop-unswitch -slsr -sink -loop-unswitch -coro-cleanup -strip -licm -deadargelim -tailcallelim -argpromotion -rewrite-statepoints-for-gc -aggressive-instcombine -licm -loop-instsimplify -gvn -partial-inliner -inject-tli-mappings -loop-data-prefetch -tailcallelim -newgvn -always-inline -lower-widenable-condition -name-anon-globals -loop-data-prefetch -callsite-splitting -instsimplify -ipconstprop -instcombine -loop-unroll-and-jam -coro-split -strip-debug-declare -constmerge -newgvn -slp-vectorizer -add-discriminators -coro-elide -inject-tli-mappings -sroa -libcalls-shrinkwrap -float2int -inferattrs -guard-widening -indvars -loop-reduce -insert-gcov-profiling -speculative-execution -insert-gcov-profiling -cross-dso-cfi -slp-vectorizer -gvn-hoist -partial-inliner -prune-eh -indvars -inject-tli-mappings -coro-elide -loop-guard-widening -irce -constmerge -loop-vectorize -partially-inline-libcalls -functionattrs -infer-address-spaces -deadargelim -jump-threading -globalopt -lower-matrix-intrinsics -instcombine input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9854839978669648,299.6495168209076,opt -loop-interchange -attributor -loop-versioning-licm -memcpyopt -coro-elide -add-discriminators -loop-reroll -flattencfg -simple-loop-unswitch -called-value-propagation -sancov -infer-address-spaces -ipsccp -attributor -strip-dead-prototypes -bdce -adce -inject-tli-mappings -attributor -strip-dead-prototypes -simple-loop-unswitch -strip -coro-elide -globalsplit -loop-idiom -guard-widening -dce -div-rem-pairs -redundant-dbg-inst-elim -die -loop-simplify -indvars -loop-simplify -tailcallelim -name-anon-globals -bdce -mergefunc -mem2reg -slsr -slsr -indvars -name-anon-globals -coro-split -newgvn -post-inline-ee-instrument -sccp -cross-dso-cfi -correlated-propagation -irce -gvn -load-store-vectorizer -instcombine -attributor -memcpyopt -instnamer -loop-load-elim -separate-const-offset-from-gep -strip-dead-prototypes -correlated-propagation -globaldce -alignment-from-assumptions -gvn-hoist -instnamer -bdce -globalsplit -argpromotion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9911312952942102,297.16990852355957,opt -sroa -instsimplify -strip-dead-prototypes -loop-unroll -guard-widening -float2int -pgo-memop-opt -lowerswitch -jump-threading -dce -strip -loop-sink -loop-predication -strip-nondebug -ee-instrument -sink -globalopt -float2int -lowerswitch -pgo-memop-opt -loop-distribute -coro-split -inferattrs -gvn -hotcoldsplit -loop-unroll -irce -instnamer -lcssa -constprop -separate-const-offset-from-gep -slsr -callsite-splitting -bdce -sancov -consthoist -div-rem-pairs -bdce -dse -strip-debug-declare -mergereturn -inject-tli-mappings -load-store-vectorizer -sink -adce -partially-inline-libcalls -indvars -globalsplit -called-value-propagation -globalsplit -mergereturn -pgo-memop-opt -lower-matrix-intrinsics -always-inline -post-inline-ee-instrument -licm -speculative-execution -indvars -coro-cleanup -irce -loop-fusion -barrier -mergefunc -loop-sink -jump-threading -alignment-from-assumptions -loop-interchange -partially-inline-libcalls -loop-reroll -memcpyopt -sink -strip-dead-prototypes -libcalls-shrinkwrap -name-anon-globals -reassociate -speculative-execution -mergereturn -strip-debug-declare -mldst-motion -rewrite-statepoints-for-gc -loop-reroll -add-discriminators -argpromotion -scalarizer -post-inline-ee-instrument -always-inline -strip-debug-declare -tailcallelim -loop-reduce -separate-const-offset-from-gep -loop-unroll-and-jam -called-value-propagation -flattencfg -canonicalize-aliases -loop-predication -separate-const-offset-from-gep -dse -add-discriminators -ee-instrument -attributor -lower-expect -add-discriminators -break-crit-edges -loop-predication -lowerswitch -forceattrs -loop-versioning -loop-versioning-licm -memcpyopt -reassociate -functionattrs -libcalls-shrinkwrap -lowerswitch -partially-inline-libcalls -alignment-from-assumptions -loop-load-elim -lower-matrix-intrinsics -infer-address-spaces -loop-distribute -separate-const-offset-from-gep -insert-gcov-profiling -elim-avail-extern -div-rem-pairs -canonicalize-aliases -ee-instrument -lower-constant-intrinsics -gvn -separate-const-offset-from-gep -alignment-from-assumptions -elim-avail-extern -prune-eh -jump-threading -alignment-from-assumptions -coro-early -instcombine -jump-threading -name-anon-globals -lower-expect -ipconstprop -newgvn -loop-interchange -name-anon-globals -sccp -newgvn -name-anon-globals -flattencfg -sroa -dce -constmerge -lowerswitch -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9913017632506052,329.5422034263611,opt -strip-dead-prototypes -lower-widenable-condition -loop-instsimplify -name-anon-globals -canonicalize-aliases -simplifycfg -loop-predication -canonicalize-aliases -partially-inline-libcalls -loop-predication -loop-interchange -loop-vectorize -pgo-memop-opt -adce -loop-sink -scalarizer -called-value-propagation -lower-constant-intrinsics -loop-unswitch -gvn -globalopt -sink -loop-idiom -pgo-memop-opt -loop-sink -flattencfg -rpo-functionattrs -loop-simplify -loop-idiom -loop-versioning-licm -load-store-vectorizer -coro-early -inferattrs -loop-versioning-licm -die -redundant-dbg-inst-elim -float2int -libcalls-shrinkwrap -loop-reduce -simplifycfg -deadargelim -slp-vectorizer -canonicalize-aliases -name-anon-globals -mldst-motion -rewrite-statepoints-for-gc -aggressive-instcombine -lower-matrix-intrinsics -inferattrs -loop-reduce -redundant-dbg-inst-elim -loop-load-elim -simplifycfg -alignment-from-assumptions -mergereturn -irce -coro-early -forceattrs -slsr -lower-widenable-condition -irce -div-rem-pairs -barrier -gvn -tailcallelim -globaldce -ipconstprop -instcombine -mldst-motion -simple-loop-unswitch -jump-threading -globalopt -globalopt -rewrite-statepoints-for-gc -scalarizer -simple-loop-unswitch -nary-reassociate -loop-distribute -loop-predication -coro-early -lower-widenable-condition -lower-widenable-condition -loop-fusion -loop-rotate -loop-load-elim -lower-expect -mldst-motion -slp-vectorizer -break-crit-edges -guard-widening -coro-early -inferattrs -newgvn -rewrite-statepoints-for-gc -licm -slp-vectorizer -gvn -strip-dead-prototypes -simplifycfg -sink -reassociate -loop-reduce -mem2reg -early-cse-memssa -loop-load-elim -sroa -add-discriminators -indvars -alignment-from-assumptions -attributor -separate-const-offset-from-gep -ee-instrument -lower-widenable-condition -globalopt -loop-sink -pgo-memop-opt -called-value-propagation -sccp -hotcoldsplit -loop-load-elim -mergereturn -pgo-memop-opt -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9960224143507793,278.31543612480164,opt -reassociate -loop-deletion -dse -coro-cleanup -reg2mem -loop-predication -ipconstprop -cross-dso-cfi -loop-unroll -dce -lower-matrix-intrinsics -bdce -lcssa -loop-unswitch -deadargelim -coro-early -always-inline -memcpyopt -loop-idiom -barrier -dce -add-discriminators -loop-reduce -bdce -sccp -lower-matrix-intrinsics -globalopt -consthoist -sroa -sink -reassociate -aggressive-instcombine -insert-gcov-profiling -jump-threading -coro-elide -div-rem-pairs -strip-dead-prototypes -elim-avail-extern -loop-interchange -float2int -coro-early -loop-distribute -licm -coro-elide -deadargelim -licm -load-store-vectorizer -hotcoldsplit -attributor -div-rem-pairs -called-value-propagation -loop-rotate -globalsplit -instcombine -slsr -strip-nondebug -coro-elide -prune-eh -argpromotion -instsimplify -loop-simplifycfg -callsite-splitting -guard-widening -attributor -loop-interchange -loweratomic -loop-reroll -loop-idiom -coro-cleanup -sccp -libcalls-shrinkwrap -globalsplit -sccp -jump-threading -mergefunc -simplifycfg -mergeicmps -nary-reassociate -lower-guard-intrinsic -lcssa -cross-dso-cfi -early-cse-memssa -infer-address-spaces -bdce -slp-vectorizer input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0014642760357022,562.3493282794952,opt -jump-threading -flattencfg -mergereturn -die -sroa -loop-predication -reassociate -loop-instsimplify -gvn -flattencfg -bdce -simplifycfg -insert-gcov-profiling -loweratomic -lowerinvoke -loop-guard-widening -loop-idiom -called-value-propagation -coro-cleanup -tailcallelim -partially-inline-libcalls -ipconstprop -elim-avail-extern -hotcoldsplit -loop-idiom -mergereturn -attributor -loop-sink -die -licm -lower-constant-intrinsics -alignment-from-assumptions -instsimplify -canonicalize-aliases -loop-versioning -loop-versioning-licm -loop-distribute -reassociate -coro-cleanup -lower-guard-intrinsic -loop-data-prefetch -mldst-motion -adce -callsite-splitting -tailcallelim -loop-idiom -coro-split -functionattrs -mldst-motion -flattencfg -deadargelim -rpo-functionattrs -lowerswitch -loop-simplify -reg2mem -dse -cross-dso-cfi -gvn-hoist -gvn-hoist -memcpyopt -libcalls-shrinkwrap -hotcoldsplit -loop-reroll -coro-cleanup -aggressive-instcombine -gvn-hoist -loop-idiom -slp-vectorizer -redundant-dbg-inst-elim -globalsplit -loop-unroll -loop-idiom -loop-instsimplify -loop-data-prefetch -ipconstprop -sccp -loop-instsimplify -post-inline-ee-instrument -sroa -loop-simplify -loop-simplify -irce -simplifycfg -lcssa -loop-fusion -ipsccp -loop-versioning-licm -partially-inline-libcalls -partially-inline-libcalls -argpromotion -float2int -newgvn -div-rem-pairs -instnamer -coro-split -lcssa -lower-widenable-condition -indvars -jump-threading -scalarizer -float2int -loop-instsimplify -correlated-propagation -barrier -hotcoldsplit -load-store-vectorizer -instcombine -irce -elim-avail-extern -loop-versioning-licm -correlated-propagation -redundant-dbg-inst-elim -coro-split -sancov -instcombine -constmerge -float2int -globaldce -die -redundant-dbg-inst-elim -lower-matrix-intrinsics -argpromotion -lower-constant-intrinsics -loop-fusion -div-rem-pairs -insert-gcov-profiling -insert-gcov-profiling -strip-debug-declare -loop-deletion -cross-dso-cfi -loop-unroll-and-jam -gvn -ipconstprop -loop-versioning -loop-interchange -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0049654256016645,283.5457594394684,opt -lowerinvoke -scalarizer -adce -coro-split -early-cse-memssa -post-inline-ee-instrument -flattencfg -loop-instsimplify -loweratomic -memcpyopt -elim-avail-extern -sroa -loop-fusion -loop-sink -sancov -speculative-execution -die -newgvn -mergefunc -loop-data-prefetch -jump-threading -loop-predication -coro-elide -coro-split -redundant-dbg-inst-elim -mem2reg -redundant-dbg-inst-elim -loop-reduce -coro-elide -jump-threading -sancov -dce -constmerge -nary-reassociate -attributor -instnamer -lower-expect -alignment-from-assumptions -loop-simplify -simple-loop-unswitch -sccp -instcombine -canonicalize-aliases -loop-versioning -simplifycfg -slsr -loop-distribute -instcombine -loop-simplify -loop-guard-widening -insert-gcov-profiling -jump-threading -prune-eh -constmerge -infer-address-spaces -ee-instrument -loop-load-elim -div-rem-pairs -lower-constant-intrinsics -sccp -coro-split -mem2reg -lcssa -jump-threading -load-store-vectorizer -early-cse-memssa -strip-dead-prototypes -dse -consthoist -irce -add-discriminators -lowerinvoke -loop-fusion -tailcallelim -loop-interchange -sroa -mem2reg -adce -guard-widening -partially-inline-libcalls -loop-fusion -lower-guard-intrinsic -add-discriminators -post-inline-ee-instrument -slp-vectorizer -partially-inline-libcalls -rpo-functionattrs -cross-dso-cfi -strip -lower-matrix-intrinsics -separate-const-offset-from-gep -gvn-hoist -lower-widenable-condition -instcombine input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0170567729083666,23.498672485351562,opt -licm -inline -attributor -loop-load-elim -globalsplit -forceattrs -gvn -coro-early -add-discriminators -coro-early -early-cse-memssa -loop-unroll -argpromotion -libcalls-shrinkwrap -dse -div-rem-pairs -jump-threading -loop-deletion -lower-expect -coro-cleanup -aggressive-instcombine -mldst-motion -nary-reassociate -dce -sroa -instnamer -loop-reduce -guard-widening -post-inline-ee-instrument -guard-widening -loop-unroll-and-jam -loop-idiom -globalopt -irce -lowerinvoke -cross-dso-cfi -hotcoldsplit -lowerinvoke -speculative-execution -loop-predication -strip -deadargelim -functionattrs -deadargelim -speculative-execution -instcombine -called-value-propagation -simplifycfg -loop-reroll -float2int -deadargelim -dse -dce -flattencfg -bdce -gvn -mem2reg -lower-matrix-intrinsics -forceattrs -callsite-splitting -loop-predication -inject-tli-mappings -strip-debug-declare -coro-early -lower-widenable-condition -gvn -load-store-vectorizer -loop-simplifycfg -forceattrs -deadargelim -called-value-propagation -canonicalize-aliases -prune-eh -argpromotion -loop-deletion -simplifycfg -indvars -dce -inferattrs -loop-simplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0220368525896417,15.433346271514893,opt -constmerge -break-crit-edges -inline -mergefunc -loop-reduce -lower-expect -ipconstprop -guard-widening -break-crit-edges -adce -indvars -loop-predication -simplifycfg -mergefunc -memcpyopt -insert-gcov-profiling -separate-const-offset-from-gep -functionattrs -bdce -float2int -tailcallelim -partial-inliner -lower-matrix-intrinsics -loop-unswitch -mem2reg -strip -name-anon-globals -instcombine -redundant-dbg-inst-elim -instnamer -loop-deletion -prune-eh -called-value-propagation -simple-loop-unswitch -strip -loop-unswitch -lower-constant-intrinsics -pgo-memop-opt -consthoist -loweratomic -lower-widenable-condition -loop-versioning -loop-unroll-and-jam -strip-dead-prototypes -loop-instsimplify -gvn-hoist -rewrite-statepoints-for-gc -early-cse-memssa -lowerinvoke -licm -instsimplify -add-discriminators -slsr -lower-matrix-intrinsics -inferattrs -globalsplit -ipconstprop -instcombine -loop-load-elim -hotcoldsplit -correlated-propagation -dce -insert-gcov-profiling -rewrite-statepoints-for-gc -irce -loop-sink -inject-tli-mappings -lower-widenable-condition -strip-nondebug -always-inline -loop-data-prefetch -loop-data-prefetch -name-anon-globals -strip -dce -loop-interchange -constmerge -loop-instsimplify -infer-address-spaces -cross-dso-cfi -licm -irce -barrier -coro-cleanup -add-discriminators -loop-simplify -coro-elide -rewrite-statepoints-for-gc -reg2mem -adce -loop-data-prefetch -break-crit-edges -infer-address-spaces -licm -loop-predication -ipconstprop -dce -sroa -adce -strip -lower-widenable-condition -loop-rotate -lcssa -mergefunc -pgo-memop-opt -sancov -loop-rotate -consthoist -aggressive-instcombine -loop-distribute -strip -loop-distribute -pgo-memop-opt -loweratomic -sancov -irce -lower-expect -adce -loop-idiom -irce -die -gvn -loop-instsimplify -loop-unroll-and-jam -indvars -functionattrs -slsr -mldst-motion -dce -ipconstprop -inject-tli-mappings -correlated-propagation -reg2mem -loop-idiom -loop-interchange -sancov -sancov -argpromotion -globalsplit -memcpyopt -rpo-functionattrs -loop-guard-widening -lower-guard-intrinsic -loop-unroll-and-jam -insert-gcov-profiling -attributor -libcalls-shrinkwrap -slsr -loop-idiom -redundant-dbg-inst-elim -die -cross-dso-cfi -argpromotion -load-store-vectorizer -gvn-hoist -loop-unroll -reassociate -rpo-functionattrs -loop-fusion -loop-reroll -lowerswitch -mergereturn -loop-deletion -add-discriminators -correlated-propagation -lower-guard-intrinsic -strip-nondebug -coro-cleanup -loop-data-prefetch -insert-gcov-profiling -loop-unroll -guard-widening -sroa -simplifycfg -constprop -die -load-store-vectorizer -separate-const-offset-from-gep -tailcallelim -loop-deletion -always-inline -float2int -coro-cleanup -libcalls-shrinkwrap -sroa -elim-avail-extern -libcalls-shrinkwrap -separate-const-offset-from-gep -lower-guard-intrinsic -canonicalize-aliases -slp-vectorizer input.bc -o output.bc +benchmark://cbench-v1/gsm,1.027390438247013,14.184420108795166,opt -newgvn -lower-constant-intrinsics -inline -constprop -functionattrs -inferattrs -inject-tli-mappings -reg2mem -die -sroa -loop-idiom -loop-unroll-and-jam -lcssa -loop-deletion -loop-load-elim -constmerge -mergeicmps -strip-debug-declare -consthoist -inject-tli-mappings -dce -cross-dso-cfi -instcombine -mergereturn -libcalls-shrinkwrap -redundant-dbg-inst-elim -simplifycfg -constprop -aggressive-instcombine -loop-guard-widening -dce -correlated-propagation -gvn -always-inline -guard-widening -hotcoldsplit -add-discriminators -mldst-motion -globalopt -instsimplify -attributor -prune-eh -mem2reg -guard-widening -argpromotion -consthoist -sccp -always-inline -loop-unroll-and-jam -memcpyopt -infer-address-spaces -lcssa -ee-instrument -lower-widenable-condition -speculative-execution -canonicalize-aliases -lower-expect -guard-widening -reassociate -argpromotion -libcalls-shrinkwrap -loop-versioning-licm -instcombine -loop-interchange -gvn -reassociate -globaldce -div-rem-pairs -early-cse-memssa -instsimplify -tailcallelim -loop-versioning-licm -mldst-motion -alignment-from-assumptions -sancov -loop-instsimplify -speculative-execution -loop-simplify -lcssa -gvn -gvn-hoist -memcpyopt -loop-versioning-licm -inject-tli-mappings -partial-inliner -slsr -mem2reg -always-inline -name-anon-globals -rpo-functionattrs -callsite-splitting -loop-reroll -loop-idiom -strip -sink -gvn -strip-nondebug -loop-guard-widening -loop-distribute -early-cse-memssa -newgvn -correlated-propagation -mem2reg -instcombine -loop-data-prefetch -dce -lowerswitch -loop-versioning-licm -loop-vectorize -mergefunc -sroa -loop-idiom -loop-interchange -speculative-execution -loop-deletion -loop-vectorize -add-discriminators -loop-unroll-and-jam -instnamer -gvn -instsimplify -mergefunc -div-rem-pairs -instsimplify -nary-reassociate -add-discriminators -dce -constprop -gvn-hoist -loop-simplify -loop-unroll-and-jam -lower-guard-intrinsic -name-anon-globals -sroa -lowerswitch -strip-debug-declare -deadargelim -memcpyopt -die -separate-const-offset-from-gep -early-cse-memssa -post-inline-ee-instrument -rewrite-statepoints-for-gc -mergereturn -coro-split -instcombine -guard-widening -prune-eh -nary-reassociate -mldst-motion -ee-instrument -slp-vectorizer -loop-instsimplify -infer-address-spaces -post-inline-ee-instrument -redundant-dbg-inst-elim -loop-interchange -libcalls-shrinkwrap -coro-early -loop-reduce -irce -indvars -loop-interchange -early-cse-memssa -adce -prune-eh -load-store-vectorizer -indvars -coro-split -inject-tli-mappings -mldst-motion -adce -slp-vectorizer -loop-simplify -loweratomic -dce -called-value-propagation -instnamer -float2int -bdce -simple-loop-unswitch -ipsccp input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0277639442231072,15.189532041549683,opt -argpromotion -mldst-motion -globaldce -globaldce -alignment-from-assumptions -sink -lower-widenable-condition -argpromotion -loop-versioning -lcssa -instcombine -argpromotion -loop-predication -loop-distribute -tailcallelim -lower-matrix-intrinsics -redundant-dbg-inst-elim -ipsccp -deadargelim -loweratomic -loop-unroll-and-jam -loop-rotate -loop-vectorize -reassociate -add-discriminators -loop-versioning -loop-versioning -slsr -inferattrs -instnamer -strip-debug-declare -aggressive-instcombine -coro-split -mergereturn -loop-sink -add-discriminators -bdce -ipsccp -forceattrs -globalopt -strip-dead-prototypes -inject-tli-mappings -early-cse-memssa -lower-widenable-condition -canonicalize-aliases -lower-matrix-intrinsics -sroa -slp-vectorizer -insert-gcov-profiling -mem2reg -mergeicmps -redundant-dbg-inst-elim -add-discriminators -reg2mem -strip-debug-declare -lower-expect -loop-deletion -redundant-dbg-inst-elim -break-crit-edges -ipsccp -redundant-dbg-inst-elim -jump-threading -mergereturn -coro-early -loop-fusion -indvars -float2int -strip-dead-prototypes -bdce -loop-versioning -attributor -inline -loop-instsimplify -mldst-motion -called-value-propagation -die -lower-guard-intrinsic -globalsplit -scalarizer -barrier -loop-fusion -inferattrs -instcombine -sroa -strip-dead-prototypes -reassociate -lower-widenable-condition -mergereturn -loop-interchange -loop-sink -newgvn -speculative-execution -reg2mem -aggressive-instcombine -argpromotion -loop-idiom -inferattrs -elim-avail-extern -load-store-vectorizer -dse -inject-tli-mappings -loop-reroll -rewrite-statepoints-for-gc -irce -coro-split -dse -instcombine -irce -inline -loop-distribute -elim-avail-extern -loop-versioning -load-store-vectorizer -always-inline -ipconstprop -called-value-propagation -strip-dead-prototypes -rpo-functionattrs -loop-load-elim -constmerge -partially-inline-libcalls -loop-unswitch -pgo-memop-opt -sroa -lower-matrix-intrinsics -loop-simplify -bdce -bdce -name-anon-globals -mem2reg -break-crit-edges -lower-guard-intrinsic -loop-fusion -rpo-functionattrs -strip-nondebug -sroa -sink -instsimplify -loop-guard-widening -coro-cleanup -speculative-execution -alignment-from-assumptions -simplifycfg -instsimplify -argpromotion -constprop -consthoist -memcpyopt -ipsccp -coro-elide -dse -lowerinvoke -sroa -lower-guard-intrinsic -slp-vectorizer -argpromotion -alignment-from-assumptions -elim-avail-extern -coro-cleanup -constprop -constprop -alignment-from-assumptions -loop-unswitch -sccp -speculative-execution -post-inline-ee-instrument -lower-expect -lower-expect -instsimplify -lower-constant-intrinsics -lower-constant-intrinsics -mldst-motion -simplifycfg -loop-simplify -sancov -loop-distribute -strip-dead-prototypes -load-store-vectorizer -consthoist -called-value-propagation -post-inline-ee-instrument -mergereturn -memcpyopt -irce -strip-dead-prototypes -lower-guard-intrinsic -strip-dead-prototypes -div-rem-pairs -strip-debug-declare -alignment-from-assumptions -loop-idiom -lower-guard-intrinsic -loop-idiom -aggressive-instcombine -infer-address-spaces -loop-sink -hotcoldsplit -coro-split -lower-widenable-condition -loop-instsimplify -newgvn -argpromotion -partial-inliner -early-cse-memssa -pgo-memop-opt -reg2mem -die -loop-versioning-licm -post-inline-ee-instrument -argpromotion -tailcallelim -loop-unroll-and-jam -jump-threading -rewrite-statepoints-for-gc -guard-widening -instnamer -inferattrs -nary-reassociate -sroa -argpromotion -deadargelim -early-cse-memssa -redundant-dbg-inst-elim -functionattrs -ee-instrument -ipconstprop -ee-instrument -dse -post-inline-ee-instrument -tailcallelim -reg2mem -loop-fusion -sccp -die -sroa -loop-deletion -functionattrs -sccp -rpo-functionattrs -coro-early -constprop -loop-simplify -instcombine -ipconstprop -loop-vectorize -mergeicmps -sroa -loweratomic -globalsplit -libcalls-shrinkwrap -always-inline -alignment-from-assumptions -speculative-execution -rpo-functionattrs -dce -globaldce -libcalls-shrinkwrap -sroa -constmerge -lower-expect -ipsccp -loop-versioning-licm -insert-gcov-profiling -always-inline -dce -lower-matrix-intrinsics -loop-reroll -slp-vectorizer -mldst-motion -div-rem-pairs -gvn-hoist -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.028261952191235,14.138127088546753,opt -add-discriminators -lower-matrix-intrinsics -coro-elide -loop-guard-widening -alignment-from-assumptions -canonicalize-aliases -dse -constprop -loop-data-prefetch -always-inline -loop-simplify -ee-instrument -loop-simplifycfg -ipconstprop -separate-const-offset-from-gep -loop-interchange -inject-tli-mappings -reassociate -loop-unroll -ipsccp -inferattrs -gvn-hoist -ipconstprop -mergeicmps -mldst-motion -indvars -inject-tli-mappings -early-cse-memssa -simple-loop-unswitch -early-cse-memssa -float2int -loop-vectorize -loop-simplify -ipconstprop -loop-reduce -indvars -loop-instsimplify -aggressive-instcombine -slsr -inject-tli-mappings -sroa -slp-vectorizer -flattencfg -gvn -attributor -loop-guard-widening -separate-const-offset-from-gep -newgvn -float2int -sancov -ee-instrument -called-value-propagation -instsimplify -coro-split -functionattrs -insert-gcov-profiling -separate-const-offset-from-gep -div-rem-pairs -loop-load-elim -tailcallelim -irce -simple-loop-unswitch -memcpyopt -slsr -loop-unroll -instcombine -name-anon-globals -early-cse-memssa -argpromotion -deadargelim -loop-deletion -lower-guard-intrinsic -separate-const-offset-from-gep -jump-threading -inject-tli-mappings -adce -mem2reg -called-value-propagation -gvn-hoist -nary-reassociate -attributor -loop-fusion -post-inline-ee-instrument -dse -adce -redundant-dbg-inst-elim -insert-gcov-profiling -break-crit-edges -post-inline-ee-instrument -lcssa -slsr -ee-instrument -gvn -bdce -lowerinvoke -sink -inferattrs -instcombine -add-discriminators -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0292579681274896,14.405534267425537,opt -deadargelim -insert-gcov-profiling -loweratomic -inferattrs -bdce -forceattrs -lower-constant-intrinsics -instcombine -callsite-splitting -prune-eh -lower-expect -speculative-execution -ipsccp -strip-debug-declare -loop-idiom -loop-unswitch -rpo-functionattrs -loop-fusion -redundant-dbg-inst-elim -loop-reduce -libcalls-shrinkwrap -newgvn -flattencfg -loop-instsimplify -rpo-functionattrs -early-cse-memssa -loop-guard-widening -prune-eh -instnamer -coro-early -loop-versioning-licm -forceattrs -dse -add-discriminators -lcssa -flattencfg -called-value-propagation -loop-data-prefetch -loop-unroll-and-jam -instnamer -loop-idiom -globalopt -lower-matrix-intrinsics -cross-dso-cfi -loop-unroll-and-jam -gvn -ee-instrument -speculative-execution -loop-unroll-and-jam -slsr -loop-load-elim -cross-dso-cfi -div-rem-pairs -loop-interchange -sroa -instsimplify -loop-deletion -libcalls-shrinkwrap -dse -loop-distribute -adce -instnamer -insert-gcov-profiling -mergereturn -cross-dso-cfi -loweratomic -mergeicmps -ipconstprop -always-inline -instsimplify -loop-reduce -functionattrs -lower-guard-intrinsic -loop-data-prefetch -mem2reg -jump-threading -loop-simplify -ipsccp -reassociate -separate-const-offset-from-gep -licm -simplifycfg -jump-threading -loop-idiom -loop-deletion -callsite-splitting -instcombine -lower-constant-intrinsics -ipsccp -strip-dead-prototypes -constprop -ipconstprop -partial-inliner -flattencfg -lower-expect -load-store-vectorizer -sancov -loop-simplify -ipconstprop -globalsplit -lower-widenable-condition -flattencfg -irce -instcombine -loweratomic -strip-dead-prototypes -flattencfg -dse -gvn-hoist -mem2reg -rewrite-statepoints-for-gc -ee-instrument -partially-inline-libcalls -gvn -break-crit-edges -rpo-functionattrs -name-anon-globals -coro-early -scalarizer -dse -loop-simplify -always-inline -always-inline -lcssa -bdce -always-inline -loop-interchange -slsr -elim-avail-extern -instnamer -nary-reassociate -forceattrs -name-anon-globals -constprop -correlated-propagation -sccp -aggressive-instcombine -redundant-dbg-inst-elim -reg2mem -loop-versioning-licm -break-crit-edges -ipsccp -inject-tli-mappings -elim-avail-extern -mergefunc -libcalls-shrinkwrap -speculative-execution -alignment-from-assumptions -coro-elide -strip-dead-prototypes -insert-gcov-profiling -lower-guard-intrinsic -infer-address-spaces -coro-split -lower-matrix-intrinsics -insert-gcov-profiling -alignment-from-assumptions -lower-matrix-intrinsics -break-crit-edges -rewrite-statepoints-for-gc -strip-dead-prototypes -globaldce -dse -loop-data-prefetch -reg2mem -ipconstprop -partially-inline-libcalls -indvars -argpromotion -argpromotion -constprop -attributor -strip-nondebug -strip -lower-expect -libcalls-shrinkwrap -guard-widening -loop-sink -simple-loop-unswitch -slsr -separate-const-offset-from-gep -loweratomic -coro-elide -rewrite-statepoints-for-gc -loop-versioning -loop-data-prefetch -reg2mem -loop-fusion -inline -infer-address-spaces -loop-sink -memcpyopt -strip -gvn -instcombine -loop-load-elim -instnamer -strip-dead-prototypes -adce -lower-matrix-intrinsics -loop-guard-widening -lower-matrix-intrinsics -partially-inline-libcalls -tailcallelim -correlated-propagation -aggressive-instcombine -deadargelim -loop-interchange -globalsplit -strip-nondebug -aggressive-instcombine -mem2reg -globalopt -dse -correlated-propagation -dce -mergeicmps -instsimplify -forceattrs -callsite-splitting -scalarizer -redundant-dbg-inst-elim -called-value-propagation -name-anon-globals -separate-const-offset-from-gep -loop-versioning -loop-sink -loop-simplify -add-discriminators -ee-instrument -loop-versioning -lower-widenable-condition -instnamer -slp-vectorizer -loop-load-elim -loop-unroll -loop-versioning-licm -loop-distribute -sancov -loop-predication -name-anon-globals -loop-guard-widening -bdce -guard-widening -instsimplify -constprop -loop-vectorize -canonicalize-aliases -prune-eh -coro-early -loop-versioning-licm -loop-interchange -loop-guard-widening -loop-load-elim -infer-address-spaces -libcalls-shrinkwrap -globalopt -loop-reroll -name-anon-globals -lowerswitch -simplifycfg -adce -gvn -ipsccp -strip -forceattrs -instcombine -sccp -loop-simplifycfg -dce -tailcallelim -loop-data-prefetch -gvn -slsr -mergereturn -strip-debug-declare -alignment-from-assumptions -globaldce -lcssa -loop-vectorize -loop-load-elim -sccp -loop-data-prefetch -dse -loop-vectorize -loop-fusion -loop-data-prefetch -globalsplit -gvn-hoist -loop-versioning-licm -loop-interchange -mergefunc -deadargelim -memcpyopt -rpo-functionattrs -aggressive-instcombine -lower-guard-intrinsic -load-store-vectorizer -loop-load-elim -rewrite-statepoints-for-gc -load-store-vectorizer -aggressive-instcombine -die -lower-expect -mergefunc -strip-dead-prototypes -attributor -insert-gcov-profiling -loop-versioning-licm -float2int -infer-address-spaces -loop-instsimplify -slsr -loop-versioning -globalsplit -lcssa -ipconstprop -partially-inline-libcalls -alignment-from-assumptions -lower-guard-intrinsic -coro-elide -loop-sink -called-value-propagation -forceattrs -partial-inliner -loop-rotate input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0334910358565736,14.459441900253296,opt -hotcoldsplit -scalarizer -instsimplify -loop-instsimplify -coro-split -aggressive-instcombine -loop-idiom -loop-predication -instsimplify -partially-inline-libcalls -canonicalize-aliases -inferattrs -loop-simplify -correlated-propagation -simple-loop-unswitch -bdce -coro-split -sccp -float2int -simplifycfg -mldst-motion -loop-simplify -float2int -sroa -globaldce -instnamer -slp-vectorizer -loop-vectorize -simple-loop-unswitch -guard-widening -coro-early -div-rem-pairs -loop-simplifycfg -lower-widenable-condition -attributor -newgvn -loop-interchange -globalsplit -lowerinvoke -canonicalize-aliases -dse -reassociate -div-rem-pairs -mldst-motion -mldst-motion -canonicalize-aliases -lower-widenable-condition -loop-interchange -sancov -infer-address-spaces -infer-address-spaces -loweratomic -tailcallelim -loop-load-elim -loop-simplify -mergefunc -alignment-from-assumptions -mergefunc -speculative-execution -aggressive-instcombine -loop-reroll -ee-instrument -bdce -float2int -gvn-hoist -argpromotion -coro-split -newgvn -slsr -ipconstprop -globalsplit -dse -jump-threading -instsimplify -newgvn -ee-instrument -gvn-hoist -gvn-hoist -loop-predication -post-inline-ee-instrument -instcombine -dse input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0352340637450197,15.297012329101562,opt -insert-gcov-profiling -lower-matrix-intrinsics -loop-instsimplify -gvn -memcpyopt -lower-guard-intrinsic -called-value-propagation -loop-predication -lower-guard-intrinsic -loop-simplify -called-value-propagation -slp-vectorizer -lower-constant-intrinsics -speculative-execution -barrier -loop-sink -name-anon-globals -gvn-hoist -deadargelim -lowerinvoke -deadargelim -loop-instsimplify -loop-instsimplify -guard-widening -strip-debug-declare -hotcoldsplit -adce -attributor -die -insert-gcov-profiling -infer-address-spaces -die -loop-versioning -loop-interchange -slsr -instnamer -correlated-propagation -coro-elide -lower-guard-intrinsic -lowerswitch -loop-unroll -libcalls-shrinkwrap -loop-predication -loop-idiom -simplifycfg -early-cse-memssa -loop-reroll -lower-expect -break-crit-edges -loop-load-elim -gvn-hoist -ipsccp -sancov -loop-unswitch -canonicalize-aliases -early-cse-memssa -inferattrs -strip-nondebug -newgvn -early-cse-memssa -guard-widening -loop-unswitch -mergefunc -callsite-splitting -correlated-propagation -hotcoldsplit -gvn-hoist -globaldce -loop-interchange -instnamer -newgvn -mergereturn -lowerswitch -cross-dso-cfi -always-inline -pgo-memop-opt -flattencfg -loop-interchange -mem2reg -mergeicmps -loop-versioning-licm -consthoist -loop-simplify -irce -inferattrs -mergeicmps -early-cse-memssa -coro-elide -loop-unroll -speculative-execution -coro-elide -lower-guard-intrinsic -simple-loop-unswitch -redundant-dbg-inst-elim -globaldce -insert-gcov-profiling -loop-versioning-licm -instnamer -adce -gvn -loop-fusion -loop-deletion -lower-expect -adce -jump-threading -loop-interchange -instsimplify -insert-gcov-profiling -inferattrs -mergereturn -inferattrs -add-discriminators -coro-split -irce -newgvn -separate-const-offset-from-gep -dse -coro-elide -memcpyopt -loop-idiom -lower-guard-intrinsic -strip -irce -globalopt -loop-versioning -barrier -early-cse-memssa -gvn-hoist -strip -tailcallelim -sccp -lower-matrix-intrinsics -lower-guard-intrinsic -callsite-splitting -indvars -consthoist -early-cse-memssa -loop-guard-widening -speculative-execution -argpromotion -strip -insert-gcov-profiling -post-inline-ee-instrument -loop-unroll-and-jam -slsr -newgvn -prune-eh -argpromotion -constmerge -speculative-execution -redundant-dbg-inst-elim -loop-instsimplify -loop-reroll -instcombine -coro-early -lower-expect -post-inline-ee-instrument -loop-distribute -slp-vectorizer -pgo-memop-opt -loop-predication -slp-vectorizer -simplifycfg -forceattrs -coro-split -lower-guard-intrinsic -instsimplify -sink -coro-early -early-cse-memssa -aggressive-instcombine -jump-threading -separate-const-offset-from-gep -mem2reg -rewrite-statepoints-for-gc -sccp -slp-vectorizer -loop-reroll -coro-elide -cross-dso-cfi -gvn-hoist -jump-threading -coro-split -loop-versioning-licm -constprop -gvn -indvars -loop-sink -prune-eh -mergeicmps -tailcallelim -indvars -elim-avail-extern -lower-guard-intrinsic -instcombine input.bc -o output.bc +benchmark://cbench-v1/gsm,1.048057768924303,16.46152639389038,opt -coro-split -lower-matrix-intrinsics -add-discriminators -mergeicmps -lower-constant-intrinsics -loop-unroll-and-jam -redundant-dbg-inst-elim -inject-tli-mappings -barrier -argpromotion -barrier -canonicalize-aliases -separate-const-offset-from-gep -mem2reg -loop-data-prefetch -loop-guard-widening -simplifycfg -consthoist -loop-idiom -deadargelim -loop-sink -lower-expect -lower-constant-intrinsics -reassociate -instcombine -newgvn -globaldce -lowerinvoke -mergefunc -loop-instsimplify -strip-nondebug -prune-eh -constprop -dse -sancov -loop-unroll-and-jam -float2int -canonicalize-aliases -barrier -constprop -loop-fusion -slp-vectorizer -loop-simplifycfg -name-anon-globals -strip-nondebug -strip -sancov -flattencfg -correlated-propagation -redundant-dbg-inst-elim -sroa -strip-dead-prototypes -lowerswitch -callsite-splitting -post-inline-ee-instrument -newgvn -loop-versioning -dce -prune-eh -globalsplit -loop-unroll-and-jam -cross-dso-cfi -die -sink -adce -redundant-dbg-inst-elim -barrier -dse -memcpyopt -loop-data-prefetch -loop-unswitch -gvn -loop-fusion -sancov -slp-vectorizer -loweratomic -break-crit-edges -indvars -sink -loop-fusion -loop-predication -mergeicmps -aggressive-instcombine -loop-versioning-licm -barrier -add-discriminators -guard-widening -early-cse-memssa -early-cse-memssa -strip-dead-prototypes -pgo-memop-opt -lowerswitch -add-discriminators -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.050921314741036,13.954805850982666,opt -newgvn -loop-instsimplify -mergereturn -memcpyopt -loop-reduce -sroa -elim-avail-extern -lower-guard-intrinsic -guard-widening -dce -loop-vectorize -reassociate -argpromotion -loop-instsimplify -loop-instsimplify -coro-early -instcombine -lower-widenable-condition -attributor -always-inline -name-anon-globals -indvars -always-inline -globalopt -lowerswitch -inferattrs -loop-simplify -ipconstprop -speculative-execution -globalsplit -sancov -gvn-hoist -called-value-propagation -mldst-motion -dse -loop-data-prefetch -inferattrs -lower-guard-intrinsic -loop-reroll -early-cse-memssa -called-value-propagation -separate-const-offset-from-gep -sink -strip-nondebug -ipconstprop -lower-matrix-intrinsics -loop-fusion -loop-versioning-licm -aggressive-instcombine -prune-eh -loop-sink -guard-widening -jump-threading -lower-matrix-intrinsics -mergefunc -loop-guard-widening -lower-widenable-condition -loop-simplifycfg -newgvn -mem2reg -lcssa -loop-interchange -functionattrs -loop-unroll-and-jam -coro-cleanup -break-crit-edges -lower-matrix-intrinsics -name-anon-globals -tailcallelim -loop-simplify -bdce -redundant-dbg-inst-elim -inferattrs -hotcoldsplit -simplifycfg -ipsccp -ipsccp -float2int -loop-sink -functionattrs -licm -div-rem-pairs -alignment-from-assumptions -div-rem-pairs -deadargelim -rewrite-statepoints-for-gc -loop-unswitch -loop-guard-widening -cross-dso-cfi -instnamer -hotcoldsplit -consthoist -lowerinvoke -functionattrs -lower-guard-intrinsic -aggressive-instcombine -nary-reassociate -lower-constant-intrinsics -canonicalize-aliases -loop-predication -bdce -gvn -infer-address-spaces -slp-vectorizer -gvn -lower-matrix-intrinsics -reassociate -nary-reassociate -attributor -mergefunc -loop-idiom -loop-simplifycfg -lower-matrix-intrinsics -reassociate -lower-matrix-intrinsics -loop-distribute -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9370865587614357,15.787727355957031,opt -lcssa -simplifycfg -loop-load-elim -slsr -libcalls-shrinkwrap -globalopt -simplifycfg -loop-instsimplify -adce -simplifycfg -strip-dead-prototypes -hotcoldsplit -dce -aggressive-instcombine -loop-unroll-and-jam -loop-data-prefetch -ipconstprop -functionattrs -coro-early -loop-unroll -lower-matrix-intrinsics -loop-simplify -pgo-memop-opt -bdce -name-anon-globals -loop-load-elim -lower-matrix-intrinsics -coro-cleanup -prune-eh -correlated-propagation -strip-debug-declare -coro-early -jump-threading -cross-dso-cfi -sroa -loweratomic -insert-gcov-profiling -post-inline-ee-instrument -partial-inliner -prune-eh -loop-load-elim -add-discriminators -inject-tli-mappings -lower-widenable-condition -coro-split -deadargelim -prune-eh -loop-unroll -rewrite-statepoints-for-gc -inject-tli-mappings -sccp -strip-debug-declare -mergereturn -load-store-vectorizer -lower-matrix-intrinsics -instcombine -attributor -loop-simplify -mldst-motion -reassociate -lower-constant-intrinsics -simplifycfg -coro-split -loop-data-prefetch -loweratomic -argpromotion -cross-dso-cfi -canonicalize-aliases -bdce -loop-fusion -tailcallelim -adce -alignment-from-assumptions -callsite-splitting -add-discriminators -barrier -reassociate -newgvn input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9480647431386349,15.543245077133179,opt -coro-elide -dce -mergereturn -slp-vectorizer -gvn-hoist -lowerswitch -mergefunc -lowerinvoke -alignment-from-assumptions -lcssa -loop-reduce -loop-reduce -scalarizer -infer-address-spaces -constprop -partial-inliner -scalarizer -die -mergefunc -strip-debug-declare -loweratomic -prune-eh -early-cse-memssa -jump-threading -globalsplit -flattencfg -loop-vectorize -instsimplify -lower-matrix-intrinsics -callsite-splitting -irce -strip-debug-declare -mergefunc -aggressive-instcombine -deadargelim -gvn-hoist -coro-cleanup -early-cse-memssa -loop-distribute -loop-unswitch -gvn -loop-guard-widening -loop-versioning-licm -mem2reg -globalsplit -cross-dso-cfi -loop-sink -aggressive-instcombine -instcombine -mergefunc -loop-sink -dce -guard-widening -loop-vectorize -lower-guard-intrinsic -loop-sink -name-anon-globals -coro-early -loop-guard-widening -loop-versioning -simplifycfg -libcalls-shrinkwrap -separate-const-offset-from-gep -libcalls-shrinkwrap -loop-versioning -alignment-from-assumptions -loop-versioning -gvn -coro-cleanup -sancov -loweratomic -speculative-execution -loop-versioning -reg2mem -redundant-dbg-inst-elim -loop-sink -loop-sink -strip-nondebug -pgo-memop-opt -coro-split -coro-early -name-anon-globals -consthoist -correlated-propagation -callsite-splitting -guard-widening -loop-guard-widening -guard-widening -barrier -loop-vectorize -add-discriminators -ipsccp -instnamer -coro-early -constprop -infer-address-spaces -add-discriminators -rewrite-statepoints-for-gc -slsr -inferattrs -dce -loweratomic -globaldce -inject-tli-mappings -deadargelim -nary-reassociate -slp-vectorizer -mem2reg -correlated-propagation -constmerge -strip-nondebug -adce -partial-inliner -tailcallelim -ipsccp -mem2reg -aggressive-instcombine -jump-threading -sccp -guard-widening -name-anon-globals -gvn -strip -div-rem-pairs -loop-unroll -globalsplit -partially-inline-libcalls -simplifycfg -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9583391977480648,16.2684326171875,opt -jump-threading -loop-reduce -lower-expect -insert-gcov-profiling -add-discriminators -rpo-functionattrs -deadargelim -break-crit-edges -loop-distribute -flattencfg -early-cse-memssa -constmerge -float2int -slp-vectorizer -jump-threading -strip -loop-unroll -strip-nondebug -lower-expect -newgvn -globalsplit -separate-const-offset-from-gep -mem2reg -ipsccp -simplifycfg -sroa -loop-versioning-licm -flattencfg -pgo-memop-opt -float2int -loop-unroll -lower-constant-intrinsics -memcpyopt -deadargelim -libcalls-shrinkwrap -loop-distribute -constprop -loop-simplify -gvn -slsr -sink -canonicalize-aliases -slsr -lower-constant-intrinsics -loop-idiom -indvars -hotcoldsplit -rewrite-statepoints-for-gc -globalopt -loop-simplifycfg -rpo-functionattrs -lower-constant-intrinsics -strip-nondebug -ee-instrument -aggressive-instcombine -lower-guard-intrinsic -loop-reroll -attributor -add-discriminators -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9601688951442646,16.670270681381226,opt -globalopt -newgvn -loop-interchange -lower-constant-intrinsics -lower-widenable-condition -strip-nondebug -cross-dso-cfi -slp-vectorizer -canonicalize-aliases -consthoist -gvn -mem2reg -coro-split -sroa -instsimplify -mergefunc -loop-predication -ee-instrument -ee-instrument -gvn-hoist -mem2reg -loop-predication -rewrite-statepoints-for-gc -callsite-splitting -elim-avail-extern -loop-predication -infer-address-spaces -elim-avail-extern -lower-guard-intrinsic -loop-reroll -mem2reg -loop-versioning-licm -mergefunc -loop-fusion -loop-vectorize -licm -always-inline -simplifycfg -loop-versioning -sancov -loop-idiom -lower-guard-intrinsic -loop-distribute -loop-unroll -coro-cleanup -break-crit-edges -coro-early -instcombine -attributor -float2int -sancov -inject-tli-mappings -loop-guard-widening -strip-nondebug -simple-loop-unswitch -loop-distribute -gvn -always-inline -coro-elide -adce -loop-interchange -slsr -libcalls-shrinkwrap -strip-dead-prototypes -partially-inline-libcalls -prune-eh -lower-expect -globalsplit -loop-instsimplify -strip-debug-declare -div-rem-pairs -load-store-vectorizer -ee-instrument -sroa -strip-dead-prototypes -sccp -instnamer -inferattrs -irce -sroa -loop-data-prefetch -lower-expect -redundant-dbg-inst-elim -div-rem-pairs -canonicalize-aliases -inject-tli-mappings -consthoist -loop-unroll -callsite-splitting -barrier -coro-split -cross-dso-cfi -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9607318789584799,15.463008642196655,opt -speculative-execution -barrier -prune-eh -early-cse-memssa -inferattrs -coro-elide -loop-vectorize -ipsccp -rpo-functionattrs -globaldce -loop-versioning-licm -name-anon-globals -called-value-propagation -gvn -reassociate -mem2reg -early-cse-memssa -post-inline-ee-instrument -attributor -div-rem-pairs -irce -sccp -bdce -simplifycfg -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9653764954257565,16.424754858016968,opt -loop-unroll -speculative-execution -loop-load-elim -newgvn -lower-widenable-condition -insert-gcov-profiling -loop-versioning-licm -indvars -inject-tli-mappings -loop-simplify -die -infer-address-spaces -early-cse-memssa -barrier -loop-guard-widening -reassociate -rewrite-statepoints-for-gc -coro-early -globalopt -scalarizer -ee-instrument -forceattrs -loop-simplify -rpo-functionattrs -loop-load-elim -lower-matrix-intrinsics -constmerge -dce -loop-reduce -jump-threading -correlated-propagation -separate-const-offset-from-gep -loop-instsimplify -lowerinvoke -loop-unroll -rewrite-statepoints-for-gc -constmerge -functionattrs -insert-gcov-profiling -lower-expect -strip -lowerswitch -newgvn -globaldce -instcombine -instsimplify -lowerswitch -lower-matrix-intrinsics -strip-debug-declare -coro-early -mldst-motion -coro-cleanup -sroa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9655172413793099,16.854193210601807,opt -loop-distribute -redundant-dbg-inst-elim -elim-avail-extern -sancov -lowerinvoke -mldst-motion -elim-avail-extern -reg2mem -dce -lower-guard-intrinsic -canonicalize-aliases -slsr -lower-expect -always-inline -sink -bdce -dce -loop-deletion -redundant-dbg-inst-elim -called-value-propagation -bdce -globalsplit -lower-constant-intrinsics -ipsccp -inferattrs -speculative-execution -mergeicmps -slsr -nary-reassociate -prune-eh -rewrite-statepoints-for-gc -alignment-from-assumptions -strip -strip-nondebug -sink -sink -sroa -newgvn -rpo-functionattrs -name-anon-globals -loop-interchange -loop-versioning -licm -mldst-motion -functionattrs -add-discriminators -lower-expect -ipconstprop -libcalls-shrinkwrap -called-value-propagation -lowerinvoke -loop-distribute -loop-data-prefetch -loop-versioning-licm -gvn -globalopt -coro-early -instcombine -coro-split -coro-cleanup -loop-data-prefetch -speculative-execution -barrier -partially-inline-libcalls -speculative-execution -sancov -loop-simplify -loop-simplify -mergereturn -bdce -dse -constmerge -argpromotion -memcpyopt -mergefunc -cross-dso-cfi -loop-sink -speculative-execution -newgvn -insert-gcov-profiling -coro-cleanup -instcombine -loop-unroll-and-jam -coro-early -licm -canonicalize-aliases -strip-dead-prototypes -add-discriminators -scalarizer -dse -aggressive-instcombine -loop-fusion -ee-instrument -hotcoldsplit -rpo-functionattrs -lower-expect -globaldce -loop-load-elim -rpo-functionattrs -div-rem-pairs -sccp -loop-vectorize -loop-instsimplify -loop-vectorize -lower-guard-intrinsic -globalopt -coro-early -loop-reroll -partially-inline-libcalls -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -elim-avail-extern -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9809992962702324,16.816142797470093,opt -loop-idiom -scalarizer -lower-widenable-condition -lcssa -loop-reduce -lower-widenable-condition -coro-elide -lower-widenable-condition -lower-guard-intrinsic -coro-split -loop-reduce -cross-dso-cfi -pgo-memop-opt -newgvn -canonicalize-aliases -tailcallelim -inferattrs -reg2mem -loop-guard-widening -sccp -called-value-propagation -post-inline-ee-instrument -strip-dead-prototypes -called-value-propagation -sancov -strip-dead-prototypes -mergereturn -globalsplit -strip-dead-prototypes -sccp -reg2mem -loop-instsimplify -prune-eh -functionattrs -mergeicmps -tailcallelim -alignment-from-assumptions -simple-loop-unswitch -coro-elide -loop-deletion -ipsccp -loop-unroll-and-jam -mldst-motion -div-rem-pairs -strip-dead-prototypes -reassociate -always-inline -float2int -alignment-from-assumptions -loop-versioning-licm -slsr -deadargelim -sccp -redundant-dbg-inst-elim -reassociate -load-store-vectorizer -consthoist -early-cse-memssa -loop-predication -indvars -jump-threading -consthoist -load-store-vectorizer -argpromotion -mergereturn -coro-early -correlated-propagation -adce -mem2reg -loop-deletion -infer-address-spaces -lowerinvoke -gvn -coro-split -loop-instsimplify -coro-early -canonicalize-aliases -instnamer -barrier -callsite-splitting -simplifycfg -cross-dso-cfi -inject-tli-mappings -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9884588318085854,17.402209043502808,opt -bdce -speculative-execution -post-inline-ee-instrument -globalopt -separate-const-offset-from-gep -canonicalize-aliases -coro-early -gvn -loop-unroll-and-jam -load-store-vectorizer -float2int -cross-dso-cfi -newgvn -mem2reg -loop-unroll -elim-avail-extern -coro-elide -cross-dso-cfi -scalarizer -early-cse-memssa -instnamer -insert-gcov-profiling -ee-instrument -simplifycfg -loop-load-elim -div-rem-pairs -lower-guard-intrinsic -attributor -guard-widening -add-discriminators -coro-elide -loop-versioning -loop-vectorize -strip -correlated-propagation -dse -prune-eh -loop-predication -float2int -loop-versioning-licm -div-rem-pairs -loop-unroll-and-jam -lower-guard-intrinsic -loop-simplifycfg -strip-debug-declare -instcombine -coro-cleanup -coro-split -tailcallelim -correlated-propagation -instnamer -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0002814919071077,16.02399444580078,opt -mem2reg -early-cse-memssa -sancov -always-inline -strip-debug-declare -forceattrs -forceattrs -nary-reassociate -early-cse-memssa -loop-vectorize -newgvn -ipconstprop -div-rem-pairs -dse -strip-dead-prototypes -barrier -dce -simple-loop-unswitch -barrier -inject-tli-mappings -nary-reassociate -callsite-splitting -simplifycfg -instsimplify -loop-guard-widening -break-crit-edges -strip-debug-declare -mergefunc -loop-fusion -loop-interchange -dse -post-inline-ee-instrument -loop-load-elim -globalopt -simplifycfg -loop-deletion -guard-widening -lower-expect -newgvn -instcombine -strip-dead-prototypes -hotcoldsplit -strip-dead-prototypes -tailcallelim -forceattrs -strip-debug-declare -ipsccp -nary-reassociate -loop-predication -flattencfg -called-value-propagation -attributor -loop-simplify -scalarizer -mergeicmps -add-discriminators -coro-early -libcalls-shrinkwrap -mem2reg -deadargelim -loop-idiom -mergefunc -sroa -speculative-execution -globalopt -early-cse-memssa -lower-constant-intrinsics -argpromotion -instcombine -sink -die -lower-expect -lowerinvoke -lowerinvoke -div-rem-pairs -loop-simplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,0.9791053104752456,49.419673442840576,opt -break-crit-edges -add-discriminators -lcssa -loop-unroll-and-jam -nary-reassociate -mldst-motion -licm -inferattrs -mem2reg -rpo-functionattrs -callsite-splitting -cross-dso-cfi -loop-distribute -reg2mem -barrier -lowerswitch -separate-const-offset-from-gep -coro-early -newgvn -simple-loop-unswitch -lowerswitch -cross-dso-cfi -dce -infer-address-spaces -canonicalize-aliases -inferattrs -instcombine -sroa -called-value-propagation -strip-dead-prototypes -inferattrs -callsite-splitting -tailcallelim -slp-vectorizer -functionattrs -simplifycfg -ipconstprop -name-anon-globals -coro-cleanup -constprop -loweratomic -globaldce -hotcoldsplit -div-rem-pairs -div-rem-pairs -mergeicmps -constmerge -functionattrs -mldst-motion -memcpyopt -argpromotion -strip -simplifycfg -strip-dead-prototypes -speculative-execution -bdce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,0.9851815109898626,40.56418228149414,opt -lowerinvoke -mem2reg -gvn-hoist -functionattrs -irce -instsimplify -insert-gcov-profiling -loweratomic -aggressive-instcombine -lcssa -infer-address-spaces -barrier -insert-gcov-profiling -nary-reassociate -adce -loop-guard-widening -libcalls-shrinkwrap -irce -coro-early -licm -rewrite-statepoints-for-gc -die -hotcoldsplit -lowerinvoke -consthoist -globalsplit -div-rem-pairs -globalsplit -loop-deletion -loop-idiom -loop-unroll-and-jam -loop-predication -coro-cleanup -sroa -lower-widenable-condition -coro-early -globalopt -jump-threading -lower-matrix-intrinsics -loop-interchange -licm -die -functionattrs -loop-versioning-licm -post-inline-ee-instrument -simple-loop-unswitch -strip-nondebug -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,0.9937377933471805,39.32756042480469,opt -dse -indvars -sccp -lowerinvoke -loop-unswitch -functionattrs -constmerge -coro-early -lower-expect -loop-unroll-and-jam -called-value-propagation -rpo-functionattrs -aggressive-instcombine -attributor -cross-dso-cfi -lower-widenable-condition -dce -rewrite-statepoints-for-gc -sroa -constmerge -partially-inline-libcalls -loop-unroll -elim-avail-extern -loop-idiom -barrier -libcalls-shrinkwrap -loop-sink -redundant-dbg-inst-elim -coro-elide -loop-unswitch -argpromotion -simple-loop-unswitch -nary-reassociate -loop-reroll -loop-predication -insert-gcov-profiling -strip-debug-declare -cross-dso-cfi -loop-sink -forceattrs -strip-nondebug -sccp -tailcallelim -irce -loop-predication -loop-unroll -loop-reroll -simplifycfg -loop-simplifycfg -early-cse-memssa -add-discriminators -loop-deletion -load-store-vectorizer -strip-dead-prototypes -div-rem-pairs -callsite-splitting -loop-deletion -cross-dso-cfi -float2int -loop-sink -lcssa -indvars -consthoist -infer-address-spaces -slp-vectorizer -loop-sink -redundant-dbg-inst-elim -loop-unswitch -attributor -add-discriminators -libcalls-shrinkwrap -simplifycfg -globalopt -nary-reassociate -globalopt -mergereturn -instcombine -early-cse-memssa -deadargelim -jump-threading input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,0.9965588864432526,37.86662936210632,opt -irce -dse -rewrite-statepoints-for-gc -mldst-motion -ee-instrument -strip-debug-declare -inject-tli-mappings -coro-split -prune-eh -strip-dead-prototypes -gvn -lower-matrix-intrinsics -coro-split -loop-fusion -lower-expect -mem2reg -loop-load-elim -redundant-dbg-inst-elim -memcpyopt -loop-simplify -loop-deletion -instcombine -constmerge -inferattrs -sancov -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,0.9974889171342651,37.16405701637268,opt -always-inline -loop-idiom -post-inline-ee-instrument -simple-loop-unswitch -prune-eh -aggressive-instcombine -licm -lower-guard-intrinsic -licm -mem2reg -coro-split -name-anon-globals -correlated-propagation -infer-address-spaces -instcombine -instcombine -inject-tli-mappings -elim-avail-extern -loweratomic -scalarizer -loop-simplify -correlated-propagation -coro-elide -rewrite-statepoints-for-gc -mergefunc -strip-dead-prototypes -rpo-functionattrs -hotcoldsplit -lowerinvoke -functionattrs -lower-guard-intrinsic -loop-load-elim -newgvn -separate-const-offset-from-gep -float2int -sroa -loop-guard-widening -sroa -slp-vectorizer -coro-cleanup -coro-cleanup -rewrite-statepoints-for-gc -loop-interchange -irce -lower-widenable-condition -jump-threading -tailcallelim -strip -aggressive-instcombine -lowerswitch -prune-eh -mem2reg -constmerge -sink -loop-reroll -loop-predication -reassociate -post-inline-ee-instrument -ipsccp -speculative-execution -correlated-propagation -float2int -strip-debug-declare -post-inline-ee-instrument -partially-inline-libcalls -lower-constant-intrinsics -adce -canonicalize-aliases -irce -dce -simple-loop-unswitch -bdce -mergereturn -speculative-execution -post-inline-ee-instrument -loop-fusion -dce -gvn -die -mem2reg -loop-interchange -indvars -instsimplify input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.004588151408996,41.63024926185608,opt -strip-nondebug -loop-predication -elim-avail-extern -loop-versioning-licm -newgvn -loop-distribute -always-inline -deadargelim -loop-load-elim -loop-guard-widening -mem2reg -loop-instsimplify -strip-dead-prototypes -indvars -lcssa -tailcallelim -strip -sancov -strip-debug-declare -separate-const-offset-from-gep -mergefunc -deadargelim -cross-dso-cfi -irce -coro-split -loop-versioning-licm -inject-tli-mappings -instsimplify -loop-reroll -mergefunc -correlated-propagation -sccp -lower-matrix-intrinsics -sink -load-store-vectorizer -ipconstprop -correlated-propagation -loop-guard-widening -callsite-splitting -lower-widenable-condition -strip-nondebug -callsite-splitting -coro-cleanup -constmerge -div-rem-pairs -simplifycfg -constprop -loop-unroll -ipconstprop -early-cse-memssa -cross-dso-cfi -lower-guard-intrinsic -consthoist -loop-load-elim -consthoist -globalopt -lower-guard-intrinsic -break-crit-edges -nary-reassociate -loop-idiom -sccp -loweratomic -flattencfg -aggressive-instcombine -speculative-execution -loop-instsimplify -mergereturn -attributor -loop-simplifycfg -aggressive-instcombine -correlated-propagation -instnamer -newgvn -sink -globalopt -coro-elide -speculative-execution -ipconstprop -loop-distribute -loop-unroll -loop-deletion -loop-interchange -globalopt -libcalls-shrinkwrap -gvn -jump-threading -alignment-from-assumptions -lower-matrix-intrinsics -separate-const-offset-from-gep -div-rem-pairs -consthoist -instcombine -simple-loop-unswitch -always-inline -loop-idiom -bdce -ee-instrument -infer-address-spaces -sancov -simple-loop-unswitch -ipconstprop -always-inline -barrier -guard-widening -cross-dso-cfi -libcalls-shrinkwrap -loop-unroll -redundant-dbg-inst-elim -inferattrs -guard-widening -strip -div-rem-pairs -alignment-from-assumptions -instsimplify -separate-const-offset-from-gep -div-rem-pairs -instcombine -loop-sink -loop-reroll -pgo-memop-opt -reg2mem -lowerinvoke -dse -loop-simplifycfg -partial-inliner -mem2reg -post-inline-ee-instrument -sink -bdce -post-inline-ee-instrument -sink -loop-versioning-licm -coro-early -strip -partially-inline-libcalls -mem2reg -rewrite-statepoints-for-gc -coro-split -instcombine -early-cse-memssa -partial-inliner -gvn-hoist -loop-idiom -partially-inline-libcalls -strip-nondebug -globaldce -loop-unroll -loop-versioning-licm -break-crit-edges -loop-interchange -irce -mergeicmps -strip -reassociate -constmerge -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0055181821000094,42.71349883079529,opt -lower-matrix-intrinsics -aggressive-instcombine -rpo-functionattrs -deadargelim -inferattrs -reassociate -mergeicmps -functionattrs -mergefunc -loop-distribute -slsr -adce -name-anon-globals -mergereturn -strip-debug-declare -slsr -gvn-hoist -correlated-propagation -simple-loop-unswitch -irce -loop-versioning-licm -sroa -lower-widenable-condition -adce -loop-predication -jump-threading -coro-early -loop-reroll -load-store-vectorizer -always-inline -barrier -instcombine -lower-widenable-condition -aggressive-instcombine -jump-threading -callsite-splitting -die -canonicalize-aliases -globalsplit -ee-instrument -speculative-execution -argpromotion -newgvn -forceattrs -called-value-propagation -coro-cleanup -jump-threading input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.00750224757417,40.76293182373047,opt -loop-instsimplify -lower-constant-intrinsics -simple-loop-unswitch -loop-interchange -indvars -add-discriminators -newgvn -lower-matrix-intrinsics -break-crit-edges -mergeicmps -loop-unroll-and-jam -lowerinvoke -instnamer -reg2mem -inferattrs -loop-unswitch -flattencfg -called-value-propagation -lowerinvoke -alignment-from-assumptions -correlated-propagation -ipsccp -add-discriminators -loop-reduce -loop-idiom -jump-threading -forceattrs -loop-load-elim -called-value-propagation -globaldce -ipsccp -loop-simplifycfg -loop-deletion -always-inline -loop-simplifycfg -correlated-propagation -loop-reduce -attributor -globalopt -loweratomic -loop-versioning-licm -deadargelim -irce -loop-reduce -canonicalize-aliases -infer-address-spaces -indvars -simple-loop-unswitch -reg2mem -rpo-functionattrs -ipsccp -instsimplify -infer-address-spaces -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -mem2reg -speculative-execution -instcombine -lower-widenable-condition -slp-vectorizer -simplifycfg -deadargelim -sroa -instcombine -bdce -slp-vectorizer -aggressive-instcombine -lowerinvoke -lowerinvoke -mergereturn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0162135350466563,37.60094594955444,opt -post-inline-ee-instrument -inject-tli-mappings -die -hotcoldsplit -loop-interchange -loop-versioning -sroa -forceattrs -strip -gvn-hoist -argpromotion -loop-reroll -argpromotion -canonicalize-aliases -globalsplit -instcombine -inferattrs -post-inline-ee-instrument -strip-dead-prototypes -mldst-motion -loop-sink -die -loweratomic -flattencfg -speculative-execution -early-cse-memssa -pgo-memop-opt -lower-guard-intrinsic -add-discriminators -mergefunc -loop-data-prefetch -elim-avail-extern -indvars -attributor -simple-loop-unswitch -loop-fusion -ipsccp -attributor -strip-nondebug -simplifycfg -slp-vectorizer input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0305050066652195,43.867016553878784,opt -bdce -attributor -guard-widening -instsimplify -mem2reg -loop-instsimplify -flattencfg -rewrite-statepoints-for-gc -globalsplit -loop-idiom -lower-constant-intrinsics -die -loop-guard-widening -gvn-hoist -loop-distribute -licm -lower-widenable-condition -functionattrs -jump-threading -rpo-functionattrs -bdce -div-rem-pairs -gvn -sccp -lcssa -sccp -libcalls-shrinkwrap -coro-split -instnamer -newgvn -inferattrs -forceattrs -correlated-propagation -mem2reg -dse -dse -licm -partially-inline-libcalls -ipsccp -loop-unroll-and-jam -lower-guard-intrinsic -lower-matrix-intrinsics -gvn -indvars -attributor -licm -libcalls-shrinkwrap -mldst-motion -sccp -rpo-functionattrs -flattencfg -nary-reassociate -strip-nondebug -loop-simplifycfg -loop-versioning-licm -lcssa -lower-expect -mergefunc -name-anon-globals -strip-debug-declare -ipconstprop -licm -strip-dead-prototypes -loop-deletion -separate-const-offset-from-gep -partially-inline-libcalls -correlated-propagation -mergereturn -deadargelim -newgvn -loop-deletion -instcombine -lower-widenable-condition -dse -jump-threading -mem2reg -always-inline -pgo-memop-opt -mergereturn -loop-data-prefetch -loop-versioning-licm -simplifycfg -speculative-execution -licm -functionattrs -die -prune-eh -functionattrs -libcalls-shrinkwrap -globalopt -rpo-functionattrs -irce -loweratomic -loop-simplify -lower-matrix-intrinsics -loop-unroll-and-jam -flattencfg -reassociate -loop-simplify -slsr -partially-inline-libcalls -loop-data-prefetch -div-rem-pairs -loop-instsimplify -called-value-propagation -loop-distribute -ipsccp -memcpyopt -dce -guard-widening -ee-instrument -cross-dso-cfi -instsimplify input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,0.9849319037960012,44.77920889854431,opt -always-inline -simple-loop-unswitch -scalarizer -coro-elide -coro-early -constmerge -sccp -lower-matrix-intrinsics -dce -scalarizer -ipconstprop -loop-sink -instnamer -sccp -mergeicmps -newgvn -simplifycfg -ipconstprop -lower-expect -strip-debug-declare -sink -constprop -sroa -flattencfg -strip -strip -lcssa -consthoist -coro-early -attributor -slp-vectorizer -cross-dso-cfi -lower-widenable-condition -coro-split -constprop -mldst-motion -constmerge -functionattrs -forceattrs -mergefunc -aggressive-instcombine -slsr -lower-expect -loop-load-elim -forceattrs -rpo-functionattrs -sancov -loweratomic -licm -lower-expect -loop-simplify -loop-guard-widening -strip-dead-prototypes -ipconstprop -inferattrs -sancov -sccp -always-inline -rewrite-statepoints-for-gc -loop-vectorize -loop-versioning -mldst-motion -speculative-execution -loop-vectorize -loop-predication -ee-instrument -coro-elide -gvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,0.9866383334943173,41.430155515670776,opt -coro-early -callsite-splitting -float2int -libcalls-shrinkwrap -sccp -forceattrs -lower-guard-intrinsic -gvn-hoist -called-value-propagation -loop-idiom -gvn -prune-eh -indvars -post-inline-ee-instrument -loweratomic -sroa -sroa -lower-constant-intrinsics -lowerswitch -canonicalize-aliases -newgvn -argpromotion -float2int -insert-gcov-profiling -loop-reroll -nary-reassociate -gvn-hoist -lower-constant-intrinsics -loop-simplify -separate-const-offset-from-gep -ipsccp -simplifycfg -libcalls-shrinkwrap -newgvn -bdce input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,0.9939148073022314,41.397254943847656,opt -attributor -speculative-execution -sink -called-value-propagation -canonicalize-aliases -irce -lower-constant-intrinsics -dse -lowerswitch -functionattrs -globalopt -separate-const-offset-from-gep -instnamer -elim-avail-extern -hotcoldsplit -lower-constant-intrinsics -jump-threading -lowerswitch -inferattrs -jump-threading -lower-expect -instsimplify -gvn -dse -called-value-propagation -lcssa -memcpyopt -correlated-propagation -newgvn -reg2mem -elim-avail-extern -called-value-propagation -div-rem-pairs -loop-unswitch -redundant-dbg-inst-elim -ipconstprop -speculative-execution -loop-unroll-and-jam -loop-guard-widening -loop-fusion -mergeicmps -globaldce -lowerinvoke -ee-instrument -mem2reg -loop-load-elim -constmerge -lowerswitch -loop-deletion -attributor -lower-expect -newgvn -ee-instrument -forceattrs -strip -loop-versioning-licm -deadargelim -loop-distribute -early-cse-memssa -break-crit-edges -constmerge -lowerswitch -globalsplit -globaldce -always-inline -loop-simplifycfg -mergereturn -loop-interchange -bdce -aggressive-instcombine -guard-widening -irce -gvn-hoist -always-inline -reg2mem -gvn -globalopt -loop-fusion -lower-guard-intrinsic -flattencfg -sccp -div-rem-pairs -mergereturn -separate-const-offset-from-gep -loop-fusion -div-rem-pairs -rewrite-statepoints-for-gc -loweratomic -callsite-splitting -float2int -functionattrs -loop-data-prefetch -infer-address-spaces -instcombine -infer-address-spaces -loop-fusion -ipconstprop -lower-constant-intrinsics -sink -lower-constant-intrinsics -coro-early -loop-distribute -ipsccp -sink -instnamer -mem2reg -loop-idiom -loop-idiom -coro-cleanup -coro-split -jump-threading -globalsplit -instnamer -instcombine input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,0.994140184809556,38.051066637039185,opt -loop-load-elim -loop-data-prefetch -coro-split -redundant-dbg-inst-elim -loop-distribute -mem2reg -speculative-execution -loop-predication -jump-threading -mem2reg -gvn -sccp -forceattrs -cross-dso-cfi -loop-data-prefetch -loweratomic -elim-avail-extern -bdce -flattencfg -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,0.9964261566695642,48.110989570617676,opt -argpromotion -strip -gvn -lowerswitch -post-inline-ee-instrument -loop-vectorize -strip-debug-declare -libcalls-shrinkwrap -float2int -tailcallelim -adce -instsimplify -prune-eh -dse -add-discriminators -mergereturn -prune-eh -cross-dso-cfi -loop-vectorize -instsimplify -loop-vectorize -deadargelim -reassociate -loweratomic -indvars -globalopt -lcssa -bdce -licm -memcpyopt -newgvn -jump-threading -ipsccp -pgo-memop-opt -loop-sink -instcombine -called-value-propagation -nary-reassociate -loop-fusion -loop-reroll -mergereturn -alignment-from-assumptions -lower-guard-intrinsic -dce -loweratomic -flattencfg -inject-tli-mappings -jump-threading -separate-const-offset-from-gep -instcombine -flattencfg -memcpyopt -mldst-motion -loop-unroll-and-jam -loweratomic -sccp -reassociate -loop-rotate -inject-tli-mappings -loop-guard-widening -alignment-from-assumptions -called-value-propagation -strip-nondebug -slsr -instsimplify -strip-debug-declare -lowerinvoke -functionattrs -elim-avail-extern -gvn -mergereturn -strip -deadargelim -prune-eh -barrier -instsimplify -strip-nondebug -separate-const-offset-from-gep -tailcallelim -jump-threading -redundant-dbg-inst-elim -instnamer -reassociate -partially-inline-libcalls -instcombine -ee-instrument -instnamer -globalopt -inferattrs -adce -rpo-functionattrs -called-value-propagation -constmerge -add-discriminators -add-discriminators -globaldce -ipsccp -sroa -coro-early -elim-avail-extern -guard-widening -argpromotion -instnamer -loop-instsimplify -attributor -ipconstprop -alignment-from-assumptions -name-anon-globals -globalsplit -mldst-motion -lowerswitch -loop-deletion -slsr -dse -redundant-dbg-inst-elim -simplifycfg -mldst-motion -rewrite-statepoints-for-gc -loop-data-prefetch -lower-expect -licm -simple-loop-unswitch -loop-fusion -loop-data-prefetch -post-inline-ee-instrument -mergefunc -loop-reroll -ipsccp -functionattrs -lower-matrix-intrinsics -strip-nondebug -guard-widening -partially-inline-libcalls -infer-address-spaces -called-value-propagation -mergefunc -sccp -cross-dso-cfi -indvars -argpromotion -loop-reroll -elim-avail-extern -inferattrs -partially-inline-libcalls -slp-vectorizer -deadargelim -loop-versioning-licm -post-inline-ee-instrument -ee-instrument -deadargelim -loop-data-prefetch -bdce -loop-predication -loop-distribute -slsr -hotcoldsplit -instnamer -instsimplify -loop-deletion -globaldce -name-anon-globals -ee-instrument -coro-split -die -consthoist -pgo-memop-opt -lower-widenable-condition -strip-nondebug -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0002575742940853,327.2070269584656,opt -insert-gcov-profiling -lcssa -gvn -called-value-propagation -mergefunc -loop-load-elim -strip-debug-declare -indvars -loop-versioning -loop-unroll-and-jam -strip-debug-declare -loop-deletion -constprop -ipconstprop -argpromotion -lower-constant-intrinsics -globalsplit -sroa -rpo-functionattrs -sink -adce -float2int -name-anon-globals -loop-sink -loop-sink -guard-widening -barrier -loop-sink -forceattrs -mergeicmps -mergeicmps -load-store-vectorizer -bdce -float2int -loop-data-prefetch -mergeicmps -partially-inline-libcalls -alignment-from-assumptions -loop-idiom -scalarizer -instsimplify -ipconstprop -loop-interchange -ipsccp -memcpyopt -instcombine -loweratomic -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0043787629994525,40.50717830657959,opt -sccp -coro-split -mem2reg -lower-matrix-intrinsics -loop-sink -instcombine -rpo-functionattrs -redundant-dbg-inst-elim -coro-early -strip-debug-declare -inferattrs -elim-avail-extern -rewrite-statepoints-for-gc -indvars -lowerinvoke -consthoist -ee-instrument -elim-avail-extern -mem2reg -add-discriminators -globalsplit -argpromotion -mergereturn -partially-inline-libcalls -sroa -mergereturn -reassociate -scalarizer -inferattrs -pgo-memop-opt -loop-unroll-and-jam -loop-instsimplify -functionattrs -inject-tli-mappings -lowerinvoke -slsr -consthoist -libcalls-shrinkwrap -lowerswitch -correlated-propagation -lower-constant-intrinsics -break-crit-edges -called-value-propagation -coro-split -loop-distribute -div-rem-pairs -guard-widening -nary-reassociate -indvars -aggressive-instcombine -dse -sccp -loop-guard-widening -constmerge -globalsplit -loop-sink -constprop -barrier -ipsccp -loop-reroll -ipsccp -strip-nondebug -called-value-propagation -sink -load-store-vectorizer -lower-constant-intrinsics -flattencfg -speculative-execution -early-cse-memssa -lower-expect -reassociate -ipconstprop -instsimplify -loop-instsimplify -reassociate -partial-inliner -slsr -mem2reg -infer-address-spaces -loop-instsimplify -irce -always-inline -cross-dso-cfi -lower-matrix-intrinsics -loop-simplify -loop-load-elim -ipconstprop -elim-avail-extern -ipsccp -loop-vectorize -die -hotcoldsplit -hotcoldsplit -sancov -scalarizer -loop-guard-widening -called-value-propagation -break-crit-edges -loop-guard-widening -loop-guard-widening -loop-versioning-licm -instcombine -loop-deletion -canonicalize-aliases -loop-interchange -consthoist -aggressive-instcombine -attributor -adce -mergeicmps -coro-cleanup -redundant-dbg-inst-elim -mergefunc -dce -elim-avail-extern -load-store-vectorizer -loop-guard-widening -elim-avail-extern -simplifycfg -lcssa -strip -called-value-propagation -lowerswitch -rpo-functionattrs -strip-nondebug -ipconstprop -mergefunc -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0189317106152807,39.96248817443848,opt -mem2reg -adce -post-inline-ee-instrument -mergereturn -mergereturn -loop-vectorize -float2int -float2int -globalopt -simplifycfg -sccp -redundant-dbg-inst-elim -forceattrs -slsr -insert-gcov-profiling -bdce -lower-expect -functionattrs -instcombine -rpo-functionattrs -float2int -tailcallelim -loop-data-prefetch -lcssa -forceattrs -speculative-execution -always-inline -scalarizer -instsimplify -barrier -instcombine -globaldce -guard-widening -loweratomic -strip-dead-prototypes -forceattrs -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0236002446955792,40.084962129592896,opt -ipconstprop -simple-loop-unswitch -loop-fusion -sroa -jump-threading -loop-idiom -loop-distribute -functionattrs -loop-distribute -lowerswitch -strip-debug-declare -indvars -barrier -mergefunc -redundant-dbg-inst-elim -add-discriminators -simple-loop-unswitch -licm -consthoist -instsimplify -inject-tli-mappings -loop-data-prefetch -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -slp-vectorizer -inferattrs -callsite-splitting -correlated-propagation -alignment-from-assumptions -early-cse-memssa -mergefunc -sroa -scalarizer -loop-data-prefetch -prune-eh -inject-tli-mappings -rewrite-statepoints-for-gc -indvars -tailcallelim -instnamer -name-anon-globals -argpromotion -loop-instsimplify -argpromotion -ee-instrument -forceattrs -lcssa -loop-simplifycfg -indvars -inferattrs -loop-load-elim -gvn -reassociate -partially-inline-libcalls -sancov -instcombine -bdce -loop-data-prefetch -lower-guard-intrinsic -strip-dead-prototypes -strip-nondebug -simplifycfg -prune-eh -sccp -functionattrs -consthoist -libcalls-shrinkwrap -strip-dead-prototypes -coro-cleanup -die -prune-eh -gvn -lower-constant-intrinsics input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0255964454747417,36.70538592338562,opt -bdce -dse -memcpyopt -inject-tli-mappings -die -globaldce -strip-debug-declare -prune-eh -reg2mem -coro-early -die -lower-widenable-condition -lower-constant-intrinsics -instnamer -loweratomic -attributor -rewrite-statepoints-for-gc -coro-split -lower-guard-intrinsic -separate-const-offset-from-gep -sroa -loop-distribute -mergefunc -early-cse-memssa -instsimplify -simplifycfg -instcombine -scalarizer -separate-const-offset-from-gep -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0058073331815074,34.02283263206482,opt -gvn-hoist -instcombine -loop-load-elim -strip-nondebug -instsimplify -sroa -sancov -inferattrs -add-discriminators -loop-vectorize -loop-load-elim -lower-expect -newgvn -early-cse-memssa -instcombine -lower-constant-intrinsics -slsr -jump-threading input.bc -o output.bc +benchmark://cbench-v1/lame,1.0103241478782359,66.14738416671753,opt -loop-distribute -early-cse-memssa -loop-load-elim -jump-threading -break-crit-edges -jump-threading -gvn -rpo-functionattrs -ee-instrument -loop-fusion -loop-unswitch -loop-reroll -mergereturn -correlated-propagation -deadargelim -float2int -guard-widening -reassociate -loop-interchange -name-anon-globals -div-rem-pairs -barrier -tailcallelim -pgo-memop-opt -lower-widenable-condition -coro-split -loop-interchange -constprop -dse -reassociate -add-discriminators -elim-avail-extern -loop-distribute -lower-constant-intrinsics -lower-matrix-intrinsics -dse -hotcoldsplit -loop-distribute -redundant-dbg-inst-elim -indvars -constmerge -mergefunc -break-crit-edges -loop-simplifycfg -jump-threading -lowerswitch -flattencfg -instcombine -memcpyopt -sccp -ipsccp -loop-sink -separate-const-offset-from-gep -strip -pgo-memop-opt -adce -constprop -lcssa -lowerinvoke -simple-loop-unswitch -simple-loop-unswitch -called-value-propagation -loop-versioning -loop-fusion -memcpyopt -simplifycfg -lowerinvoke -ipsccp -consthoist -loop-deletion -licm -scalarizer -consthoist -insert-gcov-profiling -loop-interchange -loop-versioning -inferattrs -inject-tli-mappings -cross-dso-cfi -adce -tailcallelim -tailcallelim -dse -simple-loop-unswitch -ipsccp -load-store-vectorizer -loop-deletion -elim-avail-extern -break-crit-edges -loop-idiom -simplifycfg -inject-tli-mappings -loop-instsimplify -callsite-splitting -infer-address-spaces -dce -slp-vectorizer -pgo-memop-opt -loop-fusion -loop-fusion -aggressive-instcombine -rpo-functionattrs -instcombine -loop-unswitch -break-crit-edges -name-anon-globals -loop-guard-widening -bdce -deadargelim -licm -break-crit-edges -newgvn -globaldce -instsimplify -scalarizer -ipconstprop -strip-dead-prototypes -bdce -mem2reg -globalsplit -div-rem-pairs -flattencfg -die -dce -pgo-memop-opt -tailcallelim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.012373794883474,38.40332770347595,opt -loop-guard-widening -separate-const-offset-from-gep -slsr -loop-data-prefetch -loop-load-elim -load-store-vectorizer -mem2reg -instcombine -globaldce -globalopt -break-crit-edges -ipsccp -dse -loop-load-elim -loop-reroll -loop-rotate -loop-idiom -redundant-dbg-inst-elim -mergeicmps -bdce -load-store-vectorizer -load-store-vectorizer -inject-tli-mappings -die -loop-vectorize -barrier -div-rem-pairs -deadargelim -libcalls-shrinkwrap -mergefunc -early-cse-memssa -nary-reassociate -rpo-functionattrs -loop-predication -early-cse-memssa -instnamer -called-value-propagation -loweratomic -loop-reroll -ee-instrument -loop-deletion -functionattrs -loop-fusion -break-crit-edges -mergefunc -lower-widenable-condition -slp-vectorizer -globaldce -bdce -globaldce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0212176421468158,64.10320901870728,opt -indvars -loop-data-prefetch -float2int -attributor -sancov -reassociate -lcssa -ee-instrument -deadargelim -simplifycfg -lowerinvoke -loop-simplify -always-inline -loop-simplify -mergefunc -die -gvn-hoist -speculative-execution -early-cse-memssa -attributor -loop-simplifycfg -lowerinvoke -loop-interchange -irce -gvn-hoist -instsimplify -forceattrs -loop-predication -loop-rotate -loop-distribute -prune-eh -correlated-propagation -rewrite-statepoints-for-gc -globalsplit -die -ipconstprop -loop-unswitch -lower-constant-intrinsics -hotcoldsplit -lower-widenable-condition -redundant-dbg-inst-elim -loop-vectorize -add-discriminators -newgvn -constmerge -instcombine -globaldce -dse -mem2reg -irce -bdce -consthoist -strip-nondebug -coro-split -mergeicmps -strip -loop-simplifycfg -functionattrs -mergereturn -coro-cleanup -licm -simplifycfg -loop-distribute -loweratomic -coro-elide -ipsccp -loop-deletion -lower-guard-intrinsic -newgvn -sink -newgvn -loop-deletion -lowerinvoke -gvn-hoist -globalopt -loop-distribute -insert-gcov-profiling -loop-unroll-and-jam -sroa -always-inline -loop-deletion -loop-simplify -callsite-splitting -flattencfg -lower-expect -post-inline-ee-instrument -coro-cleanup -speculative-execution -float2int -instcombine -newgvn input.bc -o output.bc +benchmark://cbench-v1/lame,1.0235709405602367,43.15250539779663,opt -instcombine -simple-loop-unswitch -functionattrs -simple-loop-unswitch -post-inline-ee-instrument -loop-simplify -instsimplify -bdce -always-inline -lcssa -float2int -functionattrs -ipsccp -globalsplit -nary-reassociate -coro-early -lowerinvoke -coro-early -loop-simplifycfg -lower-guard-intrinsic -mem2reg -bdce -loweratomic -always-inline -instnamer -elim-avail-extern -post-inline-ee-instrument -simple-loop-unswitch -die -strip-dead-prototypes -slsr -barrier -strip-debug-declare -loop-versioning -slsr -gvn -mem2reg -irce -load-store-vectorizer -speculative-execution -loop-idiom -licm -loop-guard-widening -licm -callsite-splitting -div-rem-pairs -ipsccp -loop-instsimplify -always-inline -licm -add-discriminators -div-rem-pairs -libcalls-shrinkwrap -indvars -mldst-motion -dse -sroa -loop-versioning-licm -loop-deletion -gvn-hoist -loop-versioning -lower-guard-intrinsic -die -float2int -correlated-propagation -loop-versioning -strip-nondebug -hotcoldsplit -functionattrs -slsr -inferattrs -constprop -loop-unroll-and-jam -lower-widenable-condition -loop-unswitch -mergereturn -early-cse-memssa -mldst-motion -prune-eh -loop-predication -loop-versioning-licm -loop-data-prefetch -consthoist -inferattrs -indvars -forceattrs -guard-widening -tailcallelim -sccp -load-store-vectorizer -coro-cleanup -strip-debug-declare -jump-threading -callsite-splitting -prune-eh -globaldce -instcombine -mem2reg -nary-reassociate -mergeicmps -insert-gcov-profiling -partially-inline-libcalls -globalopt -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0259621953996811,53.347551345825195,opt -mldst-motion -coro-elide -loop-vectorize -loop-versioning -libcalls-shrinkwrap -ipconstprop -early-cse-memssa -simple-loop-unswitch -sink -bdce -forceattrs -elim-avail-extern -loop-guard-widening -hotcoldsplit -instcombine -lowerinvoke -aggressive-instcombine -aggressive-instcombine -instcombine -lower-constant-intrinsics -dse -argpromotion -libcalls-shrinkwrap -slp-vectorizer -loop-deletion -coro-cleanup -aggressive-instcombine -separate-const-offset-from-gep -nary-reassociate -libcalls-shrinkwrap -alignment-from-assumptions -constprop -loop-reroll -separate-const-offset-from-gep -jump-threading -coro-cleanup -consthoist -load-store-vectorizer -licm -slp-vectorizer -loop-deletion -adce -correlated-propagation -newgvn -loop-reroll -slp-vectorizer -loop-simplifycfg -inject-tli-mappings -sroa -load-store-vectorizer -strip-debug-declare -lower-guard-intrinsic -aggressive-instcombine -simple-loop-unswitch -lcssa -loop-interchange -slsr -ipsccp -die -loop-reroll -called-value-propagation -globalsplit -consthoist -prune-eh -simple-loop-unswitch -loop-reroll -mergefunc -guard-widening -loop-distribute -float2int -loop-simplify -loop-predication -loweratomic -loop-versioning -inject-tli-mappings -coro-split -lcssa -loop-distribute -forceattrs -flattencfg -instcombine -callsite-splitting -post-inline-ee-instrument -constprop -mldst-motion -jump-threading -consthoist -rewrite-statepoints-for-gc -coro-elide -irce -ipsccp -float2int -globaldce -loop-simplify -cross-dso-cfi -guard-widening -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0276322781446898,78.09253025054932,opt -coro-elide -coro-elide -cross-dso-cfi -nary-reassociate -alignment-from-assumptions -called-value-propagation -div-rem-pairs -nary-reassociate -lower-matrix-intrinsics -canonicalize-aliases -loop-unswitch -pgo-memop-opt -mldst-motion -strip-dead-prototypes -alignment-from-assumptions -simplifycfg -speculative-execution -called-value-propagation -loop-interchange -infer-address-spaces -attributor -prune-eh -deadargelim -indvars -strip-dead-prototypes -instnamer -loop-load-elim -ipsccp -strip-dead-prototypes -nary-reassociate -constmerge -dce -cross-dso-cfi -loop-vectorize -lower-guard-intrinsic -loop-predication -always-inline -coro-cleanup -gvn -correlated-propagation -cross-dso-cfi -aggressive-instcombine -newgvn -mem2reg -mergefunc -reassociate -simple-loop-unswitch -slp-vectorizer -scalarizer -instcombine -sancov -globaldce -simplifycfg -lower-expect -memcpyopt -argpromotion -add-discriminators -loop-distribute -dse input.bc -o output.bc +benchmark://cbench-v1/lame,1.0294541865937905,36.18445158004761,opt -mldst-motion -redundant-dbg-inst-elim -loop-unroll-and-jam -sroa -loweratomic -loop-reroll -loweratomic -nary-reassociate -partially-inline-libcalls -sccp -instsimplify -mergefunc -globalsplit -attributor -forceattrs -lowerinvoke -redundant-dbg-inst-elim -die -dse -inferattrs -loop-unswitch -licm -functionattrs -irce -memcpyopt -redundant-dbg-inst-elim -name-anon-globals -speculative-execution -sancov -ipconstprop -canonicalize-aliases -jump-threading -sink -loop-simplifycfg -float2int -loop-idiom -callsite-splitting -lower-guard-intrinsic -loop-idiom -libcalls-shrinkwrap -gvn -instcombine -mem2reg -ipconstprop -attributor -argpromotion -bdce -speculative-execution -prune-eh -cross-dso-cfi -dce -mldst-motion -mldst-motion -reassociate -mergeicmps -mergefunc -loop-versioning-licm -insert-gcov-profiling -lowerswitch -div-rem-pairs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0310863129127756,42.606950998306274,opt -loop-vectorize -loop-predication -loop-predication -lower-expect -rpo-functionattrs -loop-deletion -loop-reroll -lowerswitch -strip-dead-prototypes -elim-avail-extern -constmerge -partial-inliner -sancov -loop-versioning-licm -nary-reassociate -add-discriminators -gvn -break-crit-edges -guard-widening -coro-cleanup -correlated-propagation -instcombine -forceattrs -constprop -instcombine -globaldce -memcpyopt -alignment-from-assumptions -irce -nary-reassociate -functionattrs -loop-idiom -coro-split -newgvn -lower-widenable-condition -loop-idiom -instsimplify -instnamer -reg2mem -instnamer -memcpyopt -loop-simplifycfg -loop-unroll -loop-vectorize -globaldce -reassociate -inferattrs -coro-split -alignment-from-assumptions -deadargelim -lower-matrix-intrinsics -loop-unroll-and-jam -load-store-vectorizer -deadargelim -slsr -globaldce -globaldce -bdce -die -slsr -sroa -loop-idiom -newgvn -insert-gcov-profiling -name-anon-globals -loop-unswitch -functionattrs -coro-early -loop-fusion -simplifycfg -callsite-splitting -instcombine -newgvn -lower-widenable-condition -licm -ipconstprop -nary-reassociate -dce -slsr -argpromotion -alignment-from-assumptions -sccp -argpromotion -irce -called-value-propagation -globalsplit -loop-fusion -globaldce -called-value-propagation -lower-expect -coro-elide -loop-deletion -licm -loop-simplifycfg -ipsccp -reassociate -canonicalize-aliases -consthoist -ee-instrument -ipconstprop -newgvn -die -globaldce -elim-avail-extern -loop-guard-widening -redundant-dbg-inst-elim -simple-loop-unswitch -prune-eh -lower-guard-intrinsic -inject-tli-mappings -tailcallelim -functionattrs -memcpyopt -div-rem-pairs -mldst-motion -name-anon-globals -forceattrs -callsite-splitting -name-anon-globals -aggressive-instcombine -alignment-from-assumptions -slp-vectorizer -speculative-execution -licm -forceattrs -loop-deletion -div-rem-pairs -callsite-splitting -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/lame,1.0456615805055796,35.40720820426941,opt -strip-debug-declare -consthoist -sroa -loop-interchange -loop-fusion -speculative-execution -lower-matrix-intrinsics -strip -instcombine -gvn -name-anon-globals -gvn -loop-vectorize -slp-vectorizer -mergereturn -break-crit-edges -instsimplify -lcssa -deadargelim -loop-predication -licm -irce -lower-expect -loop-versioning -instcombine -gvn -coro-split -rpo-functionattrs -simplifycfg -lower-guard-intrinsic -bdce input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9866518353726363,11.925774574279785,opt -gvn-hoist -loop-unroll -loop-simplifycfg -consthoist -lower-constant-intrinsics -cross-dso-cfi -irce -bdce -strip-nondebug -mergefunc -rewrite-statepoints-for-gc -forceattrs -lowerinvoke -coro-elide -ipsccp -loop-versioning-licm -strip-dead-prototypes -libcalls-shrinkwrap -sink -loweratomic -early-cse-memssa -loop-vectorize -alignment-from-assumptions -break-crit-edges -loop-interchange -loop-distribute -strip -break-crit-edges -infer-address-spaces -canonicalize-aliases -always-inline -loop-unroll-and-jam -called-value-propagation -loweratomic -infer-address-spaces -memcpyopt -globalopt -mergereturn -licm -bdce -coro-early -simplifycfg -rpo-functionattrs -strip-dead-prototypes -pgo-memop-opt -barrier -mldst-motion -consthoist -insert-gcov-profiling -mergereturn -flattencfg -pgo-memop-opt -functionattrs -loop-sink -loop-reduce -redundant-dbg-inst-elim -post-inline-ee-instrument -insert-gcov-profiling -barrier -sancov -mem2reg -functionattrs -correlated-propagation -lower-expect -gvn-hoist -gvn -strip-dead-prototypes -instsimplify -strip -add-discriminators -lower-guard-intrinsic -ipsccp -inferattrs -reassociate -dce -prune-eh -jump-threading -adce input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9866518353726363,12.079885959625244,opt -loop-reduce -lower-guard-intrinsic -reg2mem -coro-split -loop-instsimplify -lower-constant-intrinsics -loop-reduce -coro-cleanup -canonicalize-aliases -elim-avail-extern -ee-instrument -jump-threading -correlated-propagation -lower-expect -loop-instsimplify -mldst-motion -functionattrs -div-rem-pairs -infer-address-spaces -loop-unswitch -instnamer -libcalls-shrinkwrap -loop-distribute -functionattrs -globalopt -loop-distribute -strip-dead-prototypes -libcalls-shrinkwrap -nary-reassociate -loop-simplify -lower-expect -coro-split -ipsccp -inferattrs -gvn -argpromotion -add-discriminators -lower-matrix-intrinsics -irce -globaldce -instnamer -simplifycfg -early-cse-memssa -functionattrs -instcombine -loop-unroll-and-jam -loop-deletion -gvn-hoist -jump-threading -coro-elide -tailcallelim -lower-guard-intrinsic -div-rem-pairs -attributor -adce -coro-elide -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9877641824249167,12.29286503791809,opt -slp-vectorizer -globalopt -load-store-vectorizer -dse -loop-vectorize -mem2reg -deadargelim -rewrite-statepoints-for-gc -loop-idiom -prune-eh -lower-constant-intrinsics -alignment-from-assumptions -loop-guard-widening -float2int -functionattrs -functionattrs -slp-vectorizer -mergereturn -ipsccp -consthoist -mldst-motion -instsimplify -speculative-execution -mldst-motion -simplifycfg -memcpyopt -loop-versioning -sink -loop-reroll -early-cse-memssa -coro-cleanup -loop-versioning-licm -loop-unroll -dce -guard-widening -dce -functionattrs -loop-guard-widening -speculative-execution -coro-early -div-rem-pairs -correlated-propagation -jump-threading -pgo-memop-opt -scalarizer -coro-cleanup -newgvn input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9877641824249169,12.073808193206787,opt -functionattrs -libcalls-shrinkwrap -loop-interchange -ipsccp -gvn -lower-widenable-condition -sroa -lower-guard-intrinsic -adce -loop-versioning-licm -licm -coro-cleanup -sccp -sancov -dse -barrier -infer-address-spaces -loop-interchange -licm -loop-unroll-and-jam -lower-expect -ipsccp -rewrite-statepoints-for-gc -mergefunc -loop-versioning-licm -coro-split -loop-instsimplify -rpo-functionattrs -early-cse-memssa -flattencfg -called-value-propagation -instcombine -infer-address-spaces -loop-versioning -guard-widening -gvn -globaldce -partially-inline-libcalls -nary-reassociate -indvars -inject-tli-mappings -loop-vectorize -lowerswitch -coro-early -ipconstprop -alignment-from-assumptions -bdce -aggressive-instcombine -loop-simplifycfg -globalopt -speculative-execution -lower-guard-intrinsic -memcpyopt -gvn -sancov -coro-early -loop-guard-widening -slp-vectorizer -mergefunc -loop-reduce -load-store-vectorizer -loop-fusion -lower-expect -callsite-splitting -inject-tli-mappings -scalarizer -die -coro-cleanup -simplifycfg -loop-sink -lower-widenable-condition -inject-tli-mappings -dse -libcalls-shrinkwrap -strip -ipsccp -gvn -constprop -die -ee-instrument -gvn -tailcallelim input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9888765294771972,13.508204936981201,opt -globalopt -mldst-motion -scalarizer -float2int -barrier -loop-simplify -elim-avail-extern -loop-reduce -die -newgvn -loop-fusion -cross-dso-cfi -loop-versioning-licm -infer-address-spaces -loop-distribute -slp-vectorizer -deadargelim -loop-simplifycfg -coro-elide -partial-inliner -hotcoldsplit -gvn -simplifycfg -correlated-propagation -sancov -mergereturn -lowerswitch -attributor -nary-reassociate -die -barrier -loop-reroll -loop-load-elim -libcalls-shrinkwrap -break-crit-edges -separate-const-offset-from-gep -adce -gvn -licm -die -globalsplit -post-inline-ee-instrument -float2int -bdce -loop-guard-widening -post-inline-ee-instrument -strip-nondebug -mergefunc -bdce -break-crit-edges -inject-tli-mappings -strip -sccp -jump-threading -loop-versioning-licm -constprop -functionattrs -indvars -mergereturn -flattencfg -instcombine -loop-distribute -mem2reg -loop-deletion -loop-unroll-and-jam -strip-dead-prototypes -coro-early -lcssa -rewrite-statepoints-for-gc -partially-inline-libcalls -loop-fusion -bdce -strip-nondebug -loop-reroll -functionattrs -lowerswitch -mldst-motion -jump-threading -newgvn -bdce -reg2mem -div-rem-pairs -name-anon-globals -lower-guard-intrinsic -sancov -instnamer -add-discriminators -always-inline -mergefunc -loop-load-elim -loop-reroll -loop-unroll -load-store-vectorizer -slp-vectorizer -loop-sink -elim-avail-extern -strip-nondebug -constprop -pgo-memop-opt -ee-instrument -loop-rotate -sink -coro-split -lcssa -dse -early-cse-memssa -pgo-memop-opt -lower-matrix-intrinsics -globalopt -newgvn -mergefunc -loop-distribute -loop-interchange -partial-inliner -loop-versioning -coro-elide -globalsplit -rewrite-statepoints-for-gc -irce -libcalls-shrinkwrap -sink -simplifycfg -constmerge -loop-unroll-and-jam -lowerinvoke -gvn -newgvn -loop-reroll -lower-constant-intrinsics -aggressive-instcombine -called-value-propagation -strip-dead-prototypes -globalsplit -rpo-functionattrs -gvn -div-rem-pairs -bdce -simplifycfg -forceattrs -callsite-splitting -insert-gcov-profiling -sroa -strip -simplifycfg -sccp -instnamer -globalopt -reassociate input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9911012235817576,12.252049684524536,opt -functionattrs -instsimplify -callsite-splitting -lowerswitch -aggressive-instcombine -licm -always-inline -nary-reassociate -cross-dso-cfi -add-discriminators -bdce -loop-interchange -redundant-dbg-inst-elim -slp-vectorizer -alignment-from-assumptions -ipsccp -coro-cleanup -lower-widenable-condition -div-rem-pairs -div-rem-pairs -correlated-propagation -loop-deletion -ee-instrument -mem2reg -mem2reg -gvn-hoist -memcpyopt -loop-fusion -inject-tli-mappings -consthoist -loop-instsimplify -strip-debug-declare -loop-instsimplify -slsr -adce -constmerge -loop-guard-widening -loop-fusion -loop-instsimplify -redundant-dbg-inst-elim -lowerinvoke -sccp -speculative-execution -strip-debug-declare -sancov -gvn-hoist -pgo-memop-opt -instcombine -aggressive-instcombine -speculative-execution -instsimplify -reassociate -irce -guard-widening -gvn -inferattrs -elim-avail-extern -alignment-from-assumptions -instnamer -guard-widening -loop-instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9933259176863184,11.92369031906128,opt -loop-predication -insert-gcov-profiling -forceattrs -speculative-execution -globalsplit -mldst-motion -pgo-memop-opt -functionattrs -called-value-propagation -loop-guard-widening -aggressive-instcombine -infer-address-spaces -indvars -partially-inline-libcalls -simplifycfg -functionattrs -partially-inline-libcalls -break-crit-edges -loop-vectorize -loop-simplify -adce -loop-interchange -mergefunc -hotcoldsplit -globalopt -partial-inliner -adce -loop-idiom -partial-inliner -coro-early -loop-unswitch -name-anon-globals -add-discriminators -scalarizer -sroa -argpromotion -separate-const-offset-from-gep -mergereturn -loop-instsimplify -pgo-memop-opt -lower-widenable-condition -instsimplify -globaldce -loop-vectorize -coro-split -newgvn -coro-elide -attributor -strip-dead-prototypes -pgo-memop-opt -ipconstprop -dce -dse -loop-distribute -alignment-from-assumptions -lower-guard-intrinsic -correlated-propagation -gvn -loop-vectorize -ipsccp -mergefunc -simplifycfg -ipconstprop -cross-dso-cfi -flattencfg -loop-sink -flattencfg -elim-avail-extern -mldst-motion -loop-guard-widening -simplifycfg -loop-reduce -deadargelim -slp-vectorizer -simplifycfg -loop-sink -loop-fusion -rpo-functionattrs -callsite-splitting -loop-instsimplify -loop-simplifycfg -break-crit-edges -nary-reassociate -constmerge -die -simplifycfg -strip -functionattrs -loop-distribute -loop-reduce -ipconstprop -load-store-vectorizer -loop-interchange -licm -barrier -prune-eh -tailcallelim -scalarizer -loop-guard-widening -float2int -slsr -licm -mldst-motion -called-value-propagation -strip -coro-cleanup -div-rem-pairs -loop-distribute -sroa -loop-unroll -strip-nondebug -lower-constant-intrinsics -constmerge -callsite-splitting -break-crit-edges -rewrite-statepoints-for-gc -forceattrs -flattencfg -instcombine -consthoist -post-inline-ee-instrument -globaldce -float2int -partial-inliner -mergeicmps -aggressive-instcombine -memcpyopt -simplifycfg -gvn input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9966629588431589,14.353923320770264,opt -deadargelim -loweratomic -loop-reduce -div-rem-pairs -jump-threading -loop-interchange -slp-vectorizer -lower-constant-intrinsics -loop-distribute -lower-constant-intrinsics -inferattrs -strip -gvn -simplifycfg -loweratomic -loop-predication -bdce -lower-guard-intrinsic -loop-distribute -ee-instrument -globalsplit -loop-fusion -partial-inliner -loop-simplifycfg -loop-reroll -dse -loop-guard-widening -correlated-propagation -dse -insert-gcov-profiling -called-value-propagation -loop-deletion -loop-vectorize -strip-debug-declare -name-anon-globals -argpromotion -loop-data-prefetch -strip-dead-prototypes -lower-matrix-intrinsics -called-value-propagation -argpromotion -mem2reg -alignment-from-assumptions -dse -flattencfg -partially-inline-libcalls -ee-instrument -flattencfg -loop-load-elim -sroa -ipconstprop -indvars -deadargelim -flattencfg -loop-unroll -post-inline-ee-instrument -loweratomic -early-cse-memssa -globaldce -nary-reassociate -globaldce -break-crit-edges -globalopt -loop-instsimplify -coro-cleanup -indvars -mergereturn -loop-simplifycfg -sccp -reassociate -jump-threading -mergereturn -tailcallelim -break-crit-edges -loop-distribute -coro-early -prune-eh -partially-inline-libcalls -alignment-from-assumptions -loop-versioning-licm -prune-eh -reassociate -loop-versioning -callsite-splitting -nary-reassociate -gvn-hoist -loop-idiom -strip-nondebug -loop-predication -sroa -loop-unroll-and-jam -lower-expect -loop-data-prefetch -prune-eh -inferattrs -licm -mem2reg -memcpyopt -jump-threading -mergefunc -aggressive-instcombine -always-inline -dse -inject-tli-mappings -correlated-propagation -inject-tli-mappings -loop-simplifycfg -break-crit-edges -sroa -div-rem-pairs -globaldce -memcpyopt -rpo-functionattrs -sroa -speculative-execution -loop-predication -mergefunc -hotcoldsplit -strip-nondebug -instcombine -rpo-functionattrs -break-crit-edges -loop-predication -load-store-vectorizer -loop-guard-widening -loop-reduce -strip-debug-declare -loop-vectorize -ee-instrument -constmerge -indvars -mldst-motion -post-inline-ee-instrument -loop-simplifycfg -gvn-hoist -functionattrs -simple-loop-unswitch -mergeicmps -libcalls-shrinkwrap -loop-distribute -ipconstprop -loop-deletion -mldst-motion -deadargelim -simple-loop-unswitch -loweratomic -partial-inliner -strip -elim-avail-extern -coro-cleanup -coro-elide -loop-simplify -elim-avail-extern -scalarizer -loop-unroll -add-discriminators -speculative-execution -strip-debug-declare -instcombine -loop-simplifycfg -post-inline-ee-instrument -break-crit-edges -nary-reassociate -die -div-rem-pairs -simplifycfg -licm -mergeicmps -strip-nondebug -gvn input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9977753058954394,12.289266586303711,opt -correlated-propagation -die -mergefunc -functionattrs -loop-sink -coro-early -strip -loop-unroll -sccp -licm -scalarizer -loop-simplifycfg -coro-early -rpo-functionattrs -strip-dead-prototypes -simplifycfg -argpromotion -speculative-execution -aggressive-instcombine -load-store-vectorizer -name-anon-globals -canonicalize-aliases -callsite-splitting -lower-widenable-condition -loop-load-elim -functionattrs -canonicalize-aliases -deadargelim -tailcallelim -lower-widenable-condition -inject-tli-mappings -loop-versioning -lower-expect -reassociate -early-cse-memssa -elim-avail-extern -break-crit-edges -lower-guard-intrinsic -sink -partially-inline-libcalls -speculative-execution -mergefunc -loop-reroll -loop-distribute -globalopt -separate-const-offset-from-gep -lowerswitch -licm -lower-expect -partially-inline-libcalls -loop-deletion -loop-reduce -globalsplit -hotcoldsplit -redundant-dbg-inst-elim -loop-idiom -sroa -infer-address-spaces -hotcoldsplit -functionattrs -argpromotion -post-inline-ee-instrument -functionattrs -lower-widenable-condition -separate-const-offset-from-gep -always-inline -separate-const-offset-from-gep -constmerge -adce -slp-vectorizer -lower-constant-intrinsics -loop-simplifycfg -constprop -strip-dead-prototypes -loop-unroll -rewrite-statepoints-for-gc -ipsccp -bdce -loop-versioning-licm -jump-threading -reg2mem -licm -rpo-functionattrs -instnamer -newgvn -loop-simplifycfg -loop-vectorize -barrier -scalarizer -loop-guard-widening -post-inline-ee-instrument -loop-interchange -gvn -lower-widenable-condition -loop-versioning -always-inline -instcombine -ipsccp -deadargelim -flattencfg -sccp -loop-deletion -loop-idiom -inferattrs -globalsplit -licm -jump-threading -cross-dso-cfi -irce -always-inline -dce -ipconstprop -dce -jump-threading -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/patricia,1.0022246941045605,12.50986385345459,opt -redundant-dbg-inst-elim -strip-nondebug -flattencfg -loop-unroll-and-jam -correlated-propagation -loop-versioning -loop-vectorize -die -coro-early -hotcoldsplit -ipsccp -functionattrs -lower-constant-intrinsics -gvn -mergeicmps -globaldce -canonicalize-aliases -instsimplify -lowerinvoke -flattencfg -loop-fusion -lower-expect -constmerge -scalarizer -ee-instrument -strip-nondebug -dse -gvn -deadargelim -consthoist -nary-reassociate -slsr -instnamer -reassociate -indvars -memcpyopt -tailcallelim -callsite-splitting -partially-inline-libcalls -instsimplify -correlated-propagation -lower-guard-intrinsic -coro-early -coro-split -canonicalize-aliases -mergefunc -ee-instrument -speculative-execution -loop-fusion -callsite-splitting -partially-inline-libcalls -barrier -libcalls-shrinkwrap -lowerswitch -sccp -add-discriminators -sccp -inject-tli-mappings -div-rem-pairs -reassociate -canonicalize-aliases -loop-versioning-licm -coro-cleanup -instsimplify -coro-cleanup -mergefunc -forceattrs -insert-gcov-profiling -barrier -coro-elide -die -loop-distribute -strip-dead-prototypes -adce -irce -nary-reassociate -instsimplify -loop-load-elim -load-store-vectorizer -rewrite-statepoints-for-gc -speculative-execution -libcalls-shrinkwrap -inferattrs -post-inline-ee-instrument -loop-unroll -mergeicmps -loop-distribute -float2int -speculative-execution -coro-cleanup -nary-reassociate -forceattrs -loop-unroll -mergereturn -post-inline-ee-instrument -post-inline-ee-instrument -loop-unroll-and-jam -mergereturn -lcssa -slsr -simple-loop-unswitch -strip-dead-prototypes -mergeicmps -coro-cleanup -globalsplit -inject-tli-mappings -nary-reassociate -loop-fusion -guard-widening -gvn -sink -always-inline -bdce -separate-const-offset-from-gep -functionattrs -instcombine -loop-distribute -loop-guard-widening -pgo-memop-opt -mergeicmps -mergereturn -canonicalize-aliases -coro-elide -coro-split -coro-elide -gvn-hoist -float2int -flattencfg -loop-simplify -aggressive-instcombine -loop-versioning-licm -loop-predication -mergefunc -ipconstprop -simple-loop-unswitch -libcalls-shrinkwrap -coro-split -loop-data-prefetch -always-inline -bdce -speculative-execution -alignment-from-assumptions -lower-constant-intrinsics -attributor -globalopt -lowerswitch -coro-elide -name-anon-globals -instnamer -elim-avail-extern -dse -ee-instrument -loop-versioning -float2int -loop-simplify -coro-split -always-inline -barrier -tailcallelim -loop-versioning-licm -loop-simplifycfg -called-value-propagation -tailcallelim -always-inline -pgo-memop-opt -globaldce -scalarizer -lower-expect -called-value-propagation -newgvn -separate-const-offset-from-gep -called-value-propagation -sink -name-anon-globals -adce -instcombine -name-anon-globals -guard-widening -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.0959752321981424,12.017142057418823,opt -lowerinvoke -loop-unroll -globalsplit -loop-vectorize -loop-fusion -loop-predication -loop-deletion -lowerswitch -loop-reroll -lowerswitch -lowerswitch -always-inline -loop-interchange -strip -loop-fusion -deadargelim -newgvn -partially-inline-libcalls -lowerswitch -ee-instrument -loop-reroll -loop-unswitch -constmerge -loop-instsimplify -sancov -loop-reroll -mergeicmps -constprop -ipsccp -loop-instsimplify -memcpyopt -strip -nary-reassociate -strip -mem2reg -sink -redundant-dbg-inst-elim -lower-constant-intrinsics -lowerinvoke -coro-early -prune-eh -guard-widening -loop-versioning-licm -loop-simplify -loop-deletion -sroa -canonicalize-aliases -load-store-vectorizer -inferattrs -dce -barrier -loop-deletion -sroa -barrier -loop-unroll-and-jam -lower-expect -bdce -strip-dead-prototypes -dse -elim-avail-extern -bdce -inject-tli-mappings -inject-tli-mappings -gvn-hoist -tailcallelim -loop-predication -irce -dce -coro-elide -deadargelim -load-store-vectorizer -correlated-propagation -aggressive-instcombine -loop-unroll -redundant-dbg-inst-elim -sccp -simplifycfg -loop-versioning -loop-unroll-and-jam -loop-interchange -mem2reg -div-rem-pairs -inject-tli-mappings -flattencfg -barrier -lowerinvoke -memcpyopt -speculative-execution -lowerinvoke -loop-sink -called-value-propagation -slsr -separate-const-offset-from-gep -bdce -bdce -simplifycfg -lower-matrix-intrinsics -libcalls-shrinkwrap -loop-unroll-and-jam -irce -instcombine input.bc -o output.bc +benchmark://cbench-v1/qsort,1.0990712074303406,11.887055158615112,opt -lower-constant-intrinsics -coro-cleanup -loop-instsimplify -mergereturn -pgo-memop-opt -coro-elide -gvn -sink -consthoist -callsite-splitting -dce -partial-inliner -mem2reg -loop-simplify -instnamer -nary-reassociate -simple-loop-unswitch -memcpyopt -flattencfg -alignment-from-assumptions -loop-instsimplify -pgo-memop-opt -insert-gcov-profiling -constprop -loop-versioning -coro-elide -speculative-execution -globalsplit -infer-address-spaces -jump-threading -guard-widening -partially-inline-libcalls -consthoist -break-crit-edges -strip-nondebug -loop-data-prefetch -reassociate -newgvn -coro-split -newgvn -simplifycfg -strip-debug-declare -simplifycfg -lcssa -loop-idiom -coro-elide -loop-predication -loop-load-elim -ee-instrument -reassociate -always-inline -simplifycfg -nary-reassociate -functionattrs -elim-avail-extern -load-store-vectorizer -jump-threading -flattencfg -lower-widenable-condition -instcombine input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1021671826625385,11.789689779281616,opt -early-cse-memssa -attributor -loop-simplify -libcalls-shrinkwrap -reassociate -instnamer -strip-dead-prototypes -functionattrs -mergeicmps -prune-eh -globalsplit -dce -loop-predication -globalsplit -mergereturn -scalarizer -mem2reg -loop-distribute -div-rem-pairs -mergeicmps -partially-inline-libcalls -elim-avail-extern -insert-gcov-profiling -loop-guard-widening -loop-data-prefetch -irce -separate-const-offset-from-gep -barrier -lower-expect -lower-guard-intrinsic -sancov -mergeicmps -partially-inline-libcalls -slsr -sancov -separate-const-offset-from-gep -gvn-hoist -loop-vectorize -load-store-vectorizer -constprop -loop-unroll -aggressive-instcombine -sink -loop-sink -loop-interchange -mergefunc -loop-data-prefetch -simplifycfg -instsimplify -lower-guard-intrinsic -forceattrs -loop-interchange -globaldce -pgo-memop-opt -ipsccp -alignment-from-assumptions -licm -mergefunc -sccp -constprop -infer-address-spaces -insert-gcov-profiling -loop-simplifycfg -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.105263157894737,11.881323337554932,opt -loop-predication -insert-gcov-profiling -strip-nondebug -loop-distribute -licm -instnamer -ipconstprop -coro-elide -loop-guard-widening -loop-versioning-licm -coro-elide -globalopt -mergereturn -mergeicmps -infer-address-spaces -sink -speculative-execution -cross-dso-cfi -slp-vectorizer -argpromotion -gvn-hoist -ipconstprop -constprop -sroa -loop-instsimplify -simplifycfg -instcombine -instcombine -lower-constant-intrinsics -lowerswitch -loop-sink -irce -early-cse-memssa -instnamer -loop-instsimplify -sancov -consthoist -pgo-memop-opt -coro-cleanup -loop-unswitch -loop-instsimplify -lower-expect -load-store-vectorizer -newgvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.108359133126935,11.847872734069824,opt -correlated-propagation -lower-expect -sink -lowerinvoke -newgvn -sink -break-crit-edges -break-crit-edges -loop-idiom -gvn -called-value-propagation -flattencfg -scalarizer -loop-load-elim -slp-vectorizer -correlated-propagation -sancov -argpromotion -alignment-from-assumptions -strip-nondebug -newgvn -lower-matrix-intrinsics -div-rem-pairs -ee-instrument -ee-instrument -infer-address-spaces -mergereturn -lowerinvoke -simplifycfg -instcombine -licm -rpo-functionattrs -constmerge -loop-deletion -newgvn -cross-dso-cfi -jump-threading input.bc -o output.bc +benchmark://cbench-v1/qsort,1.108359133126935,11.972721815109253,opt -separate-const-offset-from-gep -coro-elide -loop-interchange -indvars -loop-predication -guard-widening -irce -called-value-propagation -globalsplit -redundant-dbg-inst-elim -partially-inline-libcalls -rewrite-statepoints-for-gc -mergereturn -add-discriminators -dce -jump-threading -loop-data-prefetch -redundant-dbg-inst-elim -inject-tli-mappings -mem2reg -loop-versioning-licm -redundant-dbg-inst-elim -insert-gcov-profiling -lowerinvoke -gvn -mldst-motion -simple-loop-unswitch -loop-fusion -constmerge -alignment-from-assumptions -indvars -bdce -tailcallelim -elim-avail-extern -strip-dead-prototypes -die -simple-loop-unswitch -instcombine -partially-inline-libcalls -loweratomic -mergefunc -lowerinvoke -ee-instrument -rpo-functionattrs -lower-constant-intrinsics -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.108359133126935,12.017470836639404,opt -loop-deletion -indvars -loop-reroll -slp-vectorizer -loop-deletion -rewrite-statepoints-for-gc -coro-early -lcssa -loop-versioning -loop-reduce -strip-debug-declare -dce -guard-widening -mem2reg -infer-address-spaces -lower-constant-intrinsics -indvars -constmerge -attributor -lowerswitch -loop-simplifycfg -break-crit-edges -lcssa -dse -die -coro-elide -ipconstprop -alignment-from-assumptions -mergereturn -gvn -sancov -simplifycfg -loop-sink -hotcoldsplit -loop-deletion -lower-guard-intrinsic -float2int -loop-fusion -add-discriminators -instcombine -gvn-hoist -loop-idiom -gvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.108359133126935,12.212085723876953,opt -loop-vectorize -strip -globalsplit -loop-reroll -guard-widening -gvn -post-inline-ee-instrument -globalopt -bdce -mergeicmps -sancov -loop-guard-widening -sancov -break-crit-edges -tailcallelim -canonicalize-aliases -strip -add-discriminators -globalopt -globalsplit -flattencfg -loweratomic -globalsplit -attributor -mergeicmps -cross-dso-cfi -loop-simplify -sancov -partial-inliner -strip-debug-declare -prune-eh -argpromotion -gvn -reg2mem -attributor -mem2reg -forceattrs -newgvn -coro-early -strip-nondebug -loop-reroll -strip-debug-declare -loop-unswitch -loop-unroll -lower-widenable-condition -licm -loop-distribute -loop-distribute -loop-reroll -sancov -lower-constant-intrinsics -loop-deletion -coro-split -bdce -mem2reg -loop-simplify -canonicalize-aliases -mldst-motion -loop-sink -gvn-hoist -inject-tli-mappings -loop-instsimplify -mergereturn -coro-early -constmerge -constprop -instnamer -lower-matrix-intrinsics -partial-inliner -float2int -flattencfg -die -lower-constant-intrinsics -add-discriminators -lcssa -add-discriminators -mldst-motion -coro-elide -instsimplify -div-rem-pairs -instcombine -loop-predication -strip -insert-gcov-profiling -indvars -lowerswitch -nary-reassociate -dce -loweratomic -insert-gcov-profiling -libcalls-shrinkwrap -mldst-motion -instcombine -lower-widenable-condition -inject-tli-mappings -globalopt -lowerinvoke -gvn-hoist -strip-nondebug -loop-simplifycfg -elim-avail-extern -loop-distribute -rpo-functionattrs -memcpyopt -globalopt -barrier -consthoist -simple-loop-unswitch -load-store-vectorizer -sancov -partially-inline-libcalls -lower-constant-intrinsics -pgo-memop-opt -canonicalize-aliases -deadargelim -load-store-vectorizer -loop-interchange -mem2reg -memcpyopt -strip-nondebug -infer-address-spaces -simple-loop-unswitch -jump-threading -name-anon-globals -pgo-memop-opt -mergeicmps -instcombine -ipconstprop -sink -argpromotion -adce -cross-dso-cfi -partially-inline-libcalls -tailcallelim -sccp -infer-address-spaces -inject-tli-mappings -mergefunc -strip-debug-declare -loop-data-prefetch -flattencfg -dce -nary-reassociate -coro-cleanup -die -strip-dead-prototypes -newgvn -attributor -instnamer -early-cse-memssa -mergeicmps -ee-instrument -forceattrs -loop-simplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1145510835913313,11.989583253860474,opt -coro-cleanup -reg2mem -rewrite-statepoints-for-gc -dse -partially-inline-libcalls -jump-threading -gvn-hoist -consthoist -pgo-memop-opt -loweratomic -guard-widening -globalopt -deadargelim -scalarizer -strip-debug-declare -tailcallelim -loop-reduce -coro-split -mem2reg -add-discriminators -loweratomic -loop-sink -globaldce -sancov -sink -load-store-vectorizer -loop-unroll -hotcoldsplit -add-discriminators -strip-dead-prototypes -gvn-hoist -div-rem-pairs -jump-threading -coro-cleanup -constmerge -slsr -gvn -lower-constant-intrinsics -lower-expect -rewrite-statepoints-for-gc -div-rem-pairs -cross-dso-cfi -infer-address-spaces -ee-instrument -nary-reassociate -loop-unswitch -sancov -loop-reroll -rpo-functionattrs -slp-vectorizer -insert-gcov-profiling -simple-loop-unswitch -lowerswitch -consthoist -argpromotion -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1207430340557278,11.769915342330933,opt -separate-const-offset-from-gep -loop-fusion -forceattrs -always-inline -slsr -loop-interchange -argpromotion -loop-load-elim -float2int -flattencfg -speculative-execution -sroa -div-rem-pairs -always-inline -float2int -mergefunc -dce -newgvn -lower-constant-intrinsics -strip-dead-prototypes -coro-split -constmerge -lower-matrix-intrinsics -lower-widenable-condition -lcssa -always-inline -instcombine -name-anon-globals -float2int -attributor -loop-interchange -post-inline-ee-instrument -coro-elide -loweratomic -newgvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.093522422384055,12.692811965942383,opt -mergefunc -rpo-functionattrs -newgvn -strip-dead-prototypes -separate-const-offset-from-gep -loop-data-prefetch -loop-versioning -canonicalize-aliases -lower-matrix-intrinsics -mem2reg -instcombine -post-inline-ee-instrument -globaldce -reassociate -mergereturn -instcombine -gvn-hoist -instcombine -deadargelim -strip-nondebug -float2int -dce -memcpyopt -separate-const-offset-from-gep -hotcoldsplit -loop-data-prefetch -loop-simplify -attributor -partially-inline-libcalls -loop-interchange -die -bdce -break-crit-edges -bdce -mergeicmps -infer-address-spaces -strip-debug-declare -strip -speculative-execution -coro-cleanup -coro-early -canonicalize-aliases -loop-guard-widening -slp-vectorizer -mem2reg -loop-simplify -name-anon-globals -callsite-splitting -functionattrs -libcalls-shrinkwrap -globalopt -loop-rotate -slsr -speculative-execution -strip-nondebug -lowerinvoke -loop-guard-widening -mergeicmps -called-value-propagation -flattencfg -strip-nondebug -gvn -cross-dso-cfi -insert-gcov-profiling -loop-data-prefetch -simplifycfg -deadargelim -slsr -inferattrs -globaldce -rewrite-statepoints-for-gc -post-inline-ee-instrument -memcpyopt -constmerge -consthoist -speculative-execution -lower-matrix-intrinsics -coro-cleanup -gvn-hoist -adce -loop-instsimplify -loweratomic -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.0946722882330395,12.9319007396698,opt -loop-data-prefetch -sink -mldst-motion -consthoist -loop-versioning -consthoist -reassociate -guard-widening -div-rem-pairs -rewrite-statepoints-for-gc -ipconstprop -instnamer -add-discriminators -slp-vectorizer -flattencfg -functionattrs -loop-unroll -loop-data-prefetch -separate-const-offset-from-gep -ee-instrument -callsite-splitting -strip-nondebug -irce -name-anon-globals -loop-distribute -ipconstprop -loop-instsimplify -constmerge -attributor -gvn-hoist -loop-unswitch -loop-distribute -aggressive-instcombine -loop-interchange -dse -instsimplify -consthoist -mem2reg -lower-expect -loop-unroll-and-jam -gvn-hoist -newgvn -argpromotion -float2int -coro-early -called-value-propagation -loop-fusion -mldst-motion -elim-avail-extern -loop-simplifycfg -loop-load-elim -strip-nondebug -simplifycfg -coro-elide -loop-idiom -barrier -lowerinvoke -die -constprop -callsite-splitting -barrier -guard-widening -loweratomic -mem2reg -name-anon-globals -loop-predication -ipsccp -lower-matrix-intrinsics -prune-eh -gvn -always-inline -cross-dso-cfi -loop-interchange -dse -argpromotion -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.0965887313146796,12.338773727416992,opt -loop-predication -loop-predication -infer-address-spaces -loop-unroll-and-jam -prune-eh -loop-reduce -constmerge -mergeicmps -loop-distribute -attributor -lowerinvoke -loop-deletion -loop-sink -coro-elide -reg2mem -licm -constmerge -instsimplify -mergefunc -reg2mem -sancov -bdce -strip -forceattrs -div-rem-pairs -loop-distribute -loop-data-prefetch -functionattrs -loop-idiom -loop-versioning -correlated-propagation -inject-tli-mappings -partial-inliner -licm -loweratomic -strip-nondebug -coro-cleanup -reg2mem -ipconstprop -loop-deletion -loop-deletion -lower-expect -constprop -coro-split -strip-nondebug -name-anon-globals -name-anon-globals -break-crit-edges -simple-loop-unswitch -sink -globaldce -sccp -reg2mem -loop-load-elim -speculative-execution -sroa -inferattrs -strip-dead-prototypes -early-cse-memssa -deadargelim -name-anon-globals -prune-eh -gvn-hoist -loop-data-prefetch -coro-elide -strip-debug-declare -constmerge -slp-vectorizer -partially-inline-libcalls -callsite-splitting -loop-deletion -simplifycfg -loop-guard-widening -early-cse-memssa -ipconstprop -break-crit-edges -rpo-functionattrs -loop-versioning-licm -coro-early -mem2reg -strip-debug-declare -instsimplify -callsite-splitting -forceattrs -simplifycfg -deadargelim -jump-threading -lower-guard-intrinsic -loop-distribute -dse -tailcallelim -constmerge -rewrite-statepoints-for-gc -elim-avail-extern -lower-matrix-intrinsics -dce -partially-inline-libcalls -insert-gcov-profiling -name-anon-globals -partially-inline-libcalls -infer-address-spaces -coro-split -loop-sink -gvn -lower-expect -simple-loop-unswitch -loop-versioning -loop-deletion -constprop -rpo-functionattrs -jump-threading -speculative-execution -lcssa -lcssa -hotcoldsplit -insert-gcov-profiling -elim-avail-extern -lower-matrix-intrinsics -loop-unroll-and-jam -elim-avail-extern -reassociate -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.0969720199310082,13.111221075057983,opt -functionattrs -loop-simplify -early-cse-memssa -sccp -dce -loweratomic -tailcallelim -bdce -cross-dso-cfi -inject-tli-mappings -loop-unswitch -instsimplify -loop-versioning -aggressive-instcombine -bdce -gvn-hoist -lower-widenable-condition -argpromotion -elim-avail-extern -coro-cleanup -elim-avail-extern -instnamer -lower-widenable-condition -loop-versioning -loop-interchange -forceattrs -lowerinvoke -lcssa -bdce -nary-reassociate -add-discriminators -correlated-propagation -sancov -name-anon-globals -globalsplit -loop-instsimplify -tailcallelim -sroa -loop-unroll-and-jam -partially-inline-libcalls -mergefunc -deadargelim -ipsccp -early-cse-memssa -lower-matrix-intrinsics -scalarizer -redundant-dbg-inst-elim -lower-matrix-intrinsics -newgvn -globalsplit -loop-rotate -infer-address-spaces -correlated-propagation -infer-address-spaces -sccp -sroa -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.097355308547336,12.750953435897827,opt -sroa -elim-avail-extern -coro-split -canonicalize-aliases -float2int -simple-loop-unswitch -correlated-propagation -pgo-memop-opt -rewrite-statepoints-for-gc -alignment-from-assumptions -die -cross-dso-cfi -newgvn -simplifycfg -loweratomic -insert-gcov-profiling -deadargelim -separate-const-offset-from-gep -float2int -loop-load-elim -barrier -separate-const-offset-from-gep -bdce -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.0992717516289765,12.554092168807983,opt -tailcallelim -globalopt -post-inline-ee-instrument -dse -correlated-propagation -lowerinvoke -mergefunc -mldst-motion -irce -lower-widenable-condition -callsite-splitting -coro-early -rpo-functionattrs -strip-dead-prototypes -coro-cleanup -flattencfg -alignment-from-assumptions -lower-matrix-intrinsics -globaldce -coro-early -loop-instsimplify -lowerinvoke -mldst-motion -canonicalize-aliases -globalopt -lower-constant-intrinsics -simplifycfg -hotcoldsplit -gvn-hoist -flattencfg -memcpyopt -tailcallelim -sroa -partially-inline-libcalls -strip -hotcoldsplit -newgvn -loop-idiom -dse -dse -instcombine -slp-vectorizer -slp-vectorizer -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.099271751628977,12.885164499282837,opt -coro-early -loop-instsimplify -argpromotion -strip-dead-prototypes -loop-simplify -sccp -bdce -constprop -mergereturn -separate-const-offset-from-gep -libcalls-shrinkwrap -jump-threading -loop-reduce -indvars -functionattrs -lowerinvoke -alignment-from-assumptions -constprop -functionattrs -strip-dead-prototypes -loop-data-prefetch -inject-tli-mappings -bdce -coro-cleanup -dse -lowerinvoke -tailcallelim -sroa -instsimplify -consthoist -loop-simplifycfg -sancov -libcalls-shrinkwrap -gvn -loop-data-prefetch -partially-inline-libcalls -coro-early -dce -instcombine -mergeicmps -attributor -partial-inliner -mldst-motion -instnamer -loop-load-elim -lower-expect -correlated-propagation -speculative-execution -coro-split -cross-dso-cfi -indvars -early-cse-memssa -canonicalize-aliases -gvn-hoist -redundant-dbg-inst-elim -lcssa -simple-loop-unswitch -lower-widenable-condition -coro-early -loop-distribute -constprop -coro-split -pgo-memop-opt -lower-constant-intrinsics -infer-address-spaces -loop-fusion -constmerge -nary-reassociate -inject-tli-mappings -cross-dso-cfi -mergereturn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1004216174779609,15.460011005401611,opt -die -infer-address-spaces -loop-unroll -sroa -elim-avail-extern -cross-dso-cfi -mldst-motion -barrier -mergefunc -loop-sink -aggressive-instcombine -correlated-propagation -scalarizer -scalarizer -break-crit-edges -add-discriminators -lower-guard-intrinsic -instcombine -barrier -pgo-memop-opt -float2int -called-value-propagation -sccp -lower-guard-intrinsic -speculative-execution -elim-avail-extern -mergefunc -loop-simplify -coro-split -globalopt -infer-address-spaces -adce -loop-idiom -ipconstprop -loop-guard-widening -indvars -lower-expect -aggressive-instcombine -loop-idiom -deadargelim -cross-dso-cfi -insert-gcov-profiling -lower-widenable-condition -loop-reroll -ipsccp -break-crit-edges -early-cse-memssa -loop-reroll -div-rem-pairs -canonicalize-aliases -functionattrs -die -forceattrs -coro-early -tailcallelim -adce -prune-eh -inject-tli-mappings -guard-widening -slsr -gvn -sroa -loop-load-elim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1004216174779613,12.831381559371948,opt -instcombine -float2int -globalopt -redundant-dbg-inst-elim -lower-matrix-intrinsics -loop-versioning -argpromotion -rpo-functionattrs -loop-interchange -loop-data-prefetch -barrier -aggressive-instcombine -loop-simplifycfg -aggressive-instcombine -rewrite-statepoints-for-gc -canonicalize-aliases -mergeicmps -barrier -partially-inline-libcalls -always-inline -aggressive-instcombine -gvn-hoist -insert-gcov-profiling -ipsccp -sink -loop-instsimplify -loop-guard-widening -argpromotion -lower-guard-intrinsic -hotcoldsplit -mergefunc -ipconstprop -redundant-dbg-inst-elim -sroa -lowerinvoke -slsr -newgvn -dce -break-crit-edges -simplifycfg -infer-address-spaces -instnamer -functionattrs -die -die -scalarizer -infer-address-spaces -strip -lowerinvoke -jump-threading -correlated-propagation -libcalls-shrinkwrap -constmerge -loweratomic -lower-expect -loop-reroll -scalarizer -ipsccp -ee-instrument -lower-widenable-condition -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1023380605596014,14.866809129714966,opt -mergeicmps -mergereturn -strip-debug-declare -globaldce -mergereturn -loop-instsimplify -alignment-from-assumptions -float2int -slp-vectorizer -sccp -flattencfg -callsite-splitting -infer-address-spaces -always-inline -loop-simplifycfg -flattencfg -newgvn -mem2reg -cross-dso-cfi -lower-matrix-intrinsics -instcombine -early-cse-memssa -reassociate -infer-address-spaces -rewrite-statepoints-for-gc -loop-simplifycfg -instnamer -coro-cleanup -loop-data-prefetch -loop-versioning-licm -correlated-propagation -loop-reroll -strip-nondebug -irce -loop-versioning-licm -ipconstprop -functionattrs -simplifycfg -argpromotion -sroa -memcpyopt -name-anon-globals -lcssa -sink -die -loop-simplify -forceattrs -strip -reg2mem -irce -loop-deletion -slsr -elim-avail-extern -mem2reg -lower-expect -lowerinvoke -coro-split -coro-split -dce -strip-dead-prototypes -float2int -loop-instsimplify -ipsccp -loweratomic -loop-predication -newgvn -ipconstprop -mergeicmps -float2int -simple-loop-unswitch -licm -ipsccp -loop-distribute -mergefunc -slsr -inject-tli-mappings -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/sha,1.4682274247491636,11.895204067230225,opt -lowerswitch -loop-reduce -mergefunc -reg2mem -infer-address-spaces -licm -pgo-memop-opt -lowerinvoke -insert-gcov-profiling -early-cse-memssa -aggressive-instcombine -inferattrs -canonicalize-aliases -div-rem-pairs -slsr -instnamer -load-store-vectorizer -loop-instsimplify -aggressive-instcombine -mem2reg -loop-distribute -attributor -argpromotion -loweratomic -instsimplify -loop-guard-widening -ee-instrument -lowerswitch -indvars -cross-dso-cfi -irce -break-crit-edges -loop-simplify -always-inline -constprop -dse -ipsccp -correlated-propagation -mergeicmps -loop-vectorize -mem2reg -ee-instrument -guard-widening -sink -instsimplify -loop-guard-widening -loop-predication -strip-nondebug -irce -simplifycfg -scalarizer -slp-vectorizer -forceattrs -float2int -newgvn input.bc -o output.bc +benchmark://cbench-v1/sha,1.4715719063545152,11.981029510498047,opt -mem2reg -div-rem-pairs -inject-tli-mappings -forceattrs -mergeicmps -dce -loop-unroll-and-jam -loop-fusion -loop-versioning -aggressive-instcombine -break-crit-edges -simplifycfg -irce -loop-sink -guard-widening -loop-sink -break-crit-edges -div-rem-pairs -separate-const-offset-from-gep -scalarizer -inferattrs -flattencfg -loweratomic -bdce -instcombine -post-inline-ee-instrument -lcssa -add-discriminators -flattencfg -instcombine -loop-reroll -inject-tli-mappings -elim-avail-extern -loop-versioning-licm -coro-elide -partial-inliner -loop-reroll -loop-data-prefetch -lower-matrix-intrinsics -correlated-propagation -consthoist -instnamer -partially-inline-libcalls -lower-matrix-intrinsics -lowerswitch -loop-versioning-licm -canonicalize-aliases -prune-eh -globalsplit -rewrite-statepoints-for-gc -ipsccp -jump-threading -coro-split -newgvn -memcpyopt -loop-versioning-licm -slp-vectorizer -reassociate -simplifycfg -newgvn -lcssa -simplifycfg -lower-matrix-intrinsics -dce -aggressive-instcombine -loop-distribute -loop-data-prefetch -infer-address-spaces -irce -instsimplify -lower-expect -correlated-propagation -sancov -alignment-from-assumptions -adce -tailcallelim -functionattrs -partial-inliner -bdce -strip-nondebug -ipconstprop -globalsplit -cross-dso-cfi -coro-early -instcombine -coro-early -bdce -loop-unroll-and-jam -sroa -aggressive-instcombine -loweratomic -indvars -loop-data-prefetch -cross-dso-cfi -coro-early -globalopt -canonicalize-aliases -break-crit-edges -insert-gcov-profiling -redundant-dbg-inst-elim -loop-deletion -reassociate -loop-distribute -simplifycfg -div-rem-pairs -loop-fusion -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/sha,1.474916387959866,11.905332565307617,opt -coro-cleanup -gvn -inferattrs -loop-versioning -name-anon-globals -simplifycfg -loop-interchange -div-rem-pairs -loop-deletion -mergefunc -ee-instrument -dce -flattencfg -mldst-motion -callsite-splitting -sccp -consthoist -functionattrs -attributor -aggressive-instcombine -loop-instsimplify -loop-deletion -mem2reg -mergefunc -flattencfg -rewrite-statepoints-for-gc -name-anon-globals -strip -bdce -prune-eh -lower-widenable-condition -loop-vectorize -sccp -instsimplify -mldst-motion -instnamer -div-rem-pairs -mldst-motion -canonicalize-aliases -newgvn -lower-constant-intrinsics -sink -indvars -alignment-from-assumptions -argpromotion -rewrite-statepoints-for-gc -early-cse-memssa -attributor -post-inline-ee-instrument -early-cse-memssa -loop-guard-widening -constmerge -lower-constant-intrinsics -prune-eh -strip -rpo-functionattrs -instcombine input.bc -o output.bc +benchmark://cbench-v1/sha,1.4749163879598663,11.936026334762573,opt -strip -always-inline -lower-expect -partially-inline-libcalls -gvn-hoist -loop-guard-widening -instnamer -reg2mem -slsr -loop-unroll -instnamer -slp-vectorizer -cross-dso-cfi -loop-distribute -called-value-propagation -ee-instrument -jump-threading -rewrite-statepoints-for-gc -loop-data-prefetch -globalsplit -partial-inliner -rpo-functionattrs -strip -strip-debug-declare -lower-guard-intrinsic -loop-distribute -ipconstprop -partially-inline-libcalls -irce -speculative-execution -flattencfg -redundant-dbg-inst-elim -loop-instsimplify -functionattrs -loop-reroll -hotcoldsplit -insert-gcov-profiling -loop-reroll -lower-expect -consthoist -lower-matrix-intrinsics -early-cse-memssa -prune-eh -loop-distribute -globalsplit -inject-tli-mappings -irce -mergefunc -hotcoldsplit -argpromotion -name-anon-globals -loop-simplifycfg -partially-inline-libcalls -slsr -barrier -flattencfg -post-inline-ee-instrument -sink -loop-vectorize -loop-vectorize -coro-cleanup -lowerinvoke -inject-tli-mappings -canonicalize-aliases -float2int -lowerswitch -indvars -lower-matrix-intrinsics -lowerinvoke -redundant-dbg-inst-elim -prune-eh -aggressive-instcombine -hotcoldsplit -strip-debug-declare -early-cse-memssa -licm -load-store-vectorizer -insert-gcov-profiling -sancov -pgo-memop-opt -sink -barrier -mem2reg -strip-debug-declare -cross-dso-cfi -callsite-splitting -gvn -simplifycfg -licm -memcpyopt -ipconstprop -lowerswitch -loop-guard-widening -functionattrs -loop-interchange -coro-elide -simple-loop-unswitch -separate-const-offset-from-gep -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/sha,1.4782608695652173,11.766895771026611,opt -alignment-from-assumptions -sroa -indvars -adce -jump-threading -add-discriminators -ipconstprop -div-rem-pairs -bdce -instnamer -indvars -simplifycfg -mem2reg -lower-widenable-condition -loop-interchange -sancov -argpromotion -inject-tli-mappings -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.4782608695652173,12.040958642959595,opt -instcombine -loop-sink -functionattrs -strip -jump-threading -insert-gcov-profiling -lower-guard-intrinsic -simple-loop-unswitch -mldst-motion -loop-reduce -strip-dead-prototypes -slsr -partial-inliner -loop-data-prefetch -argpromotion -mldst-motion -always-inline -pgo-memop-opt -mergeicmps -mergeicmps -attributor -lower-expect -called-value-propagation -coro-cleanup -barrier -loop-unswitch -lowerinvoke -ipconstprop -inject-tli-mappings -lower-widenable-condition -loop-unroll -loop-predication -loop-simplify -mergefunc -loop-unroll -elim-avail-extern -rpo-functionattrs -licm -loop-distribute -simplifycfg -loop-load-elim -scalarizer -bdce -coro-cleanup -gvn -licm -strip-debug-declare -early-cse-memssa -loop-unroll-and-jam -add-discriminators -reg2mem -gvn -instsimplify -rewrite-statepoints-for-gc -strip -canonicalize-aliases -sccp -simplifycfg -simplifycfg -lower-widenable-condition -bdce -sroa -loop-distribute -loop-versioning -redundant-dbg-inst-elim -guard-widening -adce -constprop -insert-gcov-profiling -load-store-vectorizer -pgo-memop-opt -attributor -ee-instrument -loop-fusion -prune-eh -slsr -inferattrs -loop-deletion -loop-load-elim -loweratomic -strip-debug-declare -functionattrs -insert-gcov-profiling -libcalls-shrinkwrap -loop-unroll-and-jam -barrier -functionattrs -scalarizer -loop-instsimplify -loop-guard-widening -die -aggressive-instcombine -nary-reassociate -indvars -simple-loop-unswitch -scalarizer -strip -loop-guard-widening -scalarizer -load-store-vectorizer -lowerinvoke -lowerinvoke -coro-cleanup -instcombine input.bc -o output.bc +benchmark://cbench-v1/sha,1.4849498327759196,12.055265426635742,opt -simplifycfg -ipsccp -aggressive-instcombine -loweratomic -licm -loop-interchange -deadargelim -canonicalize-aliases -break-crit-edges -alignment-from-assumptions -loop-simplifycfg -barrier -strip-nondebug -gvn -flattencfg -coro-split -load-store-vectorizer -strip -ipsccp -instcombine -redundant-dbg-inst-elim -libcalls-shrinkwrap -correlated-propagation -forceattrs -partially-inline-libcalls -ipconstprop -constprop -mergereturn -newgvn -lower-guard-intrinsic -load-store-vectorizer -sroa -lowerswitch -strip-debug-declare -adce -separate-const-offset-from-gep -inject-tli-mappings -load-store-vectorizer -always-inline -libcalls-shrinkwrap -correlated-propagation -ipconstprop -loop-fusion -globalopt -slp-vectorizer -partially-inline-libcalls -forceattrs -newgvn -elim-avail-extern -early-cse-memssa -globaldce -inject-tli-mappings -aggressive-instcombine -separate-const-offset-from-gep -alignment-from-assumptions -name-anon-globals -attributor -globalopt -loop-reroll -lower-matrix-intrinsics -called-value-propagation -indvars -elim-avail-extern -loop-interchange -mem2reg -loop-load-elim -instcombine input.bc -o output.bc +benchmark://cbench-v1/sha,1.4949832775919731,11.823912382125854,opt -pgo-memop-opt -aggressive-instcombine -lower-widenable-condition -dce -strip-debug-declare -globaldce -partial-inliner -simplifycfg -div-rem-pairs -slsr -infer-address-spaces -separate-const-offset-from-gep -newgvn -loop-unroll-and-jam -inferattrs -barrier -coro-cleanup -loop-predication -instcombine -early-cse-memssa -reg2mem -lower-widenable-condition -infer-address-spaces -sancov -alignment-from-assumptions -early-cse-memssa -name-anon-globals -lower-widenable-condition -dce -tailcallelim -loop-data-prefetch -loop-instsimplify -loop-simplifycfg -instnamer -cross-dso-cfi -mem2reg -coro-elide -loop-distribute -called-value-propagation -always-inline -alignment-from-assumptions -strip-dead-prototypes -irce -lower-guard-intrinsic -load-store-vectorizer -insert-gcov-profiling -loop-instsimplify -die -loop-rotate -nary-reassociate -post-inline-ee-instrument -separate-const-offset-from-gep -div-rem-pairs -coro-split -loop-sink -redundant-dbg-inst-elim -partially-inline-libcalls -die -loop-unroll-and-jam -loweratomic -hotcoldsplit -coro-cleanup -libcalls-shrinkwrap -mergefunc -simple-loop-unswitch -ee-instrument -simplifycfg -coro-cleanup -lcssa -simple-loop-unswitch -deadargelim -instcombine -loweratomic -nary-reassociate -guard-widening -separate-const-offset-from-gep -constmerge -redundant-dbg-inst-elim -instsimplify -dse -functionattrs -newgvn -licm -flattencfg -callsite-splitting -loop-fusion -strip-dead-prototypes -instsimplify -callsite-splitting -simplifycfg -dse -lower-constant-intrinsics -gvn-hoist -mergereturn -memcpyopt -dce -loop-idiom -loop-instsimplify -rewrite-statepoints-for-gc -hotcoldsplit -speculative-execution -licm -speculative-execution -argpromotion -newgvn -adce -sancov -rpo-functionattrs -instnamer -redundant-dbg-inst-elim -coro-cleanup -name-anon-globals -sroa -always-inline -partially-inline-libcalls -guard-widening -loop-idiom -strip-dead-prototypes -constprop -mergereturn -loop-interchange -separate-const-offset-from-gep -barrier -alignment-from-assumptions -bdce -loop-unroll-and-jam -gvn-hoist -attributor -reassociate -loop-data-prefetch -simplifycfg -div-rem-pairs -mergeicmps -mem2reg -elim-avail-extern -simplifycfg -adce -loop-idiom -nary-reassociate -loop-data-prefetch -indvars -sccp -gvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.5050167224080264,11.817471742630005,opt -simplifycfg -partially-inline-libcalls -partial-inliner -loweratomic -lower-widenable-condition -separate-const-offset-from-gep -float2int -partial-inliner -lower-expect -sccp -hotcoldsplit -infer-address-spaces -loop-unswitch -gvn -barrier -separate-const-offset-from-gep -mergefunc -lower-constant-intrinsics -lower-matrix-intrinsics -indvars -functionattrs -called-value-propagation -mergeicmps -gvn-hoist -globalsplit -memcpyopt -loweratomic -partially-inline-libcalls -lowerinvoke -hotcoldsplit -die -loop-distribute -strip-dead-prototypes -coro-split -loop-distribute -loop-vectorize -loop-vectorize -die -coro-split -argpromotion -loop-deletion -early-cse-memssa -lower-guard-intrinsic -loop-simplify -lower-expect -loop-data-prefetch -attributor -ee-instrument -reassociate -coro-elide -correlated-propagation -div-rem-pairs -break-crit-edges -coro-cleanup -lower-widenable-condition -name-anon-globals -instcombine -reg2mem -jump-threading -callsite-splitting -loop-fusion -instnamer -early-cse-memssa -post-inline-ee-instrument -alignment-from-assumptions -speculative-execution -dce -bdce -libcalls-shrinkwrap -sroa -partial-inliner -reg2mem -mergefunc -sccp -break-crit-edges -loop-unroll-and-jam -lower-constant-intrinsics -flattencfg -pgo-memop-opt -tailcallelim -coro-split -indvars -sroa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.5050167224080266,11.961605548858643,opt -coro-elide -barrier -ipconstprop -loop-data-prefetch -rpo-functionattrs -loop-reduce -rpo-functionattrs -speculative-execution -constmerge -strip-debug-declare -break-crit-edges -reg2mem -mldst-motion -lower-guard-intrinsic -argpromotion -always-inline -loop-distribute -sancov -always-inline -mergeicmps -globalsplit -strip-debug-declare -div-rem-pairs -add-discriminators -irce -loop-distribute -cross-dso-cfi -functionattrs -load-store-vectorizer -aggressive-instcombine -simplifycfg -elim-avail-extern -separate-const-offset-from-gep -loop-guard-widening -tailcallelim -newgvn -always-inline -mergefunc -coro-early -loweratomic -loop-predication -strip-debug-declare -lowerswitch -consthoist -gvn -jump-threading -break-crit-edges -sccp -loop-fusion -deadargelim -tailcallelim -rewrite-statepoints-for-gc -lcssa -sancov -inject-tli-mappings -early-cse-memssa -instcombine -ee-instrument -mergefunc -loop-distribute -sancov -loop-guard-widening -barrier -div-rem-pairs -consthoist -aggressive-instcombine -deadargelim -loop-simplify -called-value-propagation -always-inline -inject-tli-mappings -simplifycfg -strip -insert-gcov-profiling -redundant-dbg-inst-elim -constprop -canonicalize-aliases -memcpyopt -tailcallelim -jump-threading -coro-elide -name-anon-globals -dse -loop-versioning -insert-gcov-profiling -loop-unroll-and-jam -slp-vectorizer -indvars -inferattrs -argpromotion -sccp -lower-expect -loop-idiom -dce -flattencfg -coro-split -scalarizer -functionattrs -callsite-splitting -canonicalize-aliases -barrier -elim-avail-extern -tailcallelim -loop-guard-widening -loop-fusion -lcssa -lowerswitch -instcombine -simplifycfg -slsr -ipconstprop -correlated-propagation -indvars -flattencfg -name-anon-globals -lowerinvoke -canonicalize-aliases -consthoist -attributor -coro-elide -scalarizer -ipsccp -partially-inline-libcalls -instsimplify -coro-elide -rewrite-statepoints-for-gc -strip-dead-prototypes -scalarizer -canonicalize-aliases -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9767759562841531,12.063631057739258,opt -globalopt -loop-deletion -float2int -reassociate -lower-matrix-intrinsics -loop-guard-widening -strip -ee-instrument -deadargelim -lower-widenable-condition -post-inline-ee-instrument -coro-cleanup -elim-avail-extern -die -mem2reg -early-cse-memssa -guard-widening -loop-vectorize -constmerge -rewrite-statepoints-for-gc -rewrite-statepoints-for-gc -dse -loop-unroll -instcombine -loop-distribute -prune-eh -functionattrs -globalopt -flattencfg -ee-instrument -partially-inline-libcalls -adce -argpromotion -consthoist -consthoist -instcombine -called-value-propagation -simplifycfg -gvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9795081967213116,11.88592791557312,opt -loop-rotate -loop-reroll -loop-unroll-and-jam -consthoist -loop-rotate -adce -loop-sink -ipsccp -loop-instsimplify -mem2reg -mergeicmps -reassociate -loop-load-elim -mergereturn -sroa -loop-simplifycfg -loop-data-prefetch -mergefunc -flattencfg -newgvn -loop-idiom -loop-vectorize -coro-split -deadargelim -globalsplit -die -loop-fusion -loop-instsimplify -dce -loop-predication -mergeicmps -sink -simple-loop-unswitch -globalsplit -guard-widening -mem2reg -jump-threading -loop-simplifycfg -lower-expect -post-inline-ee-instrument -lower-constant-intrinsics -always-inline -constprop -inject-tli-mappings -gvn-hoist -mergefunc -strip -lower-widenable-condition -simplifycfg -barrier -adce -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9808743169398909,12.13899278640747,opt -newgvn -slsr -lowerinvoke -lowerinvoke -loop-distribute -lower-guard-intrinsic -globaldce -memcpyopt -sancov -callsite-splitting -callsite-splitting -inject-tli-mappings -licm -early-cse-memssa -loop-simplify -loop-deletion -lowerinvoke -ipsccp -speculative-execution -scalarizer -loop-guard-widening -jump-threading -attributor -flattencfg -licm -insert-gcov-profiling -slsr -jump-threading -mergereturn -alignment-from-assumptions -reassociate -indvars -loop-simplifycfg -constprop -sancov -loop-unroll -loop-reroll -jump-threading -guard-widening -simplifycfg -partially-inline-libcalls -constprop -hotcoldsplit -loop-instsimplify -partially-inline-libcalls -pgo-memop-opt -name-anon-globals -coro-early -mergeicmps -indvars -sccp -simplifycfg -reassociate -bdce -loop-vectorize -jump-threading -lowerswitch -correlated-propagation -ipsccp -loop-unroll-and-jam -loop-unroll -strip -inline -inject-tli-mappings -gvn-hoist -loop-data-prefetch -alignment-from-assumptions -sccp -bdce -loop-interchange -functionattrs -infer-address-spaces -forceattrs -strip-debug-declare -lcssa -break-crit-edges -lower-guard-intrinsic -slsr -strip-dead-prototypes -loop-distribute -lower-guard-intrinsic -break-crit-edges -partially-inline-libcalls -nary-reassociate -reassociate -dce -loop-unroll-and-jam -argpromotion -lower-expect -loop-data-prefetch -lower-expect -always-inline -loop-simplify -add-discriminators -irce -slp-vectorizer -name-anon-globals -ee-instrument -newgvn -gvn-hoist -inject-tli-mappings -lower-guard-intrinsic -licm -simplifycfg -loop-instsimplify -partial-inliner -lower-widenable-condition -flattencfg -rewrite-statepoints-for-gc -loop-instsimplify -lowerswitch -gvn -lowerinvoke -loop-instsimplify -lowerswitch -guard-widening -lower-widenable-condition -mergeicmps -lower-guard-intrinsic -lower-matrix-intrinsics -correlated-propagation -globalsplit -loop-interchange -infer-address-spaces -loop-versioning -deadargelim -lower-guard-intrinsic -mem2reg -post-inline-ee-instrument -instcombine -globalsplit -simple-loop-unswitch -loop-vectorize -attributor -lowerinvoke -loop-deletion -rpo-functionattrs -loop-load-elim -adce -attributor -coro-cleanup -argpromotion -newgvn -barrier -loop-reroll -mergeicmps -bdce -strip-debug-declare -adce -separate-const-offset-from-gep -lower-matrix-intrinsics -bdce -loop-deletion -loop-unswitch -sink -coro-elide -instcombine -loop-data-prefetch -loop-versioning -die -slsr -jump-threading -adce -die -lower-expect -rewrite-statepoints-for-gc -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9836065573770493,12.070388317108154,opt -consthoist -lower-constant-intrinsics -always-inline -globaldce -memcpyopt -loop-instsimplify -guard-widening -globalsplit -consthoist -loop-data-prefetch -canonicalize-aliases -simple-loop-unswitch -slp-vectorizer -lowerinvoke -flattencfg -simplifycfg -infer-address-spaces -gvn -float2int -mergeicmps -partially-inline-libcalls -add-discriminators -coro-split -correlated-propagation -lower-matrix-intrinsics -loop-vectorize -strip-nondebug -rewrite-statepoints-for-gc -partial-inliner -loop-guard-widening -coro-elide -coro-split -strip -rewrite-statepoints-for-gc -loop-fusion -float2int -attributor -elim-avail-extern -functionattrs -correlated-propagation -mergeicmps -loop-data-prefetch -flattencfg -hotcoldsplit -loop-idiom -consthoist -loweratomic -loop-idiom -reg2mem -mem2reg -mergeicmps -add-discriminators -loop-guard-widening -ee-instrument -scalarizer -memcpyopt -speculative-execution -aggressive-instcombine -post-inline-ee-instrument -tailcallelim -sancov -redundant-dbg-inst-elim -loop-predication -loop-predication -called-value-propagation -name-anon-globals -consthoist -separate-const-offset-from-gep -lowerswitch -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -loop-guard-widening -argpromotion -hotcoldsplit -libcalls-shrinkwrap -mergefunc -dse -dse -sccp -loop-guard-widening -pgo-memop-opt -lowerswitch -simple-loop-unswitch -nary-reassociate -indvars -slsr -slsr -memcpyopt -functionattrs -loop-unswitch -prune-eh -mergereturn -mergereturn -globalsplit -loop-idiom -mergefunc -redundant-dbg-inst-elim -mergeicmps -forceattrs -globalopt -dse -licm -mergereturn -dse -constprop -cross-dso-cfi -rewrite-statepoints-for-gc -adce -simplifycfg -rpo-functionattrs -sroa -ipconstprop -strip -load-store-vectorizer -insert-gcov-profiling -instcombine -jump-threading -canonicalize-aliases -mem2reg -tailcallelim -globalopt -loop-simplify -loop-instsimplify -correlated-propagation -loop-unroll-and-jam -gvn -loop-sink -sancov -memcpyopt -loop-vectorize -strip-nondebug -adce -ipconstprop -loop-versioning-licm -loop-simplifycfg -loop-versioning-licm -simplifycfg -irce -strip -loop-data-prefetch -strip-dead-prototypes -loop-versioning-licm -mergeicmps -lcssa -lowerswitch -div-rem-pairs -gvn -loop-sink -globalsplit -aggressive-instcombine -loop-distribute -insert-gcov-profiling -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9904371584699454,14.024319648742676,opt -dse -instsimplify -strip-nondebug -lcssa -instsimplify -instnamer -strip-dead-prototypes -loop-deletion -loop-instsimplify -deadargelim -dce -instsimplify -strip -instnamer -sink -lower-constant-intrinsics -loop-data-prefetch -simplifycfg -correlated-propagation -ipsccp -speculative-execution -alignment-from-assumptions -float2int -loop-unroll -partially-inline-libcalls -functionattrs -redundant-dbg-inst-elim -loop-unroll-and-jam -reassociate -loop-simplifycfg -mldst-motion -loop-predication -mldst-motion -called-value-propagation -div-rem-pairs -elim-avail-extern -lower-matrix-intrinsics -flattencfg -barrier -float2int -functionattrs -elim-avail-extern -loop-instsimplify -inject-tli-mappings -loop-instsimplify -loop-reroll -consthoist -lcssa -globalopt -strip -nary-reassociate -loop-vectorize -newgvn -rpo-functionattrs -loop-load-elim -loop-deletion -infer-address-spaces -guard-widening -strip-dead-prototypes -separate-const-offset-from-gep -sancov -forceattrs -partial-inliner -gvn -sroa -load-store-vectorizer -loop-data-prefetch -globaldce -speculative-execution -lcssa -strip -lower-matrix-intrinsics -speculative-execution -loop-instsimplify -nary-reassociate -loop-instsimplify -div-rem-pairs -speculative-execution -slp-vectorizer -slp-vectorizer -coro-cleanup -mergefunc -cross-dso-cfi -guard-widening -slp-vectorizer -rewrite-statepoints-for-gc -ee-instrument -correlated-propagation -loop-data-prefetch -loop-instsimplify -strip-dead-prototypes -mergefunc -slp-vectorizer -loop-vectorize -forceattrs -consthoist -insert-gcov-profiling -barrier -name-anon-globals -licm -strip-dead-prototypes -irce -infer-address-spaces -die -mem2reg -post-inline-ee-instrument -rewrite-statepoints-for-gc -div-rem-pairs -globalsplit -aggressive-instcombine -loop-unroll-and-jam -loop-versioning -loop-instsimplify -mem2reg -bdce -loop-interchange -bdce -lower-widenable-condition -ipsccp -add-discriminators -sccp -attributor -reassociate -constmerge -scalarizer -strip-debug-declare -strip-dead-prototypes -infer-address-spaces -rpo-functionattrs -deadargelim -mergereturn -inferattrs -inferattrs -separate-const-offset-from-gep -loop-fusion -scalarizer -loop-deletion -inferattrs -lower-expect -partial-inliner -simplifycfg -mergereturn -lcssa -sccp -separate-const-offset-from-gep -irce -insert-gcov-profiling -globaldce -barrier -ee-instrument -always-inline -flattencfg -tailcallelim -alignment-from-assumptions -name-anon-globals -loop-simplifycfg -coro-early -ipsccp -early-cse-memssa -simplifycfg -deadargelim -loop-sink -globaldce -flattencfg -coro-elide -licm -instcombine -name-anon-globals -mldst-motion -infer-address-spaces -loweratomic -pgo-memop-opt -globaldce -always-inline -sccp -indvars -strip-nondebug -loop-unroll-and-jam -correlated-propagation -post-inline-ee-instrument -sancov -loop-reduce -memcpyopt -loop-simplify -instnamer -separate-const-offset-from-gep -separate-const-offset-from-gep -strip -coro-early -mem2reg -lower-guard-intrinsic -jump-threading -strip-debug-declare -simplifycfg -nary-reassociate -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9918032786885245,11.971539974212646,opt -loop-reduce -simplifycfg -die -inferattrs -constmerge -tailcallelim -loop-guard-widening -memcpyopt -partially-inline-libcalls -adce -float2int -sancov -newgvn -prune-eh -sink -alignment-from-assumptions -constmerge -sroa -die -instcombine -attributor -globaldce -coro-early -loop-versioning -mldst-motion -strip-debug-declare -attributor -loop-unroll-and-jam -dce -lower-constant-intrinsics -break-crit-edges -mldst-motion -rewrite-statepoints-for-gc -load-store-vectorizer -argpromotion -separate-const-offset-from-gep -break-crit-edges -slsr -functionattrs -lowerswitch -canonicalize-aliases -loop-data-prefetch -loop-unroll -loop-unswitch -mem2reg -loop-unswitch -deadargelim -dse -loweratomic -newgvn -globalsplit -loop-reroll -adce -functionattrs -flattencfg -sink -dse -loop-fusion -inject-tli-mappings -simplifycfg -early-cse-memssa -functionattrs -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9918032786885245,12.370582818984985,opt -coro-cleanup -flattencfg -indvars -strip-nondebug -rewrite-statepoints-for-gc -globalsplit -libcalls-shrinkwrap -lowerswitch -coro-elide -deadargelim -simplifycfg -partial-inliner -loop-reduce -elim-avail-extern -reg2mem -lcssa -globalsplit -loop-data-prefetch -libcalls-shrinkwrap -scalarizer -lcssa -ipconstprop -attributor -die -dse -insert-gcov-profiling -partial-inliner -mem2reg -lowerinvoke -loop-simplify -loop-sink -die -mergeicmps -memcpyopt -aggressive-instcombine -callsite-splitting -globalopt -lower-guard-intrinsic -hotcoldsplit -globalopt -lcssa -float2int -lowerinvoke -speculative-execution -loop-reroll -jump-threading -loop-simplify -coro-elide -strip -lower-guard-intrinsic -tailcallelim -speculative-execution -alignment-from-assumptions -elim-avail-extern -loop-idiom -loop-simplify -loop-simplify -partial-inliner -attributor -globalsplit -early-cse-memssa -loop-vectorize -lower-constant-intrinsics -constmerge -loop-interchange -flattencfg -globalopt -libcalls-shrinkwrap -lower-constant-intrinsics -infer-address-spaces -lowerswitch -mergeicmps -reassociate -break-crit-edges -loop-vectorize -lower-constant-intrinsics -strip-nondebug -pgo-memop-opt -loop-simplify -loop-reroll -insert-gcov-profiling -guard-widening -memcpyopt -loop-unroll -deadargelim -loop-simplifycfg -inject-tli-mappings -instnamer -loop-reroll -loop-deletion -early-cse-memssa -reg2mem -slp-vectorizer -div-rem-pairs -constprop -called-value-propagation -gvn -aggressive-instcombine -flattencfg -pgo-memop-opt -gvn-hoist -globalsplit -elim-avail-extern -reassociate -licm -coro-elide -irce -prune-eh -loop-unroll-and-jam -partially-inline-libcalls -globaldce -loop-distribute -break-crit-edges -loop-reroll -sancov -float2int -loweratomic -insert-gcov-profiling -redundant-dbg-inst-elim -deadargelim -speculative-execution -loop-unroll-and-jam -infer-address-spaces -mem2reg -name-anon-globals -pgo-memop-opt -correlated-propagation -rpo-functionattrs -infer-address-spaces -speculative-execution -aggressive-instcombine -post-inline-ee-instrument -lcssa -elim-avail-extern -loop-unroll -dse -break-crit-edges -mem2reg -dse -partial-inliner -licm -slsr -memcpyopt -indvars -loop-load-elim -div-rem-pairs -lower-guard-intrinsic -flattencfg -loop-vectorize -insert-gcov-profiling -reg2mem -loop-deletion -die -rewrite-statepoints-for-gc -div-rem-pairs -prune-eh -coro-early -loop-distribute -scalarizer -mldst-motion -loop-simplifycfg -loop-instsimplify -lower-widenable-condition -slp-vectorizer -ee-instrument -cross-dso-cfi -sink -constprop -tailcallelim -simple-loop-unswitch -lower-widenable-condition -float2int -mergereturn -mem2reg -lower-matrix-intrinsics -loop-reroll -constmerge -loop-versioning-licm -scalarizer -loop-reroll -memcpyopt -gvn -forceattrs -cross-dso-cfi -alignment-from-assumptions -break-crit-edges -bdce -sink -loop-predication -infer-address-spaces -loop-simplify -adce -loop-reroll -adce -mldst-motion -jump-threading -sancov -argpromotion -correlated-propagation -argpromotion -ee-instrument -barrier -dse -consthoist -loop-guard-widening -die -loop-load-elim -loop-unswitch -loop-guard-widening -coro-split -strip -barrier -loop-deletion -loop-predication -instcombine -called-value-propagation -tailcallelim -always-inline -consthoist -loop-fusion -slp-vectorizer -loop-sink -loop-versioning-licm -post-inline-ee-instrument -lowerinvoke -loop-versioning -load-store-vectorizer -loop-simplifycfg -barrier -functionattrs -loop-unroll-and-jam -slp-vectorizer -gvn -globalopt input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9931693989071037,12.058562278747559,opt -correlated-propagation -coro-early -ee-instrument -loweratomic -strip-debug-declare -post-inline-ee-instrument -cross-dso-cfi -partially-inline-libcalls -gvn-hoist -globaldce -sccp -coro-cleanup -consthoist -constprop -barrier -loop-distribute -rpo-functionattrs -partially-inline-libcalls -simple-loop-unswitch -partial-inliner -globalsplit -loop-reduce -coro-split -ipsccp -loop-sink -irce -indvars -mldst-motion -coro-elide -hotcoldsplit -ipsccp -lower-matrix-intrinsics -ipsccp -sroa -reg2mem -newgvn -constprop -sancov -reassociate -globalopt -slp-vectorizer -loop-reduce -tailcallelim -loop-instsimplify -sink -globaldce -functionattrs -cross-dso-cfi -loop-vectorize -loop-vectorize -loop-vectorize -loop-interchange -loop-instsimplify -strip-nondebug -partially-inline-libcalls -alignment-from-assumptions -lower-guard-intrinsic -globaldce -lower-constant-intrinsics -coro-early -sroa -lowerswitch -loop-distribute -lowerswitch -strip-nondebug -globalopt -pgo-memop-opt -globaldce -load-store-vectorizer -div-rem-pairs -called-value-propagation -lower-matrix-intrinsics -loop-predication -strip-debug-declare -dse -partially-inline-libcalls -simplifycfg -instnamer -canonicalize-aliases -partially-inline-libcalls -loop-deletion -always-inline -loop-simplify -gvn -div-rem-pairs -adce -dce -strip-nondebug -slp-vectorizer -strip-nondebug -loop-sink -loweratomic -hotcoldsplit -functionattrs -loop-versioning-licm -ee-instrument -loop-data-prefetch -strip-debug-declare -tailcallelim -redundant-dbg-inst-elim -gvn-hoist -newgvn -dse -loop-versioning -memcpyopt -mldst-motion -hotcoldsplit -always-inline -newgvn -loop-data-prefetch -loop-data-prefetch -tailcallelim -loop-fusion -gvn -inferattrs -load-store-vectorizer -dce -lowerinvoke -elim-avail-extern -guard-widening -loop-reduce -simple-loop-unswitch -cross-dso-cfi -coro-split -always-inline -globaldce -loop-unroll-and-jam -called-value-propagation -lcssa -instcombine -sccp -mergefunc -rewrite-statepoints-for-gc -instcombine -globalsplit -jump-threading -guard-widening -insert-gcov-profiling -callsite-splitting -barrier -rpo-functionattrs -argpromotion -inferattrs -guard-widening -coro-cleanup -strip -slsr -loop-versioning-licm -loop-instsimplify -simplifycfg -dse -sccp -coro-elide -early-cse-memssa -lower-guard-intrinsic -loop-vectorize -instcombine -slp-vectorizer -instsimplify -mldst-motion -libcalls-shrinkwrap -barrier -insert-gcov-profiling -early-cse-memssa -loop-versioning-licm -redundant-dbg-inst-elim -lower-constant-intrinsics -loop-instsimplify -rpo-functionattrs -lower-widenable-condition -lower-expect -libcalls-shrinkwrap -sroa -rpo-functionattrs -lower-widenable-condition -cross-dso-cfi -correlated-propagation -strip-nondebug -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0013661202185793,12.024682760238647,opt -newgvn -loop-versioning-licm -loop-instsimplify -coro-early -instcombine -strip-nondebug -name-anon-globals -loop-vectorize -loop-deletion -lowerswitch -instcombine -forceattrs -load-store-vectorizer -lowerswitch -separate-const-offset-from-gep -aggressive-instcombine -globalsplit -globalopt -loop-simplifycfg -sccp -loop-versioning -mergereturn -break-crit-edges -ipsccp -sink -loop-versioning -separate-const-offset-from-gep -loop-unroll -inferattrs -elim-avail-extern -break-crit-edges -loop-instsimplify -strip-dead-prototypes -slsr -mem2reg -loop-data-prefetch -jump-threading -instcombine -coro-early -loop-simplify -simplifycfg -dce -lower-constant-intrinsics input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0040983606557372,11.870396137237549,opt -instnamer -barrier -simple-loop-unswitch -lower-matrix-intrinsics -licm -loop-idiom -scalarizer -post-inline-ee-instrument -loop-unswitch -name-anon-globals -ipconstprop -cross-dso-cfi -ipconstprop -lower-widenable-condition -cross-dso-cfi -slp-vectorizer -constprop -cross-dso-cfi -early-cse-memssa -deadargelim -insert-gcov-profiling -lcssa -dse -lowerswitch -rpo-functionattrs -separate-const-offset-from-gep -simplifycfg -sink -loop-fusion -mem2reg -callsite-splitting -libcalls-shrinkwrap -reassociate -gvn -deadargelim -flattencfg -strip-dead-prototypes -rpo-functionattrs -consthoist -pgo-memop-opt -libcalls-shrinkwrap -lower-expect -lower-constant-intrinsics -loop-idiom -memcpyopt -lower-constant-intrinsics -flattencfg -mldst-motion -cross-dso-cfi -load-store-vectorizer -functionattrs -gvn -mergeicmps -strip-dead-prototypes -instcombine -cross-dso-cfi -die -loop-load-elim -lowerswitch -dse -loop-simplify -lowerinvoke -loop-simplifycfg -loop-reroll -loop-fusion -always-inline -lcssa -rpo-functionattrs -rewrite-statepoints-for-gc -partial-inliner -aggressive-instcombine -licm -bdce -scalarizer -load-store-vectorizer -memcpyopt -reg2mem -load-store-vectorizer -lower-matrix-intrinsics -mem2reg -libcalls-shrinkwrap -scalarizer -rewrite-statepoints-for-gc -speculative-execution -sccp -jump-threading -speculative-execution -speculative-execution -inject-tli-mappings -mergefunc -irce -ee-instrument -constprop -rpo-functionattrs -elim-avail-extern -coro-cleanup -strip -deadargelim -loop-vectorize -lower-expect -jump-threading -instcombine -lower-constant-intrinsics -loop-versioning-licm -alignment-from-assumptions -loop-fusion -globaldce -loop-vectorize -dce -name-anon-globals -deadargelim -die -loop-guard-widening -argpromotion -bdce -loop-deletion -loop-versioning -slp-vectorizer -loop-simplifycfg -strip-debug-declare -loop-simplify -loop-unroll-and-jam -inferattrs -speculative-execution -gvn -load-store-vectorizer -alignment-from-assumptions -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9664179104477612,11.904651880264282,opt -guard-widening -ee-instrument -correlated-propagation -lcssa -ee-instrument -loop-idiom -jump-threading -guard-widening -elim-avail-extern -reassociate -slp-vectorizer -newgvn -mem2reg -loop-idiom -loop-fusion -alignment-from-assumptions -libcalls-shrinkwrap -strip -redundant-dbg-inst-elim -loop-distribute -simplifycfg -ipsccp -pgo-memop-opt -infer-address-spaces -post-inline-ee-instrument -redundant-dbg-inst-elim -bdce -lower-widenable-condition -functionattrs -float2int -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9738805970149257,12.163768291473389,opt -bdce -coro-split -lower-widenable-condition -canonicalize-aliases -partially-inline-libcalls -loop-simplify -newgvn -lowerswitch -mergefunc -sink -dse -insert-gcov-profiling -dse -strip-dead-prototypes -loop-versioning -instsimplify -constprop -partial-inliner -prune-eh -strip -rpo-functionattrs -loop-simplifycfg -mem2reg -alignment-from-assumptions -slp-vectorizer -lower-guard-intrinsic -strip-debug-declare -lower-guard-intrinsic -loop-vectorize -mergefunc -gvn-hoist -strip-dead-prototypes -loop-guard-widening -lcssa -loop-idiom -loop-fusion -rpo-functionattrs -instsimplify -coro-split -forceattrs -callsite-splitting -coro-elide -callsite-splitting -cross-dso-cfi -early-cse-memssa -called-value-propagation -partial-inliner -canonicalize-aliases -jump-threading -mergefunc -div-rem-pairs -infer-address-spaces -lowerinvoke -forceattrs -newgvn -loop-reduce -inferattrs -loop-simplify -consthoist -float2int -redundant-dbg-inst-elim -licm -elim-avail-extern -newgvn -sancov -add-discriminators -name-anon-globals -loop-reroll -scalarizer -barrier -instcombine -strip-dead-prototypes -reassociate -dse -loop-reduce -instsimplify -forceattrs -coro-split -lower-constant-intrinsics -speculative-execution -ipconstprop -constprop -loop-reduce -aggressive-instcombine -functionattrs -loop-vectorize -jump-threading -sccp -tailcallelim -irce -add-discriminators -strip -slp-vectorizer -jump-threading -ee-instrument -indvars -reg2mem -strip -argpromotion -irce -rpo-functionattrs -callsite-splitting -loop-sink -post-inline-ee-instrument -globalsplit -memcpyopt -separate-const-offset-from-gep -loop-simplifycfg -nary-reassociate -loop-reduce -gvn-hoist -inferattrs -coro-cleanup -reg2mem -bdce -sink -float2int -sroa -constmerge -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9776119402985074,14.341261625289917,opt -loop-interchange -loop-deletion -loop-distribute -loop-versioning -insert-gcov-profiling -float2int -newgvn -loop-simplify -functionattrs -loop-idiom -slsr -functionattrs -sink -elim-avail-extern -mergefunc -loop-distribute -lcssa -lcssa -float2int -loop-sink -sink -die -canonicalize-aliases -infer-address-spaces -name-anon-globals -lower-matrix-intrinsics -mergereturn -simple-loop-unswitch -licm -loop-simplifycfg -globaldce -constmerge -lower-guard-intrinsic -simple-loop-unswitch -loop-fusion -lcssa -loop-unroll-and-jam -tailcallelim -break-crit-edges -strip-debug-declare -forceattrs -inferattrs -constmerge -sink -loop-unswitch -early-cse-memssa -rewrite-statepoints-for-gc -coro-split -irce -sroa -globalopt -mergefunc -strip-debug-declare -called-value-propagation -called-value-propagation -redundant-dbg-inst-elim -ipsccp -break-crit-edges -ee-instrument -always-inline -redundant-dbg-inst-elim -gvn-hoist -die -attributor -lower-guard-intrinsic -loop-guard-widening -simplifycfg -pgo-memop-opt -indvars -float2int -ipsccp -simplifycfg -hotcoldsplit -sink -loop-simplify -partially-inline-libcalls -pgo-memop-opt -gvn -ee-instrument -sink -slp-vectorizer -constprop -coro-elide -loop-interchange -mergeicmps -loweratomic -inject-tli-mappings -loop-idiom -aggressive-instcombine -mldst-motion -functionattrs -sccp -always-inline -newgvn -loop-distribute -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820894,13.230485677719116,opt -called-value-propagation -licm -strip-nondebug -alignment-from-assumptions -jump-threading -libcalls-shrinkwrap -loop-vectorize -alignment-from-assumptions -lower-widenable-condition -correlated-propagation -scalarizer -coro-early -sancov -lowerinvoke -ee-instrument -coro-split -dse -pgo-memop-opt -constmerge -lower-constant-intrinsics -libcalls-shrinkwrap -coro-elide -lower-guard-intrinsic -float2int -loop-reroll -elim-avail-extern -partial-inliner -instnamer -coro-cleanup -loop-versioning -alignment-from-assumptions -globaldce -ipsccp -ipconstprop -loop-reroll -sink -mem2reg -lowerswitch -mergereturn -instnamer -mem2reg -die -lowerinvoke -tailcallelim -strip-debug-declare -sink -gvn-hoist -coro-split -die -float2int -dse -loop-versioning -float2int -strip-nondebug -functionattrs -coro-split -die -lcssa -loop-interchange -float2int -loop-vectorize -mergeicmps -instcombine -gvn-hoist -early-cse-memssa -separate-const-offset-from-gep -partially-inline-libcalls -load-store-vectorizer -loop-instsimplify -loop-deletion -gvn -tailcallelim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820896,12.88115906715393,opt -break-crit-edges -mldst-motion -ipsccp -loop-predication -loop-load-elim -sroa -redundant-dbg-inst-elim -loop-load-elim -globaldce -nary-reassociate -instsimplify -sroa -irce -instnamer -barrier -consthoist -adce -forceattrs -newgvn -instcombine -loop-unswitch -lower-expect -called-value-propagation -constmerge -strip-debug-declare -simplifycfg -elim-avail-extern -gvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9813432835820897,15.134238719940186,opt -loop-fusion -ipconstprop -prune-eh -early-cse-memssa -inferattrs -newgvn -sink -load-store-vectorizer -coro-early -instnamer -reassociate -coro-cleanup -coro-cleanup -barrier -coro-split -argpromotion -guard-widening -insert-gcov-profiling -loop-idiom -sccp -loop-guard-widening -lower-matrix-intrinsics -globalopt -tailcallelim -name-anon-globals -consthoist -name-anon-globals -dse -loop-data-prefetch -libcalls-shrinkwrap -loop-unroll-and-jam -jump-threading -barrier -instnamer -tailcallelim -mergeicmps -inject-tli-mappings -elim-avail-extern -always-inline -loop-unswitch -partial-inliner -always-inline -licm -lowerswitch -rewrite-statepoints-for-gc -loop-versioning -barrier -mem2reg -loop-reroll -lowerswitch -loop-data-prefetch -coro-elide -lowerswitch -simplifycfg -load-store-vectorizer -constprop -strip -strip -die -slsr -elim-avail-extern -lowerinvoke -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9850746268656717,12.014153242111206,opt -pgo-memop-opt -early-cse-memssa -loop-unroll-and-jam -irce -loop-instsimplify -loop-guard-widening -rewrite-statepoints-for-gc -lower-guard-intrinsic -float2int -nary-reassociate -consthoist -hotcoldsplit -loop-distribute -bdce -nary-reassociate -libcalls-shrinkwrap -load-store-vectorizer -elim-avail-extern -slsr -simple-loop-unswitch -sroa -lcssa -early-cse-memssa -lower-constant-intrinsics -nary-reassociate -lcssa -loop-distribute -instnamer -cross-dso-cfi -coro-split -canonicalize-aliases -loop-unswitch -partially-inline-libcalls -name-anon-globals -constprop -coro-split -strip -separate-const-offset-from-gep -loop-load-elim -sancov -mldst-motion -ipconstprop -always-inline -load-store-vectorizer -loop-unroll-and-jam -slp-vectorizer -elim-avail-extern -adce -newgvn -mem2reg -loop-predication -indvars -rewrite-statepoints-for-gc -lowerinvoke -reg2mem -instsimplify -partially-inline-libcalls -loop-deletion -add-discriminators -loop-simplify -forceattrs -sroa -globalsplit -loweratomic -gvn -bdce -rewrite-statepoints-for-gc -reg2mem -mldst-motion -coro-split -mergefunc -sroa -post-inline-ee-instrument -float2int -loop-deletion -loop-unroll-and-jam -name-anon-globals -canonicalize-aliases -aggressive-instcombine -alignment-from-assumptions -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9850746268656717,12.287578821182251,opt -inject-tli-mappings -strip-nondebug -die -constprop -loop-fusion -sancov -sroa -lcssa -instcombine -globaldce -inferattrs -load-store-vectorizer -aggressive-instcombine -partial-inliner -barrier -strip-nondebug -loop-idiom -mergeicmps -cross-dso-cfi -sancov -elim-avail-extern -sroa -simplifycfg -loop-sink -loop-instsimplify -mldst-motion -dse -newgvn -ipconstprop -instsimplify -dce -break-crit-edges -add-discriminators -dse -globalsplit -mem2reg -tailcallelim -loop-interchange -speculative-execution -simplifycfg -lower-expect -reassociate -speculative-execution -loop-unroll-and-jam -jump-threading -inject-tli-mappings -sink -loop-simplify -insert-gcov-profiling -loop-load-elim -cross-dso-cfi -loop-distribute -simplifycfg -die -mem2reg -callsite-splitting -lower-constant-intrinsics -constprop -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9888059701492538,12.100034475326538,opt -inferattrs -mergeicmps -loop-sink -mem2reg -attributor -insert-gcov-profiling -add-discriminators -sink -loop-data-prefetch -loop-instsimplify -loop-fusion -div-rem-pairs -deadargelim -coro-early -speculative-execution -argpromotion -coro-cleanup -load-store-vectorizer -inferattrs -loop-simplifycfg -early-cse-memssa -indvars -mem2reg -constprop -adce -ipconstprop -strip-nondebug -die -insert-gcov-profiling -constprop -gvn -loop-sink -instsimplify -guard-widening -loop-unroll -prune-eh -constmerge -lower-widenable-condition -redundant-dbg-inst-elim -lowerinvoke -flattencfg -loop-simplify -mergereturn -tailcallelim -loop-unroll -prune-eh -sccp -separate-const-offset-from-gep -loop-versioning -lower-guard-intrinsic -early-cse-memssa -mergefunc -elim-avail-extern -correlated-propagation -ipconstprop -partially-inline-libcalls -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9888059701492539,12.108437776565552,opt -sancov -strip-nondebug -globaldce -add-discriminators -loop-reduce -strip-nondebug -rpo-functionattrs -partially-inline-libcalls -newgvn -sancov -cross-dso-cfi -simplifycfg -jump-threading -loop-instsimplify -aggressive-instcombine -reassociate -lowerswitch -instcombine -lcssa -loop-simplify -simple-loop-unswitch -memcpyopt -nary-reassociate -die -coro-split -loop-vectorize -indvars -lower-widenable-condition -globalsplit -partially-inline-libcalls -die -always-inline -sccp -dce -loop-unroll-and-jam -lower-expect -dse -lower-widenable-condition -early-cse-memssa -loop-instsimplify -always-inline -canonicalize-aliases -die -gvn-hoist -slp-vectorizer -memcpyopt -jump-threading -loop-instsimplify -globaldce -loop-fusion -loop-unroll -flattencfg -coro-elide -constprop -speculative-execution -loop-fusion -lower-widenable-condition -coro-split -lower-guard-intrinsic -rewrite-statepoints-for-gc -barrier -reassociate -loop-interchange -globaldce -coro-elide -float2int -sancov -lower-constant-intrinsics -mem2reg -lower-widenable-condition -instcombine -newgvn -simple-loop-unswitch -instcombine -partial-inliner -consthoist -sccp -tailcallelim -coro-cleanup -lower-expect -loop-interchange -functionattrs -inferattrs -coro-elide -mldst-motion -newgvn -post-inline-ee-instrument -post-inline-ee-instrument -adce -constprop -loop-predication -globalsplit -reassociate -post-inline-ee-instrument -lowerswitch -sroa -loop-deletion -simplifycfg -tailcallelim -constprop -gvn input.bc -o output.bc +benchmark://cbench-v1/susan,0.977476324545687,14.979936361312866,opt -canonicalize-aliases -loop-guard-widening -float2int -loop-versioning-licm -redundant-dbg-inst-elim -callsite-splitting -loop-load-elim -lowerswitch -loop-unroll-and-jam -lower-guard-intrinsic -forceattrs -instnamer -licm -memcpyopt -prune-eh -loop-unswitch -correlated-propagation -adce -called-value-propagation -loop-predication -loop-load-elim -lower-matrix-intrinsics -sccp -instcombine -globalopt -loop-simplifycfg -lcssa -guard-widening -die -alignment-from-assumptions -partially-inline-libcalls -loop-unroll-and-jam -inject-tli-mappings -sancov -redundant-dbg-inst-elim -cross-dso-cfi -float2int -lower-constant-intrinsics -argpromotion -elim-avail-extern -loop-unroll -argpromotion -loop-predication -lowerswitch -sccp -memcpyopt -dce -add-discriminators -flattencfg -guard-widening -instcombine -speculative-execution -coro-cleanup -ipsccp -early-cse-memssa -instcombine -mem2reg -lower-guard-intrinsic -insert-gcov-profiling -separate-const-offset-from-gep -alignment-from-assumptions -strip -lowerinvoke -elim-avail-extern -scalarizer -insert-gcov-profiling -lower-expect -strip-debug-declare -licm -bdce -hotcoldsplit -sccp -loop-guard-widening -simple-loop-unswitch -loop-versioning -prune-eh -strip-nondebug -gvn -simplifycfg -loop-load-elim -redundant-dbg-inst-elim -coro-elide -prune-eh -partial-inliner -instsimplify -loop-guard-widening -loop-vectorize -barrier -strip-dead-prototypes -inferattrs -adce -load-store-vectorizer -div-rem-pairs -mergeicmps -lower-constant-intrinsics -globalopt -coro-split -reassociate -nary-reassociate -indvars -memcpyopt -scalarizer -lower-guard-intrinsic -ipsccp -bdce -div-rem-pairs -separate-const-offset-from-gep -mldst-motion -alignment-from-assumptions -separate-const-offset-from-gep -ee-instrument -consthoist -post-inline-ee-instrument -correlated-propagation -globaldce -loop-guard-widening -loop-predication -gvn-hoist -guard-widening -always-inline -rewrite-statepoints-for-gc -callsite-splitting -rewrite-statepoints-for-gc -mem2reg -instsimplify -strip -lower-expect -lower-matrix-intrinsics -deadargelim -lcssa -loop-simplify -slp-vectorizer -strip-debug-declare -loop-simplify -forceattrs -early-cse-memssa -inject-tli-mappings -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,0.9824673662656768,14.057718515396118,opt -bdce -partially-inline-libcalls -mem2reg -sccp -attributor -pgo-memop-opt -constmerge -ipconstprop -coro-elide -loop-interchange -insert-gcov-profiling -constmerge -strip-nondebug -loweratomic -insert-gcov-profiling -guard-widening -guard-widening -gvn -loop-load-elim -loop-idiom -instcombine -coro-elide -strip-dead-prototypes -sink -callsite-splitting -mem2reg -loop-interchange -always-inline -dce -elim-avail-extern -newgvn -called-value-propagation -lower-guard-intrinsic -lower-matrix-intrinsics -div-rem-pairs -globaldce -instnamer -sroa -nary-reassociate -prune-eh -separate-const-offset-from-gep -lower-guard-intrinsic -newgvn -sancov -sccp -infer-address-spaces -bdce -partial-inliner -mergeicmps -sccp -rewrite-statepoints-for-gc -early-cse-memssa -early-cse-memssa -dse -called-value-propagation -div-rem-pairs -globalopt -strip-dead-prototypes -slsr -functionattrs -flattencfg -callsite-splitting -loop-predication -forceattrs -indvars -die -loop-reroll -rpo-functionattrs -ipconstprop -gvn-hoist -post-inline-ee-instrument -redundant-dbg-inst-elim -post-inline-ee-instrument -loweratomic -loop-interchange -lower-guard-intrinsic -nary-reassociate -loop-instsimplify -sink -instsimplify -globaldce -loop-versioning-licm -inferattrs -attributor -jump-threading input.bc -o output.bc +benchmark://cbench-v1/susan,0.991041719989762,14.902771949768066,opt -argpromotion -loweratomic -loop-unroll -slsr -loop-versioning -consthoist -functionattrs -alignment-from-assumptions -alignment-from-assumptions -dse -strip-dead-prototypes -loop-data-prefetch -lower-guard-intrinsic -loop-fusion -irce -dse -float2int -loop-distribute -correlated-propagation -elim-avail-extern -rewrite-statepoints-for-gc -prune-eh -loop-fusion -prune-eh -loop-distribute -redundant-dbg-inst-elim -load-store-vectorizer -alignment-from-assumptions -prune-eh -loop-unroll -simplifycfg -argpromotion -lower-guard-intrinsic -mem2reg -strip-nondebug -gvn -elim-avail-extern -loop-deletion -loop-sink -functionattrs -simple-loop-unswitch -loop-unroll-and-jam -separate-const-offset-from-gep -sccp -strip -simple-loop-unswitch -mergeicmps -mergeicmps -licm -name-anon-globals -irce -correlated-propagation -coro-early -loop-load-elim -early-cse-memssa -strip -rewrite-statepoints-for-gc -barrier -loop-data-prefetch -ee-instrument -libcalls-shrinkwrap -tailcallelim -strip-nondebug -canonicalize-aliases -elim-avail-extern -loop-fusion -early-cse-memssa -strip-nondebug -loop-sink -lowerinvoke -ipconstprop -inferattrs -slsr -ee-instrument -loop-deletion -coro-early -dse -lowerswitch -loop-reroll -inject-tli-mappings -instnamer -sink -loop-simplifycfg -lowerinvoke -load-store-vectorizer -speculative-execution -canonicalize-aliases -loop-versioning -simple-loop-unswitch -loop-fusion -adce -dce -loop-interchange -loop-load-elim -always-inline -elim-avail-extern -loop-distribute -always-inline -scalarizer -instsimplify -mldst-motion -mergefunc -newgvn -constmerge -ipsccp -separate-const-offset-from-gep -flattencfg -lower-matrix-intrinsics -simplifycfg -indvars -loop-unswitch -speculative-execution -adce -simple-loop-unswitch -separate-const-offset-from-gep -loop-simplify -loop-interchange -prune-eh -licm -mem2reg -speculative-execution -globalopt -instcombine -loop-versioning-licm -sccp -deadargelim -correlated-propagation -ipsccp -slp-vectorizer -load-store-vectorizer -loop-unroll-and-jam -licm -slp-vectorizer -forceattrs -loop-vectorize -partially-inline-libcalls -indvars -scalarizer -redundant-dbg-inst-elim -newgvn -mergereturn -slsr -strip-debug-declare -consthoist -loop-interchange -constmerge -instsimplify -constprop -inferattrs -add-discriminators -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/susan,0.9928333759918095,15.974971294403076,opt -dse -add-discriminators -mem2reg -loop-predication -loop-reroll -prune-eh -guard-widening -irce -strip-nondebug -loop-distribute -separate-const-offset-from-gep -loop-versioning-licm -ipconstprop -memcpyopt -newgvn -newgvn -consthoist -name-anon-globals -correlated-propagation -mldst-motion -redundant-dbg-inst-elim -licm -callsite-splitting -constmerge -scalarizer -canonicalize-aliases -argpromotion -instcombine -loop-unroll -instsimplify -nary-reassociate -loop-simplify -early-cse-memssa -loop-unswitch -mergeicmps -canonicalize-aliases -ipsccp -globaldce -loop-fusion -lower-matrix-intrinsics -post-inline-ee-instrument -post-inline-ee-instrument -loop-versioning-licm -sink -strip -dse -libcalls-shrinkwrap -float2int -loop-instsimplify -break-crit-edges -sccp -constmerge -alignment-from-assumptions -add-discriminators -argpromotion -instcombine -loweratomic -constmerge -loop-instsimplify -prune-eh -loop-vectorize -float2int -lower-expect -lcssa -forceattrs -coro-cleanup -div-rem-pairs -loop-fusion -nary-reassociate -argpromotion -irce -separate-const-offset-from-gep -separate-const-offset-from-gep -globalopt -redundant-dbg-inst-elim -lower-matrix-intrinsics -loop-vectorize -loop-versioning -gvn-hoist -loop-data-prefetch -correlated-propagation -loop-unswitch -ipsccp -add-discriminators -loop-guard-widening -globaldce -ee-instrument -speculative-execution -loop-data-prefetch -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,0.9929613514205275,15.52566409111023,opt -constprop -lowerswitch -float2int -barrier -loop-deletion -loop-predication -lower-constant-intrinsics -speculative-execution -early-cse-memssa -lower-guard-intrinsic -reassociate -globaldce -load-store-vectorizer -insert-gcov-profiling -loop-fusion -globaldce -prune-eh -prune-eh -div-rem-pairs -sroa -correlated-propagation -loop-guard-widening -coro-early -mergereturn -gvn -add-discriminators -sccp -speculative-execution -break-crit-edges -strip-dead-prototypes -rpo-functionattrs -lower-expect -loop-sink -rewrite-statepoints-for-gc -callsite-splitting -mergefunc -infer-address-spaces -rpo-functionattrs -coro-early -speculative-execution -aggressive-instcombine -globaldce -loop-guard-widening -strip-nondebug -indvars -loop-deletion -coro-early -reassociate -loop-idiom -loop-vectorize -strip -bdce -scalarizer -callsite-splitting -die -gvn -globalopt -mem2reg -loop-load-elim -loop-load-elim -mergefunc -instsimplify -loop-instsimplify -lower-matrix-intrinsics -attributor -callsite-splitting -lower-guard-intrinsic -scalarizer -hotcoldsplit -loop-unroll-and-jam -loop-versioning-licm -lower-widenable-condition -simple-loop-unswitch -mergereturn -globalsplit -canonicalize-aliases -lower-constant-intrinsics -consthoist -pgo-memop-opt -hotcoldsplit -insert-gcov-profiling -callsite-splitting -slp-vectorizer -alignment-from-assumptions -inject-tli-mappings -guard-widening -add-discriminators -early-cse-memssa -elim-avail-extern -licm -pgo-memop-opt -functionattrs -loop-sink -jump-threading -tailcallelim -name-anon-globals -loop-reroll -cross-dso-cfi -sccp -dce -loop-instsimplify -globalopt -always-inline -elim-avail-extern -globalopt -nary-reassociate -early-cse-memssa -partial-inliner -loop-distribute -indvars -simplifycfg -partially-inline-libcalls -div-rem-pairs -loop-load-elim -loop-fusion -inject-tli-mappings -sancov -loop-instsimplify -constprop -die -flattencfg -loop-predication -gvn-hoist -adce -loop-load-elim -scalarizer -reassociate -callsite-splitting -cross-dso-cfi -lower-matrix-intrinsics -name-anon-globals -lower-matrix-intrinsics -loop-guard-widening -canonicalize-aliases -loop-distribute -sancov -ipsccp -coro-cleanup -reg2mem -load-store-vectorizer -deadargelim -loop-data-prefetch -ipconstprop -load-store-vectorizer -canonicalize-aliases -loop-guard-widening -attributor -ipsccp -loop-unroll -mergereturn -loop-versioning -add-discriminators -load-store-vectorizer -barrier -loop-interchange -guard-widening -loop-reroll -simple-loop-unswitch -gvn-hoist -functionattrs -elim-avail-extern -partially-inline-libcalls -cross-dso-cfi -coro-early -ipconstprop -reassociate -strip-dead-prototypes -mergefunc -sroa -rpo-functionattrs -add-discriminators -scalarizer -float2int -lower-expect -hotcoldsplit -dce -coro-split -name-anon-globals -simplifycfg -rewrite-statepoints-for-gc -callsite-splitting -speculative-execution -adce -loop-unroll -constmerge -early-cse-memssa -sccp -constmerge -loop-instsimplify -adce -attributor -sccp -instsimplify -libcalls-shrinkwrap -loop-guard-widening -hotcoldsplit -prune-eh -canonicalize-aliases -constmerge -lowerinvoke -loop-unswitch -name-anon-globals -cross-dso-cfi -redundant-dbg-inst-elim -loop-simplifycfg -rewrite-statepoints-for-gc -strip-debug-declare -loop-data-prefetch -coro-early -mergereturn -scalarizer -simple-loop-unswitch -loweratomic -lower-constant-intrinsics -gvn-hoist -inferattrs -lower-matrix-intrinsics -slsr -libcalls-shrinkwrap -gvn -sink -mergefunc -lower-guard-intrinsic -flattencfg -instnamer -licm -guard-widening -always-inline -flattencfg -functionattrs -barrier -instcombine input.bc -o output.bc +benchmark://cbench-v1/susan,0.9946250319938573,311.2034537792206,opt -irce -dce -speculative-execution -rewrite-statepoints-for-gc -aggressive-instcombine -ipsccp -loop-distribute -slp-vectorizer -loop-simplify -loop-rotate -memcpyopt -reg2mem -inferattrs -inferattrs -hotcoldsplit -lower-constant-intrinsics -loop-guard-widening -consthoist -pgo-memop-opt -always-inline -loop-unroll-and-jam -cross-dso-cfi -loop-fusion -speculative-execution -name-anon-globals -lcssa -sink -strip-dead-prototypes -loop-versioning -barrier -loop-data-prefetch -loop-reduce -dce -sink -ipsccp -mem2reg -scalarizer -globalopt -bdce -newgvn -coro-elide -libcalls-shrinkwrap -loop-data-prefetch -coro-split -mem2reg -speculative-execution -speculative-execution -sancov -globalopt -infer-address-spaces -loop-simplify -globaldce -post-inline-ee-instrument -loop-data-prefetch -break-crit-edges -coro-elide -partial-inliner -forceattrs -constprop -break-crit-edges -ee-instrument -indvars -loop-unroll -mergefunc -coro-split -float2int -argpromotion -correlated-propagation -lowerswitch -simplifycfg -aggressive-instcombine -strip -infer-address-spaces -mem2reg -reassociate -hotcoldsplit -coro-early -lower-expect -alignment-from-assumptions -jump-threading -loop-guard-widening -instnamer -constprop -inferattrs -gvn -early-cse-memssa -instcombine -loop-versioning -gvn -loop-sink -gvn-hoist -slp-vectorizer -sancov -guard-widening -lower-widenable-condition -mergeicmps -constmerge -indvars -irce -pgo-memop-opt -lower-expect -lowerswitch -loop-load-elim -div-rem-pairs -ipconstprop -functionattrs -dse -lower-widenable-condition -loop-fusion -aggressive-instcombine -elim-avail-extern -sroa -sccp -flattencfg -loop-simplify -loop-versioning -simplifycfg -flattencfg -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/susan,0.9974404914256462,14.56405782699585,opt -mem2reg -scalarizer -instsimplify -sink -loop-instsimplify -inferattrs -loop-versioning-licm -sancov -early-cse-memssa -dse -mergeicmps -called-value-propagation -simple-loop-unswitch -die -simplifycfg -add-discriminators -loop-sink -flattencfg -sink -libcalls-shrinkwrap -always-inline -coro-cleanup -mldst-motion -loop-versioning -partial-inliner -aggressive-instcombine -reg2mem -loop-reroll -name-anon-globals -lcssa -sroa -slsr -loop-unswitch -hotcoldsplit -sccp -reassociate -strip-dead-prototypes -partially-inline-libcalls -partial-inliner -add-discriminators -lowerinvoke -globalopt -rewrite-statepoints-for-gc -strip -sccp -instsimplify -loop-instsimplify -sccp -loop-simplifycfg -div-rem-pairs -infer-address-spaces -mldst-motion -partial-inliner -early-cse-memssa -sccp -strip-debug-declare -indvars -correlated-propagation -deadargelim -strip -memcpyopt -sancov -simple-loop-unswitch -inferattrs -loop-data-prefetch -bdce -inject-tli-mappings -ipsccp -loop-predication -licm -inject-tli-mappings -flattencfg -elim-avail-extern -simplifycfg -sancov -argpromotion -ee-instrument -pgo-memop-opt -lower-widenable-condition -loop-predication -rewrite-statepoints-for-gc -loop-unswitch -loop-fusion -loop-load-elim -lcssa -loop-reroll -lower-expect -instsimplify -scalarizer -guard-widening -partially-inline-libcalls -instcombine -callsite-splitting -coro-cleanup -jump-threading -deadargelim -loop-vectorize -loop-reroll -bdce -lower-matrix-intrinsics -scalarizer -early-cse-memssa -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/susan,1.000767852572306,13.883830785751343,opt -speculative-execution -elim-avail-extern -newgvn -strip-dead-prototypes -hotcoldsplit -loop-vectorize -die -simplifycfg -mldst-motion -lower-guard-intrinsic -consthoist -loop-unroll-and-jam -loop-load-elim -loweratomic -strip-nondebug -post-inline-ee-instrument -guard-widening -always-inline -ee-instrument -loop-sink -loop-unroll -insert-gcov-profiling -loop-data-prefetch -dse -consthoist -loop-reroll -mergefunc -partially-inline-libcalls -strip-dead-prototypes -die -lower-constant-intrinsics -alignment-from-assumptions -attributor -attributor -correlated-propagation -simple-loop-unswitch -consthoist -loop-instsimplify -add-discriminators -coro-cleanup -nary-reassociate -loop-distribute -newgvn -break-crit-edges -lcssa -loop-versioning -post-inline-ee-instrument -pgo-memop-opt -loop-simplify -coro-split -loop-unroll -partially-inline-libcalls -rpo-functionattrs -guard-widening -lower-matrix-intrinsics -newgvn -sroa -newgvn -loweratomic -mergereturn -strip -reg2mem -coro-split -early-cse-memssa -globalsplit -coro-early -rewrite-statepoints-for-gc -loop-load-elim -loop-predication -strip-dead-prototypes -loop-unswitch -consthoist -slsr -inferattrs -newgvn -loop-unroll-and-jam -deadargelim -irce -lower-expect -loop-interchange -loop-unroll -constprop -loop-guard-widening -globalopt -rewrite-statepoints-for-gc -sroa -callsite-splitting -globalsplit -elim-avail-extern -globalsplit -indvars -reassociate -strip-nondebug -dce -mergeicmps -dce -guard-widening -name-anon-globals -constprop -irce -sancov -gvn -instcombine -loop-vectorize -constprop -speculative-execution -canonicalize-aliases -break-crit-edges -add-discriminators -irce -loop-load-elim -bdce -called-value-propagation -loop-unroll-and-jam -loop-distribute -loop-idiom -slsr -argpromotion -pgo-memop-opt -infer-address-spaces -dse -inferattrs -loop-reroll -correlated-propagation -lower-widenable-condition -loop-simplify -indvars -callsite-splitting -scalarizer -lowerinvoke -jump-threading -loop-predication -hotcoldsplit -lower-matrix-intrinsics -post-inline-ee-instrument -mergeicmps -infer-address-spaces -loop-interchange -loop-vectorize -instsimplify input.bc -o output.bc +benchmark://cbench-v1/susan,1.0015357051446123,13.91321086883545,opt -sroa -jump-threading -sccp -lower-constant-intrinsics -ee-instrument -rpo-functionattrs -jump-threading -simplifycfg -mem2reg -name-anon-globals -coro-split -alignment-from-assumptions -loop-interchange -loop-data-prefetch -reg2mem -loop-unroll-and-jam -infer-address-spaces -loop-fusion -sroa -globaldce -callsite-splitting -loweratomic -loop-deletion -post-inline-ee-instrument -loop-instsimplify -indvars -slsr -ipconstprop -consthoist -simplifycfg -mergefunc -aggressive-instcombine -instsimplify -canonicalize-aliases -strip-dead-prototypes -partially-inline-libcalls -loop-interchange -gvn-hoist -add-discriminators -correlated-propagation -constprop -loop-versioning-licm -loop-versioning -instcombine -globalopt -float2int -float2int -inject-tli-mappings -dse -constmerge -loop-unroll -forceattrs -strip-dead-prototypes -aggressive-instcombine -loop-fusion -coro-split -ee-instrument -loop-unroll -simplifycfg -mldst-motion -indvars -inferattrs -loop-instsimplify -sccp -rewrite-statepoints-for-gc -pgo-memop-opt -add-discriminators -insert-gcov-profiling -loweratomic -loop-simplifycfg -scalarizer -loop-guard-widening -strip-debug-declare -constprop -loop-instsimplify -globaldce -partial-inliner -simple-loop-unswitch -called-value-propagation -loop-guard-widening -prune-eh -alignment-from-assumptions -canonicalize-aliases -lower-widenable-condition -loop-guard-widening -licm -rewrite-statepoints-for-gc -float2int -infer-address-spaces -elim-avail-extern -slp-vectorizer -consthoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/susan,1.0239314051702073,13.509535074234009,opt -canonicalize-aliases -lower-matrix-intrinsics -memcpyopt -scalarizer -mem2reg -insert-gcov-profiling -newgvn -reg2mem -argpromotion -strip -simplifycfg -constprop -jump-threading -reg2mem -consthoist -barrier -partial-inliner -flattencfg -slp-vectorizer -add-discriminators -loop-instsimplify -instnamer -functionattrs -barrier -loop-unroll -loop-unroll -loop-sink -simplifycfg -die -loop-interchange -simple-loop-unswitch -reg2mem -loweratomic -globalsplit -mldst-motion -instnamer -loop-data-prefetch -rpo-functionattrs -lower-guard-intrinsic -lowerswitch -reassociate -mergereturn -indvars -deadargelim -speculative-execution -newgvn -attributor -load-store-vectorizer -coro-elide -loop-unswitch -dse -sccp -infer-address-spaces -loop-unroll-and-jam -loop-unroll-and-jam -add-discriminators -loop-data-prefetch -loop-simplifycfg -ipconstprop -div-rem-pairs -elim-avail-extern -loop-versioning -gvn -dce -rewrite-statepoints-for-gc -argpromotion -loop-instsimplify -strip-dead-prototypes -coro-cleanup -loop-unroll-and-jam -instcombine -loop-data-prefetch -newgvn -lower-widenable-condition -strip-dead-prototypes -inferattrs -tailcallelim -dce -div-rem-pairs -loop-guard-widening -dse -partial-inliner -coro-elide -instcombine -simple-loop-unswitch -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9724202156237686,42.7266845703125,opt -break-crit-edges -guard-widening -partially-inline-libcalls -correlated-propagation -argpromotion -loop-versioning -redundant-dbg-inst-elim -dce -indvars -loop-instsimplify -loop-simplifycfg -loop-deletion -hotcoldsplit -globalopt -loop-data-prefetch -inject-tli-mappings -rpo-functionattrs -loop-unroll -functionattrs -lowerinvoke -globalsplit -lowerswitch -mergereturn -loop-predication -functionattrs -lcssa -post-inline-ee-instrument -argpromotion -licm -loop-data-prefetch -scalarizer -deadargelim -slsr -slsr -loop-deletion -guard-widening -strip-nondebug -die -libcalls-shrinkwrap -called-value-propagation -always-inline -hotcoldsplit -separate-const-offset-from-gep -loop-deletion -ipconstprop -mem2reg -flattencfg -loop-simplifycfg -insert-gcov-profiling -simplifycfg -forceattrs -gvn-hoist -alignment-from-assumptions -inferattrs -jump-threading -infer-address-spaces -slsr -loop-deletion -jump-threading -lower-expect -loop-data-prefetch -speculative-execution -newgvn -break-crit-edges -globaldce -instcombine -loweratomic -callsite-splitting -dce -die -inject-tli-mappings -slp-vectorizer -lowerinvoke -barrier -ipsccp -sccp -post-inline-ee-instrument -loop-versioning -slsr -dce -coro-split -gvn -memcpyopt -memcpyopt -loop-vectorize -loop-deletion -loop-sink -constprop -loop-vectorize -loop-simplify -mergefunc -ipsccp -loop-distribute -gvn -insert-gcov-profiling -coro-cleanup -loop-unroll -jump-threading -gvn -cross-dso-cfi -prune-eh -constprop -loop-guard-widening -lower-widenable-condition -mergefunc -adce -loop-idiom -loop-versioning-licm -coro-split -sroa -reassociate -coro-split -loop-vectorize -early-cse-memssa -loop-interchange -flattencfg -loop-reroll -slsr -strip-dead-prototypes -nary-reassociate -strip-dead-prototypes -loweratomic -gvn-hoist -attributor -slsr -name-anon-globals -prune-eh -called-value-propagation -cross-dso-cfi -cross-dso-cfi -gvn -div-rem-pairs -loop-versioning -elim-avail-extern -lower-matrix-intrinsics -instnamer -nary-reassociate -load-store-vectorizer -constmerge -instcombine -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9850997528564778,43.625590324401855,opt -reassociate -lower-widenable-condition -nary-reassociate -loop-idiom -always-inline -cross-dso-cfi -infer-address-spaces -sink -bdce -loop-unroll -load-store-vectorizer -separate-const-offset-from-gep -deadargelim -bdce -callsite-splitting -loop-distribute -barrier -deadargelim -loop-unswitch -loop-versioning-licm -rpo-functionattrs -loop-guard-widening -loop-deletion -loop-idiom -canonicalize-aliases -speculative-execution -dse -break-crit-edges -loweratomic -cross-dso-cfi -div-rem-pairs -correlated-propagation -libcalls-shrinkwrap -inferattrs -early-cse-memssa -mem2reg -partial-inliner -loop-simplifycfg -loop-simplify -argpromotion -barrier -loop-reduce -canonicalize-aliases -slsr -speculative-execution -sancov -mldst-motion -constmerge -flattencfg -div-rem-pairs -redundant-dbg-inst-elim -lower-expect -instcombine -dce -libcalls-shrinkwrap -argpromotion -break-crit-edges -ipsccp -simple-loop-unswitch -simplifycfg -nary-reassociate -canonicalize-aliases -hotcoldsplit -mergeicmps -lower-constant-intrinsics -instsimplify input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9884308177226978,42.622666358947754,opt -strip -globaldce -insert-gcov-profiling -irce -sancov -redundant-dbg-inst-elim -consthoist -sroa -globaldce -loop-fusion -slsr -jump-threading -tailcallelim -indvars -globalsplit -die -newgvn -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9915111572764067,39.32834792137146,opt -lower-expect -simplifycfg -loop-instsimplify -insert-gcov-profiling -barrier -consthoist -post-inline-ee-instrument -tailcallelim -strip-nondebug -loop-simplify -loop-simplify -coro-cleanup -loop-distribute -name-anon-globals -sroa -bdce -ipsccp -insert-gcov-profiling -dce -globaldce -mem2reg -rpo-functionattrs -prune-eh -mergereturn -loop-versioning-licm -loop-distribute -bdce -ipconstprop -strip-debug-declare -bdce -gvn-hoist -alignment-from-assumptions -loop-data-prefetch -lower-expect -early-cse-memssa -instnamer -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9944124073211789,42.087604999542236,opt -load-store-vectorizer -ipconstprop -canonicalize-aliases -libcalls-shrinkwrap -loop-unswitch -loop-guard-widening -loop-sink -argpromotion -dce -loop-instsimplify -loop-unroll -sccp -barrier -mem2reg -dce -separate-const-offset-from-gep -loweratomic -pgo-memop-opt -globalopt -irce -irce -called-value-propagation -lower-matrix-intrinsics -irce -indvars -sancov -called-value-propagation -coro-elide -break-crit-edges -rewrite-statepoints-for-gc -loop-deletion -prune-eh -loop-data-prefetch -strip-debug-declare -lower-guard-intrinsic -canonicalize-aliases -elim-avail-extern -lower-widenable-condition -newgvn -strip -called-value-propagation -coro-early -strip -ipsccp -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9955585801783728,44.708903789520264,opt -inject-tli-mappings -sroa -loop-predication -globalopt -rewrite-statepoints-for-gc -sink -loop-instsimplify -functionattrs -loop-idiom -canonicalize-aliases -separate-const-offset-from-gep -aggressive-instcombine -ipconstprop -loop-simplify -lower-expect -gvn -scalarizer -reassociate -die -loop-interchange -sroa -lower-widenable-condition -consthoist -redundant-dbg-inst-elim -hotcoldsplit -constprop -loop-reroll -consthoist -sroa -canonicalize-aliases -strip -mergeicmps -add-discriminators -rpo-functionattrs -slsr -irce -constprop -constprop -sancov -lower-guard-intrinsic -break-crit-edges -loop-simplify -indvars -loop-instsimplify -mergefunc -loweratomic -irce -gvn-hoist -add-discriminators -instsimplify -aggressive-instcombine -coro-cleanup -inferattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,0.9997492746874888,38.4443724155426,opt -consthoist -bdce -sroa -simplifycfg -early-cse-memssa -jump-threading -dce -lower-expect -gvn -gvn-hoist -redundant-dbg-inst-elim -constmerge -mergefunc -lowerinvoke -speculative-execution -slp-vectorizer -irce -mergereturn -float2int -early-cse-memssa -lowerinvoke -prune-eh -prune-eh -loop-reroll -lower-guard-intrinsic -loop-guard-widening -lowerinvoke -newgvn -post-inline-ee-instrument -aggressive-instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0063039507145672,50.186365604400635,opt -globaldce -lower-constant-intrinsics -coro-early -loop-unroll-and-jam -mergeicmps -lower-guard-intrinsic -loop-reduce -lower-guard-intrinsic -irce -bdce -callsite-splitting -elim-avail-extern -newgvn -float2int -simplifycfg -break-crit-edges -inject-tli-mappings -mergeicmps -add-discriminators -hotcoldsplit -deadargelim -attributor -lower-constant-intrinsics -float2int -name-anon-globals -always-inline -correlated-propagation -sroa -consthoist -strip-dead-prototypes -ipsccp -memcpyopt -globaldce -loop-instsimplify -loop-interchange -strip -reassociate -gvn -loop-versioning -irce -instnamer -barrier -lower-expect -barrier -loop-simplifycfg -strip-debug-declare -lower-guard-intrinsic -cross-dso-cfi -loop-instsimplify -gvn-hoist -gvn-hoist -sancov -mergereturn -aggressive-instcombine -mergefunc -bdce -loop-idiom -licm -coro-cleanup -sccp -ee-instrument -gvn -canonicalize-aliases -lower-widenable-condition -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0131809878577311,40.80617117881775,opt -functionattrs -mem2reg -tailcallelim -loop-distribute -break-crit-edges -gvn-hoist -rewrite-statepoints-for-gc -coro-elide -float2int -globalsplit -ipconstprop -guard-widening -infer-address-spaces -scalarizer -lower-expect -add-discriminators -bdce -insert-gcov-profiling -loop-simplify -irce -lowerinvoke -loop-reroll -slp-vectorizer -slsr -rewrite-statepoints-for-gc -forceattrs -licm -sccp -simple-loop-unswitch -loop-versioning -coro-early -slsr -coro-early -instsimplify -loop-versioning-licm -coro-cleanup -irce -sancov -indvars -elim-avail-extern -div-rem-pairs -bdce -called-value-propagation -loop-load-elim -loop-idiom -mem2reg -speculative-execution -consthoist -strip -licm -loop-predication -rewrite-statepoints-for-gc -insert-gcov-profiling -gvn -post-inline-ee-instrument -dse -nary-reassociate -strip-debug-declare -lower-expect -loop-unroll-and-jam -lower-guard-intrinsic -scalarizer -early-cse-memssa -rpo-functionattrs -sancov -loop-load-elim -loop-reduce -speculative-execution -functionattrs -mergefunc -memcpyopt -irce -loop-predication -deadargelim -strip-nondebug -functionattrs -speculative-execution -gvn -instcombine -memcpyopt -sccp -prune-eh -loop-vectorize -dse -reassociate -lower-matrix-intrinsics -simplifycfg -coro-cleanup -lower-constant-intrinsics -alignment-from-assumptions -cross-dso-cfi -irce -loop-unroll -instcombine -hotcoldsplit -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0268276084386976,46.057499408721924,opt -coro-split -loop-instsimplify -post-inline-ee-instrument -insert-gcov-profiling -guard-widening -loop-unroll -strip -dce -guard-widening -indvars -sancov -simplifycfg -lcssa -flattencfg -called-value-propagation -loop-distribute -jump-threading -lower-matrix-intrinsics -simple-loop-unswitch -mergefunc -loop-unroll -insert-gcov-profiling -mem2reg -adce -consthoist -strip-debug-declare -lower-expect -loop-guard-widening -loop-load-elim -mergefunc -deadargelim -irce -strip-dead-prototypes -gvn-hoist -slsr -loop-versioning -loop-fusion -memcpyopt -functionattrs -loop-distribute -loop-interchange -reassociate -barrier -float2int -pgo-memop-opt -indvars -slp-vectorizer -prune-eh -lower-widenable-condition -argpromotion -alignment-from-assumptions -elim-avail-extern -forceattrs -coro-elide -instcombine -aggressive-instcombine -reassociate -mem2reg -loop-versioning-licm -gvn -speculative-execution -loop-versioning-licm -bdce -tailcallelim -reg2mem -lower-constant-intrinsics -loop-fusion -sancov -mem2reg -instsimplify -loop-vectorize -globalsplit -partial-inliner -strip-debug-declare -flattencfg -loop-guard-widening -newgvn -irce -loop-versioning-licm -prune-eh -functionattrs -load-store-vectorizer -newgvn -lcssa -inject-tli-mappings -globalsplit -loop-deletion -loop-sink -inferattrs -loop-load-elim -hotcoldsplit -simple-loop-unswitch -loop-interchange -rewrite-statepoints-for-gc -hotcoldsplit -loop-data-prefetch -hotcoldsplit -functionattrs -flattencfg -deadargelim -aggressive-instcombine -post-inline-ee-instrument -break-crit-edges -bdce -lower-widenable-condition -flattencfg -inferattrs -gvn -globaldce -indvars -strip-debug-declare -licm -mergefunc -constmerge -irce -coro-split -post-inline-ee-instrument -loop-load-elim -redundant-dbg-inst-elim -rpo-functionattrs -gvn-hoist -loop-distribute -guard-widening -tailcallelim -adce -sroa -coro-early -jump-threading -speculative-execution -rewrite-statepoints-for-gc -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,0.9719230216860548,43.69095706939697,opt -adce -barrier -guard-widening -sancov -name-anon-globals -speculative-execution -mem2reg -ipconstprop -simple-loop-unswitch -strip -separate-const-offset-from-gep -always-inline -loop-versioning -loop-predication -loop-distribute -guard-widening -coro-split -constprop -lower-constant-intrinsics -constmerge -instcombine -tailcallelim -slp-vectorizer -mldst-motion -ee-instrument -loop-unroll -constprop -sroa -loop-sink -sink -libcalls-shrinkwrap -lowerswitch -ipsccp -instcombine -constmerge -separate-const-offset-from-gep -lower-matrix-intrinsics -simplifycfg -canonicalize-aliases -tailcallelim -ipsccp -always-inline -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,0.9994614390348989,43.0509147644043,opt -loop-unroll-and-jam -coro-split -loop-vectorize -strip-debug-declare -lowerinvoke -adce -guard-widening -reassociate -correlated-propagation -infer-address-spaces -coro-early -instnamer -loop-simplify -separate-const-offset-from-gep -newgvn -loop-vectorize -argpromotion -sancov -loop-reroll -coro-cleanup -ee-instrument -coro-early -post-inline-ee-instrument -instsimplify -canonicalize-aliases -strip-dead-prototypes -name-anon-globals -mem2reg -loop-fusion -gvn-hoist -lowerinvoke -called-value-propagation -loop-rotate -jump-threading -loop-instsimplify -lcssa -lower-expect -float2int -infer-address-spaces -mergefunc -mergereturn -mldst-motion -separate-const-offset-from-gep -lower-matrix-intrinsics -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0002872325147207,40.322293758392334,opt -loop-fusion -strip-nondebug -strip-debug-declare -jump-threading -gvn-hoist -mergeicmps -sroa -adce -ee-instrument -globaldce -loop-guard-widening -loop-data-prefetch -constprop -tailcallelim -guard-widening -sccp -indvars -loop-unroll -loop-unswitch -jump-threading -gvn -add-discriminators -always-inline -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0014002585092634,43.58587026596069,opt -break-crit-edges -coro-early -strip -loop-versioning -mergefunc -mem2reg -reassociate -nary-reassociate -flattencfg -insert-gcov-profiling -sroa -strip-dead-prototypes -loop-versioning -die -correlated-propagation -slsr -loop-vectorize -div-rem-pairs -barrier -barrier -loop-predication -elim-avail-extern -gvn -loop-unroll-and-jam -loop-interchange -coro-split -attributor -inject-tli-mappings -pgo-memop-opt -jump-threading -lower-constant-intrinsics -loop-instsimplify -instsimplify -memcpyopt -mem2reg -always-inline -nary-reassociate -loop-deletion -dce -mergereturn -lcssa -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0040212552060892,110.09268641471863,opt -ipsccp -callsite-splitting -mldst-motion -libcalls-shrinkwrap -loop-unroll -mldst-motion -loop-unroll -loop-unswitch -sroa -constmerge -lcssa -sccp -div-rem-pairs -constmerge -argpromotion -early-cse-memssa -prune-eh -insert-gcov-profiling -rpo-functionattrs -rewrite-statepoints-for-gc -constprop -attributor -dse -strip-nondebug -gvn-hoist -deadargelim -lower-constant-intrinsics -sroa -early-cse-memssa -coro-cleanup -strip-debug-declare -strip-dead-prototypes -div-rem-pairs -alignment-from-assumptions -scalarizer -licm -ee-instrument -rewrite-statepoints-for-gc -functionattrs -correlated-propagation -always-inline -loop-instsimplify -insert-gcov-profiling -reassociate -die -dse -strip -canonicalize-aliases -ipconstprop -early-cse-memssa -rpo-functionattrs -coro-cleanup -simple-loop-unswitch -libcalls-shrinkwrap -lower-guard-intrinsic -globaldce -loop-deletion -loweratomic -mergeicmps -inject-tli-mappings -coro-split -loop-unroll -callsite-splitting -loop-unroll -scalarizer -sroa -loop-data-prefetch -strip-dead-prototypes -div-rem-pairs -dse -slsr -libcalls-shrinkwrap -loop-data-prefetch -add-discriminators -adce -gvn -bdce -loop-instsimplify -loop-fusion -die -instsimplify -correlated-propagation -constmerge -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0187060175211833,35.92176580429077,opt -coro-early -attributor -mem2reg -argpromotion -ipconstprop -coro-cleanup -strip-debug-declare -scalarizer -break-crit-edges -inject-tli-mappings -loop-distribute -inferattrs -coro-cleanup -loop-simplifycfg -gvn -bdce -libcalls-shrinkwrap -consthoist -consthoist -bdce -loop-distribute -simplifycfg -coro-split -inject-tli-mappings -alignment-from-assumptions -always-inline -name-anon-globals -dse -barrier -rewrite-statepoints-for-gc -lower-matrix-intrinsics -coro-elide -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0204653166738475,47.219963788986206,opt -loop-load-elim -gvn-hoist -irce -argpromotion -consthoist -ipconstprop -loop-distribute -alignment-from-assumptions -redundant-dbg-inst-elim -sroa -jump-threading -inferattrs -loop-reroll -instnamer -callsite-splitting -jump-threading -instnamer -lower-matrix-intrinsics -indvars -sancov -always-inline -loop-sink -lower-expect -mergefunc -coro-elide -tailcallelim -gvn-hoist -float2int -globaldce -early-cse-memssa -indvars -bdce -mem2reg -simplifycfg -memcpyopt -jump-threading -ee-instrument -infer-address-spaces -indvars -add-discriminators -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0306979750107712,42.30078458786011,opt -rpo-functionattrs -globalopt -inject-tli-mappings -rewrite-statepoints-for-gc -name-anon-globals -loop-versioning -add-discriminators -bdce -globaldce -dce -load-store-vectorizer -mem2reg -ee-instrument -loop-simplifycfg -loop-interchange -break-crit-edges -infer-address-spaces -loop-versioning-licm -pgo-memop-opt -dce -loop-predication -speculative-execution -slp-vectorizer -callsite-splitting -bdce -dce -cross-dso-cfi -adce -partially-inline-libcalls -canonicalize-aliases -lower-widenable-condition -instcombine -correlated-propagation -inferattrs -coro-early -loop-unroll-and-jam -loop-interchange -globaldce -newgvn -simplifycfg -strip-nondebug -scalarizer -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0324213700990954,46.63143301010132,opt -scalarizer -sccp -loop-unroll -infer-address-spaces -irce -lower-constant-intrinsics -forceattrs -instsimplify -inferattrs -elim-avail-extern -loop-distribute -loop-unswitch -mergefunc -lower-matrix-intrinsics -globalopt -consthoist -loop-versioning-licm -correlated-propagation -inferattrs -loop-versioning-licm -reassociate -libcalls-shrinkwrap -coro-early -load-store-vectorizer -loop-data-prefetch -redundant-dbg-inst-elim -tailcallelim -sroa -simplifycfg -add-discriminators -instnamer -simplifycfg -licm -simple-loop-unswitch -prune-eh -newgvn -loop-simplify -loop-fusion -rpo-functionattrs -loop-simplifycfg -jump-threading -always-inline -post-inline-ee-instrument -functionattrs -argpromotion -inferattrs -constprop -insert-gcov-profiling -sccp -alignment-from-assumptions -tailcallelim -dce -jump-threading -instcombine -loop-distribute -globaldce -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0421872755995978,62.661231994628906,opt -lower-constant-intrinsics -libcalls-shrinkwrap -lcssa -loop-simplifycfg -loop-data-prefetch -deadargelim -load-store-vectorizer -lower-guard-intrinsic -libcalls-shrinkwrap -loop-instsimplify -reg2mem -strip-debug-declare -sccp -inferattrs -globalopt -jump-threading -memcpyopt -loop-instsimplify -loop-sink -loop-unroll-and-jam -coro-early -attributor -loop-simplify -lower-widenable-condition -coro-early -ee-instrument -called-value-propagation -hotcoldsplit -loop-unroll -speculative-execution -coro-split -rpo-functionattrs -newgvn -div-rem-pairs -hotcoldsplit -tailcallelim -strip-dead-prototypes -lowerinvoke -canonicalize-aliases -name-anon-globals -sancov -gvn-hoist -separate-const-offset-from-gep -name-anon-globals -loop-simplifycfg -memcpyopt -strip-dead-prototypes -tailcallelim -sroa -cross-dso-cfi -loop-deletion -instsimplify -sancov -consthoist -loop-unroll -memcpyopt -loop-distribute -loop-predication -loweratomic -loop-data-prefetch -speculative-execution -name-anon-globals -aggressive-instcombine -coro-cleanup -lcssa -aggressive-instcombine -called-value-propagation -sancov -loop-predication -loop-fusion -libcalls-shrinkwrap -partially-inline-libcalls -coro-cleanup -constprop -loop-guard-widening -break-crit-edges -separate-const-offset-from-gep -lower-matrix-intrinsics -always-inline -mergereturn -sink -lower-guard-intrinsic -break-crit-edges -slsr -sancov -loop-load-elim -strip -lcssa -instcombine -callsite-splitting -coro-split -bdce -rpo-functionattrs -early-cse-memssa -loop-reroll -sancov -die -simplifycfg -coro-elide -lower-constant-intrinsics -loop-data-prefetch -mergefunc -lcssa -nary-reassociate -simple-loop-unswitch -attributor -loop-reroll -name-anon-globals -adce -inferattrs -licm -cross-dso-cfi -newgvn -newgvn -indvars -inferattrs -inject-tli-mappings -loop-unroll -guard-widening -loop-interchange -loop-simplify -instcombine -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,0.9824466551326413,41.701881647109985,opt -dse -constprop -coro-split -sroa -mergereturn -cross-dso-cfi -rpo-functionattrs -memcpyopt -lower-widenable-condition -lowerinvoke -attributor -lowerinvoke -mergefunc -mergefunc -lower-constant-intrinsics -coro-early -prune-eh -loop-unroll-and-jam -slp-vectorizer -loop-unswitch -memcpyopt -loop-idiom -lcssa -post-inline-ee-instrument -jump-threading -constprop -gvn-hoist -simplifycfg -libcalls-shrinkwrap -gvn input.bc -o output.bc +benchmark://cbench-v1/tiffdither,0.9888985005767011,41.054413080215454,opt -infer-address-spaces -sink -elim-avail-extern -deadargelim -loop-distribute -gvn -loop-idiom -loop-deletion -rpo-functionattrs -ee-instrument -loop-versioning -simple-loop-unswitch -constprop -lower-expect -sancov -globalopt -elim-avail-extern -elim-avail-extern -dce -mergefunc -gvn -early-cse-memssa -die -irce -guard-widening -barrier -rewrite-statepoints-for-gc -mergereturn -gvn-hoist -loop-data-prefetch -functionattrs -mem2reg -partial-inliner -die -partial-inliner -strip-debug-declare -loop-distribute -coro-early -tailcallelim -mergereturn -lcssa -mldst-motion -libcalls-shrinkwrap -slsr -consthoist -infer-address-spaces -die -instsimplify -loop-load-elim -mergereturn -gvn -aggressive-instcombine -coro-cleanup -rewrite-statepoints-for-gc -consthoist -tailcallelim -aggressive-instcombine -hotcoldsplit -loop-reroll -strip-debug-declare -globalopt -memcpyopt -lower-matrix-intrinsics -correlated-propagation -newgvn -instcombine -strip -loop-guard-widening -loop-deletion -forceattrs -name-anon-globals -dse -libcalls-shrinkwrap -mergefunc -redundant-dbg-inst-elim -strip-nondebug -scalarizer -mldst-motion -sroa -globaldce -inferattrs -guard-widening -loop-unroll-and-jam -loop-instsimplify -instsimplify -partially-inline-libcalls -lower-widenable-condition -jump-threading -called-value-propagation -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiffdither,0.9970444059976932,49.48758888244629,opt -guard-widening -pgo-memop-opt -gvn-hoist -early-cse-memssa -aggressive-instcombine -strip-nondebug -name-anon-globals -guard-widening -instsimplify -cross-dso-cfi -mem2reg -float2int -loop-data-prefetch -lower-expect -loop-predication -correlated-propagation -insert-gcov-profiling -sink -redundant-dbg-inst-elim -scalarizer -coro-early -elim-avail-extern -adce -scalarizer -separate-const-offset-from-gep -aggressive-instcombine -strip-dead-prototypes -partially-inline-libcalls -licm -loop-simplify -loop-unroll -called-value-propagation -scalarizer -add-discriminators -gvn -callsite-splitting -gvn -inject-tli-mappings -deadargelim -redundant-dbg-inst-elim -loop-rotate -gvn-hoist -functionattrs -simple-loop-unswitch -strip -instnamer -instcombine -loop-data-prefetch -lcssa -early-cse-memssa -indvars -reassociate -strip-nondebug -instcombine -early-cse-memssa -lower-widenable-condition -loop-reroll -post-inline-ee-instrument -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,0.999315167243368,62.450594902038574,opt -lower-widenable-condition -gvn -cross-dso-cfi -strip-nondebug -always-inline -loweratomic -tailcallelim -lower-constant-intrinsics -indvars -mem2reg -float2int -ipconstprop -argpromotion -die -pgo-memop-opt -speculative-execution -dse -globalsplit -loop-fusion -pgo-memop-opt -called-value-propagation -flattencfg -callsite-splitting -loop-data-prefetch -loop-predication -prune-eh -jump-threading -callsite-splitting -div-rem-pairs -loop-simplifycfg -indvars -die -loop-unroll -licm -ipsccp -newgvn -simplifycfg -gvn-hoist -globalopt -coro-early -loop-simplify -loop-deletion -ipsccp -canonicalize-aliases -always-inline -coro-cleanup -globaldce -constprop -gvn -loop-load-elim -lower-guard-intrinsic -nary-reassociate -barrier -infer-address-spaces -lowerinvoke -always-inline -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0058751441753175,39.923675298690796,opt -post-inline-ee-instrument -coro-early -coro-early -add-discriminators -sroa -hotcoldsplit -loop-unroll -always-inline -insert-gcov-profiling -insert-gcov-profiling -indvars -memcpyopt -ipconstprop -always-inline -instcombine -insert-gcov-profiling -ee-instrument -rpo-functionattrs -adce -reg2mem -gvn-hoist -pgo-memop-opt -instnamer -called-value-propagation -rewrite-statepoints-for-gc -tailcallelim -sccp -barrier -flattencfg -simplifycfg -loweratomic -mergefunc -coro-elide -mem2reg -dse -forceattrs -deadargelim -strip-nondebug -loop-simplify -rpo-functionattrs -slsr -early-cse-memssa -loop-idiom -break-crit-edges -memcpyopt -called-value-propagation -loop-simplifycfg -lower-widenable-condition -mem2reg -dce -consthoist -jump-threading -licm -loop-simplify -adce -strip-dead-prototypes -loop-guard-widening -loop-idiom -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0083621683967705,67.24185132980347,opt -prune-eh -coro-early -loop-deletion -simplifycfg -instnamer -inject-tli-mappings -bdce -lower-expect -div-rem-pairs -lowerinvoke -loop-load-elim -mergefunc -nary-reassociate -partially-inline-libcalls -prune-eh -sroa -aggressive-instcombine -tailcallelim -gvn-hoist -loop-simplifycfg -sccp -simplifycfg -instsimplify -early-cse-memssa -forceattrs -add-discriminators -dse -insert-gcov-profiling -correlated-propagation -lower-matrix-intrinsics -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0100562283737027,38.78786373138428,opt -reg2mem -post-inline-ee-instrument -lower-matrix-intrinsics -dce -loop-distribute -ipsccp -newgvn -consthoist -sancov -load-store-vectorizer -mem2reg -indvars -sink -bdce -early-cse-memssa -loop-guard-widening -slp-vectorizer -tailcallelim -scalarizer -strip -licm -constmerge -cross-dso-cfi -mergereturn -gvn -simplifycfg -redundant-dbg-inst-elim -globalopt -inject-tli-mappings -inferattrs -libcalls-shrinkwrap -canonicalize-aliases -bdce -globaldce -instnamer -always-inline -rewrite-statepoints-for-gc -rpo-functionattrs -loop-vectorize -dse -div-rem-pairs -div-rem-pairs -simple-loop-unswitch -prune-eh -flattencfg -gvn -loop-deletion -elim-avail-extern -adce -functionattrs -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0121828143021916,41.328232288360596,opt -deadargelim -scalarizer -sancov -sancov -name-anon-globals -lowerinvoke -reg2mem -slsr -loop-guard-widening -die -jump-threading -argpromotion -loop-vectorize -loop-distribute -lower-constant-intrinsics -simple-loop-unswitch -loop-reroll -lower-expect -adce -separate-const-offset-from-gep -lower-guard-intrinsic -simple-loop-unswitch -reassociate -mem2reg -cross-dso-cfi -attributor -sroa -div-rem-pairs -guard-widening -mergefunc -barrier -forceattrs -redundant-dbg-inst-elim -lower-widenable-condition -loop-idiom -consthoist -mergeicmps -callsite-splitting -tailcallelim -globalsplit -add-discriminators -inject-tli-mappings -argpromotion -globalopt -loop-instsimplify -scalarizer -loop-guard-widening -loop-load-elim -mergefunc -instsimplify -nary-reassociate -loop-simplifycfg -deadargelim -loop-instsimplify -scalarizer -hotcoldsplit -simple-loop-unswitch -lower-expect -die -lcssa -early-cse-memssa -rewrite-statepoints-for-gc -strip-dead-prototypes -licm -loop-unswitch -instcombine -separate-const-offset-from-gep -loop-deletion -loop-versioning-licm -loop-versioning -simplifycfg -loop-interchange -attributor -redundant-dbg-inst-elim -globalopt -mldst-motion -gvn -loop-unroll-and-jam -argpromotion -cross-dso-cfi -loop-deletion -sancov -lower-expect -instcombine -loop-predication -gvn input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0269247404844288,40.07159352302551,opt -div-rem-pairs -mem2reg -mergereturn -mergeicmps -loop-distribute -instcombine -mergefunc -loop-load-elim -infer-address-spaces -loop-distribute -lcssa -forceattrs -loop-predication -dce -libcalls-shrinkwrap -mergeicmps -loop-versioning-licm -memcpyopt -irce -float2int -loop-fusion -float2int -break-crit-edges -div-rem-pairs -coro-elide -attributor -loop-deletion -coro-elide -name-anon-globals -rpo-functionattrs -irce -inferattrs -canonicalize-aliases -newgvn -lower-constant-intrinsics -lower-constant-intrinsics -argpromotion -simplifycfg -forceattrs -add-discriminators -loop-instsimplify -instcombine -inferattrs -prune-eh -slp-vectorizer -correlated-propagation -aggressive-instcombine -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0273212226066895,331.82224774360657,opt -strip-dead-prototypes -cross-dso-cfi -loop-distribute -mergefunc -loop-idiom -loop-distribute -lower-widenable-condition -loop-deletion -coro-cleanup -lcssa -post-inline-ee-instrument -elim-avail-extern -add-discriminators -consthoist -inferattrs -partially-inline-libcalls -sink -reg2mem -loop-deletion -coro-early -simplifycfg -strip-nondebug -lcssa -coro-cleanup -indvars -load-store-vectorizer -licm -always-inline -simple-loop-unswitch -instsimplify -sroa -mergeicmps -globaldce -separate-const-offset-from-gep -loweratomic -instcombine -tailcallelim -canonicalize-aliases -loop-predication -tailcallelim -newgvn -partially-inline-libcalls -callsite-splitting -alignment-from-assumptions -strip-nondebug -coro-elide -loop-interchange -coro-split -load-store-vectorizer -lower-constant-intrinsics -guard-widening -nary-reassociate -lowerinvoke -loop-deletion -float2int -constprop -loop-simplify -simplifycfg -separate-const-offset-from-gep -consthoist -early-cse-memssa -jump-threading -newgvn -cross-dso-cfi -pgo-memop-opt -elim-avail-extern -attributor -scalarizer -barrier -coro-cleanup -early-cse-memssa -nary-reassociate -inferattrs -loop-simplify -ipconstprop -speculative-execution -strip -strip-dead-prototypes -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9665311977049962,47.10209608078003,opt -name-anon-globals -globalopt -loop-rotate -lower-widenable-condition -flattencfg -instnamer -div-rem-pairs -lcssa -loop-deletion -loop-rotate -die -ipconstprop -libcalls-shrinkwrap -sink -simplifycfg -loop-simplifycfg -infer-address-spaces -coro-early -attributor -scalarizer -bdce -mem2reg -lowerinvoke -attributor -loop-unroll-and-jam -pgo-memop-opt -ipconstprop -globalsplit -instsimplify -strip -hotcoldsplit -newgvn -instsimplify -licm -loop-distribute -loop-distribute -lcssa -nary-reassociate -lower-guard-intrinsic -reassociate -loop-unroll -guard-widening -lcssa -irce -indvars -strip -coro-early -strip -constprop -mergeicmps -canonicalize-aliases -instcombine -instsimplify -loop-reroll -mergeicmps -loop-fusion -float2int -dse -gvn -rpo-functionattrs -gvn-hoist -flattencfg -loop-distribute -reassociate input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9784843413817833,45.35628080368042,opt -sink -deadargelim -mldst-motion -gvn-hoist -globalopt -elim-avail-extern -infer-address-spaces -instnamer -lcssa -ipconstprop -insert-gcov-profiling -insert-gcov-profiling -inferattrs -mergeicmps -adce -loop-simplifycfg -callsite-splitting -mem2reg -loop-fusion -instsimplify -redundant-dbg-inst-elim -callsite-splitting -mem2reg -tailcallelim -aggressive-instcombine -loop-rotate -constprop -attributor -gvn -consthoist -mldst-motion -sancov -argpromotion -redundant-dbg-inst-elim -simplifycfg -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9825142583928143,44.82570767402649,opt -callsite-splitting -rpo-functionattrs -loop-load-elim -partially-inline-libcalls -lower-matrix-intrinsics -separate-const-offset-from-gep -nary-reassociate -lowerinvoke -dse -sink -loop-data-prefetch -separate-const-offset-from-gep -strip-nondebug -gvn -elim-avail-extern -loop-vectorize -strip-nondebug -strip -lower-expect -coro-cleanup -irce -bdce -loop-load-elim -constprop -lowerinvoke -mem2reg -gvn -simplifycfg -inferattrs -ipsccp -lower-guard-intrinsic -memcpyopt -early-cse-memssa -mergeicmps -attributor -strip -argpromotion -loop-distribute -loop-fusion -ipsccp -coro-cleanup -newgvn -slp-vectorizer -loop-data-prefetch -mem2reg -die -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.990608244253953,337.1097273826599,opt -partially-inline-libcalls -mem2reg -attributor -consthoist -loweratomic -libcalls-shrinkwrap -loop-guard-widening -loweratomic -lower-expect -instcombine -loop-fusion -inferattrs -argpromotion -aggressive-instcombine -loop-rotate -elim-avail-extern -cross-dso-cfi -strip -div-rem-pairs -correlated-propagation -ee-instrument -sccp -post-inline-ee-instrument -simple-loop-unswitch -loop-interchange -forceattrs -add-discriminators -lcssa -loop-load-elim -rewrite-statepoints-for-gc -inject-tli-mappings -sink -mergeicmps -strip -coro-early -rewrite-statepoints-for-gc -lower-guard-intrinsic -lower-constant-intrinsics -argpromotion -newgvn -cross-dso-cfi -cross-dso-cfi -lower-constant-intrinsics -instnamer -loop-idiom -hotcoldsplit -mergereturn -licm -loop-load-elim -tailcallelim -coro-cleanup -sink -sccp -sroa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9914278883917897,41.52029347419739,opt -rpo-functionattrs -loop-unswitch -elim-avail-extern -ipsccp -dse -float2int -consthoist -lower-widenable-condition -flattencfg -strip-dead-prototypes -functionattrs -instcombine -partially-inline-libcalls -coro-cleanup -hotcoldsplit -rpo-functionattrs -libcalls-shrinkwrap -rpo-functionattrs -partially-inline-libcalls -slp-vectorizer -mergeicmps -coro-early -gvn-hoist -simple-loop-unswitch -loop-instsimplify -loop-guard-widening -pgo-memop-opt -loop-guard-widening -loop-reduce -div-rem-pairs -instsimplify -alignment-from-assumptions -rewrite-statepoints-for-gc -gvn-hoist -name-anon-globals -sroa -loop-instsimplify -coro-early -reassociate -libcalls-shrinkwrap -float2int -sancov -break-crit-edges -partial-inliner -lcssa -scalarizer -strip -early-cse-memssa -newgvn -memcpyopt -globalopt -deadargelim -globalsplit -simplifycfg -mergeicmps -functionattrs -mldst-motion -lower-matrix-intrinsics -ipsccp -coro-cleanup -dse -loop-unswitch -instcombine -ipconstprop -reg2mem -flattencfg -flattencfg -loop-reduce -coro-split -loop-deletion -loop-simplify -canonicalize-aliases -loop-load-elim -prune-eh -called-value-propagation -sccp -loop-versioning -coro-split -break-crit-edges -inject-tli-mappings -sroa -ipconstprop -lower-matrix-intrinsics -functionattrs -always-inline -elim-avail-extern -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9923499880468563,40.777365922927856,opt -cross-dso-cfi -gvn -die -mem2reg -lcssa -rpo-functionattrs -reassociate -simplifycfg -name-anon-globals -lower-guard-intrinsic -inject-tli-mappings -irce -irce -jump-threading -loop-versioning-licm -inject-tli-mappings -aggressive-instcombine -newgvn -strip-debug-declare -sink -reassociate -aggressive-instcombine input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9933062395409992,46.45159435272217,opt -separate-const-offset-from-gep -mergefunc -strip -ee-instrument -reg2mem -always-inline -scalarizer -coro-cleanup -flattencfg -lcssa -globaldce -sroa -memcpyopt -slp-vectorizer -loop-deletion -coro-early -loop-reduce -break-crit-edges -die -callsite-splitting -instsimplify -coro-split -sroa -instcombine -flattencfg -lower-widenable-condition -loop-unroll-and-jam -bdce -coro-cleanup -mergeicmps -redundant-dbg-inst-elim -loop-simplifycfg -prune-eh -rewrite-statepoints-for-gc -instsimplify -elim-avail-extern -ipsccp -strip-nondebug -dse -gvn -strip -consthoist -elim-avail-extern -partially-inline-libcalls -slsr -loop-idiom -div-rem-pairs -alignment-from-assumptions -coro-elide -simplifycfg -die input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,0.9949796796557496,49.326151609420776,opt -forceattrs -loop-distribute -slp-vectorizer -constmerge -libcalls-shrinkwrap -loop-idiom -sroa -gvn-hoist -simplifycfg -loop-sink -instnamer -instnamer -gvn -constmerge -loop-guard-widening -lower-constant-intrinsics -pgo-memop-opt -forceattrs -rpo-functionattrs -scalarizer -instnamer -loop-rotate -loweratomic -canonicalize-aliases -sink -instcombine -separate-const-offset-from-gep -aggressive-instcombine -loop-predication -instsimplify -ee-instrument -deadargelim -coro-cleanup -coro-split -callsite-splitting -lower-matrix-intrinsics -slsr -loop-predication -hotcoldsplit -mergeicmps -reassociate -always-inline -bdce -strip-nondebug -globaldce -loop-fusion -hotcoldsplit -loop-instsimplify -ipsccp -coro-split -ipconstprop -globaldce -barrier -strip-nondebug -coro-cleanup -sroa -inferattrs -mldst-motion -mergeicmps -post-inline-ee-instrument -globalsplit -globalsplit -adce -lower-guard-intrinsic -sccp -strip-nondebug -loop-reduce -break-crit-edges -deadargelim -memcpyopt -globalopt -sccp -loop-fusion -alignment-from-assumptions -loop-unroll -adce -speculative-execution -dse -die -gvn -coro-cleanup -strip -simple-loop-unswitch -correlated-propagation -lower-guard-intrinsic -constmerge -simplifycfg -gvn -gvn-hoist -lowerinvoke -called-value-propagation -instsimplify input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0114408660906389,45.817564964294434,opt -deadargelim -separate-const-offset-from-gep -alignment-from-assumptions -lower-widenable-condition -loop-versioning -sroa -loop-fusion -loop-distribute -mergereturn -alignment-from-assumptions -guard-widening -partially-inline-libcalls -hotcoldsplit -elim-avail-extern -break-crit-edges -rpo-functionattrs -alignment-from-assumptions -deadargelim -gvn-hoist -deadargelim -consthoist -break-crit-edges -loop-vectorize -reassociate -loop-load-elim -strip-nondebug -instcombine -div-rem-pairs -callsite-splitting -lowerinvoke -strip-dead-prototypes -loop-guard-widening -constprop -loop-versioning-licm -loop-interchange -loop-guard-widening -sroa -load-store-vectorizer -instcombine -loop-interchange -loop-vectorize -strip -newgvn -loop-sink -sroa -rewrite-statepoints-for-gc -simple-loop-unswitch -loop-unroll-and-jam -simplifycfg -loop-sink -float2int -simplifycfg -loop-fusion -separate-const-offset-from-gep -loop-predication -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0162221235613536,45.437578201293945,opt -lowerinvoke -strip -inject-tli-mappings -mem2reg -called-value-propagation -callsite-splitting -globalopt -irce -simplifycfg -irce -sccp -infer-address-spaces -instcombine -loop-predication -slp-vectorizer -constmerge -instsimplify -canonicalize-aliases -memcpyopt -always-inline -dse -functionattrs -sancov -rewrite-statepoints-for-gc -lower-expect -dse -irce -jump-threading -aggressive-instcombine -loop-deletion -adce -separate-const-offset-from-gep -deadargelim -globalsplit -add-discriminators -loop-sink -strip-nondebug -mem2reg -scalarizer -constmerge -newgvn input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/random_search/results_p125_t10800.csv b/leaderboard/llvm_instcount/random_search/results_p125_t10800.csv index 342ce3581..c00e8935c 100644 --- a/leaderboard/llvm_instcount/random_search/results_p125_t10800.csv +++ b/leaderboard/llvm_instcount/random_search/results_p125_t10800.csv @@ -1,24 +1,24 @@ benchmark,reward,walltime,commandline -benchmark://cBench-v1/adpcm,1.0083798882681567,10801.772290468216,opt -loop-distribute -strip-dead-prototypes -loop-unroll-and-jam -loop-distribute -constprop -called-value-propagation -infer-address-spaces -ee-instrument -hotcoldsplit -correlated-propagation -loop-unroll-and-jam -loop-distribute -loop-predication -sroa -infer-address-spaces -die -coro-elide -sancov -partially-inline-libcalls -memcpyopt -coro-early -mergeicmps -ipsccp -loop-predication -called-value-propagation -lowerinvoke -dse -globalsplit -irce -mergereturn -sroa -aggressive-instcombine -rewrite-statepoints-for-gc -coro-split -sancov -inline -instsimplify -sancov -infer-address-spaces -float2int -inject-tli-mappings -mldst-motion -speculative-execution -loop-unroll-and-jam -slsr -loop-unswitch -loweratomic -simplifycfg -dce -instcombine -barrier -div-rem-pairs -early-cse-memssa -loop-guard-widening -strip-nondebug -mergereturn -break-crit-edges -jump-threading -sroa -loweratomic -tailcallelim -nary-reassociate -div-rem-pairs -adce -instcombine -mergefunc -coro-cleanup -globaldce -instcombine -loop-versioning -gvn-hoist -lower-matrix-intrinsics -libcalls-shrinkwrap -globaldce -inline -loop-vectorize -jump-threading -guard-widening -mergeicmps -always-inline -inject-tli-mappings -separate-const-offset-from-gep -instnamer -mergeicmps -memcpyopt -mem2reg -sroa -separate-const-offset-from-gep -div-rem-pairs -lower-matrix-intrinsics -canonicalize-aliases -sancov -constmerge -loop-predication -cross-dso-cfi -simplifycfg -consthoist -barrier -bdce -reassociate -redundant-dbg-inst-elim -strip -instsimplify input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0154867256637168,10801.793578386307,opt -functionattrs -globaldce -constmerge -argpromotion -sink -ipconstprop -reassociate -gvn-hoist -loop-reduce -loop-fusion -loop-simplifycfg -loop-unroll -mem2reg -indvars -name-anon-globals -early-cse-memssa -globaldce -dse -aggressive-instcombine -lower-constant-intrinsics -argpromotion -called-value-propagation -simplifycfg -loop-unroll-and-jam -rewrite-statepoints-for-gc -simple-loop-unswitch -early-cse-memssa -sroa -reg2mem -loop-simplifycfg -gvn-hoist -coro-early -memcpyopt -reassociate -sccp -tailcallelim -forceattrs -callsite-splitting -early-cse-memssa -loop-unroll -mem2reg -scalarizer -instcombine -pgo-memop-opt -lower-expect -aggressive-instcombine -mergeicmps -nary-reassociate -globaldce -callsite-splitting -coro-cleanup -globalsplit -simplifycfg -strip-nondebug -strip-dead-prototypes -inject-tli-mappings -strip -post-inline-ee-instrument -coro-elide -tailcallelim -libcalls-shrinkwrap -consthoist -rpo-functionattrs -redundant-dbg-inst-elim -sccp -libcalls-shrinkwrap -loop-versioning -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0880407124681934,10801.877015829086,opt -simplifycfg -globalopt -constmerge -consthoist -globalopt -loop-reroll -sroa -coro-early -rpo-functionattrs -mergereturn -lcssa -loop-simplifycfg -mergeicmps -slsr -add-discriminators -flattencfg -instnamer -strip-dead-prototypes -libcalls-shrinkwrap -callsite-splitting -libcalls-shrinkwrap -loop-vectorize -pgo-memop-opt -correlated-propagation -lower-guard-intrinsic -globalopt -hotcoldsplit -loop-fusion -barrier -newgvn -loop-unroll -guard-widening -nary-reassociate -lower-widenable-condition -inferattrs -insert-gcov-profiling -bdce -coro-early -strip -sccp -elim-avail-extern -loop-fusion -strip -name-anon-globals -attributor -hotcoldsplit -lowerinvoke -correlated-propagation -licm -loop-fusion -alignment-from-assumptions -strip-dead-prototypes -loop-vectorize -strip-nondebug -strip-dead-prototypes -float2int -jump-threading -reassociate -redundant-dbg-inst-elim -coro-elide -coro-early -die -instcombine -libcalls-shrinkwrap -slsr -coro-elide -loop-versioning-licm -sancov -forceattrs -gvn-hoist -irce -loop-deletion -hotcoldsplit -div-rem-pairs -strip-debug-declare -break-crit-edges -correlated-propagation -strip -loop-instsimplify -simplifycfg -lower-widenable-condition -prune-eh -newgvn -instnamer -argpromotion -loop-distribute -loop-instsimplify -loweratomic -loop-versioning -slp-vectorizer -called-value-propagation -sancov -mergefunc -globalopt -loop-data-prefetch -coro-elide -strip-nondebug -indvars -scalarizer -loop-guard-widening -adce -float2int -coro-elide -loop-unroll-and-jam -coro-cleanup -canonicalize-aliases -early-cse-memssa -loop-guard-widening -rpo-functionattrs -guard-widening -loop-simplify -hotcoldsplit -coro-split -float2int -bdce -coro-cleanup -die -licm -div-rem-pairs -add-discriminators -strip-nondebug -strip-debug-declare -reassociate -instcombine -lower-constant-intrinsics -strip-dead-prototypes -sccp -slsr -deadargelim -lcssa -globaldce -dse -name-anon-globals -instnamer -globalsplit -globaldce -redundant-dbg-inst-elim -consthoist -gvn-hoist -lower-guard-intrinsic -elim-avail-extern -instsimplify -canonicalize-aliases -memcpyopt -load-store-vectorizer -mergefunc -callsite-splitting -adce -adce -instcombine -functionattrs -lower-matrix-intrinsics -lower-guard-intrinsic -partial-inliner -rewrite-statepoints-for-gc -coro-split -callsite-splitting -guard-widening -inject-tli-mappings -loop-reroll -correlated-propagation -post-inline-ee-instrument -ipconstprop -jump-threading -slp-vectorizer -ee-instrument -loop-instsimplify -slsr -loop-instsimplify -sink -loweratomic -strip-debug-declare -mldst-motion -slp-vectorizer -globalopt -post-inline-ee-instrument -bdce -instcombine input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.209654741446649,10808.157907485962,opt -separate-const-offset-from-gep -barrier -lower-constant-intrinsics -loop-interchange -partially-inline-libcalls -bdce -constmerge -lcssa -loop-sink -globalopt -loop-simplifycfg -loop-deletion -loop-sink -lower-matrix-intrinsics -loop-fusion -strip-nondebug -loop-data-prefetch -licm -constmerge -globalopt -bdce -alignment-from-assumptions -sccp -forceattrs -functionattrs -loop-simplify -sroa -globalsplit -licm -newgvn -lowerinvoke -loop-reroll -ipsccp -globalsplit -speculative-execution -loweratomic -break-crit-edges -adce -loop-load-elim -tailcallelim -barrier -loop-vectorize -loop-guard-widening -callsite-splitting -gvn-hoist -simple-loop-unswitch -consthoist -simplifycfg -insert-gcov-profiling -nary-reassociate -flattencfg -prune-eh -constmerge -guard-widening -constmerge -memcpyopt -memcpyopt -globaldce -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,10802.23005247116,opt -loop-sink -jump-threading -prune-eh -loop-instsimplify -reg2mem -nary-reassociate -break-crit-edges -lower-constant-intrinsics -loop-fusion -consthoist -infer-address-spaces -loop-guard-widening -scalarizer -callsite-splitting -lower-constant-intrinsics -alignment-from-assumptions -load-store-vectorizer -coro-cleanup -correlated-propagation -consthoist -insert-gcov-profiling -inject-tli-mappings -adce -loweratomic -loop-data-prefetch -mergeicmps -constprop -callsite-splitting -deadargelim -float2int -coro-cleanup -loop-interchange -functionattrs -float2int -loop-reroll -loop-versioning -indvars -redundant-dbg-inst-elim -separate-const-offset-from-gep -early-cse-memssa -libcalls-shrinkwrap -inferattrs -rewrite-statepoints-for-gc -reassociate -bdce -loop-versioning-licm -nary-reassociate -break-crit-edges -lower-widenable-condition -loop-unswitch -gvn-hoist -memcpyopt -scalarizer -loop-data-prefetch -sccp -alignment-from-assumptions -newgvn -lowerinvoke -die -lower-widenable-condition -irce -mergeicmps -coro-cleanup -alignment-from-assumptions -break-crit-edges -instcombine -mem2reg -called-value-propagation -reassociate -mergefunc -constmerge -loop-versioning-licm -indvars -gvn -insert-gcov-profiling -barrier -globalopt -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9948979591836737,10801.72380065918,opt -loop-deletion -mem2reg -load-store-vectorizer -loop-unroll -loop-distribute -loop-fusion -loop-reroll -callsite-splitting -flattencfg -prune-eh -loop-load-elim -flattencfg -newgvn -loop-idiom -inferattrs -licm -sink -loop-vectorize -post-inline-ee-instrument -flattencfg -add-discriminators -bdce -lower-constant-intrinsics -loop-reduce -post-inline-ee-instrument -sancov -lower-widenable-condition -slsr -div-rem-pairs -lowerswitch -dce -indvars -loop-simplifycfg -lower-guard-intrinsic -inferattrs -name-anon-globals -jump-threading -lowerinvoke -loop-simplify -loop-simplify -inject-tli-mappings -callsite-splitting -loop-unroll -dce -simple-loop-unswitch -div-rem-pairs -always-inline -coro-split -loop-load-elim -gvn-hoist -redundant-dbg-inst-elim -loop-deletion -loop-instsimplify -mergefunc -slp-vectorizer -coro-early -loop-simplifycfg -early-cse-memssa -barrier -name-anon-globals -mem2reg -adce -loop-vectorize -redundant-dbg-inst-elim -reassociate -inferattrs -called-value-propagation -coro-elide -loop-simplify -loop-guard-widening -strip-nondebug -constprop -prune-eh -dse -ipsccp -sroa -lower-constant-intrinsics -memcpyopt -insert-gcov-profiling -aggressive-instcombine -rewrite-statepoints-for-gc -simplifycfg -loop-distribute -loop-vectorize -adce -ipconstprop -slp-vectorizer -rpo-functionattrs -inferattrs -loop-sink -instcombine -slp-vectorizer -strip-dead-prototypes -loop-distribute -memcpyopt -consthoist -name-anon-globals -libcalls-shrinkwrap -speculative-execution -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0169287793620125,10930.950301408768,opt -loop-versioning-licm -load-store-vectorizer -canonicalize-aliases -loop-simplify -loop-versioning-licm -ee-instrument -mldst-motion -loop-deletion -strip-dead-prototypes -loop-predication -scalarizer -reg2mem -bdce -mldst-motion -sccp -loop-guard-widening -ee-instrument -gvn-hoist -partially-inline-libcalls -name-anon-globals -scalarizer -mem2reg -insert-gcov-profiling -early-cse-memssa -loop-instsimplify -dce -gvn -coro-split -separate-const-offset-from-gep -coro-split -loop-unroll -loop-guard-widening -mldst-motion -break-crit-edges -loop-guard-widening -mergefunc -load-store-vectorizer -loop-deletion -sccp -sancov -gvn -strip-dead-prototypes -memcpyopt -loop-distribute -coro-early -aggressive-instcombine -loop-reroll -inferattrs -add-discriminators -callsite-splitting -inject-tli-mappings -coro-elide -loop-reroll -globalsplit -hotcoldsplit -pgo-memop-opt -mergefunc -irce -insert-gcov-profiling -constmerge -strip -simple-loop-unswitch -instnamer -globaldce -forceattrs -constprop -loop-predication -loop-load-elim -speculative-execution -loop-simplifycfg -instcombine -instsimplify -ipsccp -mergeicmps -called-value-propagation -ipconstprop -loop-vectorize -constmerge -dse -constmerge -strip-nondebug -licm -loop-unroll-and-jam -canonicalize-aliases -inferattrs -mldst-motion -functionattrs -separate-const-offset-from-gep -mergeicmps -loop-reroll -slsr -tailcallelim -load-store-vectorizer -lower-widenable-condition -simple-loop-unswitch -post-inline-ee-instrument -alignment-from-assumptions -ipsccp -always-inline -loop-simplifycfg -lower-widenable-condition -aggressive-instcombine -adce -slp-vectorizer -partially-inline-libcalls -loop-load-elim -dce -name-anon-globals -ee-instrument -globalsplit -simplifycfg -inject-tli-mappings -die -gvn-hoist -separate-const-offset-from-gep -coro-elide -partially-inline-libcalls -callsite-splitting -instsimplify -jump-threading -lower-expect -loop-vectorize -loop-fusion -coro-early -dse -lower-widenable-condition -coro-cleanup -instnamer -add-discriminators -strip-debug-declare -post-inline-ee-instrument -dse -lcssa -div-rem-pairs -nary-reassociate -insert-gcov-profiling -slsr -strip-debug-declare -reassociate -pgo-memop-opt -gvn -irce -pgo-memop-opt -separate-const-offset-from-gep -early-cse-memssa -elim-avail-extern -gvn-hoist -inferattrs -loop-unroll -inject-tli-mappings -always-inline -functionattrs -aggressive-instcombine -sccp -loop-instsimplify -deadargelim -break-crit-edges -aggressive-instcombine -dce -float2int -ee-instrument -loop-idiom -slp-vectorizer -sink -loop-idiom -dse -loop-versioning-licm -licm -loop-unroll -globaldce -flattencfg -globalsplit -strip-debug-declare -loop-load-elim -mem2reg -constprop -loop-guard-widening -bdce -alignment-from-assumptions -dce -loweratomic -loop-data-prefetch -loop-vectorize -div-rem-pairs -constmerge -loop-instsimplify -pgo-memop-opt -lower-constant-intrinsics -called-value-propagation -strip-debug-declare -mldst-motion -loop-load-elim -infer-address-spaces -attributor -strip-nondebug -pgo-memop-opt -instsimplify -lowerinvoke -strip-dead-prototypes -cross-dso-cfi -coro-elide -bdce -libcalls-shrinkwrap -adce -loop-distribute -loop-instsimplify -gvn-hoist -strip-nondebug -consthoist -instcombine -strip-dead-prototypes -loop-data-prefetch -rpo-functionattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.094621513944223,10802.920687913895,opt -mem2reg -strip -loop-fusion -loop-reduce -loop-instsimplify -loop-versioning-licm -canonicalize-aliases -scalarizer -lower-expect -constprop -div-rem-pairs -instcombine -mergefunc -loop-unswitch -inferattrs -lowerinvoke -loweratomic -loop-versioning-licm -rewrite-statepoints-for-gc -add-discriminators -loop-deletion -strip-dead-prototypes -insert-gcov-profiling -newgvn -partially-inline-libcalls -nary-reassociate -loop-predication -lowerinvoke -irce -reassociate -argpromotion -lowerswitch -sroa -attributor -die -strip -called-value-propagation -strip-dead-prototypes -loop-guard-widening -dse -load-store-vectorizer -loop-reduce -pgo-memop-opt -loop-simplify -argpromotion -constmerge -float2int -alignment-from-assumptions -nary-reassociate -prune-eh -separate-const-offset-from-gep -bdce -separate-const-offset-from-gep -slp-vectorizer -mldst-motion -elim-avail-extern -ipconstprop -die -lower-widenable-condition -early-cse-memssa -lowerswitch -ipsccp -bdce -mergereturn -guard-widening -pgo-memop-opt -called-value-propagation -mergefunc -dse -instsimplify -sroa -correlated-propagation -instcombine -lowerinvoke -simple-loop-unswitch -libcalls-shrinkwrap -loop-sink -strip-nondebug -gvn-hoist -lowerswitch -instsimplify -flattencfg -mergeicmps -float2int -constprop -reassociate -gvn -infer-address-spaces -newgvn -loop-load-elim -dse -flattencfg -nary-reassociate -cross-dso-cfi -simplifycfg -load-store-vectorizer -deadargelim -loop-versioning -loop-deletion -dce -deadargelim -forceattrs -loop-data-prefetch -loop-instsimplify -forceattrs -loop-versioning -constmerge -insert-gcov-profiling -cross-dso-cfi -jump-threading -strip-nondebug -jump-threading -libcalls-shrinkwrap -loop-sink -loop-deletion -sroa -cross-dso-cfi -strip -div-rem-pairs -sancov -loop-unswitch -bdce -barrier -strip-nondebug -reassociate -aggressive-instcombine -mergefunc -slp-vectorizer -strip-nondebug -prune-eh -globaldce -coro-cleanup -rpo-functionattrs -simplifycfg -strip-dead-prototypes -constmerge -mergeicmps -separate-const-offset-from-gep -loop-data-prefetch -loop-interchange -irce -div-rem-pairs -loop-unswitch -speculative-execution -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,1.0204081632653061,10805.658698558807,opt -deadargelim -name-anon-globals -gvn-hoist -mem2reg -bdce -alignment-from-assumptions -prune-eh -redundant-dbg-inst-elim -dce -attributor -jump-threading -elim-avail-extern -die -ipconstprop -early-cse-memssa -guard-widening -scalarizer -lower-expect -instnamer -redundant-dbg-inst-elim -loop-reroll -pgo-memop-opt -div-rem-pairs -libcalls-shrinkwrap -adce -loop-simplifycfg -loop-instsimplify -libcalls-shrinkwrap -float2int -loop-reroll -globaldce -lcssa -ipconstprop -loop-simplify -attributor -loop-instsimplify -licm -barrier -dse -loop-instsimplify -libcalls-shrinkwrap -instcombine -partially-inline-libcalls -always-inline -loop-unroll-and-jam -globalsplit -loop-unroll -functionattrs -mem2reg -inject-tli-mappings -add-discriminators -licm -loop-fusion -globalopt -simplifycfg -newgvn -inferattrs -rewrite-statepoints-for-gc -die -mergereturn -loop-predication -strip -simplifycfg -gvn -inject-tli-mappings -loop-sink -loop-unroll-and-jam -loop-reroll -redundant-dbg-inst-elim -loop-idiom -inject-tli-mappings -post-inline-ee-instrument -called-value-propagation -loop-guard-widening -slsr -coro-split -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0373562327556811,10813.031274080276,opt -lower-guard-intrinsic -ipsccp -float2int -lower-constant-intrinsics -early-cse-memssa -mem2reg -loop-idiom -separate-const-offset-from-gep -lower-guard-intrinsic -loop-instsimplify -post-inline-ee-instrument -break-crit-edges -hotcoldsplit -cross-dso-cfi -post-inline-ee-instrument -die -strip-dead-prototypes -loop-deletion -post-inline-ee-instrument -early-cse-memssa -add-discriminators -loop-idiom -redundant-dbg-inst-elim -flattencfg -always-inline -strip-dead-prototypes -consthoist -lower-expect -correlated-propagation -inferattrs -coro-elide -flattencfg -rpo-functionattrs -strip-debug-declare -functionattrs -slp-vectorizer -rpo-functionattrs -guard-widening -mem2reg -forceattrs -loop-instsimplify -licm -called-value-propagation -mergereturn -strip-debug-declare -flattencfg -sink -separate-const-offset-from-gep -memcpyopt -lower-guard-intrinsic -instcombine -functionattrs -elim-avail-extern -always-inline -newgvn -mergefunc -early-cse-memssa -consthoist -sancov -redundant-dbg-inst-elim -loop-sink -loop-reroll -scalarizer -attributor -loop-interchange -sancov -loop-fusion -bdce -loop-vectorize -loweratomic -div-rem-pairs -partially-inline-libcalls -slsr -coro-cleanup -separate-const-offset-from-gep -dse -loop-unroll-and-jam -loweratomic -deadargelim -globalsplit -loop-versioning -constmerge -ipconstprop -loop-vectorize -infer-address-spaces -early-cse-memssa -ee-instrument -attributor -deadargelim -coro-split -rpo-functionattrs -name-anon-globals -loop-reroll -always-inline -mergereturn -rewrite-statepoints-for-gc -loop-versioning -load-store-vectorizer -canonicalize-aliases -coro-split -constmerge -always-inline -cross-dso-cfi -hotcoldsplit -instcombine -mem2reg -loop-predication -globalsplit -lower-guard-intrinsic -partial-inliner -indvars -ipsccp -simplifycfg -attributor -ipsccp -name-anon-globals -forceattrs -newgvn -loop-vectorize -memcpyopt -speculative-execution -insert-gcov-profiling -mergeicmps -slp-vectorizer -insert-gcov-profiling -mem2reg -loop-idiom -gvn-hoist -break-crit-edges -break-crit-edges -lower-matrix-intrinsics -attributor -rewrite-statepoints-for-gc -mergefunc -speculative-execution -instcombine -cross-dso-cfi -pgo-memop-opt -canonicalize-aliases -speculative-execution -lowerinvoke -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.040020605943527,10811.881211042404,opt -gvn-hoist -loop-versioning -forceattrs -loop-interchange -alignment-from-assumptions -redundant-dbg-inst-elim -lower-constant-intrinsics -loop-fusion -rewrite-statepoints-for-gc -simplifycfg -globalopt -coro-elide -inject-tli-mappings -load-store-vectorizer -rpo-functionattrs -hotcoldsplit -jump-threading -early-cse-memssa -cross-dso-cfi -break-crit-edges -globalsplit -loop-distribute -alignment-from-assumptions -reg2mem -sccp -prune-eh -deadargelim -strip-nondebug -guard-widening -separate-const-offset-from-gep -reg2mem -called-value-propagation -bdce -loop-vectorize -dse -sroa -elim-avail-extern -globalopt -loweratomic -aggressive-instcombine -break-crit-edges -canonicalize-aliases -early-cse-memssa -lower-matrix-intrinsics -forceattrs -insert-gcov-profiling -insert-gcov-profiling -pgo-memop-opt -strip -div-rem-pairs -jump-threading -strip-nondebug -loop-load-elim -strip-debug-declare -lower-matrix-intrinsics -nary-reassociate -inferattrs -coro-early -infer-address-spaces -canonicalize-aliases -indvars -pgo-memop-opt -loop-sink -post-inline-ee-instrument -inferattrs -bdce -loop-simplify -licm -tailcallelim -licm -inferattrs -instcombine -loop-interchange -rewrite-statepoints-for-gc -licm -simplifycfg -loop-predication -libcalls-shrinkwrap -flattencfg -ee-instrument -loop-instsimplify -elim-avail-extern -globalopt -newgvn -div-rem-pairs -strip -globalopt -ee-instrument -ipconstprop -add-discriminators -div-rem-pairs -cross-dso-cfi -coro-early -canonicalize-aliases -loop-load-elim -instcombine -scalarizer -flattencfg -sroa -loop-reroll -constprop -always-inline -guard-widening -instsimplify -separate-const-offset-from-gep -coro-elide -inferattrs -loop-vectorize -aggressive-instcombine -sroa -gvn-hoist -speculative-execution -newgvn -lowerinvoke -called-value-propagation -memcpyopt -gvn-hoist -constprop -globalsplit -strip-dead-prototypes -adce -lower-guard-intrinsic -loop-sink -lcssa -inferattrs -instcombine input.bc -o output.bc -benchmark://cBench-v1/lame,1.0565930312001823,10812.291928768158,opt -inferattrs -simple-loop-unswitch -flattencfg -alignment-from-assumptions -callsite-splitting -sccp -dce -coro-elide -libcalls-shrinkwrap -rewrite-statepoints-for-gc -globalsplit -mergereturn -load-store-vectorizer -loop-simplifycfg -rewrite-statepoints-for-gc -loop-interchange -pgo-memop-opt -early-cse-memssa -lowerinvoke -loop-simplifycfg -called-value-propagation -coro-early -bdce -inject-tli-mappings -barrier -guard-widening -mergefunc -slsr -irce -newgvn -consthoist -mem2reg -loop-vectorize -reassociate -float2int -dse -lower-matrix-intrinsics -tailcallelim -slsr -instcombine -float2int -loweratomic -alignment-from-assumptions -nary-reassociate -indvars -rewrite-statepoints-for-gc -coro-early -loop-interchange -always-inline -memcpyopt -loop-predication -globalsplit -slsr -instnamer -bdce -jump-threading -scalarizer -mergefunc -callsite-splitting -reassociate -newgvn -strip -barrier -deadargelim -loop-load-elim -reg2mem -die -gvn-hoist -sroa -loop-interchange -alignment-from-assumptions -forceattrs -mldst-motion -constmerge -newgvn -alignment-from-assumptions -strip-nondebug -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/patricia,1.0077864293659622,10801.536967754364,opt -indvars -loop-versioning -separate-const-offset-from-gep -rewrite-statepoints-for-gc -inject-tli-mappings -aggressive-instcombine -coro-early -licm -lower-expect -add-discriminators -slp-vectorizer -gvn -prune-eh -loop-unroll -libcalls-shrinkwrap -globalopt -newgvn -loop-distribute -dse -coro-elide -globalsplit -callsite-splitting -ipsccp -lowerswitch -lowerinvoke -aggressive-instcombine -name-anon-globals -speculative-execution -loop-vectorize -lcssa -memcpyopt -sancov -reassociate -lowerswitch -sink -canonicalize-aliases -loop-versioning-licm -lower-expect -sroa -sancov -libcalls-shrinkwrap -reassociate -memcpyopt -lcssa -speculative-execution -rpo-functionattrs -loop-instsimplify -div-rem-pairs -lower-constant-intrinsics -cross-dso-cfi -coro-cleanup -indvars -memcpyopt -loop-sink -bdce -loop-load-elim -loop-predication -loop-interchange -loop-deletion -indvars -simplifycfg -tailcallelim -forceattrs -loop-simplifycfg -infer-address-spaces -loop-idiom -globaldce -newgvn -barrier -sink -bdce -canonicalize-aliases -pgo-memop-opt -div-rem-pairs -mldst-motion -coro-split -slsr -redundant-dbg-inst-elim -inject-tli-mappings -loop-unroll -deadargelim -scalarizer -callsite-splitting -loop-predication -early-cse-memssa -loop-vectorize -tailcallelim -called-value-propagation -bdce -coro-split -instcombine -simple-loop-unswitch -globaldce -infer-address-spaces -slp-vectorizer -dce -ipconstprop -infer-address-spaces -functionattrs -gvn-hoist -mergeicmps -lower-constant-intrinsics -early-cse-memssa -mldst-motion -lower-guard-intrinsic -rewrite-statepoints-for-gc -sccp -loop-interchange -simple-loop-unswitch -argpromotion -break-crit-edges -pgo-memop-opt -nary-reassociate -rpo-functionattrs -indvars -functionattrs -loop-deletion -simplifycfg -strip -loop-data-prefetch -lcssa -callsite-splitting -strip -newgvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1424148606811146,10801.787313699722,opt -memcpyopt -licm -sink -simple-loop-unswitch -reg2mem -die -loop-simplify -canonicalize-aliases -licm -die -loop-versioning-licm -slp-vectorizer -loop-load-elim -instnamer -inject-tli-mappings -lower-constant-intrinsics -called-value-propagation -irce -lowerswitch -slsr -irce -post-inline-ee-instrument -barrier -sink -loop-reroll -newgvn -inline -mldst-motion -coro-elide -ipsccp -loop-unswitch -constprop -lower-constant-intrinsics -bdce -rewrite-statepoints-for-gc -coro-elide -mem2reg -alignment-from-assumptions -coro-early -forceattrs -loop-fusion -coro-elide -inject-tli-mappings -loop-sink -adce -bdce -inject-tli-mappings -div-rem-pairs -loweratomic -break-crit-edges -argpromotion -instcombine -sancov -consthoist -bdce -coro-elide -memcpyopt -sink -loop-unroll-and-jam -loweratomic -lowerswitch -ipconstprop -lower-guard-intrinsic -post-inline-ee-instrument -early-cse-memssa -gvn-hoist -early-cse-memssa -simplifycfg -tailcallelim -die -mldst-motion -called-value-propagation -mergereturn -inject-tli-mappings -argpromotion -pgo-memop-opt -deadargelim -loop-unroll -pgo-memop-opt -lcssa -dse -nary-reassociate -globalsplit -mldst-motion -simplifycfg -functionattrs -gvn-hoist -newgvn input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1073208125718668,10804.232735157013,opt -sroa -jump-threading -loop-reroll -indvars -newgvn -rewrite-statepoints-for-gc -instcombine -strip-dead-prototypes -mem2reg -libcalls-shrinkwrap -alignment-from-assumptions -inferattrs -instcombine -scalarizer -newgvn -argpromotion -coro-cleanup -simplifycfg -ee-instrument -lower-constant-intrinsics -strip-nondebug -rewrite-statepoints-for-gc -insert-gcov-profiling -instcombine input.bc -o output.bc -benchmark://cBench-v1/sha,1.535117056856187,10801.805096626282,opt -mergeicmps -loop-versioning-licm -loop-idiom -loop-fusion -barrier -newgvn -sink -separate-const-offset-from-gep -jump-threading -globalsplit -instcombine -rewrite-statepoints-for-gc -inject-tli-mappings -mldst-motion -ipconstprop -elim-avail-extern -sccp -guard-widening -mldst-motion -libcalls-shrinkwrap -strip-nondebug -speculative-execution -coro-elide -loop-predication -ipsccp -reassociate -loop-reroll -slsr -reassociate -early-cse-memssa -canonicalize-aliases -coro-cleanup -early-cse-memssa -partial-inliner -loop-reroll -cross-dso-cfi -loweratomic -dce -add-discriminators -instsimplify -strip-nondebug -rpo-functionattrs -redundant-dbg-inst-elim -globalopt -redundant-dbg-inst-elim -loweratomic -loop-deletion -infer-address-spaces -strip-dead-prototypes -coro-early -sancov -strip-dead-prototypes -irce -loop-versioning -canonicalize-aliases -globalsplit -loop-deletion -globalsplit -instnamer -load-store-vectorizer -mldst-motion -pgo-memop-opt -newgvn -loop-sink -redundant-dbg-inst-elim -infer-address-spaces -loop-unroll-and-jam -prune-eh -coro-split -lower-widenable-condition -bdce -mergereturn -consthoist -inferattrs -inject-tli-mappings -ipsccp -sink -indvars -loop-unroll-and-jam -reassociate -argpromotion -dce -strip-debug-declare -memcpyopt -consthoist -coro-early -add-discriminators -div-rem-pairs -memcpyopt -loop-rotate -instnamer -newgvn -pgo-memop-opt -loop-load-elim -adce -bdce -loop-guard-widening -cross-dso-cfi -mergereturn -ipsccp -lower-expect -barrier -loop-fusion -indvars -loop-predication -irce -loop-instsimplify -loop-predication -lower-matrix-intrinsics -pgo-memop-opt -lowerswitch -loop-fusion -gvn -loop-versioning-licm -instcombine -mldst-motion -loop-idiom -mem2reg -mergefunc -libcalls-shrinkwrap -scalarizer -coro-elide -lowerswitch -separate-const-offset-from-gep -argpromotion -lcssa -loop-reduce -float2int -mergefunc -alignment-from-assumptions -hotcoldsplit -name-anon-globals -ipconstprop -post-inline-ee-instrument -hotcoldsplit -lower-expect -always-inline -called-value-propagation -gvn-hoist -irce -loop-load-elim -lowerinvoke -name-anon-globals -sccp -lower-widenable-condition -strip-debug-declare -mem2reg -inferattrs -mergeicmps -separate-const-offset-from-gep -strip -bdce -argpromotion -ipsccp -always-inline -barrier -sccp -coro-early -inject-tli-mappings -break-crit-edges -canonicalize-aliases -tailcallelim -dse -elim-avail-extern -dce -insert-gcov-profiling -scalarizer -elim-avail-extern -loop-simplify -add-discriminators -loop-rotate -constprop -simple-loop-unswitch -mem2reg -reg2mem -indvars -lowerinvoke -coro-elide -load-store-vectorizer -lowerswitch -loop-simplifycfg -slp-vectorizer -instnamer -infer-address-spaces -lowerinvoke -loop-simplifycfg -dse -loop-sink -infer-address-spaces -dce -loop-simplify -dce -loop-unroll -loop-fusion -coro-cleanup -elim-avail-extern -simplifycfg -lower-matrix-intrinsics -jump-threading -constmerge -mergereturn -loop-deletion -loop-rotate -sink -mem2reg -loop-deletion -libcalls-shrinkwrap -lcssa -sccp -loop-sink -div-rem-pairs -instsimplify -mergefunc -loop-data-prefetch -strip-debug-declare -strip -simplifycfg -jump-threading -loop-predication -ee-instrument -tailcallelim -ipsccp -lower-guard-intrinsic -simplifycfg -rpo-functionattrs -speculative-execution -constprop -strip-nondebug -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0191256830601092,10801.714073419571,opt -lcssa -infer-address-spaces -dse -simplifycfg -tailcallelim -lower-matrix-intrinsics -inferattrs -infer-address-spaces -lower-constant-intrinsics -sroa -loop-deletion -consthoist -globaldce -lower-expect -correlated-propagation -gvn-hoist -memcpyopt -loop-instsimplify -scalarizer -globalsplit -argpromotion -coro-split -loop-vectorize -mergefunc -loop-idiom -forceattrs -partially-inline-libcalls -loop-load-elim -instsimplify -loop-unroll -tailcallelim -globaldce -loop-deletion -lowerswitch -reassociate -functionattrs -lower-matrix-intrinsics -irce -sink -aggressive-instcombine -adce -attributor -early-cse-memssa -flattencfg -callsite-splitting -deadargelim -speculative-execution -lower-expect -hotcoldsplit -strip-dead-prototypes -loop-instsimplify -attributor -globalsplit -instsimplify -lower-matrix-intrinsics -strip -infer-address-spaces -reassociate -licm -coro-split -infer-address-spaces -lower-matrix-intrinsics -coro-early -dce -lower-widenable-condition -attributor -reassociate -pgo-memop-opt -coro-cleanup -loop-versioning-licm -aggressive-instcombine -lowerinvoke -slp-vectorizer -globaldce -lower-expect -indvars -inferattrs -loop-unroll -memcpyopt -inferattrs -elim-avail-extern -rewrite-statepoints-for-gc -name-anon-globals -constprop -constmerge -break-crit-edges -newgvn -globalopt -add-discriminators -reassociate -slsr -licm -newgvn -separate-const-offset-from-gep -loop-data-prefetch -mergefunc -float2int -lower-matrix-intrinsics -memcpyopt -prune-eh -strip-nondebug -mldst-motion -loop-simplify -aggressive-instcombine -add-discriminators -callsite-splitting -dce -lower-expect -instsimplify -redundant-dbg-inst-elim -lower-constant-intrinsics -globalsplit -instcombine -canonicalize-aliases -called-value-propagation -loop-load-elim -dce -bdce -name-anon-globals -loweratomic -slp-vectorizer -simple-loop-unswitch -barrier -rpo-functionattrs -instcombine -mergefunc -libcalls-shrinkwrap -loop-versioning -loop-load-elim -lowerinvoke -early-cse-memssa -coro-cleanup -lower-guard-intrinsic -ipsccp -coro-cleanup -add-discriminators -globaldce -loop-simplify -sancov -break-crit-edges -lower-guard-intrinsic -aggressive-instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,1.003731343283582,10801.818507194519,opt -instcombine -scalarizer -loop-instsimplify -strip-debug-declare -pgo-memop-opt -separate-const-offset-from-gep -forceattrs -mergefunc -scalarizer -newgvn -post-inline-ee-instrument -forceattrs -die -newgvn -guard-widening -loop-distribute -libcalls-shrinkwrap -functionattrs -loop-rotate -ee-instrument -forceattrs -ipconstprop -sccp -aggressive-instcombine -loop-data-prefetch -ee-instrument -sroa -scalarizer -loop-instsimplify -called-value-propagation -partial-inliner -mergefunc -add-discriminators -cross-dso-cfi -sccp -nary-reassociate -loop-rotate -div-rem-pairs -loop-unswitch -libcalls-shrinkwrap -elim-avail-extern -newgvn -indvars -lower-constant-intrinsics -globaldce -indvars -loop-rotate -gvn -functionattrs -licm -loop-instsimplify -loop-unswitch -bdce -lower-widenable-condition -attributor -mldst-motion -slsr -instcombine -deadargelim -nary-reassociate -ee-instrument -die -elim-avail-extern -insert-gcov-profiling -add-discriminators -lower-guard-intrinsic -loop-fusion -slp-vectorizer -name-anon-globals -loop-unroll -jump-threading -loop-distribute -infer-address-spaces -dse -div-rem-pairs -constmerge -forceattrs -consthoist -lower-matrix-intrinsics -gvn-hoist -pgo-memop-opt -globalopt -always-inline -dce -lower-matrix-intrinsics -ee-instrument -strip-debug-declare -strip-dead-prototypes -canonicalize-aliases -die -mem2reg -indvars -separate-const-offset-from-gep -partial-inliner -globaldce -always-inline -tailcallelim -simplifycfg -gvn-hoist -constprop -sink -ipconstprop -ipsccp -instcombine input.bc -o output.bc -benchmark://cBench-v1/susan,0.9847709239825954,3603.660972595215,opt -break-crit-edges -lowerinvoke -reg2mem -bdce -loop-predication -newgvn -constprop -loop-interchange -load-store-vectorizer -globalopt -inferattrs -deadargelim -loop-versioning -inline -aggressive-instcombine -gvn -instcombine -strip-nondebug -loop-sink -partially-inline-libcalls -mergefunc -forceattrs -mldst-motion -irce -speculative-execution -strip-debug-declare -bdce -loop-unroll-and-jam -simple-loop-unswitch -inject-tli-mappings -slsr -loop-distribute -lower-guard-intrinsic -lower-widenable-condition -loop-reroll -coro-cleanup -sccp -gvn-hoist -functionattrs -adce -adce -inferattrs -instcombine -strip-debug-declare -scalarizer -sccp -newgvn -mergeicmps -mergeicmps -consthoist -dce -name-anon-globals -gvn -separate-const-offset-from-gep -simplifycfg -loop-instsimplify -name-anon-globals -mem2reg -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -coro-elide -coro-cleanup -consthoist -early-cse-memssa -loop-idiom -constprop -adce -guard-widening -lower-guard-intrinsic -globaldce -gvn -globalsplit -float2int -mergeicmps -coro-elide -loop-guard-widening -functionattrs -constprop -slp-vectorizer -simple-loop-unswitch -loop-sink -mldst-motion -loop-predication -instcombine -callsite-splitting -loop-data-prefetch -sccp -alignment-from-assumptions -cross-dso-cfi -instnamer -inferattrs -mldst-motion -guard-widening -loop-simplify -loop-data-prefetch -die -constprop -strip -sccp -slsr -newgvn -sroa -loop-simplifycfg -loop-instsimplify -elim-avail-extern -mergefunc -loop-interchange -div-rem-pairs -loop-interchange -mergereturn -lower-guard-intrinsic -libcalls-shrinkwrap -nary-reassociate -lower-matrix-intrinsics -aggressive-instcombine -ee-instrument -globaldce -prune-eh -jump-threading -mergereturn -functionattrs -lower-matrix-intrinsics -correlated-propagation -separate-const-offset-from-gep -div-rem-pairs -hotcoldsplit -loop-data-prefetch -mergereturn -insert-gcov-profiling -die -instsimplify -lower-matrix-intrinsics -partially-inline-libcalls -prune-eh -canonicalize-aliases -strip-debug-declare -strip-dead-prototypes -always-inline -strip -jump-threading -coro-split -inferattrs -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0406533185286009,10814.408720254898,opt -scalarizer -constmerge -die -loop-unswitch -lcssa -dce -libcalls-shrinkwrap -reassociate -simplifycfg -barrier -coro-cleanup -sink -rpo-functionattrs -loop-data-prefetch -lower-guard-intrinsic -sroa -div-rem-pairs -hotcoldsplit -scalarizer -loop-predication -dse -tailcallelim -licm -strip-debug-declare -jump-threading -irce -ipconstprop -loop-interchange -correlated-propagation -loop-versioning -constprop -correlated-propagation -add-discriminators -forceattrs -loop-fusion -loop-data-prefetch -correlated-propagation -lowerinvoke -always-inline -ee-instrument -loop-predication -add-discriminators -simple-loop-unswitch -forceattrs -consthoist -aggressive-instcombine -deadargelim -loop-distribute -mergeicmps -gvn -reassociate -gvn-hoist -nary-reassociate -separate-const-offset-from-gep -simplifycfg -name-anon-globals -scalarizer -instcombine -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0394226626454115,10816.927260875702,opt -deadargelim -mem2reg -reg2mem -inferattrs -lowerinvoke -separate-const-offset-from-gep -strip-dead-prototypes -infer-address-spaces -nary-reassociate -loop-reroll -mldst-motion -slsr -loop-data-prefetch -loop-guard-widening -hotcoldsplit -loop-unroll -separate-const-offset-from-gep -tailcallelim -adce -strip-dead-prototypes -globalopt -barrier -mergefunc -instsimplify -loop-versioning -lcssa -simple-loop-unswitch -callsite-splitting -lcssa -mergereturn -newgvn -dce -separate-const-offset-from-gep -ipconstprop -loop-versioning -guard-widening -instnamer -coro-elide -coro-elide -alignment-from-assumptions -globalopt -newgvn -loop-unroll -mergereturn -strip-dead-prototypes -loop-simplify -partial-inliner -add-discriminators -loweratomic -mem2reg -simplifycfg -lower-widenable-condition -gvn-hoist -prune-eh -elim-avail-extern -strip-nondebug -lowerinvoke -loop-fusion -lower-guard-intrinsic -newgvn -partially-inline-libcalls -instcombine -separate-const-offset-from-gep -reassociate -lower-guard-intrinsic -div-rem-pairs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0419550173010381,10943.992988586426,opt -mem2reg -simplifycfg -strip-nondebug -add-discriminators -tailcallelim -tailcallelim -jump-threading -gvn-hoist -consthoist -strip -coro-cleanup -alignment-from-assumptions -callsite-splitting -hotcoldsplit -jump-threading -loop-data-prefetch -dce -bdce -mldst-motion -bdce -loop-guard-widening -guard-widening -nary-reassociate -barrier -loop-interchange -lower-matrix-intrinsics -loop-simplify -tailcallelim -separate-const-offset-from-gep -loweratomic -libcalls-shrinkwrap -flattencfg -rewrite-statepoints-for-gc -globalopt -inferattrs -tailcallelim -loweratomic -slp-vectorizer -name-anon-globals -gvn-hoist -sancov -loop-unroll-and-jam -add-discriminators -loop-idiom -rewrite-statepoints-for-gc -slp-vectorizer -loop-data-prefetch -loop-simplifycfg -argpromotion -loop-load-elim -constmerge -globaldce -loop-distribute -rpo-functionattrs -sancov -loop-load-elim -jump-threading -adce -lowerinvoke -cross-dso-cfi -reg2mem -strip-debug-declare -mem2reg -prune-eh -rewrite-statepoints-for-gc -constmerge -post-inline-ee-instrument -mem2reg -elim-avail-extern -mergefunc -slp-vectorizer -prune-eh -newgvn -jump-threading -loop-deletion -mldst-motion -functionattrs -coro-early -lower-constant-intrinsics -loop-simplify -speculative-execution -deadargelim -licm -coro-elide -lower-expect -memcpyopt -insert-gcov-profiling -gvn -loop-reroll -loweratomic -barrier -loop-predication -lower-matrix-intrinsics -barrier -loop-distribute -hotcoldsplit -lower-widenable-condition -ipsccp -break-crit-edges -reassociate -coro-early -dce -loop-sink -constmerge -loop-idiom -lowerinvoke -reassociate -called-value-propagation -newgvn -sroa -partial-inliner -instcombine -lcssa -flattencfg -lower-matrix-intrinsics -early-cse-memssa -called-value-propagation -infer-address-spaces -float2int -inject-tli-mappings -insert-gcov-profiling -loop-sink -break-crit-edges -nary-reassociate -scalarizer -libcalls-shrinkwrap -adce -prune-eh -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0387964891909427,10998.024054765701,opt -simplifycfg -constmerge -loop-simplifycfg -loop-predication -prune-eh -attributor -reg2mem -memcpyopt -deadargelim -dce -partially-inline-libcalls -instsimplify -indvars -slsr -forceattrs -newgvn -constmerge -lower-constant-intrinsics -sccp -mem2reg -prune-eh -sancov -sccp -partially-inline-libcalls -rewrite-statepoints-for-gc -loweratomic -loop-reroll -ipconstprop -strip-dead-prototypes -functionattrs -loop-simplify -sancov -barrier -lower-widenable-condition -attributor -licm -instcombine -loop-instsimplify -mem2reg -loop-data-prefetch -newgvn -rewrite-statepoints-for-gc -aggressive-instcombine -lower-guard-intrinsic -called-value-propagation -constmerge -functionattrs -name-anon-globals -barrier -loop-instsimplify -loop-versioning-licm -newgvn -simplifycfg -slp-vectorizer -constprop -flattencfg -rpo-functionattrs -loweratomic -instsimplify -memcpyopt input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0083798882681567,10801.772290468216,opt -loop-distribute -strip-dead-prototypes -loop-unroll-and-jam -loop-distribute -constprop -called-value-propagation -infer-address-spaces -ee-instrument -hotcoldsplit -correlated-propagation -loop-unroll-and-jam -loop-distribute -loop-predication -sroa -infer-address-spaces -die -coro-elide -sancov -partially-inline-libcalls -memcpyopt -coro-early -mergeicmps -ipsccp -loop-predication -called-value-propagation -lowerinvoke -dse -globalsplit -irce -mergereturn -sroa -aggressive-instcombine -rewrite-statepoints-for-gc -coro-split -sancov -inline -instsimplify -sancov -infer-address-spaces -float2int -inject-tli-mappings -mldst-motion -speculative-execution -loop-unroll-and-jam -slsr -loop-unswitch -loweratomic -simplifycfg -dce -instcombine -barrier -div-rem-pairs -early-cse-memssa -loop-guard-widening -strip-nondebug -mergereturn -break-crit-edges -jump-threading -sroa -loweratomic -tailcallelim -nary-reassociate -div-rem-pairs -adce -instcombine -mergefunc -coro-cleanup -globaldce -instcombine -loop-versioning -gvn-hoist -lower-matrix-intrinsics -libcalls-shrinkwrap -globaldce -inline -loop-vectorize -jump-threading -guard-widening -mergeicmps -always-inline -inject-tli-mappings -separate-const-offset-from-gep -instnamer -mergeicmps -memcpyopt -mem2reg -sroa -separate-const-offset-from-gep -div-rem-pairs -lower-matrix-intrinsics -canonicalize-aliases -sancov -constmerge -loop-predication -cross-dso-cfi -simplifycfg -consthoist -barrier -bdce -reassociate -redundant-dbg-inst-elim -strip -instsimplify input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0154867256637168,10801.793578386307,opt -functionattrs -globaldce -constmerge -argpromotion -sink -ipconstprop -reassociate -gvn-hoist -loop-reduce -loop-fusion -loop-simplifycfg -loop-unroll -mem2reg -indvars -name-anon-globals -early-cse-memssa -globaldce -dse -aggressive-instcombine -lower-constant-intrinsics -argpromotion -called-value-propagation -simplifycfg -loop-unroll-and-jam -rewrite-statepoints-for-gc -simple-loop-unswitch -early-cse-memssa -sroa -reg2mem -loop-simplifycfg -gvn-hoist -coro-early -memcpyopt -reassociate -sccp -tailcallelim -forceattrs -callsite-splitting -early-cse-memssa -loop-unroll -mem2reg -scalarizer -instcombine -pgo-memop-opt -lower-expect -aggressive-instcombine -mergeicmps -nary-reassociate -globaldce -callsite-splitting -coro-cleanup -globalsplit -simplifycfg -strip-nondebug -strip-dead-prototypes -inject-tli-mappings -strip -post-inline-ee-instrument -coro-elide -tailcallelim -libcalls-shrinkwrap -consthoist -rpo-functionattrs -redundant-dbg-inst-elim -sccp -libcalls-shrinkwrap -loop-versioning -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0880407124681934,10801.877015829086,opt -simplifycfg -globalopt -constmerge -consthoist -globalopt -loop-reroll -sroa -coro-early -rpo-functionattrs -mergereturn -lcssa -loop-simplifycfg -mergeicmps -slsr -add-discriminators -flattencfg -instnamer -strip-dead-prototypes -libcalls-shrinkwrap -callsite-splitting -libcalls-shrinkwrap -loop-vectorize -pgo-memop-opt -correlated-propagation -lower-guard-intrinsic -globalopt -hotcoldsplit -loop-fusion -barrier -newgvn -loop-unroll -guard-widening -nary-reassociate -lower-widenable-condition -inferattrs -insert-gcov-profiling -bdce -coro-early -strip -sccp -elim-avail-extern -loop-fusion -strip -name-anon-globals -attributor -hotcoldsplit -lowerinvoke -correlated-propagation -licm -loop-fusion -alignment-from-assumptions -strip-dead-prototypes -loop-vectorize -strip-nondebug -strip-dead-prototypes -float2int -jump-threading -reassociate -redundant-dbg-inst-elim -coro-elide -coro-early -die -instcombine -libcalls-shrinkwrap -slsr -coro-elide -loop-versioning-licm -sancov -forceattrs -gvn-hoist -irce -loop-deletion -hotcoldsplit -div-rem-pairs -strip-debug-declare -break-crit-edges -correlated-propagation -strip -loop-instsimplify -simplifycfg -lower-widenable-condition -prune-eh -newgvn -instnamer -argpromotion -loop-distribute -loop-instsimplify -loweratomic -loop-versioning -slp-vectorizer -called-value-propagation -sancov -mergefunc -globalopt -loop-data-prefetch -coro-elide -strip-nondebug -indvars -scalarizer -loop-guard-widening -adce -float2int -coro-elide -loop-unroll-and-jam -coro-cleanup -canonicalize-aliases -early-cse-memssa -loop-guard-widening -rpo-functionattrs -guard-widening -loop-simplify -hotcoldsplit -coro-split -float2int -bdce -coro-cleanup -die -licm -div-rem-pairs -add-discriminators -strip-nondebug -strip-debug-declare -reassociate -instcombine -lower-constant-intrinsics -strip-dead-prototypes -sccp -slsr -deadargelim -lcssa -globaldce -dse -name-anon-globals -instnamer -globalsplit -globaldce -redundant-dbg-inst-elim -consthoist -gvn-hoist -lower-guard-intrinsic -elim-avail-extern -instsimplify -canonicalize-aliases -memcpyopt -load-store-vectorizer -mergefunc -callsite-splitting -adce -adce -instcombine -functionattrs -lower-matrix-intrinsics -lower-guard-intrinsic -partial-inliner -rewrite-statepoints-for-gc -coro-split -callsite-splitting -guard-widening -inject-tli-mappings -loop-reroll -correlated-propagation -post-inline-ee-instrument -ipconstprop -jump-threading -slp-vectorizer -ee-instrument -loop-instsimplify -slsr -loop-instsimplify -sink -loweratomic -strip-debug-declare -mldst-motion -slp-vectorizer -globalopt -post-inline-ee-instrument -bdce -instcombine input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.209654741446649,10808.157907485962,opt -separate-const-offset-from-gep -barrier -lower-constant-intrinsics -loop-interchange -partially-inline-libcalls -bdce -constmerge -lcssa -loop-sink -globalopt -loop-simplifycfg -loop-deletion -loop-sink -lower-matrix-intrinsics -loop-fusion -strip-nondebug -loop-data-prefetch -licm -constmerge -globalopt -bdce -alignment-from-assumptions -sccp -forceattrs -functionattrs -loop-simplify -sroa -globalsplit -licm -newgvn -lowerinvoke -loop-reroll -ipsccp -globalsplit -speculative-execution -loweratomic -break-crit-edges -adce -loop-load-elim -tailcallelim -barrier -loop-vectorize -loop-guard-widening -callsite-splitting -gvn-hoist -simple-loop-unswitch -consthoist -simplifycfg -insert-gcov-profiling -nary-reassociate -flattencfg -prune-eh -constmerge -guard-widening -constmerge -memcpyopt -memcpyopt -globaldce -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,10802.23005247116,opt -loop-sink -jump-threading -prune-eh -loop-instsimplify -reg2mem -nary-reassociate -break-crit-edges -lower-constant-intrinsics -loop-fusion -consthoist -infer-address-spaces -loop-guard-widening -scalarizer -callsite-splitting -lower-constant-intrinsics -alignment-from-assumptions -load-store-vectorizer -coro-cleanup -correlated-propagation -consthoist -insert-gcov-profiling -inject-tli-mappings -adce -loweratomic -loop-data-prefetch -mergeicmps -constprop -callsite-splitting -deadargelim -float2int -coro-cleanup -loop-interchange -functionattrs -float2int -loop-reroll -loop-versioning -indvars -redundant-dbg-inst-elim -separate-const-offset-from-gep -early-cse-memssa -libcalls-shrinkwrap -inferattrs -rewrite-statepoints-for-gc -reassociate -bdce -loop-versioning-licm -nary-reassociate -break-crit-edges -lower-widenable-condition -loop-unswitch -gvn-hoist -memcpyopt -scalarizer -loop-data-prefetch -sccp -alignment-from-assumptions -newgvn -lowerinvoke -die -lower-widenable-condition -irce -mergeicmps -coro-cleanup -alignment-from-assumptions -break-crit-edges -instcombine -mem2reg -called-value-propagation -reassociate -mergefunc -constmerge -loop-versioning-licm -indvars -gvn -insert-gcov-profiling -barrier -globalopt -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9948979591836737,10801.72380065918,opt -loop-deletion -mem2reg -load-store-vectorizer -loop-unroll -loop-distribute -loop-fusion -loop-reroll -callsite-splitting -flattencfg -prune-eh -loop-load-elim -flattencfg -newgvn -loop-idiom -inferattrs -licm -sink -loop-vectorize -post-inline-ee-instrument -flattencfg -add-discriminators -bdce -lower-constant-intrinsics -loop-reduce -post-inline-ee-instrument -sancov -lower-widenable-condition -slsr -div-rem-pairs -lowerswitch -dce -indvars -loop-simplifycfg -lower-guard-intrinsic -inferattrs -name-anon-globals -jump-threading -lowerinvoke -loop-simplify -loop-simplify -inject-tli-mappings -callsite-splitting -loop-unroll -dce -simple-loop-unswitch -div-rem-pairs -always-inline -coro-split -loop-load-elim -gvn-hoist -redundant-dbg-inst-elim -loop-deletion -loop-instsimplify -mergefunc -slp-vectorizer -coro-early -loop-simplifycfg -early-cse-memssa -barrier -name-anon-globals -mem2reg -adce -loop-vectorize -redundant-dbg-inst-elim -reassociate -inferattrs -called-value-propagation -coro-elide -loop-simplify -loop-guard-widening -strip-nondebug -constprop -prune-eh -dse -ipsccp -sroa -lower-constant-intrinsics -memcpyopt -insert-gcov-profiling -aggressive-instcombine -rewrite-statepoints-for-gc -simplifycfg -loop-distribute -loop-vectorize -adce -ipconstprop -slp-vectorizer -rpo-functionattrs -inferattrs -loop-sink -instcombine -slp-vectorizer -strip-dead-prototypes -loop-distribute -memcpyopt -consthoist -name-anon-globals -libcalls-shrinkwrap -speculative-execution -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0169287793620125,10930.950301408768,opt -loop-versioning-licm -load-store-vectorizer -canonicalize-aliases -loop-simplify -loop-versioning-licm -ee-instrument -mldst-motion -loop-deletion -strip-dead-prototypes -loop-predication -scalarizer -reg2mem -bdce -mldst-motion -sccp -loop-guard-widening -ee-instrument -gvn-hoist -partially-inline-libcalls -name-anon-globals -scalarizer -mem2reg -insert-gcov-profiling -early-cse-memssa -loop-instsimplify -dce -gvn -coro-split -separate-const-offset-from-gep -coro-split -loop-unroll -loop-guard-widening -mldst-motion -break-crit-edges -loop-guard-widening -mergefunc -load-store-vectorizer -loop-deletion -sccp -sancov -gvn -strip-dead-prototypes -memcpyopt -loop-distribute -coro-early -aggressive-instcombine -loop-reroll -inferattrs -add-discriminators -callsite-splitting -inject-tli-mappings -coro-elide -loop-reroll -globalsplit -hotcoldsplit -pgo-memop-opt -mergefunc -irce -insert-gcov-profiling -constmerge -strip -simple-loop-unswitch -instnamer -globaldce -forceattrs -constprop -loop-predication -loop-load-elim -speculative-execution -loop-simplifycfg -instcombine -instsimplify -ipsccp -mergeicmps -called-value-propagation -ipconstprop -loop-vectorize -constmerge -dse -constmerge -strip-nondebug -licm -loop-unroll-and-jam -canonicalize-aliases -inferattrs -mldst-motion -functionattrs -separate-const-offset-from-gep -mergeicmps -loop-reroll -slsr -tailcallelim -load-store-vectorizer -lower-widenable-condition -simple-loop-unswitch -post-inline-ee-instrument -alignment-from-assumptions -ipsccp -always-inline -loop-simplifycfg -lower-widenable-condition -aggressive-instcombine -adce -slp-vectorizer -partially-inline-libcalls -loop-load-elim -dce -name-anon-globals -ee-instrument -globalsplit -simplifycfg -inject-tli-mappings -die -gvn-hoist -separate-const-offset-from-gep -coro-elide -partially-inline-libcalls -callsite-splitting -instsimplify -jump-threading -lower-expect -loop-vectorize -loop-fusion -coro-early -dse -lower-widenable-condition -coro-cleanup -instnamer -add-discriminators -strip-debug-declare -post-inline-ee-instrument -dse -lcssa -div-rem-pairs -nary-reassociate -insert-gcov-profiling -slsr -strip-debug-declare -reassociate -pgo-memop-opt -gvn -irce -pgo-memop-opt -separate-const-offset-from-gep -early-cse-memssa -elim-avail-extern -gvn-hoist -inferattrs -loop-unroll -inject-tli-mappings -always-inline -functionattrs -aggressive-instcombine -sccp -loop-instsimplify -deadargelim -break-crit-edges -aggressive-instcombine -dce -float2int -ee-instrument -loop-idiom -slp-vectorizer -sink -loop-idiom -dse -loop-versioning-licm -licm -loop-unroll -globaldce -flattencfg -globalsplit -strip-debug-declare -loop-load-elim -mem2reg -constprop -loop-guard-widening -bdce -alignment-from-assumptions -dce -loweratomic -loop-data-prefetch -loop-vectorize -div-rem-pairs -constmerge -loop-instsimplify -pgo-memop-opt -lower-constant-intrinsics -called-value-propagation -strip-debug-declare -mldst-motion -loop-load-elim -infer-address-spaces -attributor -strip-nondebug -pgo-memop-opt -instsimplify -lowerinvoke -strip-dead-prototypes -cross-dso-cfi -coro-elide -bdce -libcalls-shrinkwrap -adce -loop-distribute -loop-instsimplify -gvn-hoist -strip-nondebug -consthoist -instcombine -strip-dead-prototypes -loop-data-prefetch -rpo-functionattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.094621513944223,10802.920687913895,opt -mem2reg -strip -loop-fusion -loop-reduce -loop-instsimplify -loop-versioning-licm -canonicalize-aliases -scalarizer -lower-expect -constprop -div-rem-pairs -instcombine -mergefunc -loop-unswitch -inferattrs -lowerinvoke -loweratomic -loop-versioning-licm -rewrite-statepoints-for-gc -add-discriminators -loop-deletion -strip-dead-prototypes -insert-gcov-profiling -newgvn -partially-inline-libcalls -nary-reassociate -loop-predication -lowerinvoke -irce -reassociate -argpromotion -lowerswitch -sroa -attributor -die -strip -called-value-propagation -strip-dead-prototypes -loop-guard-widening -dse -load-store-vectorizer -loop-reduce -pgo-memop-opt -loop-simplify -argpromotion -constmerge -float2int -alignment-from-assumptions -nary-reassociate -prune-eh -separate-const-offset-from-gep -bdce -separate-const-offset-from-gep -slp-vectorizer -mldst-motion -elim-avail-extern -ipconstprop -die -lower-widenable-condition -early-cse-memssa -lowerswitch -ipsccp -bdce -mergereturn -guard-widening -pgo-memop-opt -called-value-propagation -mergefunc -dse -instsimplify -sroa -correlated-propagation -instcombine -lowerinvoke -simple-loop-unswitch -libcalls-shrinkwrap -loop-sink -strip-nondebug -gvn-hoist -lowerswitch -instsimplify -flattencfg -mergeicmps -float2int -constprop -reassociate -gvn -infer-address-spaces -newgvn -loop-load-elim -dse -flattencfg -nary-reassociate -cross-dso-cfi -simplifycfg -load-store-vectorizer -deadargelim -loop-versioning -loop-deletion -dce -deadargelim -forceattrs -loop-data-prefetch -loop-instsimplify -forceattrs -loop-versioning -constmerge -insert-gcov-profiling -cross-dso-cfi -jump-threading -strip-nondebug -jump-threading -libcalls-shrinkwrap -loop-sink -loop-deletion -sroa -cross-dso-cfi -strip -div-rem-pairs -sancov -loop-unswitch -bdce -barrier -strip-nondebug -reassociate -aggressive-instcombine -mergefunc -slp-vectorizer -strip-nondebug -prune-eh -globaldce -coro-cleanup -rpo-functionattrs -simplifycfg -strip-dead-prototypes -constmerge -mergeicmps -separate-const-offset-from-gep -loop-data-prefetch -loop-interchange -irce -div-rem-pairs -loop-unswitch -speculative-execution -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0204081632653061,10805.658698558807,opt -deadargelim -name-anon-globals -gvn-hoist -mem2reg -bdce -alignment-from-assumptions -prune-eh -redundant-dbg-inst-elim -dce -attributor -jump-threading -elim-avail-extern -die -ipconstprop -early-cse-memssa -guard-widening -scalarizer -lower-expect -instnamer -redundant-dbg-inst-elim -loop-reroll -pgo-memop-opt -div-rem-pairs -libcalls-shrinkwrap -adce -loop-simplifycfg -loop-instsimplify -libcalls-shrinkwrap -float2int -loop-reroll -globaldce -lcssa -ipconstprop -loop-simplify -attributor -loop-instsimplify -licm -barrier -dse -loop-instsimplify -libcalls-shrinkwrap -instcombine -partially-inline-libcalls -always-inline -loop-unroll-and-jam -globalsplit -loop-unroll -functionattrs -mem2reg -inject-tli-mappings -add-discriminators -licm -loop-fusion -globalopt -simplifycfg -newgvn -inferattrs -rewrite-statepoints-for-gc -die -mergereturn -loop-predication -strip -simplifycfg -gvn -inject-tli-mappings -loop-sink -loop-unroll-and-jam -loop-reroll -redundant-dbg-inst-elim -loop-idiom -inject-tli-mappings -post-inline-ee-instrument -called-value-propagation -loop-guard-widening -slsr -coro-split -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0373562327556811,10813.031274080276,opt -lower-guard-intrinsic -ipsccp -float2int -lower-constant-intrinsics -early-cse-memssa -mem2reg -loop-idiom -separate-const-offset-from-gep -lower-guard-intrinsic -loop-instsimplify -post-inline-ee-instrument -break-crit-edges -hotcoldsplit -cross-dso-cfi -post-inline-ee-instrument -die -strip-dead-prototypes -loop-deletion -post-inline-ee-instrument -early-cse-memssa -add-discriminators -loop-idiom -redundant-dbg-inst-elim -flattencfg -always-inline -strip-dead-prototypes -consthoist -lower-expect -correlated-propagation -inferattrs -coro-elide -flattencfg -rpo-functionattrs -strip-debug-declare -functionattrs -slp-vectorizer -rpo-functionattrs -guard-widening -mem2reg -forceattrs -loop-instsimplify -licm -called-value-propagation -mergereturn -strip-debug-declare -flattencfg -sink -separate-const-offset-from-gep -memcpyopt -lower-guard-intrinsic -instcombine -functionattrs -elim-avail-extern -always-inline -newgvn -mergefunc -early-cse-memssa -consthoist -sancov -redundant-dbg-inst-elim -loop-sink -loop-reroll -scalarizer -attributor -loop-interchange -sancov -loop-fusion -bdce -loop-vectorize -loweratomic -div-rem-pairs -partially-inline-libcalls -slsr -coro-cleanup -separate-const-offset-from-gep -dse -loop-unroll-and-jam -loweratomic -deadargelim -globalsplit -loop-versioning -constmerge -ipconstprop -loop-vectorize -infer-address-spaces -early-cse-memssa -ee-instrument -attributor -deadargelim -coro-split -rpo-functionattrs -name-anon-globals -loop-reroll -always-inline -mergereturn -rewrite-statepoints-for-gc -loop-versioning -load-store-vectorizer -canonicalize-aliases -coro-split -constmerge -always-inline -cross-dso-cfi -hotcoldsplit -instcombine -mem2reg -loop-predication -globalsplit -lower-guard-intrinsic -partial-inliner -indvars -ipsccp -simplifycfg -attributor -ipsccp -name-anon-globals -forceattrs -newgvn -loop-vectorize -memcpyopt -speculative-execution -insert-gcov-profiling -mergeicmps -slp-vectorizer -insert-gcov-profiling -mem2reg -loop-idiom -gvn-hoist -break-crit-edges -break-crit-edges -lower-matrix-intrinsics -attributor -rewrite-statepoints-for-gc -mergefunc -speculative-execution -instcombine -cross-dso-cfi -pgo-memop-opt -canonicalize-aliases -speculative-execution -lowerinvoke -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.040020605943527,10811.881211042404,opt -gvn-hoist -loop-versioning -forceattrs -loop-interchange -alignment-from-assumptions -redundant-dbg-inst-elim -lower-constant-intrinsics -loop-fusion -rewrite-statepoints-for-gc -simplifycfg -globalopt -coro-elide -inject-tli-mappings -load-store-vectorizer -rpo-functionattrs -hotcoldsplit -jump-threading -early-cse-memssa -cross-dso-cfi -break-crit-edges -globalsplit -loop-distribute -alignment-from-assumptions -reg2mem -sccp -prune-eh -deadargelim -strip-nondebug -guard-widening -separate-const-offset-from-gep -reg2mem -called-value-propagation -bdce -loop-vectorize -dse -sroa -elim-avail-extern -globalopt -loweratomic -aggressive-instcombine -break-crit-edges -canonicalize-aliases -early-cse-memssa -lower-matrix-intrinsics -forceattrs -insert-gcov-profiling -insert-gcov-profiling -pgo-memop-opt -strip -div-rem-pairs -jump-threading -strip-nondebug -loop-load-elim -strip-debug-declare -lower-matrix-intrinsics -nary-reassociate -inferattrs -coro-early -infer-address-spaces -canonicalize-aliases -indvars -pgo-memop-opt -loop-sink -post-inline-ee-instrument -inferattrs -bdce -loop-simplify -licm -tailcallelim -licm -inferattrs -instcombine -loop-interchange -rewrite-statepoints-for-gc -licm -simplifycfg -loop-predication -libcalls-shrinkwrap -flattencfg -ee-instrument -loop-instsimplify -elim-avail-extern -globalopt -newgvn -div-rem-pairs -strip -globalopt -ee-instrument -ipconstprop -add-discriminators -div-rem-pairs -cross-dso-cfi -coro-early -canonicalize-aliases -loop-load-elim -instcombine -scalarizer -flattencfg -sroa -loop-reroll -constprop -always-inline -guard-widening -instsimplify -separate-const-offset-from-gep -coro-elide -inferattrs -loop-vectorize -aggressive-instcombine -sroa -gvn-hoist -speculative-execution -newgvn -lowerinvoke -called-value-propagation -memcpyopt -gvn-hoist -constprop -globalsplit -strip-dead-prototypes -adce -lower-guard-intrinsic -loop-sink -lcssa -inferattrs -instcombine input.bc -o output.bc +benchmark://cbench-v1/lame,1.0565930312001823,10812.291928768158,opt -inferattrs -simple-loop-unswitch -flattencfg -alignment-from-assumptions -callsite-splitting -sccp -dce -coro-elide -libcalls-shrinkwrap -rewrite-statepoints-for-gc -globalsplit -mergereturn -load-store-vectorizer -loop-simplifycfg -rewrite-statepoints-for-gc -loop-interchange -pgo-memop-opt -early-cse-memssa -lowerinvoke -loop-simplifycfg -called-value-propagation -coro-early -bdce -inject-tli-mappings -barrier -guard-widening -mergefunc -slsr -irce -newgvn -consthoist -mem2reg -loop-vectorize -reassociate -float2int -dse -lower-matrix-intrinsics -tailcallelim -slsr -instcombine -float2int -loweratomic -alignment-from-assumptions -nary-reassociate -indvars -rewrite-statepoints-for-gc -coro-early -loop-interchange -always-inline -memcpyopt -loop-predication -globalsplit -slsr -instnamer -bdce -jump-threading -scalarizer -mergefunc -callsite-splitting -reassociate -newgvn -strip -barrier -deadargelim -loop-load-elim -reg2mem -die -gvn-hoist -sroa -loop-interchange -alignment-from-assumptions -forceattrs -mldst-motion -constmerge -newgvn -alignment-from-assumptions -strip-nondebug -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/patricia,1.0077864293659622,10801.536967754364,opt -indvars -loop-versioning -separate-const-offset-from-gep -rewrite-statepoints-for-gc -inject-tli-mappings -aggressive-instcombine -coro-early -licm -lower-expect -add-discriminators -slp-vectorizer -gvn -prune-eh -loop-unroll -libcalls-shrinkwrap -globalopt -newgvn -loop-distribute -dse -coro-elide -globalsplit -callsite-splitting -ipsccp -lowerswitch -lowerinvoke -aggressive-instcombine -name-anon-globals -speculative-execution -loop-vectorize -lcssa -memcpyopt -sancov -reassociate -lowerswitch -sink -canonicalize-aliases -loop-versioning-licm -lower-expect -sroa -sancov -libcalls-shrinkwrap -reassociate -memcpyopt -lcssa -speculative-execution -rpo-functionattrs -loop-instsimplify -div-rem-pairs -lower-constant-intrinsics -cross-dso-cfi -coro-cleanup -indvars -memcpyopt -loop-sink -bdce -loop-load-elim -loop-predication -loop-interchange -loop-deletion -indvars -simplifycfg -tailcallelim -forceattrs -loop-simplifycfg -infer-address-spaces -loop-idiom -globaldce -newgvn -barrier -sink -bdce -canonicalize-aliases -pgo-memop-opt -div-rem-pairs -mldst-motion -coro-split -slsr -redundant-dbg-inst-elim -inject-tli-mappings -loop-unroll -deadargelim -scalarizer -callsite-splitting -loop-predication -early-cse-memssa -loop-vectorize -tailcallelim -called-value-propagation -bdce -coro-split -instcombine -simple-loop-unswitch -globaldce -infer-address-spaces -slp-vectorizer -dce -ipconstprop -infer-address-spaces -functionattrs -gvn-hoist -mergeicmps -lower-constant-intrinsics -early-cse-memssa -mldst-motion -lower-guard-intrinsic -rewrite-statepoints-for-gc -sccp -loop-interchange -simple-loop-unswitch -argpromotion -break-crit-edges -pgo-memop-opt -nary-reassociate -rpo-functionattrs -indvars -functionattrs -loop-deletion -simplifycfg -strip -loop-data-prefetch -lcssa -callsite-splitting -strip -newgvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1424148606811146,10801.787313699722,opt -memcpyopt -licm -sink -simple-loop-unswitch -reg2mem -die -loop-simplify -canonicalize-aliases -licm -die -loop-versioning-licm -slp-vectorizer -loop-load-elim -instnamer -inject-tli-mappings -lower-constant-intrinsics -called-value-propagation -irce -lowerswitch -slsr -irce -post-inline-ee-instrument -barrier -sink -loop-reroll -newgvn -inline -mldst-motion -coro-elide -ipsccp -loop-unswitch -constprop -lower-constant-intrinsics -bdce -rewrite-statepoints-for-gc -coro-elide -mem2reg -alignment-from-assumptions -coro-early -forceattrs -loop-fusion -coro-elide -inject-tli-mappings -loop-sink -adce -bdce -inject-tli-mappings -div-rem-pairs -loweratomic -break-crit-edges -argpromotion -instcombine -sancov -consthoist -bdce -coro-elide -memcpyopt -sink -loop-unroll-and-jam -loweratomic -lowerswitch -ipconstprop -lower-guard-intrinsic -post-inline-ee-instrument -early-cse-memssa -gvn-hoist -early-cse-memssa -simplifycfg -tailcallelim -die -mldst-motion -called-value-propagation -mergereturn -inject-tli-mappings -argpromotion -pgo-memop-opt -deadargelim -loop-unroll -pgo-memop-opt -lcssa -dse -nary-reassociate -globalsplit -mldst-motion -simplifycfg -functionattrs -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1073208125718668,10804.232735157013,opt -sroa -jump-threading -loop-reroll -indvars -newgvn -rewrite-statepoints-for-gc -instcombine -strip-dead-prototypes -mem2reg -libcalls-shrinkwrap -alignment-from-assumptions -inferattrs -instcombine -scalarizer -newgvn -argpromotion -coro-cleanup -simplifycfg -ee-instrument -lower-constant-intrinsics -strip-nondebug -rewrite-statepoints-for-gc -insert-gcov-profiling -instcombine input.bc -o output.bc +benchmark://cbench-v1/sha,1.535117056856187,10801.805096626282,opt -mergeicmps -loop-versioning-licm -loop-idiom -loop-fusion -barrier -newgvn -sink -separate-const-offset-from-gep -jump-threading -globalsplit -instcombine -rewrite-statepoints-for-gc -inject-tli-mappings -mldst-motion -ipconstprop -elim-avail-extern -sccp -guard-widening -mldst-motion -libcalls-shrinkwrap -strip-nondebug -speculative-execution -coro-elide -loop-predication -ipsccp -reassociate -loop-reroll -slsr -reassociate -early-cse-memssa -canonicalize-aliases -coro-cleanup -early-cse-memssa -partial-inliner -loop-reroll -cross-dso-cfi -loweratomic -dce -add-discriminators -instsimplify -strip-nondebug -rpo-functionattrs -redundant-dbg-inst-elim -globalopt -redundant-dbg-inst-elim -loweratomic -loop-deletion -infer-address-spaces -strip-dead-prototypes -coro-early -sancov -strip-dead-prototypes -irce -loop-versioning -canonicalize-aliases -globalsplit -loop-deletion -globalsplit -instnamer -load-store-vectorizer -mldst-motion -pgo-memop-opt -newgvn -loop-sink -redundant-dbg-inst-elim -infer-address-spaces -loop-unroll-and-jam -prune-eh -coro-split -lower-widenable-condition -bdce -mergereturn -consthoist -inferattrs -inject-tli-mappings -ipsccp -sink -indvars -loop-unroll-and-jam -reassociate -argpromotion -dce -strip-debug-declare -memcpyopt -consthoist -coro-early -add-discriminators -div-rem-pairs -memcpyopt -loop-rotate -instnamer -newgvn -pgo-memop-opt -loop-load-elim -adce -bdce -loop-guard-widening -cross-dso-cfi -mergereturn -ipsccp -lower-expect -barrier -loop-fusion -indvars -loop-predication -irce -loop-instsimplify -loop-predication -lower-matrix-intrinsics -pgo-memop-opt -lowerswitch -loop-fusion -gvn -loop-versioning-licm -instcombine -mldst-motion -loop-idiom -mem2reg -mergefunc -libcalls-shrinkwrap -scalarizer -coro-elide -lowerswitch -separate-const-offset-from-gep -argpromotion -lcssa -loop-reduce -float2int -mergefunc -alignment-from-assumptions -hotcoldsplit -name-anon-globals -ipconstprop -post-inline-ee-instrument -hotcoldsplit -lower-expect -always-inline -called-value-propagation -gvn-hoist -irce -loop-load-elim -lowerinvoke -name-anon-globals -sccp -lower-widenable-condition -strip-debug-declare -mem2reg -inferattrs -mergeicmps -separate-const-offset-from-gep -strip -bdce -argpromotion -ipsccp -always-inline -barrier -sccp -coro-early -inject-tli-mappings -break-crit-edges -canonicalize-aliases -tailcallelim -dse -elim-avail-extern -dce -insert-gcov-profiling -scalarizer -elim-avail-extern -loop-simplify -add-discriminators -loop-rotate -constprop -simple-loop-unswitch -mem2reg -reg2mem -indvars -lowerinvoke -coro-elide -load-store-vectorizer -lowerswitch -loop-simplifycfg -slp-vectorizer -instnamer -infer-address-spaces -lowerinvoke -loop-simplifycfg -dse -loop-sink -infer-address-spaces -dce -loop-simplify -dce -loop-unroll -loop-fusion -coro-cleanup -elim-avail-extern -simplifycfg -lower-matrix-intrinsics -jump-threading -constmerge -mergereturn -loop-deletion -loop-rotate -sink -mem2reg -loop-deletion -libcalls-shrinkwrap -lcssa -sccp -loop-sink -div-rem-pairs -instsimplify -mergefunc -loop-data-prefetch -strip-debug-declare -strip -simplifycfg -jump-threading -loop-predication -ee-instrument -tailcallelim -ipsccp -lower-guard-intrinsic -simplifycfg -rpo-functionattrs -speculative-execution -constprop -strip-nondebug -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0191256830601092,10801.714073419571,opt -lcssa -infer-address-spaces -dse -simplifycfg -tailcallelim -lower-matrix-intrinsics -inferattrs -infer-address-spaces -lower-constant-intrinsics -sroa -loop-deletion -consthoist -globaldce -lower-expect -correlated-propagation -gvn-hoist -memcpyopt -loop-instsimplify -scalarizer -globalsplit -argpromotion -coro-split -loop-vectorize -mergefunc -loop-idiom -forceattrs -partially-inline-libcalls -loop-load-elim -instsimplify -loop-unroll -tailcallelim -globaldce -loop-deletion -lowerswitch -reassociate -functionattrs -lower-matrix-intrinsics -irce -sink -aggressive-instcombine -adce -attributor -early-cse-memssa -flattencfg -callsite-splitting -deadargelim -speculative-execution -lower-expect -hotcoldsplit -strip-dead-prototypes -loop-instsimplify -attributor -globalsplit -instsimplify -lower-matrix-intrinsics -strip -infer-address-spaces -reassociate -licm -coro-split -infer-address-spaces -lower-matrix-intrinsics -coro-early -dce -lower-widenable-condition -attributor -reassociate -pgo-memop-opt -coro-cleanup -loop-versioning-licm -aggressive-instcombine -lowerinvoke -slp-vectorizer -globaldce -lower-expect -indvars -inferattrs -loop-unroll -memcpyopt -inferattrs -elim-avail-extern -rewrite-statepoints-for-gc -name-anon-globals -constprop -constmerge -break-crit-edges -newgvn -globalopt -add-discriminators -reassociate -slsr -licm -newgvn -separate-const-offset-from-gep -loop-data-prefetch -mergefunc -float2int -lower-matrix-intrinsics -memcpyopt -prune-eh -strip-nondebug -mldst-motion -loop-simplify -aggressive-instcombine -add-discriminators -callsite-splitting -dce -lower-expect -instsimplify -redundant-dbg-inst-elim -lower-constant-intrinsics -globalsplit -instcombine -canonicalize-aliases -called-value-propagation -loop-load-elim -dce -bdce -name-anon-globals -loweratomic -slp-vectorizer -simple-loop-unswitch -barrier -rpo-functionattrs -instcombine -mergefunc -libcalls-shrinkwrap -loop-versioning -loop-load-elim -lowerinvoke -early-cse-memssa -coro-cleanup -lower-guard-intrinsic -ipsccp -coro-cleanup -add-discriminators -globaldce -loop-simplify -sancov -break-crit-edges -lower-guard-intrinsic -aggressive-instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,1.003731343283582,10801.818507194519,opt -instcombine -scalarizer -loop-instsimplify -strip-debug-declare -pgo-memop-opt -separate-const-offset-from-gep -forceattrs -mergefunc -scalarizer -newgvn -post-inline-ee-instrument -forceattrs -die -newgvn -guard-widening -loop-distribute -libcalls-shrinkwrap -functionattrs -loop-rotate -ee-instrument -forceattrs -ipconstprop -sccp -aggressive-instcombine -loop-data-prefetch -ee-instrument -sroa -scalarizer -loop-instsimplify -called-value-propagation -partial-inliner -mergefunc -add-discriminators -cross-dso-cfi -sccp -nary-reassociate -loop-rotate -div-rem-pairs -loop-unswitch -libcalls-shrinkwrap -elim-avail-extern -newgvn -indvars -lower-constant-intrinsics -globaldce -indvars -loop-rotate -gvn -functionattrs -licm -loop-instsimplify -loop-unswitch -bdce -lower-widenable-condition -attributor -mldst-motion -slsr -instcombine -deadargelim -nary-reassociate -ee-instrument -die -elim-avail-extern -insert-gcov-profiling -add-discriminators -lower-guard-intrinsic -loop-fusion -slp-vectorizer -name-anon-globals -loop-unroll -jump-threading -loop-distribute -infer-address-spaces -dse -div-rem-pairs -constmerge -forceattrs -consthoist -lower-matrix-intrinsics -gvn-hoist -pgo-memop-opt -globalopt -always-inline -dce -lower-matrix-intrinsics -ee-instrument -strip-debug-declare -strip-dead-prototypes -canonicalize-aliases -die -mem2reg -indvars -separate-const-offset-from-gep -partial-inliner -globaldce -always-inline -tailcallelim -simplifycfg -gvn-hoist -constprop -sink -ipconstprop -ipsccp -instcombine input.bc -o output.bc +benchmark://cbench-v1/susan,0.9847709239825954,3603.660972595215,opt -break-crit-edges -lowerinvoke -reg2mem -bdce -loop-predication -newgvn -constprop -loop-interchange -load-store-vectorizer -globalopt -inferattrs -deadargelim -loop-versioning -inline -aggressive-instcombine -gvn -instcombine -strip-nondebug -loop-sink -partially-inline-libcalls -mergefunc -forceattrs -mldst-motion -irce -speculative-execution -strip-debug-declare -bdce -loop-unroll-and-jam -simple-loop-unswitch -inject-tli-mappings -slsr -loop-distribute -lower-guard-intrinsic -lower-widenable-condition -loop-reroll -coro-cleanup -sccp -gvn-hoist -functionattrs -adce -adce -inferattrs -instcombine -strip-debug-declare -scalarizer -sccp -newgvn -mergeicmps -mergeicmps -consthoist -dce -name-anon-globals -gvn -separate-const-offset-from-gep -simplifycfg -loop-instsimplify -name-anon-globals -mem2reg -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -coro-elide -coro-cleanup -consthoist -early-cse-memssa -loop-idiom -constprop -adce -guard-widening -lower-guard-intrinsic -globaldce -gvn -globalsplit -float2int -mergeicmps -coro-elide -loop-guard-widening -functionattrs -constprop -slp-vectorizer -simple-loop-unswitch -loop-sink -mldst-motion -loop-predication -instcombine -callsite-splitting -loop-data-prefetch -sccp -alignment-from-assumptions -cross-dso-cfi -instnamer -inferattrs -mldst-motion -guard-widening -loop-simplify -loop-data-prefetch -die -constprop -strip -sccp -slsr -newgvn -sroa -loop-simplifycfg -loop-instsimplify -elim-avail-extern -mergefunc -loop-interchange -div-rem-pairs -loop-interchange -mergereturn -lower-guard-intrinsic -libcalls-shrinkwrap -nary-reassociate -lower-matrix-intrinsics -aggressive-instcombine -ee-instrument -globaldce -prune-eh -jump-threading -mergereturn -functionattrs -lower-matrix-intrinsics -correlated-propagation -separate-const-offset-from-gep -div-rem-pairs -hotcoldsplit -loop-data-prefetch -mergereturn -insert-gcov-profiling -die -instsimplify -lower-matrix-intrinsics -partially-inline-libcalls -prune-eh -canonicalize-aliases -strip-debug-declare -strip-dead-prototypes -always-inline -strip -jump-threading -coro-split -inferattrs -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0406533185286009,10814.408720254898,opt -scalarizer -constmerge -die -loop-unswitch -lcssa -dce -libcalls-shrinkwrap -reassociate -simplifycfg -barrier -coro-cleanup -sink -rpo-functionattrs -loop-data-prefetch -lower-guard-intrinsic -sroa -div-rem-pairs -hotcoldsplit -scalarizer -loop-predication -dse -tailcallelim -licm -strip-debug-declare -jump-threading -irce -ipconstprop -loop-interchange -correlated-propagation -loop-versioning -constprop -correlated-propagation -add-discriminators -forceattrs -loop-fusion -loop-data-prefetch -correlated-propagation -lowerinvoke -always-inline -ee-instrument -loop-predication -add-discriminators -simple-loop-unswitch -forceattrs -consthoist -aggressive-instcombine -deadargelim -loop-distribute -mergeicmps -gvn -reassociate -gvn-hoist -nary-reassociate -separate-const-offset-from-gep -simplifycfg -name-anon-globals -scalarizer -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0394226626454115,10816.927260875702,opt -deadargelim -mem2reg -reg2mem -inferattrs -lowerinvoke -separate-const-offset-from-gep -strip-dead-prototypes -infer-address-spaces -nary-reassociate -loop-reroll -mldst-motion -slsr -loop-data-prefetch -loop-guard-widening -hotcoldsplit -loop-unroll -separate-const-offset-from-gep -tailcallelim -adce -strip-dead-prototypes -globalopt -barrier -mergefunc -instsimplify -loop-versioning -lcssa -simple-loop-unswitch -callsite-splitting -lcssa -mergereturn -newgvn -dce -separate-const-offset-from-gep -ipconstprop -loop-versioning -guard-widening -instnamer -coro-elide -coro-elide -alignment-from-assumptions -globalopt -newgvn -loop-unroll -mergereturn -strip-dead-prototypes -loop-simplify -partial-inliner -add-discriminators -loweratomic -mem2reg -simplifycfg -lower-widenable-condition -gvn-hoist -prune-eh -elim-avail-extern -strip-nondebug -lowerinvoke -loop-fusion -lower-guard-intrinsic -newgvn -partially-inline-libcalls -instcombine -separate-const-offset-from-gep -reassociate -lower-guard-intrinsic -div-rem-pairs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0419550173010381,10943.992988586426,opt -mem2reg -simplifycfg -strip-nondebug -add-discriminators -tailcallelim -tailcallelim -jump-threading -gvn-hoist -consthoist -strip -coro-cleanup -alignment-from-assumptions -callsite-splitting -hotcoldsplit -jump-threading -loop-data-prefetch -dce -bdce -mldst-motion -bdce -loop-guard-widening -guard-widening -nary-reassociate -barrier -loop-interchange -lower-matrix-intrinsics -loop-simplify -tailcallelim -separate-const-offset-from-gep -loweratomic -libcalls-shrinkwrap -flattencfg -rewrite-statepoints-for-gc -globalopt -inferattrs -tailcallelim -loweratomic -slp-vectorizer -name-anon-globals -gvn-hoist -sancov -loop-unroll-and-jam -add-discriminators -loop-idiom -rewrite-statepoints-for-gc -slp-vectorizer -loop-data-prefetch -loop-simplifycfg -argpromotion -loop-load-elim -constmerge -globaldce -loop-distribute -rpo-functionattrs -sancov -loop-load-elim -jump-threading -adce -lowerinvoke -cross-dso-cfi -reg2mem -strip-debug-declare -mem2reg -prune-eh -rewrite-statepoints-for-gc -constmerge -post-inline-ee-instrument -mem2reg -elim-avail-extern -mergefunc -slp-vectorizer -prune-eh -newgvn -jump-threading -loop-deletion -mldst-motion -functionattrs -coro-early -lower-constant-intrinsics -loop-simplify -speculative-execution -deadargelim -licm -coro-elide -lower-expect -memcpyopt -insert-gcov-profiling -gvn -loop-reroll -loweratomic -barrier -loop-predication -lower-matrix-intrinsics -barrier -loop-distribute -hotcoldsplit -lower-widenable-condition -ipsccp -break-crit-edges -reassociate -coro-early -dce -loop-sink -constmerge -loop-idiom -lowerinvoke -reassociate -called-value-propagation -newgvn -sroa -partial-inliner -instcombine -lcssa -flattencfg -lower-matrix-intrinsics -early-cse-memssa -called-value-propagation -infer-address-spaces -float2int -inject-tli-mappings -insert-gcov-profiling -loop-sink -break-crit-edges -nary-reassociate -scalarizer -libcalls-shrinkwrap -adce -prune-eh -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0387964891909427,10998.024054765701,opt -simplifycfg -constmerge -loop-simplifycfg -loop-predication -prune-eh -attributor -reg2mem -memcpyopt -deadargelim -dce -partially-inline-libcalls -instsimplify -indvars -slsr -forceattrs -newgvn -constmerge -lower-constant-intrinsics -sccp -mem2reg -prune-eh -sancov -sccp -partially-inline-libcalls -rewrite-statepoints-for-gc -loweratomic -loop-reroll -ipconstprop -strip-dead-prototypes -functionattrs -loop-simplify -sancov -barrier -lower-widenable-condition -attributor -licm -instcombine -loop-instsimplify -mem2reg -loop-data-prefetch -newgvn -rewrite-statepoints-for-gc -aggressive-instcombine -lower-guard-intrinsic -called-value-propagation -constmerge -functionattrs -name-anon-globals -barrier -loop-instsimplify -loop-versioning-licm -newgvn -simplifycfg -slp-vectorizer -constprop -flattencfg -rpo-functionattrs -loweratomic -instsimplify -memcpyopt input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/random_search/results_p125_t3600.csv b/leaderboard/llvm_instcount/random_search/results_p125_t3600.csv index 48e9420de..64128d4b7 100644 --- a/leaderboard/llvm_instcount/random_search/results_p125_t3600.csv +++ b/leaderboard/llvm_instcount/random_search/results_p125_t3600.csv @@ -1,24 +1,24 @@ benchmark,reward,walltime,commandline -benchmark://cBench-v1/adpcm,1.0083798882681565,3601.6958680152893,opt -loop-deletion -nary-reassociate -alignment-from-assumptions -add-discriminators -loop-idiom -mem2reg -scalarizer -ee-instrument -globalopt -partial-inliner -loop-reroll -reassociate -loop-data-prefetch -strip -globalopt -float2int -add-discriminators -deadargelim -inject-tli-mappings -guard-widening -sroa -insert-gcov-profiling -loop-unroll-and-jam -alignment-from-assumptions -deadargelim -loop-deletion -prune-eh -constprop -infer-address-spaces -loop-simplify -loop-interchange -correlated-propagation -attributor -memcpyopt -div-rem-pairs -loop-interchange -ee-instrument -elim-avail-extern -dse -div-rem-pairs -prune-eh -argpromotion -libcalls-shrinkwrap -mergeicmps -infer-address-spaces -loop-distribute -globalopt -loop-sink -correlated-propagation -loop-versioning-licm -lower-matrix-intrinsics -constmerge -forceattrs -alignment-from-assumptions -jump-threading -inferattrs -called-value-propagation -mergeicmps -load-store-vectorizer -simplifycfg -strip-dead-prototypes -add-discriminators -mergeicmps -memcpyopt -strip -lower-expect -loop-reroll -loop-load-elim -instcombine -attributor -loop-reroll -inline -mergereturn -globalopt -div-rem-pairs -partial-inliner -inferattrs -adce -mergefunc -mldst-motion -coro-split -loop-reduce -deadargelim -reassociate -adce -lower-expect -always-inline -mergefunc -instsimplify -attributor -slp-vectorizer -speculative-execution -constmerge -consthoist -barrier -strip-dead-prototypes -gvn-hoist -early-cse-memssa -inferattrs -coro-split -flattencfg -newgvn -coro-elide -reassociate -separate-const-offset-from-gep -loop-idiom -constprop -functionattrs -jump-threading -insert-gcov-profiling -simplifycfg -sancov -dse -instcombine input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0154867256637168,3601.5673730373383,opt -loop-instsimplify -inferattrs -indvars -tailcallelim -adce -lower-expect -loop-guard-widening -hotcoldsplit -loop-versioning -memcpyopt -loop-instsimplify -loop-load-elim -sink -canonicalize-aliases -float2int -barrier -reg2mem -always-inline -div-rem-pairs -loop-data-prefetch -attributor -loop-idiom -alignment-from-assumptions -globalsplit -scalarizer -div-rem-pairs -add-discriminators -strip -flattencfg -elim-avail-extern -strip-dead-prototypes -reassociate -lower-guard-intrinsic -separate-const-offset-from-gep -div-rem-pairs -lowerswitch -sroa -elim-avail-extern -indvars -adce -irce -lower-guard-intrinsic -ipconstprop -called-value-propagation -strip-debug-declare -gvn-hoist -lowerinvoke -mergereturn -lower-expect -reassociate -barrier -ipconstprop -libcalls-shrinkwrap -early-cse-memssa -infer-address-spaces -globalopt -simple-loop-unswitch -partially-inline-libcalls -tailcallelim -loop-fusion -simplifycfg -mergefunc -loop-unroll-and-jam -separate-const-offset-from-gep -infer-address-spaces -loop-data-prefetch -ipsccp -deadargelim -indvars -jump-threading -loop-reduce -licm -loop-reduce -instcombine -flattencfg -inject-tli-mappings -constmerge -add-discriminators -alignment-from-assumptions -ee-instrument -speculative-execution -loop-interchange -mldst-motion -instnamer -mem2reg -argpromotion -memcpyopt -pgo-memop-opt -early-cse-memssa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0814249363867694,3601.9053058624268,opt -licm -sroa -post-inline-ee-instrument -float2int -instsimplify -pgo-memop-opt -dce -early-cse-memssa -inferattrs -strip-nondebug -flattencfg -loop-interchange -float2int -add-discriminators -loop-vectorize -aggressive-instcombine -prune-eh -gvn-hoist -loop-predication -irce -instcombine -globalsplit -pgo-memop-opt -lcssa -loop-guard-widening -mldst-motion -loop-simplifycfg -hotcoldsplit -loop-vectorize -forceattrs -rewrite-statepoints-for-gc -coro-elide -forceattrs -deadargelim -infer-address-spaces -float2int -deadargelim -coro-early -libcalls-shrinkwrap -loop-fusion -prune-eh -aggressive-instcombine -coro-early -loop-load-elim -elim-avail-extern -flattencfg -ipconstprop -lower-matrix-intrinsics -aggressive-instcombine -strip -memcpyopt -lcssa -irce -scalarizer -lcssa -add-discriminators -coro-cleanup -coro-elide -sink -tailcallelim -barrier -lower-guard-intrinsic -bdce -deadargelim -load-store-vectorizer -die -reassociate -post-inline-ee-instrument -attributor -simple-loop-unswitch -loop-guard-widening -canonicalize-aliases -sink -pgo-memop-opt -bdce -ee-instrument -tailcallelim -loop-versioning -alignment-from-assumptions -instsimplify -simplifycfg -add-discriminators -pgo-memop-opt -dce -loop-simplifycfg -inject-tli-mappings -licm -strip-dead-prototypes -irce -globaldce -pgo-memop-opt -lower-widenable-condition -alignment-from-assumptions -globaldce -slp-vectorizer -globaldce -alignment-from-assumptions -loop-sink -barrier -instcombine -correlated-propagation -ipsccp -loop-instsimplify -sccp -alignment-from-assumptions -partial-inliner -forceattrs -loop-distribute -loop-interchange -separate-const-offset-from-gep -newgvn -loop-instsimplify -globaldce -indvars -deadargelim -instsimplify -redundant-dbg-inst-elim -loop-idiom -licm -loop-unroll-and-jam -hotcoldsplit -mergereturn -partially-inline-libcalls -div-rem-pairs -sink -strip-debug-declare -infer-address-spaces -instnamer -inline -gvn -functionattrs -nary-reassociate -loop-reroll -barrier -prune-eh -loop-unroll-and-jam -functionattrs -post-inline-ee-instrument -partial-inliner -simple-loop-unswitch -mergefunc -rewrite-statepoints-for-gc -loop-distribute -instnamer -memcpyopt -loop-load-elim -strip-debug-declare -ee-instrument -insert-gcov-profiling -ee-instrument -sink -simplifycfg -memcpyopt -die -deadargelim -newgvn -loop-idiom -lowerinvoke -scalarizer -loop-simplifycfg -early-cse-memssa -partial-inliner -globalsplit -lower-matrix-intrinsics -loop-data-prefetch -coro-cleanup -nary-reassociate -dce -forceattrs -always-inline -strip-nondebug -lower-expect -callsite-splitting -prune-eh -bdce -loop-versioning-licm -always-inline -post-inline-ee-instrument -insert-gcov-profiling -loop-data-prefetch -sancov -loop-guard-widening -alignment-from-assumptions -functionattrs -sroa -strip-nondebug -consthoist -jump-threading -guard-widening -consthoist -speculative-execution -die -reassociate -forceattrs -adce -loop-data-prefetch -float2int -forceattrs -loop-distribute -bdce -loop-load-elim -indvars -sancov -slp-vectorizer -tailcallelim -lower-guard-intrinsic -irce -float2int -consthoist -strip-debug-declare -sancov -loop-simplify -memcpyopt -loop-simplify -guard-widening -ipconstprop -coro-cleanup -hotcoldsplit -strip-debug-declare -instcombine -dse -strip-debug-declare -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1955944383690047,3768.8419275283813,opt -consthoist -jump-threading -hotcoldsplit -dce -correlated-propagation -partially-inline-libcalls -coro-split -adce -loop-instsimplify -loop-versioning -globalsplit -mergereturn -guard-widening -dse -ee-instrument -aggressive-instcombine -simplifycfg -coro-cleanup -early-cse-memssa -sroa -inject-tli-mappings -rpo-functionattrs -simplifycfg -loop-interchange -loop-distribute -sccp -name-anon-globals -loop-idiom -loop-predication -name-anon-globals -sink -barrier -functionattrs -loop-idiom -newgvn -mem2reg -mergeicmps -licm -loop-versioning -loop-versioning -loop-versioning-licm -constmerge -die -ee-instrument -loop-versioning-licm -mergefunc -jump-threading -instcombine -name-anon-globals -forceattrs -nary-reassociate -deadargelim -sink -gvn -pgo-memop-opt -inject-tli-mappings -loop-deletion -strip-debug-declare -jump-threading -div-rem-pairs -gvn input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,3601.8237340450287,opt -gvn -instcombine -constprop -slsr -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9948979591836737,3601.5456669330597,opt -loop-vectorize -scalarizer -loop-unswitch -canonicalize-aliases -instnamer -dce -early-cse-memssa -prune-eh -loop-reduce -post-inline-ee-instrument -loop-unroll -ipconstprop -reg2mem -mem2reg -ee-instrument -globalsplit -simplifycfg -div-rem-pairs -always-inline -simplifycfg -newgvn -early-cse-memssa -lowerswitch -inferattrs -scalarizer -sancov -loop-interchange -reassociate -dse -libcalls-shrinkwrap -sccp -loop-sink -globaldce -loop-deletion -functionattrs -licm -adce -simple-loop-unswitch -rewrite-statepoints-for-gc -mergefunc -post-inline-ee-instrument -coro-split -argpromotion -load-store-vectorizer -lower-matrix-intrinsics -early-cse-memssa -sroa -called-value-propagation -sancov -canonicalize-aliases -reassociate -elim-avail-extern -jump-threading -gvn-hoist -loop-vectorize -loop-data-prefetch -callsite-splitting -loop-sink -irce -attributor -load-store-vectorizer -coro-elide -gvn-hoist -elim-avail-extern -deadargelim -coro-early -callsite-splitting -loop-vectorize -load-store-vectorizer -loop-idiom -instcombine -elim-avail-extern -post-inline-ee-instrument -callsite-splitting -jump-threading -elim-avail-extern -insert-gcov-profiling -partially-inline-libcalls -slp-vectorizer -float2int -inferattrs -reassociate -slsr -prune-eh -tailcallelim -canonicalize-aliases -ipconstprop -indvars -redundant-dbg-inst-elim -prune-eh -lower-matrix-intrinsics -loop-vectorize -coro-elide -strip-debug-declare -canonicalize-aliases -coro-elide -adce -lower-expect -mergereturn -instsimplify -infer-address-spaces -mergeicmps -lower-guard-intrinsic -lower-constant-intrinsics -redundant-dbg-inst-elim -barrier -mldst-motion -loop-distribute -guard-widening -loop-simplifycfg -lower-expect -lowerswitch -dce -jump-threading -lowerinvoke -tailcallelim -lower-widenable-condition -coro-split -cross-dso-cfi -reg2mem -loop-reroll -sroa -loop-simplifycfg -partially-inline-libcalls -slp-vectorizer -dce -break-crit-edges -loop-instsimplify -correlated-propagation -insert-gcov-profiling -early-cse-memssa -loop-unroll-and-jam -tailcallelim -jump-threading -infer-address-spaces -coro-early -pgo-memop-opt -pgo-memop-opt -canonicalize-aliases -irce -loop-idiom -rpo-functionattrs -loop-unroll-and-jam -instcombine -redundant-dbg-inst-elim -loop-vectorize -speculative-execution -simplifycfg -sccp -partially-inline-libcalls -correlated-propagation input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.0082655103985454,3718.0952739715576,opt -name-anon-globals -coro-cleanup -forceattrs -argpromotion -coro-elide -slp-vectorizer -scalarizer -inject-tli-mappings -loop-deletion -elim-avail-extern -partially-inline-libcalls -loop-fusion -infer-address-spaces -sroa -mergefunc -reg2mem -sroa -irce -lcssa -float2int -loop-simplifycfg -dse -adce -float2int -argpromotion -sroa -loop-idiom -reassociate -lower-guard-intrinsic -loop-distribute -lowerinvoke -break-crit-edges -lower-guard-intrinsic -memcpyopt -gvn-hoist -loop-sink -attributor -jump-threading -loop-unroll-and-jam -attributor -irce -flattencfg -indvars -instsimplify -ipsccp -loop-guard-widening -slp-vectorizer -lower-expect -guard-widening -loop-instsimplify -inject-tli-mappings -slsr -coro-elide -strip-dead-prototypes -ipsccp -mldst-motion -nary-reassociate -alignment-from-assumptions -callsite-splitting -lowerinvoke -rewrite-statepoints-for-gc -argpromotion -consthoist -coro-cleanup -early-cse-memssa -redundant-dbg-inst-elim -loop-versioning-licm -loop-deletion -deadargelim -coro-elide -lower-guard-intrinsic -inject-tli-mappings -strip -always-inline -instcombine -ee-instrument -globalsplit -float2int -canonicalize-aliases -coro-cleanup -barrier -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.086030876494024,3625.1922268867493,opt -instnamer -post-inline-ee-instrument -sroa -loop-guard-widening -ipconstprop -newgvn -loop-versioning -flattencfg -functionattrs -barrier -insert-gcov-profiling -loop-guard-widening -barrier -inferattrs -pgo-memop-opt -mldst-motion -loop-vectorize -mergefunc -libcalls-shrinkwrap -loop-fusion -canonicalize-aliases -irce -attributor -barrier -dce -instcombine -adce -simplifycfg -instsimplify -consthoist -instcombine -loop-distribute -loop-data-prefetch -inject-tli-mappings -strip-nondebug -ipconstprop -mldst-motion -load-store-vectorizer -instcombine -mergefunc -inject-tli-mappings -loop-deletion -called-value-propagation -libcalls-shrinkwrap -die -indvars -globalsplit -alignment-from-assumptions -jump-threading -loweratomic -loop-guard-widening -loop-unswitch -loop-deletion -lowerinvoke -slsr -rpo-functionattrs -alignment-from-assumptions -strip-debug-declare -constmerge -strip-dead-prototypes -adce -always-inline -prune-eh -dce -ee-instrument -slsr -loop-data-prefetch -post-inline-ee-instrument -loop-distribute -jump-threading -rpo-functionattrs -loop-simplify -consthoist -separate-const-offset-from-gep -licm -aggressive-instcombine -adce -slp-vectorizer -indvars -loop-fusion -attributor -indvars -gvn -redundant-dbg-inst-elim -globalopt -loop-simplify -insert-gcov-profiling -forceattrs -loop-load-elim -canonicalize-aliases -inject-tli-mappings -mldst-motion -mergereturn -sink -lower-widenable-condition -load-store-vectorizer -early-cse-memssa -attributor -newgvn -redundant-dbg-inst-elim -lower-constant-intrinsics -die -mergefunc -globaldce -strip-debug-declare -ipsccp -float2int -rewrite-statepoints-for-gc -ipconstprop -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,1.0108374384236454,3604.3012421131134,opt -loop-idiom -loop-unroll -sancov -loop-versioning -infer-address-spaces -early-cse-memssa -sccp -called-value-propagation -lcssa -separate-const-offset-from-gep -constmerge -newgvn -constprop -forceattrs -coro-split -globalopt -partially-inline-libcalls -lower-constant-intrinsics -ipsccp -redundant-dbg-inst-elim -barrier -constprop -hotcoldsplit -adce -prune-eh -strip-nondebug -constmerge -constprop -globalopt -gvn-hoist -loop-guard-widening -instsimplify -loop-interchange -break-crit-edges -loop-simplifycfg -irce -loop-deletion -lower-widenable-condition -rpo-functionattrs -functionattrs -guard-widening -strip-debug-declare -loop-sink -flattencfg -inject-tli-mappings -adce -argpromotion -loop-interchange -lower-constant-intrinsics -sccp -loop-reduce -mem2reg -simplifycfg -loop-data-prefetch -indvars -mem2reg -nary-reassociate -canonicalize-aliases -partially-inline-libcalls -loop-instsimplify -irce -hotcoldsplit -loop-simplify -always-inline -attributor -globalopt -lowerinvoke -rpo-functionattrs -loop-interchange -slsr -flattencfg -coro-early -deadargelim -instcombine -loop-data-prefetch -lower-constant-intrinsics -always-inline -add-discriminators -nary-reassociate -coro-early -memcpyopt -coro-split -div-rem-pairs -loop-vectorize -coro-early -loop-unroll -mldst-motion -functionattrs -mergereturn -simplifycfg -cross-dso-cfi -slsr -ipconstprop -loweratomic -canonicalize-aliases -globalopt -correlated-propagation -irce -break-crit-edges -lower-expect -bdce -redundant-dbg-inst-elim -bdce -pgo-memop-opt -globalsplit -loop-unroll-and-jam -instcombine -early-cse-memssa -cross-dso-cfi -mem2reg -globalsplit -loop-simplifycfg -correlated-propagation -mergeicmps -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0321790619090427,3613.718739748001,opt -newgvn -insert-gcov-profiling -canonicalize-aliases -die -consthoist -scalarizer -consthoist -coro-early -loop-simplifycfg -always-inline -loop-unroll-and-jam -sroa -die -lowerinvoke -sink -loop-predication -reg2mem -scalarizer -lcssa -early-cse-memssa -inject-tli-mappings -constprop -always-inline -reg2mem -loop-fusion -speculative-execution -insert-gcov-profiling -prune-eh -loop-data-prefetch -newgvn -canonicalize-aliases -loop-vectorize -loop-simplifycfg -argpromotion -constmerge -prune-eh -rpo-functionattrs -loop-reduce -strip-dead-prototypes -loop-unroll-and-jam -loop-distribute -always-inline -loop-versioning -loop-simplify -partially-inline-libcalls -loop-data-prefetch -aggressive-instcombine -loop-simplify -dce -ipsccp -mem2reg -ipconstprop -memcpyopt -loop-interchange -loop-load-elim -mergeicmps -inject-tli-mappings -alignment-from-assumptions -insert-gcov-profiling -loop-fusion -partial-inliner -early-cse-memssa -elim-avail-extern -insert-gcov-profiling -rpo-functionattrs -separate-const-offset-from-gep -inject-tli-mappings -deadargelim -consthoist -loop-interchange -instcombine -nary-reassociate -licm -libcalls-shrinkwrap -simplifycfg -partially-inline-libcalls -infer-address-spaces -forceattrs -slp-vectorizer -die -mldst-motion -instsimplify -sccp -newgvn -infer-address-spaces -simple-loop-unswitch -dce -nary-reassociate -loop-distribute -callsite-splitting -loop-sink -loop-fusion -mergefunc -gvn -canonicalize-aliases -jump-threading -loop-versioning -newgvn -loop-sink -float2int -gvn -strip-debug-declare -inferattrs -simplifycfg -prune-eh -nary-reassociate -loop-versioning -consthoist -dce input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0331948871502625,3639.5563414096832,opt -constmerge -loop-distribute -sink -separate-const-offset-from-gep -loop-idiom -loop-unroll-and-jam -load-store-vectorizer -aggressive-instcombine -load-store-vectorizer -licm -slp-vectorizer -flattencfg -loweratomic -licm -elim-avail-extern -elim-avail-extern -redundant-dbg-inst-elim -irce -partially-inline-libcalls -deadargelim -loop-idiom -memcpyopt -loop-vectorize -consthoist -coro-cleanup -loop-idiom -jump-threading -cross-dso-cfi -loop-reroll -separate-const-offset-from-gep -loop-load-elim -lower-constant-intrinsics -mem2reg -mergefunc -argpromotion -float2int -inject-tli-mappings -newgvn -scalarizer -pgo-memop-opt -lower-matrix-intrinsics -adce -indvars -sccp -globaldce -simplifycfg -globalsplit -lower-widenable-condition -lower-constant-intrinsics -slsr -dce -instcombine -called-value-propagation -jump-threading -loop-versioning -loop-versioning -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.053404691414257,3609.5372927188873,opt -irce -lcssa -forceattrs -reg2mem -partially-inline-libcalls -consthoist -scalarizer -sancov -strip-dead-prototypes -sroa -loop-instsimplify -coro-cleanup -loop-distribute -pgo-memop-opt -separate-const-offset-from-gep -rpo-functionattrs -rewrite-statepoints-for-gc -instsimplify -loop-simplify -sancov -loop-deletion -lower-constant-intrinsics -loop-simplifycfg -loop-distribute -early-cse-memssa -simplifycfg -loop-simplify -loop-unswitch -loop-simplifycfg -coro-elide -instcombine -sancov -insert-gcov-profiling -coro-early -argpromotion -constmerge -reassociate -insert-gcov-profiling -slsr -gvn-hoist -sroa -bdce -loop-guard-widening -jump-threading -inject-tli-mappings -dse -loop-interchange -float2int -called-value-propagation -break-crit-edges -partially-inline-libcalls -newgvn -correlated-propagation -sroa -mem2reg -canonicalize-aliases -always-inline -loop-interchange -div-rem-pairs -adce -elim-avail-extern -licm -lcssa -forceattrs -inject-tli-mappings -always-inline -coro-cleanup -lower-widenable-condition -loop-simplifycfg -mem2reg -loop-simplifycfg -lower-guard-intrinsic -lcssa -always-inline -loop-versioning -alignment-from-assumptions -slp-vectorizer -instnamer -loop-versioning -simplifycfg -lower-constant-intrinsics -gvn -nary-reassociate -hotcoldsplit -inferattrs -instnamer -strip-debug-declare -aggressive-instcombine -div-rem-pairs -partially-inline-libcalls -loop-instsimplify -flattencfg -slp-vectorizer -instsimplify -loop-simplify -constprop -gvn-hoist -mem2reg -sancov -forceattrs -post-inline-ee-instrument -speculative-execution -indvars -gvn -lcssa -prune-eh -simplifycfg -loop-unroll-and-jam -instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/patricia,1.0055617352614012,3602.584586620331,opt -irce -simplifycfg -loweratomic -adce -attributor -called-value-propagation -load-store-vectorizer -correlated-propagation -callsite-splitting -name-anon-globals -hotcoldsplit -loop-simplifycfg -lowerswitch -load-store-vectorizer -prune-eh -prune-eh -loop-guard-widening -scalarizer -infer-address-spaces -add-discriminators -loop-fusion -lower-guard-intrinsic -memcpyopt -coro-early -globalsplit -lowerswitch -functionattrs -functionattrs -name-anon-globals -functionattrs -coro-early -loop-distribute -lower-guard-intrinsic -consthoist -barrier -consthoist -loop-simplifycfg -callsite-splitting -reassociate -licm -coro-split -loop-versioning-licm -inject-tli-mappings -loop-vectorize -loop-sink -correlated-propagation -add-discriminators -lower-matrix-intrinsics -loop-fusion -deadargelim -loop-simplifycfg -loop-versioning-licm -licm -pgo-memop-opt -inferattrs -sroa -loop-simplify -alignment-from-assumptions -mem2reg -instsimplify -loop-simplify -lower-expect -separate-const-offset-from-gep -slp-vectorizer -lower-matrix-intrinsics -strip -inject-tli-mappings -inferattrs -inferattrs -rewrite-statepoints-for-gc -sancov -globalsplit -deadargelim -instcombine -licm -callsite-splitting -lowerinvoke -canonicalize-aliases -mergefunc -ee-instrument -die -indvars -lower-guard-intrinsic -lower-widenable-condition -lower-expect -inferattrs -loop-simplifycfg -scalarizer -mldst-motion -consthoist -insert-gcov-profiling -loop-load-elim -ee-instrument -mergereturn -gvn -loop-fusion -separate-const-offset-from-gep -lowerswitch -forceattrs -elim-avail-extern -callsite-splitting -loop-predication -loop-guard-widening -instcombine -simplifycfg -correlated-propagation -reassociate input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1331269349845199,3601.513120651245,opt -callsite-splitting -simple-loop-unswitch -lowerswitch -loop-data-prefetch -licm -speculative-execution -guard-widening -argpromotion -loop-instsimplify -reassociate -gvn -sink -globalsplit -load-store-vectorizer -redundant-dbg-inst-elim -separate-const-offset-from-gep -forceattrs -strip-debug-declare -called-value-propagation -mldst-motion -loop-load-elim -mergefunc -elim-avail-extern -ipconstprop -loop-reroll -lowerswitch -reg2mem -sccp -hotcoldsplit -constmerge -globaldce -guard-widening -scalarizer -lowerswitch -dce -loop-unroll -constmerge -reg2mem -separate-const-offset-from-gep -lower-constant-intrinsics -dce -argpromotion -break-crit-edges -lower-guard-intrinsic -insert-gcov-profiling -loop-data-prefetch -mldst-motion -redundant-dbg-inst-elim -deadargelim -always-inline -instsimplify -inline -licm -loop-simplifycfg -bdce -dce -aggressive-instcombine -loop-idiom -newgvn -gvn -rpo-functionattrs -sroa -sancov -die -post-inline-ee-instrument -loop-reroll -loop-instsimplify -bdce -loop-interchange -separate-const-offset-from-gep -rpo-functionattrs -rpo-functionattrs -consthoist -insert-gcov-profiling -loop-idiom -strip-dead-prototypes -instcombine -pgo-memop-opt -nary-reassociate -mem2reg -mergereturn -inferattrs -sink -correlated-propagation -ipconstprop -coro-cleanup -simplifycfg -float2int -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1054043694902262,3602.2013919353485,opt -reassociate -mergefunc -mem2reg -bdce -newgvn -coro-elide -mergereturn -break-crit-edges -strip-nondebug -loop-reroll -functionattrs -sccp -correlated-propagation -strip-dead-prototypes -globaldce -loop-instsimplify -strip-nondebug -simplifycfg -instcombine -early-cse-memssa -sink -argpromotion -lower-expect -partially-inline-libcalls -reassociate -memcpyopt -adce -sroa -deadargelim -loop-data-prefetch -lower-widenable-condition -dce -hotcoldsplit -mergefunc -mergereturn -rewrite-statepoints-for-gc -separate-const-offset-from-gep -jump-threading input.bc -o output.bc -benchmark://cBench-v1/sha,1.5183946488294313,3601.795018196106,opt -break-crit-edges -simplifycfg -barrier -newgvn -lcssa -canonicalize-aliases -gvn -scalarizer -nary-reassociate -float2int -loop-vectorize -loop-interchange -loop-unroll -jump-threading -loop-unroll-and-jam -lower-guard-intrinsic -instcombine -loop-deletion -reassociate -loop-simplifycfg -constmerge -indvars -forceattrs -ipconstprop -lower-constant-intrinsics -loop-data-prefetch -globalopt -load-store-vectorizer -mldst-motion -slsr -insert-gcov-profiling -instcombine -instnamer -loop-predication -lower-matrix-intrinsics -coro-split -loop-reroll -loop-vectorize -elim-avail-extern -instnamer -partial-inliner -loop-rotate -adce -mergefunc -strip -sancov -pgo-memop-opt -mldst-motion -break-crit-edges -constmerge -prune-eh -loop-deletion -jump-threading -lower-constant-intrinsics -partial-inliner -coro-early -lowerinvoke -bdce -deadargelim -loop-simplifycfg -called-value-propagation -lower-widenable-condition -loop-deletion -sancov -sroa -instnamer -insert-gcov-profiling -loweratomic -slp-vectorizer -strip -nary-reassociate -loop-guard-widening -forceattrs -adce -loop-simplifycfg -separate-const-offset-from-gep -lower-expect -inferattrs -strip -simple-loop-unswitch -lower-guard-intrinsic -coro-elide -jump-threading -ipsccp -instcombine -break-crit-edges -slp-vectorizer -ipsccp -simplifycfg -name-anon-globals -partially-inline-libcalls -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0163934426229506,3601.6986713409424,opt -indvars -deadargelim -sccp -bdce -loop-simplifycfg -lower-expect -coro-split -strip-debug-declare -early-cse-memssa -coro-elide -float2int -die -simplifycfg -break-crit-edges -strip-debug-declare -loop-simplifycfg -mem2reg -float2int -globalopt -instnamer -inferattrs -loop-distribute -break-crit-edges -post-inline-ee-instrument -strip -flattencfg -coro-early -irce -aggressive-instcombine -rpo-functionattrs -gvn-hoist -globalopt -instnamer -adce -coro-early -partial-inliner -loop-unroll-and-jam -sink -lower-constant-intrinsics -sink -flattencfg -correlated-propagation -lcssa -mldst-motion -tailcallelim -sccp -post-inline-ee-instrument -mergereturn -loop-unroll -coro-cleanup -mldst-motion -insert-gcov-profiling -indvars -strip-nondebug -partially-inline-libcalls -strip-dead-prototypes -elim-avail-extern -globaldce -gvn-hoist -coro-elide -jump-threading -mergeicmps -instcombine -memcpyopt -rpo-functionattrs -loop-load-elim -globalopt -reassociate -gvn-hoist -argpromotion -newgvn -sink -alignment-from-assumptions -lowerinvoke -sancov -adce -pgo-memop-opt -loop-data-prefetch -ee-instrument -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9962686567164181,3601.807757139206,opt -constmerge -sancov -lowerswitch -consthoist -load-store-vectorizer -break-crit-edges -loop-versioning -ipsccp -loweratomic -slsr -ipsccp -lcssa -gvn-hoist -loop-predication -partially-inline-libcalls -rpo-functionattrs -correlated-propagation -loop-predication -globalsplit -inject-tli-mappings -loop-interchange -inferattrs -coro-early -name-anon-globals -sroa -lowerinvoke -deadargelim -sccp -canonicalize-aliases -lowerswitch -loop-unroll -canonicalize-aliases -constprop -partial-inliner -loop-simplify -loop-interchange -coro-cleanup -gvn-hoist -break-crit-edges -loop-unroll -loop-unswitch -lower-constant-intrinsics -guard-widening -sroa -always-inline -separate-const-offset-from-gep -loop-deletion -elim-avail-extern -ipsccp -scalarizer -strip-debug-declare -slp-vectorizer -slp-vectorizer -prune-eh -lower-constant-intrinsics -flattencfg -jump-threading -globaldce -slsr -coro-elide -consthoist -prune-eh -loop-sink -scalarizer -tailcallelim -instnamer -ipconstprop -loop-deletion -inject-tli-mappings -pgo-memop-opt -loop-reroll -guard-widening -speculative-execution -simple-loop-unswitch -loop-unroll -early-cse-memssa -jump-threading -loop-data-prefetch -redundant-dbg-inst-elim -sroa -mem2reg -loop-data-prefetch -flattencfg -lower-constant-intrinsics -simplifycfg -strip-debug-declare -always-inline -gvn-hoist -jump-threading -deadargelim -simplifycfg -jump-threading -loop-predication -load-store-vectorizer -instnamer -gvn -flattencfg -loop-interchange -indvars -gvn -cross-dso-cfi -gvn-hoist -die -newgvn -loop-unswitch -gvn -sccp -always-inline -alignment-from-assumptions -argpromotion -pgo-memop-opt -inferattrs -infer-address-spaces -redundant-dbg-inst-elim -partial-inliner -gvn-hoist -loop-fusion -partially-inline-libcalls -lowerswitch -instcombine -guard-widening -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0552853852060406,3603.660972595215,opt -break-crit-edges -lowerinvoke -reg2mem -bdce -loop-predication -newgvn -constprop -loop-interchange -load-store-vectorizer -globalopt -inferattrs -deadargelim -loop-versioning -inline -aggressive-instcombine -gvn -instcombine -strip-nondebug -loop-sink -partially-inline-libcalls -mergefunc -forceattrs -mldst-motion -irce -speculative-execution -strip-debug-declare -bdce -loop-unroll-and-jam -simple-loop-unswitch -inject-tli-mappings -slsr -loop-distribute -lower-guard-intrinsic -lower-widenable-condition -loop-reroll -coro-cleanup -sccp -gvn-hoist -functionattrs -adce -adce -inferattrs -instcombine -strip-debug-declare -scalarizer -sccp -newgvn -mergeicmps -mergeicmps -consthoist -dce -name-anon-globals -gvn -separate-const-offset-from-gep -simplifycfg -loop-instsimplify -name-anon-globals -mem2reg -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -coro-elide -coro-cleanup -consthoist -early-cse-memssa -loop-idiom -constprop -adce -guard-widening -reg2mem -lower-guard-intrinsic -globaldce -gvn -globalsplit -float2int -mergeicmps -coro-elide -loop-guard-widening -functionattrs -constprop -slp-vectorizer -simple-loop-unswitch -loop-sink -mldst-motion -loop-predication -instcombine -callsite-splitting -loop-data-prefetch -sccp -alignment-from-assumptions -cross-dso-cfi -instnamer -inferattrs -mldst-motion -guard-widening -loop-simplify -loop-data-prefetch -die -constprop -strip -sccp -slsr -newgvn -sroa -loop-simplifycfg -loop-instsimplify -elim-avail-extern -mergefunc -loop-interchange -div-rem-pairs -loop-interchange -mergereturn -lower-guard-intrinsic -libcalls-shrinkwrap -nary-reassociate -lower-matrix-intrinsics -aggressive-instcombine -ee-instrument -globaldce -prune-eh -jump-threading -mergereturn -functionattrs -lower-matrix-intrinsics -correlated-propagation -separate-const-offset-from-gep -div-rem-pairs -hotcoldsplit -loop-data-prefetch -mergereturn -insert-gcov-profiling -die -instsimplify -lower-matrix-intrinsics -partially-inline-libcalls -prune-eh -canonicalize-aliases -strip-debug-declare -strip-dead-prototypes -always-inline -strip -jump-threading -coro-split -inferattrs -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0392564203588952,3631.8315482139587,opt -deadargelim -loop-reduce -loop-interchange -always-inline -ipconstprop -ipsccp -break-crit-edges -cross-dso-cfi -bdce -elim-avail-extern -loop-vectorize -ee-instrument -load-store-vectorizer -consthoist -lowerinvoke -loop-load-elim -nary-reassociate -coro-cleanup -prune-eh -insert-gcov-profiling -ee-instrument -lower-expect -mem2reg -partial-inliner -globalsplit -loop-unroll-and-jam -loop-load-elim -ipconstprop -flattencfg -loop-vectorize -pgo-memop-opt -add-discriminators -lower-matrix-intrinsics -lower-widenable-condition -redundant-dbg-inst-elim -reassociate -ee-instrument -newgvn -loop-data-prefetch -add-discriminators -attributor -slp-vectorizer -lcssa -partial-inliner -rpo-functionattrs -coro-cleanup -mergefunc -separate-const-offset-from-gep -elim-avail-extern -speculative-execution -instcombine -mergeicmps -newgvn -simplifycfg -argpromotion -mldst-motion -lower-constant-intrinsics -irce -loop-simplify -reassociate -redundant-dbg-inst-elim -loop-idiom -guard-widening -indvars -functionattrs -slsr -partially-inline-libcalls -sancov -instcombine -argpromotion -strip-debug-declare -instsimplify -loop-sink -gvn-hoist -globaldce -newgvn -always-inline -speculative-execution -bdce -functionattrs -loop-sink -rewrite-statepoints-for-gc -mergefunc -early-cse-memssa -loop-predication -licm -sccp -alignment-from-assumptions -early-cse-memssa -loop-predication -sccp -name-anon-globals -loop-versioning -ee-instrument -scalarizer -infer-address-spaces -reg2mem -cross-dso-cfi -loop-versioning-licm -sroa -tailcallelim -coro-cleanup -instcombine -loop-data-prefetch -loop-deletion -ipsccp -lcssa -sink -inferattrs -bdce -slp-vectorizer -dse -lowerinvoke -slp-vectorizer -functionattrs -elim-avail-extern -strip-dead-prototypes -loop-guard-widening -gvn -die -add-discriminators -rpo-functionattrs -insert-gcov-profiling -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0389200057446502,3612.9188113212585,opt -loop-interchange -strip -deadargelim -nary-reassociate -early-cse-memssa -mem2reg -dse -div-rem-pairs -loop-reroll -sancov -constmerge -loop-unroll -loweratomic -loop-simplifycfg -guard-widening -gvn-hoist -instsimplify -loop-instsimplify -mergeicmps -pgo-memop-opt -jump-threading -constmerge -coro-split -licm -loop-unroll -newgvn -gvn-hoist -add-discriminators -indvars -jump-threading -globalsplit -lowerinvoke -loop-sink -loop-unroll-and-jam -called-value-propagation -instcombine -float2int -loop-load-elim -load-store-vectorizer -div-rem-pairs -separate-const-offset-from-gep -loop-unroll-and-jam -mldst-motion -coro-early -cross-dso-cfi -lower-widenable-condition -reassociate -lower-expect -callsite-splitting -loop-instsimplify -dse -newgvn -slsr -mergeicmps -sccp -mldst-motion -dce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0374855824682814,3850.3293058872223,opt -strip-nondebug -rpo-functionattrs -loop-unroll-and-jam -strip-nondebug -coro-elide -inferattrs -loop-instsimplify -bdce -irce -loop-simplifycfg -memcpyopt -hotcoldsplit -indvars -deadargelim -loop-unswitch -simplifycfg -loop-simplify -correlated-propagation -loop-simplify -coro-elide -strip-debug-declare -separate-const-offset-from-gep -jump-threading -callsite-splitting -canonicalize-aliases -mergereturn -ipconstprop -argpromotion -libcalls-shrinkwrap -deadargelim -cross-dso-cfi -canonicalize-aliases -mem2reg -correlated-propagation -adce -simplifycfg -slp-vectorizer -gvn-hoist -cross-dso-cfi -scalarizer -hotcoldsplit -insert-gcov-profiling -gvn -pgo-memop-opt -loop-idiom -rpo-functionattrs -memcpyopt -float2int -barrier -constmerge -consthoist -div-rem-pairs -adce -loop-sink -licm -loop-instsimplify -instcombine -loop-predication -loop-unroll-and-jam -coro-early -nary-reassociate -irce -scalarizer -constmerge -slp-vectorizer -loop-simplifycfg -callsite-splitting -loop-sink -loop-unroll -post-inline-ee-instrument -coro-elide -strip -lower-matrix-intrinsics -mergeicmps -argpromotion -lower-expect -mergefunc -lower-guard-intrinsic -inferattrs -break-crit-edges -sancov -coro-split -simplifycfg -hotcoldsplit -inject-tli-mappings -constprop -inferattrs -mergeicmps -loop-guard-widening -loop-versioning -argpromotion -memcpyopt -libcalls-shrinkwrap -strip-nondebug -gvn-hoist -lower-expect -loop-distribute -globalsplit -sink -nary-reassociate -name-anon-globals -coro-cleanup -always-inline -jump-threading -loop-unroll -loop-unroll-and-jam -globaldce -strip-nondebug -alignment-from-assumptions -simplifycfg -coro-cleanup -guard-widening -lower-widenable-condition -lower-widenable-condition -lcssa -coro-elide -strip-dead-prototypes -ipconstprop -elim-avail-extern -gvn input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.035927734708514,3610.76429438591,opt -mldst-motion -loop-data-prefetch -lower-expect -separate-const-offset-from-gep -rewrite-statepoints-for-gc -loop-simplifycfg -deadargelim -dce -ee-instrument -coro-elide -mem2reg -inferattrs -speculative-execution -loop-simplify -early-cse-memssa -rewrite-statepoints-for-gc -loop-unroll -newgvn -instcombine -prune-eh -dse -gvn-hoist -instsimplify -cross-dso-cfi -coro-cleanup -globaldce -newgvn -flattencfg -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0083798882681565,3601.6958680152893,opt -loop-deletion -nary-reassociate -alignment-from-assumptions -add-discriminators -loop-idiom -mem2reg -scalarizer -ee-instrument -globalopt -partial-inliner -loop-reroll -reassociate -loop-data-prefetch -strip -globalopt -float2int -add-discriminators -deadargelim -inject-tli-mappings -guard-widening -sroa -insert-gcov-profiling -loop-unroll-and-jam -alignment-from-assumptions -deadargelim -loop-deletion -prune-eh -constprop -infer-address-spaces -loop-simplify -loop-interchange -correlated-propagation -attributor -memcpyopt -div-rem-pairs -loop-interchange -ee-instrument -elim-avail-extern -dse -div-rem-pairs -prune-eh -argpromotion -libcalls-shrinkwrap -mergeicmps -infer-address-spaces -loop-distribute -globalopt -loop-sink -correlated-propagation -loop-versioning-licm -lower-matrix-intrinsics -constmerge -forceattrs -alignment-from-assumptions -jump-threading -inferattrs -called-value-propagation -mergeicmps -load-store-vectorizer -simplifycfg -strip-dead-prototypes -add-discriminators -mergeicmps -memcpyopt -strip -lower-expect -loop-reroll -loop-load-elim -instcombine -attributor -loop-reroll -inline -mergereturn -globalopt -div-rem-pairs -partial-inliner -inferattrs -adce -mergefunc -mldst-motion -coro-split -loop-reduce -deadargelim -reassociate -adce -lower-expect -always-inline -mergefunc -instsimplify -attributor -slp-vectorizer -speculative-execution -constmerge -consthoist -barrier -strip-dead-prototypes -gvn-hoist -early-cse-memssa -inferattrs -coro-split -flattencfg -newgvn -coro-elide -reassociate -separate-const-offset-from-gep -loop-idiom -constprop -functionattrs -jump-threading -insert-gcov-profiling -simplifycfg -sancov -dse -instcombine input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0154867256637168,3601.5673730373383,opt -loop-instsimplify -inferattrs -indvars -tailcallelim -adce -lower-expect -loop-guard-widening -hotcoldsplit -loop-versioning -memcpyopt -loop-instsimplify -loop-load-elim -sink -canonicalize-aliases -float2int -barrier -reg2mem -always-inline -div-rem-pairs -loop-data-prefetch -attributor -loop-idiom -alignment-from-assumptions -globalsplit -scalarizer -div-rem-pairs -add-discriminators -strip -flattencfg -elim-avail-extern -strip-dead-prototypes -reassociate -lower-guard-intrinsic -separate-const-offset-from-gep -div-rem-pairs -lowerswitch -sroa -elim-avail-extern -indvars -adce -irce -lower-guard-intrinsic -ipconstprop -called-value-propagation -strip-debug-declare -gvn-hoist -lowerinvoke -mergereturn -lower-expect -reassociate -barrier -ipconstprop -libcalls-shrinkwrap -early-cse-memssa -infer-address-spaces -globalopt -simple-loop-unswitch -partially-inline-libcalls -tailcallelim -loop-fusion -simplifycfg -mergefunc -loop-unroll-and-jam -separate-const-offset-from-gep -infer-address-spaces -loop-data-prefetch -ipsccp -deadargelim -indvars -jump-threading -loop-reduce -licm -loop-reduce -instcombine -flattencfg -inject-tli-mappings -constmerge -add-discriminators -alignment-from-assumptions -ee-instrument -speculative-execution -loop-interchange -mldst-motion -instnamer -mem2reg -argpromotion -memcpyopt -pgo-memop-opt -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0814249363867694,3601.9053058624268,opt -licm -sroa -post-inline-ee-instrument -float2int -instsimplify -pgo-memop-opt -dce -early-cse-memssa -inferattrs -strip-nondebug -flattencfg -loop-interchange -float2int -add-discriminators -loop-vectorize -aggressive-instcombine -prune-eh -gvn-hoist -loop-predication -irce -instcombine -globalsplit -pgo-memop-opt -lcssa -loop-guard-widening -mldst-motion -loop-simplifycfg -hotcoldsplit -loop-vectorize -forceattrs -rewrite-statepoints-for-gc -coro-elide -forceattrs -deadargelim -infer-address-spaces -float2int -deadargelim -coro-early -libcalls-shrinkwrap -loop-fusion -prune-eh -aggressive-instcombine -coro-early -loop-load-elim -elim-avail-extern -flattencfg -ipconstprop -lower-matrix-intrinsics -aggressive-instcombine -strip -memcpyopt -lcssa -irce -scalarizer -lcssa -add-discriminators -coro-cleanup -coro-elide -sink -tailcallelim -barrier -lower-guard-intrinsic -bdce -deadargelim -load-store-vectorizer -die -reassociate -post-inline-ee-instrument -attributor -simple-loop-unswitch -loop-guard-widening -canonicalize-aliases -sink -pgo-memop-opt -bdce -ee-instrument -tailcallelim -loop-versioning -alignment-from-assumptions -instsimplify -simplifycfg -add-discriminators -pgo-memop-opt -dce -loop-simplifycfg -inject-tli-mappings -licm -strip-dead-prototypes -irce -globaldce -pgo-memop-opt -lower-widenable-condition -alignment-from-assumptions -globaldce -slp-vectorizer -globaldce -alignment-from-assumptions -loop-sink -barrier -instcombine -correlated-propagation -ipsccp -loop-instsimplify -sccp -alignment-from-assumptions -partial-inliner -forceattrs -loop-distribute -loop-interchange -separate-const-offset-from-gep -newgvn -loop-instsimplify -globaldce -indvars -deadargelim -instsimplify -redundant-dbg-inst-elim -loop-idiom -licm -loop-unroll-and-jam -hotcoldsplit -mergereturn -partially-inline-libcalls -div-rem-pairs -sink -strip-debug-declare -infer-address-spaces -instnamer -inline -gvn -functionattrs -nary-reassociate -loop-reroll -barrier -prune-eh -loop-unroll-and-jam -functionattrs -post-inline-ee-instrument -partial-inliner -simple-loop-unswitch -mergefunc -rewrite-statepoints-for-gc -loop-distribute -instnamer -memcpyopt -loop-load-elim -strip-debug-declare -ee-instrument -insert-gcov-profiling -ee-instrument -sink -simplifycfg -memcpyopt -die -deadargelim -newgvn -loop-idiom -lowerinvoke -scalarizer -loop-simplifycfg -early-cse-memssa -partial-inliner -globalsplit -lower-matrix-intrinsics -loop-data-prefetch -coro-cleanup -nary-reassociate -dce -forceattrs -always-inline -strip-nondebug -lower-expect -callsite-splitting -prune-eh -bdce -loop-versioning-licm -always-inline -post-inline-ee-instrument -insert-gcov-profiling -loop-data-prefetch -sancov -loop-guard-widening -alignment-from-assumptions -functionattrs -sroa -strip-nondebug -consthoist -jump-threading -guard-widening -consthoist -speculative-execution -die -reassociate -forceattrs -adce -loop-data-prefetch -float2int -forceattrs -loop-distribute -bdce -loop-load-elim -indvars -sancov -slp-vectorizer -tailcallelim -lower-guard-intrinsic -irce -float2int -consthoist -strip-debug-declare -sancov -loop-simplify -memcpyopt -loop-simplify -guard-widening -ipconstprop -coro-cleanup -hotcoldsplit -strip-debug-declare -instcombine -dse -strip-debug-declare -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1955944383690047,3768.8419275283813,opt -consthoist -jump-threading -hotcoldsplit -dce -correlated-propagation -partially-inline-libcalls -coro-split -adce -loop-instsimplify -loop-versioning -globalsplit -mergereturn -guard-widening -dse -ee-instrument -aggressive-instcombine -simplifycfg -coro-cleanup -early-cse-memssa -sroa -inject-tli-mappings -rpo-functionattrs -simplifycfg -loop-interchange -loop-distribute -sccp -name-anon-globals -loop-idiom -loop-predication -name-anon-globals -sink -barrier -functionattrs -loop-idiom -newgvn -mem2reg -mergeicmps -licm -loop-versioning -loop-versioning -loop-versioning-licm -constmerge -die -ee-instrument -loop-versioning-licm -mergefunc -jump-threading -instcombine -name-anon-globals -forceattrs -nary-reassociate -deadargelim -sink -gvn -pgo-memop-opt -inject-tli-mappings -loop-deletion -strip-debug-declare -jump-threading -div-rem-pairs -gvn input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,3601.8237340450287,opt -gvn -instcombine -constprop -slsr -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9948979591836737,3601.5456669330597,opt -loop-vectorize -scalarizer -loop-unswitch -canonicalize-aliases -instnamer -dce -early-cse-memssa -prune-eh -loop-reduce -post-inline-ee-instrument -loop-unroll -ipconstprop -reg2mem -mem2reg -ee-instrument -globalsplit -simplifycfg -div-rem-pairs -always-inline -simplifycfg -newgvn -early-cse-memssa -lowerswitch -inferattrs -scalarizer -sancov -loop-interchange -reassociate -dse -libcalls-shrinkwrap -sccp -loop-sink -globaldce -loop-deletion -functionattrs -licm -adce -simple-loop-unswitch -rewrite-statepoints-for-gc -mergefunc -post-inline-ee-instrument -coro-split -argpromotion -load-store-vectorizer -lower-matrix-intrinsics -early-cse-memssa -sroa -called-value-propagation -sancov -canonicalize-aliases -reassociate -elim-avail-extern -jump-threading -gvn-hoist -loop-vectorize -loop-data-prefetch -callsite-splitting -loop-sink -irce -attributor -load-store-vectorizer -coro-elide -gvn-hoist -elim-avail-extern -deadargelim -coro-early -callsite-splitting -loop-vectorize -load-store-vectorizer -loop-idiom -instcombine -elim-avail-extern -post-inline-ee-instrument -callsite-splitting -jump-threading -elim-avail-extern -insert-gcov-profiling -partially-inline-libcalls -slp-vectorizer -float2int -inferattrs -reassociate -slsr -prune-eh -tailcallelim -canonicalize-aliases -ipconstprop -indvars -redundant-dbg-inst-elim -prune-eh -lower-matrix-intrinsics -loop-vectorize -coro-elide -strip-debug-declare -canonicalize-aliases -coro-elide -adce -lower-expect -mergereturn -instsimplify -infer-address-spaces -mergeicmps -lower-guard-intrinsic -lower-constant-intrinsics -redundant-dbg-inst-elim -barrier -mldst-motion -loop-distribute -guard-widening -loop-simplifycfg -lower-expect -lowerswitch -dce -jump-threading -lowerinvoke -tailcallelim -lower-widenable-condition -coro-split -cross-dso-cfi -reg2mem -loop-reroll -sroa -loop-simplifycfg -partially-inline-libcalls -slp-vectorizer -dce -break-crit-edges -loop-instsimplify -correlated-propagation -insert-gcov-profiling -early-cse-memssa -loop-unroll-and-jam -tailcallelim -jump-threading -infer-address-spaces -coro-early -pgo-memop-opt -pgo-memop-opt -canonicalize-aliases -irce -loop-idiom -rpo-functionattrs -loop-unroll-and-jam -instcombine -redundant-dbg-inst-elim -loop-vectorize -speculative-execution -simplifycfg -sccp -partially-inline-libcalls -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.0082655103985454,3718.0952739715576,opt -name-anon-globals -coro-cleanup -forceattrs -argpromotion -coro-elide -slp-vectorizer -scalarizer -inject-tli-mappings -loop-deletion -elim-avail-extern -partially-inline-libcalls -loop-fusion -infer-address-spaces -sroa -mergefunc -reg2mem -sroa -irce -lcssa -float2int -loop-simplifycfg -dse -adce -float2int -argpromotion -sroa -loop-idiom -reassociate -lower-guard-intrinsic -loop-distribute -lowerinvoke -break-crit-edges -lower-guard-intrinsic -memcpyopt -gvn-hoist -loop-sink -attributor -jump-threading -loop-unroll-and-jam -attributor -irce -flattencfg -indvars -instsimplify -ipsccp -loop-guard-widening -slp-vectorizer -lower-expect -guard-widening -loop-instsimplify -inject-tli-mappings -slsr -coro-elide -strip-dead-prototypes -ipsccp -mldst-motion -nary-reassociate -alignment-from-assumptions -callsite-splitting -lowerinvoke -rewrite-statepoints-for-gc -argpromotion -consthoist -coro-cleanup -early-cse-memssa -redundant-dbg-inst-elim -loop-versioning-licm -loop-deletion -deadargelim -coro-elide -lower-guard-intrinsic -inject-tli-mappings -strip -always-inline -instcombine -ee-instrument -globalsplit -float2int -canonicalize-aliases -coro-cleanup -barrier -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.086030876494024,3625.1922268867493,opt -instnamer -post-inline-ee-instrument -sroa -loop-guard-widening -ipconstprop -newgvn -loop-versioning -flattencfg -functionattrs -barrier -insert-gcov-profiling -loop-guard-widening -barrier -inferattrs -pgo-memop-opt -mldst-motion -loop-vectorize -mergefunc -libcalls-shrinkwrap -loop-fusion -canonicalize-aliases -irce -attributor -barrier -dce -instcombine -adce -simplifycfg -instsimplify -consthoist -instcombine -loop-distribute -loop-data-prefetch -inject-tli-mappings -strip-nondebug -ipconstprop -mldst-motion -load-store-vectorizer -instcombine -mergefunc -inject-tli-mappings -loop-deletion -called-value-propagation -libcalls-shrinkwrap -die -indvars -globalsplit -alignment-from-assumptions -jump-threading -loweratomic -loop-guard-widening -loop-unswitch -loop-deletion -lowerinvoke -slsr -rpo-functionattrs -alignment-from-assumptions -strip-debug-declare -constmerge -strip-dead-prototypes -adce -always-inline -prune-eh -dce -ee-instrument -slsr -loop-data-prefetch -post-inline-ee-instrument -loop-distribute -jump-threading -rpo-functionattrs -loop-simplify -consthoist -separate-const-offset-from-gep -licm -aggressive-instcombine -adce -slp-vectorizer -indvars -loop-fusion -attributor -indvars -gvn -redundant-dbg-inst-elim -globalopt -loop-simplify -insert-gcov-profiling -forceattrs -loop-load-elim -canonicalize-aliases -inject-tli-mappings -mldst-motion -mergereturn -sink -lower-widenable-condition -load-store-vectorizer -early-cse-memssa -attributor -newgvn -redundant-dbg-inst-elim -lower-constant-intrinsics -die -mergefunc -globaldce -strip-debug-declare -ipsccp -float2int -rewrite-statepoints-for-gc -ipconstprop -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0108374384236454,3604.3012421131134,opt -loop-idiom -loop-unroll -sancov -loop-versioning -infer-address-spaces -early-cse-memssa -sccp -called-value-propagation -lcssa -separate-const-offset-from-gep -constmerge -newgvn -constprop -forceattrs -coro-split -globalopt -partially-inline-libcalls -lower-constant-intrinsics -ipsccp -redundant-dbg-inst-elim -barrier -constprop -hotcoldsplit -adce -prune-eh -strip-nondebug -constmerge -constprop -globalopt -gvn-hoist -loop-guard-widening -instsimplify -loop-interchange -break-crit-edges -loop-simplifycfg -irce -loop-deletion -lower-widenable-condition -rpo-functionattrs -functionattrs -guard-widening -strip-debug-declare -loop-sink -flattencfg -inject-tli-mappings -adce -argpromotion -loop-interchange -lower-constant-intrinsics -sccp -loop-reduce -mem2reg -simplifycfg -loop-data-prefetch -indvars -mem2reg -nary-reassociate -canonicalize-aliases -partially-inline-libcalls -loop-instsimplify -irce -hotcoldsplit -loop-simplify -always-inline -attributor -globalopt -lowerinvoke -rpo-functionattrs -loop-interchange -slsr -flattencfg -coro-early -deadargelim -instcombine -loop-data-prefetch -lower-constant-intrinsics -always-inline -add-discriminators -nary-reassociate -coro-early -memcpyopt -coro-split -div-rem-pairs -loop-vectorize -coro-early -loop-unroll -mldst-motion -functionattrs -mergereturn -simplifycfg -cross-dso-cfi -slsr -ipconstprop -loweratomic -canonicalize-aliases -globalopt -correlated-propagation -irce -break-crit-edges -lower-expect -bdce -redundant-dbg-inst-elim -bdce -pgo-memop-opt -globalsplit -loop-unroll-and-jam -instcombine -early-cse-memssa -cross-dso-cfi -mem2reg -globalsplit -loop-simplifycfg -correlated-propagation -mergeicmps -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0321790619090427,3613.718739748001,opt -newgvn -insert-gcov-profiling -canonicalize-aliases -die -consthoist -scalarizer -consthoist -coro-early -loop-simplifycfg -always-inline -loop-unroll-and-jam -sroa -die -lowerinvoke -sink -loop-predication -reg2mem -scalarizer -lcssa -early-cse-memssa -inject-tli-mappings -constprop -always-inline -reg2mem -loop-fusion -speculative-execution -insert-gcov-profiling -prune-eh -loop-data-prefetch -newgvn -canonicalize-aliases -loop-vectorize -loop-simplifycfg -argpromotion -constmerge -prune-eh -rpo-functionattrs -loop-reduce -strip-dead-prototypes -loop-unroll-and-jam -loop-distribute -always-inline -loop-versioning -loop-simplify -partially-inline-libcalls -loop-data-prefetch -aggressive-instcombine -loop-simplify -dce -ipsccp -mem2reg -ipconstprop -memcpyopt -loop-interchange -loop-load-elim -mergeicmps -inject-tli-mappings -alignment-from-assumptions -insert-gcov-profiling -loop-fusion -partial-inliner -early-cse-memssa -elim-avail-extern -insert-gcov-profiling -rpo-functionattrs -separate-const-offset-from-gep -inject-tli-mappings -deadargelim -consthoist -loop-interchange -instcombine -nary-reassociate -licm -libcalls-shrinkwrap -simplifycfg -partially-inline-libcalls -infer-address-spaces -forceattrs -slp-vectorizer -die -mldst-motion -instsimplify -sccp -newgvn -infer-address-spaces -simple-loop-unswitch -dce -nary-reassociate -loop-distribute -callsite-splitting -loop-sink -loop-fusion -mergefunc -gvn -canonicalize-aliases -jump-threading -loop-versioning -newgvn -loop-sink -float2int -gvn -strip-debug-declare -inferattrs -simplifycfg -prune-eh -nary-reassociate -loop-versioning -consthoist -dce input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0331948871502625,3639.5563414096832,opt -constmerge -loop-distribute -sink -separate-const-offset-from-gep -loop-idiom -loop-unroll-and-jam -load-store-vectorizer -aggressive-instcombine -load-store-vectorizer -licm -slp-vectorizer -flattencfg -loweratomic -licm -elim-avail-extern -elim-avail-extern -redundant-dbg-inst-elim -irce -partially-inline-libcalls -deadargelim -loop-idiom -memcpyopt -loop-vectorize -consthoist -coro-cleanup -loop-idiom -jump-threading -cross-dso-cfi -loop-reroll -separate-const-offset-from-gep -loop-load-elim -lower-constant-intrinsics -mem2reg -mergefunc -argpromotion -float2int -inject-tli-mappings -newgvn -scalarizer -pgo-memop-opt -lower-matrix-intrinsics -adce -indvars -sccp -globaldce -simplifycfg -globalsplit -lower-widenable-condition -lower-constant-intrinsics -slsr -dce -instcombine -called-value-propagation -jump-threading -loop-versioning -loop-versioning -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.053404691414257,3609.5372927188873,opt -irce -lcssa -forceattrs -reg2mem -partially-inline-libcalls -consthoist -scalarizer -sancov -strip-dead-prototypes -sroa -loop-instsimplify -coro-cleanup -loop-distribute -pgo-memop-opt -separate-const-offset-from-gep -rpo-functionattrs -rewrite-statepoints-for-gc -instsimplify -loop-simplify -sancov -loop-deletion -lower-constant-intrinsics -loop-simplifycfg -loop-distribute -early-cse-memssa -simplifycfg -loop-simplify -loop-unswitch -loop-simplifycfg -coro-elide -instcombine -sancov -insert-gcov-profiling -coro-early -argpromotion -constmerge -reassociate -insert-gcov-profiling -slsr -gvn-hoist -sroa -bdce -loop-guard-widening -jump-threading -inject-tli-mappings -dse -loop-interchange -float2int -called-value-propagation -break-crit-edges -partially-inline-libcalls -newgvn -correlated-propagation -sroa -mem2reg -canonicalize-aliases -always-inline -loop-interchange -div-rem-pairs -adce -elim-avail-extern -licm -lcssa -forceattrs -inject-tli-mappings -always-inline -coro-cleanup -lower-widenable-condition -loop-simplifycfg -mem2reg -loop-simplifycfg -lower-guard-intrinsic -lcssa -always-inline -loop-versioning -alignment-from-assumptions -slp-vectorizer -instnamer -loop-versioning -simplifycfg -lower-constant-intrinsics -gvn -nary-reassociate -hotcoldsplit -inferattrs -instnamer -strip-debug-declare -aggressive-instcombine -div-rem-pairs -partially-inline-libcalls -loop-instsimplify -flattencfg -slp-vectorizer -instsimplify -loop-simplify -constprop -gvn-hoist -mem2reg -sancov -forceattrs -post-inline-ee-instrument -speculative-execution -indvars -gvn -lcssa -prune-eh -simplifycfg -loop-unroll-and-jam -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/patricia,1.0055617352614012,3602.584586620331,opt -irce -simplifycfg -loweratomic -adce -attributor -called-value-propagation -load-store-vectorizer -correlated-propagation -callsite-splitting -name-anon-globals -hotcoldsplit -loop-simplifycfg -lowerswitch -load-store-vectorizer -prune-eh -prune-eh -loop-guard-widening -scalarizer -infer-address-spaces -add-discriminators -loop-fusion -lower-guard-intrinsic -memcpyopt -coro-early -globalsplit -lowerswitch -functionattrs -functionattrs -name-anon-globals -functionattrs -coro-early -loop-distribute -lower-guard-intrinsic -consthoist -barrier -consthoist -loop-simplifycfg -callsite-splitting -reassociate -licm -coro-split -loop-versioning-licm -inject-tli-mappings -loop-vectorize -loop-sink -correlated-propagation -add-discriminators -lower-matrix-intrinsics -loop-fusion -deadargelim -loop-simplifycfg -loop-versioning-licm -licm -pgo-memop-opt -inferattrs -sroa -loop-simplify -alignment-from-assumptions -mem2reg -instsimplify -loop-simplify -lower-expect -separate-const-offset-from-gep -slp-vectorizer -lower-matrix-intrinsics -strip -inject-tli-mappings -inferattrs -inferattrs -rewrite-statepoints-for-gc -sancov -globalsplit -deadargelim -instcombine -licm -callsite-splitting -lowerinvoke -canonicalize-aliases -mergefunc -ee-instrument -die -indvars -lower-guard-intrinsic -lower-widenable-condition -lower-expect -inferattrs -loop-simplifycfg -scalarizer -mldst-motion -consthoist -insert-gcov-profiling -loop-load-elim -ee-instrument -mergereturn -gvn -loop-fusion -separate-const-offset-from-gep -lowerswitch -forceattrs -elim-avail-extern -callsite-splitting -loop-predication -loop-guard-widening -instcombine -simplifycfg -correlated-propagation -reassociate input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1331269349845199,3601.513120651245,opt -callsite-splitting -simple-loop-unswitch -lowerswitch -loop-data-prefetch -licm -speculative-execution -guard-widening -argpromotion -loop-instsimplify -reassociate -gvn -sink -globalsplit -load-store-vectorizer -redundant-dbg-inst-elim -separate-const-offset-from-gep -forceattrs -strip-debug-declare -called-value-propagation -mldst-motion -loop-load-elim -mergefunc -elim-avail-extern -ipconstprop -loop-reroll -lowerswitch -reg2mem -sccp -hotcoldsplit -constmerge -globaldce -guard-widening -scalarizer -lowerswitch -dce -loop-unroll -constmerge -reg2mem -separate-const-offset-from-gep -lower-constant-intrinsics -dce -argpromotion -break-crit-edges -lower-guard-intrinsic -insert-gcov-profiling -loop-data-prefetch -mldst-motion -redundant-dbg-inst-elim -deadargelim -always-inline -instsimplify -inline -licm -loop-simplifycfg -bdce -dce -aggressive-instcombine -loop-idiom -newgvn -gvn -rpo-functionattrs -sroa -sancov -die -post-inline-ee-instrument -loop-reroll -loop-instsimplify -bdce -loop-interchange -separate-const-offset-from-gep -rpo-functionattrs -rpo-functionattrs -consthoist -insert-gcov-profiling -loop-idiom -strip-dead-prototypes -instcombine -pgo-memop-opt -nary-reassociate -mem2reg -mergereturn -inferattrs -sink -correlated-propagation -ipconstprop -coro-cleanup -simplifycfg -float2int -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1054043694902262,3602.2013919353485,opt -reassociate -mergefunc -mem2reg -bdce -newgvn -coro-elide -mergereturn -break-crit-edges -strip-nondebug -loop-reroll -functionattrs -sccp -correlated-propagation -strip-dead-prototypes -globaldce -loop-instsimplify -strip-nondebug -simplifycfg -instcombine -early-cse-memssa -sink -argpromotion -lower-expect -partially-inline-libcalls -reassociate -memcpyopt -adce -sroa -deadargelim -loop-data-prefetch -lower-widenable-condition -dce -hotcoldsplit -mergefunc -mergereturn -rewrite-statepoints-for-gc -separate-const-offset-from-gep -jump-threading input.bc -o output.bc +benchmark://cbench-v1/sha,1.5183946488294313,3601.795018196106,opt -break-crit-edges -simplifycfg -barrier -newgvn -lcssa -canonicalize-aliases -gvn -scalarizer -nary-reassociate -float2int -loop-vectorize -loop-interchange -loop-unroll -jump-threading -loop-unroll-and-jam -lower-guard-intrinsic -instcombine -loop-deletion -reassociate -loop-simplifycfg -constmerge -indvars -forceattrs -ipconstprop -lower-constant-intrinsics -loop-data-prefetch -globalopt -load-store-vectorizer -mldst-motion -slsr -insert-gcov-profiling -instcombine -instnamer -loop-predication -lower-matrix-intrinsics -coro-split -loop-reroll -loop-vectorize -elim-avail-extern -instnamer -partial-inliner -loop-rotate -adce -mergefunc -strip -sancov -pgo-memop-opt -mldst-motion -break-crit-edges -constmerge -prune-eh -loop-deletion -jump-threading -lower-constant-intrinsics -partial-inliner -coro-early -lowerinvoke -bdce -deadargelim -loop-simplifycfg -called-value-propagation -lower-widenable-condition -loop-deletion -sancov -sroa -instnamer -insert-gcov-profiling -loweratomic -slp-vectorizer -strip -nary-reassociate -loop-guard-widening -forceattrs -adce -loop-simplifycfg -separate-const-offset-from-gep -lower-expect -inferattrs -strip -simple-loop-unswitch -lower-guard-intrinsic -coro-elide -jump-threading -ipsccp -instcombine -break-crit-edges -slp-vectorizer -ipsccp -simplifycfg -name-anon-globals -partially-inline-libcalls -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0163934426229506,3601.6986713409424,opt -indvars -deadargelim -sccp -bdce -loop-simplifycfg -lower-expect -coro-split -strip-debug-declare -early-cse-memssa -coro-elide -float2int -die -simplifycfg -break-crit-edges -strip-debug-declare -loop-simplifycfg -mem2reg -float2int -globalopt -instnamer -inferattrs -loop-distribute -break-crit-edges -post-inline-ee-instrument -strip -flattencfg -coro-early -irce -aggressive-instcombine -rpo-functionattrs -gvn-hoist -globalopt -instnamer -adce -coro-early -partial-inliner -loop-unroll-and-jam -sink -lower-constant-intrinsics -sink -flattencfg -correlated-propagation -lcssa -mldst-motion -tailcallelim -sccp -post-inline-ee-instrument -mergereturn -loop-unroll -coro-cleanup -mldst-motion -insert-gcov-profiling -indvars -strip-nondebug -partially-inline-libcalls -strip-dead-prototypes -elim-avail-extern -globaldce -gvn-hoist -coro-elide -jump-threading -mergeicmps -instcombine -memcpyopt -rpo-functionattrs -loop-load-elim -globalopt -reassociate -gvn-hoist -argpromotion -newgvn -sink -alignment-from-assumptions -lowerinvoke -sancov -adce -pgo-memop-opt -loop-data-prefetch -ee-instrument -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9962686567164181,3601.807757139206,opt -constmerge -sancov -lowerswitch -consthoist -load-store-vectorizer -break-crit-edges -loop-versioning -ipsccp -loweratomic -slsr -ipsccp -lcssa -gvn-hoist -loop-predication -partially-inline-libcalls -rpo-functionattrs -correlated-propagation -loop-predication -globalsplit -inject-tli-mappings -loop-interchange -inferattrs -coro-early -name-anon-globals -sroa -lowerinvoke -deadargelim -sccp -canonicalize-aliases -lowerswitch -loop-unroll -canonicalize-aliases -constprop -partial-inliner -loop-simplify -loop-interchange -coro-cleanup -gvn-hoist -break-crit-edges -loop-unroll -loop-unswitch -lower-constant-intrinsics -guard-widening -sroa -always-inline -separate-const-offset-from-gep -loop-deletion -elim-avail-extern -ipsccp -scalarizer -strip-debug-declare -slp-vectorizer -slp-vectorizer -prune-eh -lower-constant-intrinsics -flattencfg -jump-threading -globaldce -slsr -coro-elide -consthoist -prune-eh -loop-sink -scalarizer -tailcallelim -instnamer -ipconstprop -loop-deletion -inject-tli-mappings -pgo-memop-opt -loop-reroll -guard-widening -speculative-execution -simple-loop-unswitch -loop-unroll -early-cse-memssa -jump-threading -loop-data-prefetch -redundant-dbg-inst-elim -sroa -mem2reg -loop-data-prefetch -flattencfg -lower-constant-intrinsics -simplifycfg -strip-debug-declare -always-inline -gvn-hoist -jump-threading -deadargelim -simplifycfg -jump-threading -loop-predication -load-store-vectorizer -instnamer -gvn -flattencfg -loop-interchange -indvars -gvn -cross-dso-cfi -gvn-hoist -die -newgvn -loop-unswitch -gvn -sccp -always-inline -alignment-from-assumptions -argpromotion -pgo-memop-opt -inferattrs -infer-address-spaces -redundant-dbg-inst-elim -partial-inliner -gvn-hoist -loop-fusion -partially-inline-libcalls -lowerswitch -instcombine -guard-widening -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0552853852060406,3603.660972595215,opt -break-crit-edges -lowerinvoke -reg2mem -bdce -loop-predication -newgvn -constprop -loop-interchange -load-store-vectorizer -globalopt -inferattrs -deadargelim -loop-versioning -inline -aggressive-instcombine -gvn -instcombine -strip-nondebug -loop-sink -partially-inline-libcalls -mergefunc -forceattrs -mldst-motion -irce -speculative-execution -strip-debug-declare -bdce -loop-unroll-and-jam -simple-loop-unswitch -inject-tli-mappings -slsr -loop-distribute -lower-guard-intrinsic -lower-widenable-condition -loop-reroll -coro-cleanup -sccp -gvn-hoist -functionattrs -adce -adce -inferattrs -instcombine -strip-debug-declare -scalarizer -sccp -newgvn -mergeicmps -mergeicmps -consthoist -dce -name-anon-globals -gvn -separate-const-offset-from-gep -simplifycfg -loop-instsimplify -name-anon-globals -mem2reg -redundant-dbg-inst-elim -rewrite-statepoints-for-gc -coro-elide -coro-cleanup -consthoist -early-cse-memssa -loop-idiom -constprop -adce -guard-widening -reg2mem -lower-guard-intrinsic -globaldce -gvn -globalsplit -float2int -mergeicmps -coro-elide -loop-guard-widening -functionattrs -constprop -slp-vectorizer -simple-loop-unswitch -loop-sink -mldst-motion -loop-predication -instcombine -callsite-splitting -loop-data-prefetch -sccp -alignment-from-assumptions -cross-dso-cfi -instnamer -inferattrs -mldst-motion -guard-widening -loop-simplify -loop-data-prefetch -die -constprop -strip -sccp -slsr -newgvn -sroa -loop-simplifycfg -loop-instsimplify -elim-avail-extern -mergefunc -loop-interchange -div-rem-pairs -loop-interchange -mergereturn -lower-guard-intrinsic -libcalls-shrinkwrap -nary-reassociate -lower-matrix-intrinsics -aggressive-instcombine -ee-instrument -globaldce -prune-eh -jump-threading -mergereturn -functionattrs -lower-matrix-intrinsics -correlated-propagation -separate-const-offset-from-gep -div-rem-pairs -hotcoldsplit -loop-data-prefetch -mergereturn -insert-gcov-profiling -die -instsimplify -lower-matrix-intrinsics -partially-inline-libcalls -prune-eh -canonicalize-aliases -strip-debug-declare -strip-dead-prototypes -always-inline -strip -jump-threading -coro-split -inferattrs -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0392564203588952,3631.8315482139587,opt -deadargelim -loop-reduce -loop-interchange -always-inline -ipconstprop -ipsccp -break-crit-edges -cross-dso-cfi -bdce -elim-avail-extern -loop-vectorize -ee-instrument -load-store-vectorizer -consthoist -lowerinvoke -loop-load-elim -nary-reassociate -coro-cleanup -prune-eh -insert-gcov-profiling -ee-instrument -lower-expect -mem2reg -partial-inliner -globalsplit -loop-unroll-and-jam -loop-load-elim -ipconstprop -flattencfg -loop-vectorize -pgo-memop-opt -add-discriminators -lower-matrix-intrinsics -lower-widenable-condition -redundant-dbg-inst-elim -reassociate -ee-instrument -newgvn -loop-data-prefetch -add-discriminators -attributor -slp-vectorizer -lcssa -partial-inliner -rpo-functionattrs -coro-cleanup -mergefunc -separate-const-offset-from-gep -elim-avail-extern -speculative-execution -instcombine -mergeicmps -newgvn -simplifycfg -argpromotion -mldst-motion -lower-constant-intrinsics -irce -loop-simplify -reassociate -redundant-dbg-inst-elim -loop-idiom -guard-widening -indvars -functionattrs -slsr -partially-inline-libcalls -sancov -instcombine -argpromotion -strip-debug-declare -instsimplify -loop-sink -gvn-hoist -globaldce -newgvn -always-inline -speculative-execution -bdce -functionattrs -loop-sink -rewrite-statepoints-for-gc -mergefunc -early-cse-memssa -loop-predication -licm -sccp -alignment-from-assumptions -early-cse-memssa -loop-predication -sccp -name-anon-globals -loop-versioning -ee-instrument -scalarizer -infer-address-spaces -reg2mem -cross-dso-cfi -loop-versioning-licm -sroa -tailcallelim -coro-cleanup -instcombine -loop-data-prefetch -loop-deletion -ipsccp -lcssa -sink -inferattrs -bdce -slp-vectorizer -dse -lowerinvoke -slp-vectorizer -functionattrs -elim-avail-extern -strip-dead-prototypes -loop-guard-widening -gvn -die -add-discriminators -rpo-functionattrs -insert-gcov-profiling -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0389200057446502,3612.9188113212585,opt -loop-interchange -strip -deadargelim -nary-reassociate -early-cse-memssa -mem2reg -dse -div-rem-pairs -loop-reroll -sancov -constmerge -loop-unroll -loweratomic -loop-simplifycfg -guard-widening -gvn-hoist -instsimplify -loop-instsimplify -mergeicmps -pgo-memop-opt -jump-threading -constmerge -coro-split -licm -loop-unroll -newgvn -gvn-hoist -add-discriminators -indvars -jump-threading -globalsplit -lowerinvoke -loop-sink -loop-unroll-and-jam -called-value-propagation -instcombine -float2int -loop-load-elim -load-store-vectorizer -div-rem-pairs -separate-const-offset-from-gep -loop-unroll-and-jam -mldst-motion -coro-early -cross-dso-cfi -lower-widenable-condition -reassociate -lower-expect -callsite-splitting -loop-instsimplify -dse -newgvn -slsr -mergeicmps -sccp -mldst-motion -dce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0374855824682814,3850.3293058872223,opt -strip-nondebug -rpo-functionattrs -loop-unroll-and-jam -strip-nondebug -coro-elide -inferattrs -loop-instsimplify -bdce -irce -loop-simplifycfg -memcpyopt -hotcoldsplit -indvars -deadargelim -loop-unswitch -simplifycfg -loop-simplify -correlated-propagation -loop-simplify -coro-elide -strip-debug-declare -separate-const-offset-from-gep -jump-threading -callsite-splitting -canonicalize-aliases -mergereturn -ipconstprop -argpromotion -libcalls-shrinkwrap -deadargelim -cross-dso-cfi -canonicalize-aliases -mem2reg -correlated-propagation -adce -simplifycfg -slp-vectorizer -gvn-hoist -cross-dso-cfi -scalarizer -hotcoldsplit -insert-gcov-profiling -gvn -pgo-memop-opt -loop-idiom -rpo-functionattrs -memcpyopt -float2int -barrier -constmerge -consthoist -div-rem-pairs -adce -loop-sink -licm -loop-instsimplify -instcombine -loop-predication -loop-unroll-and-jam -coro-early -nary-reassociate -irce -scalarizer -constmerge -slp-vectorizer -loop-simplifycfg -callsite-splitting -loop-sink -loop-unroll -post-inline-ee-instrument -coro-elide -strip -lower-matrix-intrinsics -mergeicmps -argpromotion -lower-expect -mergefunc -lower-guard-intrinsic -inferattrs -break-crit-edges -sancov -coro-split -simplifycfg -hotcoldsplit -inject-tli-mappings -constprop -inferattrs -mergeicmps -loop-guard-widening -loop-versioning -argpromotion -memcpyopt -libcalls-shrinkwrap -strip-nondebug -gvn-hoist -lower-expect -loop-distribute -globalsplit -sink -nary-reassociate -name-anon-globals -coro-cleanup -always-inline -jump-threading -loop-unroll -loop-unroll-and-jam -globaldce -strip-nondebug -alignment-from-assumptions -simplifycfg -coro-cleanup -guard-widening -lower-widenable-condition -lower-widenable-condition -lcssa -coro-elide -strip-dead-prototypes -ipconstprop -elim-avail-extern -gvn input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.035927734708514,3610.76429438591,opt -mldst-motion -loop-data-prefetch -lower-expect -separate-const-offset-from-gep -rewrite-statepoints-for-gc -loop-simplifycfg -deadargelim -dce -ee-instrument -coro-elide -mem2reg -inferattrs -speculative-execution -loop-simplify -early-cse-memssa -rewrite-statepoints-for-gc -loop-unroll -newgvn -instcombine -prune-eh -dse -gvn-hoist -instsimplify -cross-dso-cfi -coro-cleanup -globaldce -newgvn -flattencfg -simplifycfg input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/random_search/results_p125_t60.csv b/leaderboard/llvm_instcount/random_search/results_p125_t60.csv index cd400446d..2f5d81e0c 100644 --- a/leaderboard/llvm_instcount/random_search/results_p125_t60.csv +++ b/leaderboard/llvm_instcount/random_search/results_p125_t60.csv @@ -1,231 +1,231 @@ benchmark,reward,walltime,commandline -benchmark://cBench-v1/adpcm,1.0000000000000002,62.01178193092346,opt -strip-debug-declare -sroa -add-discriminators -speculative-execution -loop-versioning -loop-fusion -post-inline-ee-instrument -deadargelim -loop-unroll -instcombine -memcpyopt -loop-reduce -forceattrs -loop-vectorize -gvn -coro-elide -libcalls-shrinkwrap -loop-predication -loop-versioning-licm -instsimplify -dce -simplifycfg -pgo-memop-opt -scalarizer -loop-unroll-and-jam -break-crit-edges -loop-predication -instcombine -jump-threading -lower-matrix-intrinsics -sroa -instcombine -lower-constant-intrinsics -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0027932960893853,61.84229135513306,opt -loop-versioning-licm -lower-widenable-condition -lowerswitch -die -loop-unroll-and-jam -barrier -ipconstprop -mergereturn -gvn-hoist -instsimplify -argpromotion -mergeicmps -licm -pgo-memop-opt -sink -load-store-vectorizer -simplifycfg -loop-distribute -callsite-splitting -instnamer -globaldce -coro-early -deadargelim -strip-dead-prototypes -cross-dso-cfi -loweratomic -die -inline -rewrite-statepoints-for-gc -instcombine -consthoist -lower-matrix-intrinsics -lcssa -irce -loop-data-prefetch -loop-idiom -flattencfg -ipsccp -coro-cleanup -pgo-memop-opt -flattencfg -globalopt -loop-deletion -constprop -post-inline-ee-instrument -constprop -rpo-functionattrs -adce -coro-elide -loop-sink -gvn -inject-tli-mappings -mem2reg -sroa -load-store-vectorizer -loop-reroll -instnamer -post-inline-ee-instrument -lower-constant-intrinsics -rewrite-statepoints-for-gc -called-value-propagation -sink -loop-unswitch -loop-predication -aggressive-instcombine -lower-matrix-intrinsics -simple-loop-unswitch -licm -early-cse-memssa -loop-data-prefetch -loweratomic -loop-unroll-and-jam -coro-cleanup -tailcallelim -loop-predication -post-inline-ee-instrument -add-discriminators -dse -jump-threading -strip-debug-declare -mergefunc -nary-reassociate -lowerswitch -coro-cleanup -post-inline-ee-instrument -loop-interchange -inject-tli-mappings -nary-reassociate -loop-distribute -lower-constant-intrinsics -loop-versioning-licm -instsimplify input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0027932960893857,61.92401933670044,opt -pgo-memop-opt -functionattrs -sroa -loop-load-elim -memcpyopt -alignment-from-assumptions -speculative-execution -reassociate -ipconstprop -globaldce -lower-constant-intrinsics -indvars -loop-versioning -bdce -loop-deletion -post-inline-ee-instrument -reassociate -simplifycfg -cross-dso-cfi -memcpyopt -reassociate -dse -loop-unroll-and-jam -memcpyopt -tailcallelim -instcombine -sccp -div-rem-pairs -coro-elide -loop-guard-widening -loop-predication -sroa -nary-reassociate -loop-instsimplify -separate-const-offset-from-gep -name-anon-globals -flattencfg -partially-inline-libcalls -licm -lcssa -lower-constant-intrinsics -instsimplify -inline -coro-split -indvars -deadargelim -mldst-motion -loop-data-prefetch -loop-simplifycfg -pgo-memop-opt -coro-cleanup -loop-idiom -mergeicmps -name-anon-globals -gvn -rewrite-statepoints-for-gc -ipconstprop -always-inline -libcalls-shrinkwrap -lowerinvoke -name-anon-globals -dse -loop-unroll -loop-guard-widening -loop-vectorize -strip-debug-declare -strip-debug-declare -die -die -loop-fusion -lower-widenable-condition -attributor -coro-elide -libcalls-shrinkwrap -loop-predication -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -correlated-propagation -globaldce -loop-data-prefetch -redundant-dbg-inst-elim -instsimplify -inject-tli-mappings -slsr -correlated-propagation -ipsccp -strip-dead-prototypes -slsr -inject-tli-mappings -sroa -loweratomic -adce -constprop -simple-loop-unswitch -inferattrs -constprop -rpo-functionattrs -loop-data-prefetch -lower-guard-intrinsic -mergereturn -scalarizer -reassociate -simplifycfg -add-discriminators -insert-gcov-profiling -correlated-propagation input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0027932960893857,61.99663496017456,opt -sink -globalopt -gvn-hoist -hotcoldsplit -sroa -add-discriminators -forceattrs -redundant-dbg-inst-elim -flattencfg -forceattrs -loop-idiom -loop-reduce -speculative-execution -memcpyopt -sccp -sancov -ipsccp -sancov -loop-load-elim -loop-fusion -coro-cleanup -strip-dead-prototypes -sink -coro-elide -loop-predication -loop-predication -constmerge -mergeicmps -constmerge -ipconstprop -libcalls-shrinkwrap -canonicalize-aliases -loweratomic -prune-eh -memcpyopt -loop-vectorize -adce -strip-debug-declare -argpromotion -lower-widenable-condition -lowerswitch -called-value-propagation -loop-instsimplify -libcalls-shrinkwrap -post-inline-ee-instrument -mldst-motion -instsimplify -sccp -flattencfg -mergeicmps -tailcallelim -simplifycfg -inline -name-anon-globals -instnamer -scalarizer -dce -insert-gcov-profiling -nary-reassociate -sccp -mergereturn -globaldce -coro-split -nary-reassociate -add-discriminators -inferattrs -div-rem-pairs -break-crit-edges -strip-nondebug -licm -simple-loop-unswitch -ipconstprop -slp-vectorizer -gvn-hoist -partial-inliner -adce -float2int -strip-debug-declare -speculative-execution -alignment-from-assumptions -flattencfg -rewrite-statepoints-for-gc -loop-unroll -callsite-splitting -constprop -mem2reg -partial-inliner -called-value-propagation -post-inline-ee-instrument -redundant-dbg-inst-elim -instcombine -memcpyopt -prune-eh -newgvn -constmerge -add-discriminators -libcalls-shrinkwrap -strip-nondebug -deadargelim -callsite-splitting -irce -gvn -loweratomic -lowerinvoke -slsr -globalopt -coro-split -loop-guard-widening -irce -argpromotion -break-crit-edges -coro-elide -mergefunc -loweratomic -jump-threading -consthoist -loop-versioning -ee-instrument -sccp -loop-vectorize -instnamer -guard-widening -loop-deletion -loop-instsimplify -div-rem-pairs -inject-tli-mappings -newgvn -loop-sink -licm -loop-unroll-and-jam -loop-unroll -lower-widenable-condition -correlated-propagation -nary-reassociate -nary-reassociate -aggressive-instcombine -ee-instrument -aggressive-instcombine -loop-sink -prune-eh -loweratomic -loop-versioning -early-cse-memssa -inferattrs -sccp -loweratomic -loop-fusion -memcpyopt -globalopt -die -inferattrs -partial-inliner -globaldce -loop-load-elim -mergereturn -mergeicmps -slp-vectorizer -strip-debug-declare -elim-avail-extern -partial-inliner -bdce -loweratomic -dce -constprop -load-store-vectorizer -insert-gcov-profiling -jump-threading -die -consthoist -lowerinvoke -indvars -loop-unroll-and-jam -loop-predication -simple-loop-unswitch -globalopt -lowerswitch -jump-threading -coro-early -cross-dso-cfi -inline -irce -loop-versioning -aggressive-instcombine -libcalls-shrinkwrap -lowerinvoke -pgo-memop-opt -instcombine input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.005586592178771,61.88795065879822,opt -name-anon-globals -infer-address-spaces -lower-guard-intrinsic -reassociate -constmerge -separate-const-offset-from-gep -strip-debug-declare -coro-cleanup -loop-unroll-and-jam -add-discriminators -globaldce -barrier -name-anon-globals -reg2mem -infer-address-spaces -loop-versioning-licm -sancov -slsr -loop-unroll -loop-distribute -adce -argpromotion -lcssa -break-crit-edges -instnamer -coro-early -barrier -callsite-splitting -functionattrs -redundant-dbg-inst-elim -loop-idiom -loop-guard-widening -flattencfg -mem2reg -consthoist -called-value-propagation -mergeicmps -lower-matrix-intrinsics -indvars -lower-expect -simplifycfg -name-anon-globals -redundant-dbg-inst-elim -strip-debug-declare -inject-tli-mappings -indvars -separate-const-offset-from-gep -loop-interchange -infer-address-spaces -strip-nondebug -rewrite-statepoints-for-gc -loop-unswitch -separate-const-offset-from-gep -strip-nondebug -libcalls-shrinkwrap -deadargelim -gvn-hoist -barrier -barrier -guard-widening -loop-versioning-licm -lowerinvoke -argpromotion -mem2reg -instcombine -strip-dead-prototypes -loop-idiom -globalopt -attributor -aggressive-instcombine -bdce -consthoist -partially-inline-libcalls -loop-data-prefetch -mem2reg -loop-reduce -loop-versioning-licm -instcombine -slsr -lower-expect -inline -loop-load-elim -simple-loop-unswitch -simplifycfg -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.005586592178771,61.90937900543213,opt -instcombine -loop-fusion -ipsccp -slsr -functionattrs -aggressive-instcombine -tailcallelim -nary-reassociate -guard-widening -loop-interchange -die -aggressive-instcombine -lower-widenable-condition -ee-instrument -dse -rpo-functionattrs -jump-threading -loop-simplify -canonicalize-aliases -alignment-from-assumptions -alignment-from-assumptions -constprop -libcalls-shrinkwrap -irce -load-store-vectorizer -separate-const-offset-from-gep -ee-instrument -loop-reduce -post-inline-ee-instrument -lower-widenable-condition -loop-deletion -licm -post-inline-ee-instrument -scalarizer -globalsplit -mergereturn -mem2reg -loop-sink -dce -licm -memcpyopt -load-store-vectorizer -barrier -called-value-propagation -memcpyopt -mergereturn -early-cse-memssa -mldst-motion -lower-guard-intrinsic -loop-load-elim -ee-instrument -load-store-vectorizer -loop-distribute -ipconstprop -deadargelim -gvn-hoist -inject-tli-mappings -deadargelim -mergeicmps -newgvn -loop-predication -loop-unroll-and-jam -guard-widening -ipconstprop -loop-reroll -loop-simplify -lower-constant-intrinsics -break-crit-edges -speculative-execution -break-crit-edges -loop-idiom -lower-expect -lowerswitch -scalarizer -ipconstprop -aggressive-instcombine -mldst-motion -mergefunc -ee-instrument -loop-reduce -always-inline -inferattrs -loop-instsimplify -barrier -tailcallelim -loop-guard-widening -gvn-hoist -ee-instrument -lcssa -tailcallelim -simplifycfg -irce -loop-predication -slsr -indvars -loweratomic -slsr -mergereturn -ipconstprop -sink -mem2reg -loop-load-elim -cross-dso-cfi -inferattrs -dse -loop-simplifycfg -loop-instsimplify -dse -inline -newgvn -lcssa -loop-unroll -loop-simplify -loop-data-prefetch -loop-unroll-and-jam -guard-widening -insert-gcov-profiling -licm -canonicalize-aliases -sancov -instsimplify -lower-matrix-intrinsics -name-anon-globals -newgvn -rpo-functionattrs -licm -coro-split -redundant-dbg-inst-elim -instnamer -loop-interchange -loop-interchange -lower-constant-intrinsics -loop-predication -loop-versioning-licm -gvn -alignment-from-assumptions -instcombine -name-anon-globals -insert-gcov-profiling -lowerswitch -forceattrs -lower-constant-intrinsics -speculative-execution -bdce -sroa -mergeicmps -tailcallelim -coro-elide -coro-elide -simplifycfg -mldst-motion -break-crit-edges -gvn-hoist -tailcallelim -loop-predication -lower-expect -loop-fusion -globaldce -irce -coro-early -pgo-memop-opt -simple-loop-unswitch -loop-unswitch -instnamer -loop-unroll-and-jam -bdce -loop-interchange -lower-constant-intrinsics -loop-simplifycfg -forceattrs -globalopt -globaldce -memcpyopt -loop-sink -sancov -loop-sink -loop-idiom -gvn -newgvn -tailcallelim -argpromotion -redundant-dbg-inst-elim -loop-distribute -inject-tli-mappings -jump-threading input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.005586592178771,62.016544580459595,opt -mem2reg -newgvn -loop-unroll -ipconstprop -adce -strip-dead-prototypes -loop-deletion -inferattrs -strip-dead-prototypes -speculative-execution -reg2mem -forceattrs -aggressive-instcombine -mldst-motion -lower-expect -loop-versioning-licm -lower-matrix-intrinsics -pgo-memop-opt -loop-predication -irce -loop-interchange -loop-deletion -loop-distribute -coro-early -post-inline-ee-instrument -partial-inliner -forceattrs -loop-unswitch -loop-reduce -coro-elide -loop-idiom -correlated-propagation -post-inline-ee-instrument -slsr -loop-unroll -strip-nondebug -loop-deletion -lower-matrix-intrinsics -loop-versioning -alignment-from-assumptions -inject-tli-mappings -inject-tli-mappings -alignment-from-assumptions -lower-constant-intrinsics -rewrite-statepoints-for-gc -nary-reassociate -instnamer -flattencfg -hotcoldsplit -lower-expect -slp-vectorizer -always-inline -pgo-memop-opt -loop-sink -loop-sink -loop-load-elim -loop-reroll -insert-gcov-profiling -elim-avail-extern -memcpyopt -sroa -constmerge -instsimplify -reassociate -strip-nondebug -lcssa -globalsplit -ipconstprop -inject-tli-mappings -constprop -prune-eh -loop-vectorize -coro-early -ipconstprop -hotcoldsplit -strip-nondebug -lowerswitch -die -lower-matrix-intrinsics -aggressive-instcombine -lowerswitch -loop-simplifycfg -prune-eh -slp-vectorizer -called-value-propagation -correlated-propagation -rpo-functionattrs -functionattrs -loop-deletion -slsr -ee-instrument -loop-simplifycfg -early-cse-memssa -slsr -loop-unroll -simplifycfg -guard-widening -ee-instrument -slp-vectorizer -irce -strip -instsimplify -loop-interchange -load-store-vectorizer -ipsccp -globaldce -loop-predication -separate-const-offset-from-gep -gvn -loop-simplifycfg -loop-predication -mldst-motion -strip -early-cse-memssa -lower-widenable-condition -loop-predication -sink -instcombine -consthoist -instnamer -loop-interchange -loop-unswitch -loop-fusion -scalarizer -mldst-motion -coro-split -loop-data-prefetch -loweratomic -loop-unroll -sroa -loop-predication -alignment-from-assumptions -mergefunc -separate-const-offset-from-gep -simple-loop-unswitch -gvn -dce -consthoist -lowerswitch -reassociate -loop-instsimplify -partially-inline-libcalls -loop-reduce -barrier -lower-matrix-intrinsics -sink -sccp -tailcallelim -aggressive-instcombine -newgvn -slsr -redundant-dbg-inst-elim -lower-widenable-condition -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0055865921787712,61.891133546829224,opt -callsite-splitting -loop-unswitch -loop-interchange -gvn-hoist -deadargelim -mergefunc -barrier -attributor -loop-data-prefetch -inline -hotcoldsplit -sroa -callsite-splitting -jump-threading -separate-const-offset-from-gep -loop-simplifycfg -callsite-splitting -loop-instsimplify -lcssa -dse -barrier -loop-data-prefetch -lower-expect -lowerinvoke -name-anon-globals -rewrite-statepoints-for-gc -name-anon-globals -loop-simplifycfg -forceattrs -mergefunc -pgo-memop-opt -sccp -loop-unroll-and-jam -lower-expect -lowerinvoke -reassociate -loop-predication -gvn-hoist -loop-reroll -break-crit-edges -nary-reassociate -jump-threading -slsr -simplifycfg -globaldce -globalopt -loop-vectorize -forceattrs -loop-versioning -reassociate -loop-data-prefetch -loop-vectorize -prune-eh -lower-widenable-condition -coro-split -sancov -loop-versioning-licm -instsimplify -alignment-from-assumptions -lower-guard-intrinsic -constprop -sroa -elim-avail-extern -constmerge -elim-avail-extern -break-crit-edges -coro-cleanup -sroa -coro-early -sccp -load-store-vectorizer -add-discriminators -instcombine -name-anon-globals -scalarizer -loop-sink -bdce -insert-gcov-profiling -loop-vectorize -loop-deletion -post-inline-ee-instrument -loop-predication -infer-address-spaces -libcalls-shrinkwrap -prune-eh -dce -die -slp-vectorizer -loop-interchange -instcombine -always-inline -partial-inliner -loop-unroll -correlated-propagation -inject-tli-mappings -consthoist -lcssa -redundant-dbg-inst-elim -mergeicmps -insert-gcov-profiling -constprop -constprop -lower-widenable-condition -barrier -globalsplit -globalopt -canonicalize-aliases -float2int -loop-unroll -float2int -adce -dse -lowerinvoke -partial-inliner -inline -sink -redundant-dbg-inst-elim -die -loop-unswitch -div-rem-pairs -die -gvn-hoist -redundant-dbg-inst-elim -globaldce -lower-widenable-condition -newgvn -globaldce -lowerswitch -lower-expect -post-inline-ee-instrument -canonicalize-aliases -gvn-hoist -loop-idiom -lowerinvoke -div-rem-pairs -canonicalize-aliases -alignment-from-assumptions -elim-avail-extern -canonicalize-aliases -called-value-propagation -simplifycfg -rpo-functionattrs -lower-guard-intrinsic -loop-distribute -adce -nary-reassociate -loop-vectorize -separate-const-offset-from-gep -loop-versioning-licm -loop-simplifycfg -newgvn -name-anon-globals -strip-dead-prototypes -constprop -dse -cross-dso-cfi -lowerinvoke -deadargelim -loop-versioning -prune-eh -loop-guard-widening -separate-const-offset-from-gep -loop-predication -simple-loop-unswitch -rewrite-statepoints-for-gc -alignment-from-assumptions -sink -loop-versioning -loop-simplifycfg -licm -float2int -ee-instrument -inferattrs -elim-avail-extern -coro-elide -redundant-dbg-inst-elim -loop-reroll -instnamer -correlated-propagation -instcombine input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0055865921787712,61.928428411483765,opt -instsimplify -functionattrs -loop-unswitch -loop-simplifycfg -name-anon-globals -name-anon-globals -barrier -loop-distribute -sroa -loop-unswitch -insert-gcov-profiling -loop-unroll-and-jam -insert-gcov-profiling -callsite-splitting -rpo-functionattrs -called-value-propagation -instsimplify -memcpyopt -dce -globaldce -loop-deletion -loop-guard-widening -simple-loop-unswitch -die -instsimplify -alignment-from-assumptions -argpromotion -ipsccp -callsite-splitting -slsr -add-discriminators -lower-expect -loweratomic -memcpyopt -strip-nondebug -ee-instrument -newgvn -strip -constmerge -loop-load-elim -lower-guard-intrinsic -redundant-dbg-inst-elim -consthoist -partially-inline-libcalls -instnamer -reassociate -sancov -inline -alignment-from-assumptions -cross-dso-cfi -bdce -globalsplit -deadargelim -libcalls-shrinkwrap -strip-nondebug -speculative-execution -pgo-memop-opt -nary-reassociate -partial-inliner -loop-versioning-licm -memcpyopt -globalopt -loop-reroll -mem2reg -lcssa -instnamer -coro-elide -rpo-functionattrs -memcpyopt -alignment-from-assumptions -jump-threading -constprop -dce -sroa -lowerinvoke -always-inline -slp-vectorizer -strip -loop-sink -mergefunc -constmerge -consthoist -mergefunc -break-crit-edges -functionattrs -loop-guard-widening -loop-fusion -attributor -jump-threading -partially-inline-libcalls -mergeicmps -prune-eh -reassociate -loop-guard-widening -adce -simplifycfg -tailcallelim -flattencfg -called-value-propagation -forceattrs -memcpyopt -jump-threading -aggressive-instcombine -mldst-motion -hotcoldsplit -forceattrs -constmerge -libcalls-shrinkwrap -flattencfg -break-crit-edges -loop-unroll -sroa -loop-predication -ipsccp -loop-reroll -infer-address-spaces -slp-vectorizer -called-value-propagation -loop-simplifycfg -scalarizer -inline -loop-deletion -reg2mem -loop-instsimplify -sroa -redundant-dbg-inst-elim -early-cse-memssa -inline -prune-eh -scalarizer -simplifycfg -loop-versioning -bdce -correlated-propagation -alignment-from-assumptions -irce -elim-avail-extern -prune-eh -alignment-from-assumptions -nary-reassociate -inline -barrier -loop-instsimplify -strip-nondebug -loop-versioning-licm -rewrite-statepoints-for-gc -gvn -loop-deletion -lower-guard-intrinsic -early-cse-memssa -loop-interchange -loop-unswitch -elim-avail-extern -simplifycfg -loop-reroll -loop-reroll -loop-simplify -slsr -add-discriminators -loop-versioning-licm -instcombine -sink -ipsccp -mergeicmps -mergeicmps -barrier -always-inline -break-crit-edges -sink -lower-guard-intrinsic -prune-eh -loop-unroll -deadargelim -insert-gcov-profiling -globaldce -early-cse-memssa -tailcallelim -dce -loop-fusion -loop-simplify -reg2mem -globalsplit -loop-data-prefetch -loop-vectorize -jump-threading -rewrite-statepoints-for-gc -loop-idiom -prune-eh -loop-unroll -loop-simplifycfg -early-cse-memssa -gvn-hoist -loop-unroll-and-jam -loop-simplify -slp-vectorizer -lowerinvoke -partial-inliner -gvn-hoist -float2int -strip-debug-declare -load-store-vectorizer -sroa -break-crit-edges -rewrite-statepoints-for-gc -pgo-memop-opt -newgvn -memcpyopt -separate-const-offset-from-gep -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/adpcm,1.0055865921787712,61.9604275226593,opt -add-discriminators -indvars -speculative-execution -memcpyopt -coro-cleanup -licm -inject-tli-mappings -constmerge -slp-vectorizer -alignment-from-assumptions -barrier -deadargelim -loop-guard-widening -loop-unswitch -barrier -loop-fusion -strip -loop-unroll -loop-sink -simplifycfg -barrier -lowerinvoke -partial-inliner -loop-distribute -ee-instrument -pgo-memop-opt -coro-elide -inline -mergeicmps -strip-dead-prototypes -lcssa -globalopt -inferattrs -sroa -speculative-execution -memcpyopt -loop-unroll-and-jam -dce -ipsccp -loop-distribute -lowerinvoke -loop-interchange -correlated-propagation -inject-tli-mappings -inline -loop-data-prefetch -partial-inliner -loop-vectorize -ee-instrument -cross-dso-cfi -constprop -strip-dead-prototypes -separate-const-offset-from-gep -infer-address-spaces -div-rem-pairs -constmerge -load-store-vectorizer -called-value-propagation -rewrite-statepoints-for-gc -flattencfg -instcombine -libcalls-shrinkwrap -partially-inline-libcalls -slsr -always-inline -sancov -gvn-hoist -loop-vectorize -flattencfg -sccp -ee-instrument -callsite-splitting -licm -nary-reassociate -barrier -strip-debug-declare -deadargelim -irce -coro-cleanup -lower-matrix-intrinsics -alignment-from-assumptions -alignment-from-assumptions -loop-load-elim -dse -lowerswitch -inline -mldst-motion -coro-cleanup -always-inline -loop-reduce -loop-sink -globalopt -strip-dead-prototypes -bdce -functionattrs -jump-threading -correlated-propagation -barrier -sccp -load-store-vectorizer -loop-guard-widening -loop-reroll -lower-widenable-condition -insert-gcov-profiling -mem2reg -coro-split -loop-deletion -loop-guard-widening -coro-early -loop-reduce -speculative-execution -lower-matrix-intrinsics -correlated-propagation -reassociate -loweratomic -guard-widening -pgo-memop-opt -separate-const-offset-from-gep -argpromotion -slp-vectorizer -aggressive-instcombine -loop-interchange -attributor -speculative-execution -coro-split -tailcallelim -loop-simplifycfg -barrier -scalarizer -lower-constant-intrinsics -coro-cleanup -die -inferattrs -instsimplify -loop-simplifycfg -irce -loweratomic -slsr -gvn input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0044247787610618,61.726380825042725,opt -reassociate -lowerswitch -reg2mem -instnamer -guard-widening -loop-versioning -elim-avail-extern -indvars -rewrite-statepoints-for-gc -dse -reassociate -hotcoldsplit -dse -div-rem-pairs -loop-deletion -functionattrs -sccp -sccp -separate-const-offset-from-gep -lowerswitch -always-inline -dse -slsr -dse -name-anon-globals -strip -strip-debug-declare -indvars -post-inline-ee-instrument -sancov -load-store-vectorizer -cross-dso-cfi -correlated-propagation -post-inline-ee-instrument -newgvn -flattencfg -deadargelim -dse -flattencfg -instsimplify -sroa -adce -globaldce -constprop -indvars -nary-reassociate -lower-expect -instcombine -rpo-functionattrs -ipconstprop -dce -loop-simplifycfg -flattencfg -memcpyopt -tailcallelim -loop-distribute -loop-reduce -attributor -jump-threading -slp-vectorizer -lower-widenable-condition -early-cse-memssa -ee-instrument -loop-deletion -lcssa -add-discriminators -globalsplit -strip-dead-prototypes -die -mem2reg -simple-loop-unswitch -gvn-hoist -aggressive-instcombine -loop-instsimplify -guard-widening -inline -strip-dead-prototypes -loweratomic -partially-inline-libcalls -instsimplify -lower-expect -mem2reg -slsr -correlated-propagation -loop-versioning-licm -name-anon-globals -div-rem-pairs -mergefunc -gvn -loop-interchange -loop-unroll-and-jam -separate-const-offset-from-gep -loop-simplify -lower-guard-intrinsic -rewrite-statepoints-for-gc -libcalls-shrinkwrap -instcombine -forceattrs -newgvn -constprop -strip-nondebug -early-cse-memssa -loop-vectorize -dce -insert-gcov-profiling -always-inline -gvn -loop-guard-widening -loop-load-elim -loop-vectorize -instsimplify -ipsccp -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0066371681415929,61.671980142593384,opt -insert-gcov-profiling -gvn-hoist -callsite-splitting -partially-inline-libcalls -loop-idiom -ipconstprop -loop-load-elim -memcpyopt -partially-inline-libcalls -ee-instrument -argpromotion -reassociate -loop-unroll-and-jam -loop-instsimplify -loop-simplify -forceattrs -ipsccp -elim-avail-extern -dse -jump-threading -ipsccp -ipsccp -irce -lower-expect -argpromotion -irce -insert-gcov-profiling -die -sroa -newgvn -loop-versioning-licm -correlated-propagation -loop-deletion -early-cse-memssa -loop-data-prefetch -loop-unroll-and-jam -strip-nondebug -newgvn -lcssa -constprop -strip-dead-prototypes -lower-guard-intrinsic -always-inline -rpo-functionattrs -dse -loop-vectorize -name-anon-globals -slp-vectorizer -sink -globaldce -loop-versioning -flattencfg -sccp -nary-reassociate -loop-instsimplify -sccp -called-value-propagation -libcalls-shrinkwrap -gvn-hoist -nary-reassociate -loop-sink -dce -called-value-propagation -speculative-execution -globalopt -mergereturn -early-cse-memssa -pgo-memop-opt -hotcoldsplit -mldst-motion -constmerge -name-anon-globals -rewrite-statepoints-for-gc -loop-unroll -lowerinvoke -mldst-motion -rpo-functionattrs -correlated-propagation -irce -lower-expect -early-cse-memssa -rpo-functionattrs -instcombine -dce -argpromotion -sancov -attributor -ipconstprop -partial-inliner -mergefunc -add-discriminators -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0066371681415929,61.696775674819946,opt -lowerswitch -early-cse-memssa -lower-widenable-condition -lower-widenable-condition -aggressive-instcombine -div-rem-pairs -globalopt -loop-reduce -loop-idiom -bdce -float2int -elim-avail-extern -called-value-propagation -tailcallelim -inline -globalopt -bdce -loop-simplify -speculative-execution -redundant-dbg-inst-elim -lowerswitch -strip -loop-unroll-and-jam -globalopt -instcombine -constprop -strip-nondebug -argpromotion -indvars -ipconstprop -ipsccp -loop-reduce -globalsplit -libcalls-shrinkwrap -strip-dead-prototypes -loop-distribute -canonicalize-aliases -nary-reassociate -sroa -nary-reassociate -newgvn -sink -memcpyopt -loop-interchange -coro-elide -memcpyopt -attributor -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0088495575221237,61.81148862838745,opt -partially-inline-libcalls -rpo-functionattrs -mergereturn -rpo-functionattrs -globaldce -name-anon-globals -slp-vectorizer -partially-inline-libcalls -reassociate -lower-expect -dse -break-crit-edges -loop-simplify -inject-tli-mappings -loop-simplify -strip-nondebug -lower-widenable-condition -constprop -globalopt -indvars -lcssa -loop-versioning-licm -globalsplit -strip-nondebug -loop-fusion -strip-nondebug -rpo-functionattrs -loop-versioning -loop-simplify -reg2mem -break-crit-edges -dce -attributor -loop-versioning-licm -strip-debug-declare -instsimplify -rewrite-statepoints-for-gc -constmerge -slp-vectorizer -loop-distribute -aggressive-instcombine -strip-nondebug -strip-debug-declare -partial-inliner -mergeicmps -lower-expect -rewrite-statepoints-for-gc -simplifycfg -mergeicmps -flattencfg -redundant-dbg-inst-elim -adce -loop-guard-widening -early-cse-memssa -sroa -loop-deletion -loop-simplify -gvn-hoist -lower-guard-intrinsic -loop-reroll -loop-fusion -constmerge -coro-early -pgo-memop-opt -instcombine -coro-cleanup -coro-split -pgo-memop-opt -tailcallelim -prune-eh -lower-constant-intrinsics -instnamer -loop-reroll -jump-threading -tailcallelim -alignment-from-assumptions -partially-inline-libcalls -coro-split -lcssa -strip-nondebug -deadargelim -adce -alignment-from-assumptions -slp-vectorizer -globalopt -always-inline -elim-avail-extern -gvn -simplifycfg -name-anon-globals -jump-threading -loop-sink -lower-expect -loop-versioning -pgo-memop-opt -irce -flattencfg -argpromotion -post-inline-ee-instrument -loop-fusion -loop-simplify -simplifycfg -sink -die -nary-reassociate -lower-matrix-intrinsics -sroa -partially-inline-libcalls -functionattrs -newgvn input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.008849557522124,61.73530960083008,opt -sccp -licm -reg2mem -coro-split -simplifycfg -loop-unroll -dse -lowerswitch -elim-avail-extern -globalopt -post-inline-ee-instrument -simplifycfg -argpromotion -slsr -forceattrs -constmerge -guard-widening -loop-data-prefetch -loop-instsimplify -simplifycfg -nary-reassociate -speculative-execution -always-inline -speculative-execution -inject-tli-mappings -sancov -simplifycfg -consthoist -rpo-functionattrs -callsite-splitting -lower-guard-intrinsic -loop-sink -coro-split -constmerge -loop-interchange -guard-widening -lcssa -loop-interchange -simplifycfg -strip-nondebug -loop-predication -deadargelim -newgvn -add-discriminators -attributor -loop-guard-widening -coro-cleanup -inferattrs -globalopt -partial-inliner -coro-cleanup -alignment-from-assumptions -insert-gcov-profiling -strip -simplifycfg -loop-guard-widening -loop-instsimplify -name-anon-globals -deadargelim -lcssa -mergeicmps -hotcoldsplit -mem2reg -forceattrs -rewrite-statepoints-for-gc -indvars -infer-address-spaces -callsite-splitting -sccp -called-value-propagation -globaldce -coro-cleanup -dse -elim-avail-extern -name-anon-globals -lower-matrix-intrinsics -inject-tli-mappings -flattencfg -attributor -hotcoldsplit -guard-widening -strip-nondebug -coro-split -cross-dso-cfi -loop-versioning-licm -loop-simplifycfg -sink -float2int -loop-sink -loop-unroll-and-jam -insert-gcov-profiling -licm -reg2mem -loop-deletion -gvn-hoist -sancov -loop-vectorize -strip-dead-prototypes -post-inline-ee-instrument -simplifycfg -loop-unroll-and-jam -lower-guard-intrinsic -licm -callsite-splitting -partial-inliner -bdce -instsimplify -loop-deletion -correlated-propagation -lowerswitch -mem2reg -post-inline-ee-instrument -inject-tli-mappings -loop-idiom -loop-unroll-and-jam -reg2mem -lowerinvoke -barrier -break-crit-edges -scalarizer -slp-vectorizer -callsite-splitting -memcpyopt -loop-unroll-and-jam -forceattrs -guard-widening -globalsplit -globalsplit -loop-simplify -guard-widening -gvn-hoist -instsimplify -insert-gcov-profiling -loop-fusion -loop-data-prefetch -inject-tli-mappings -loop-fusion -loop-versioning -rewrite-statepoints-for-gc -loop-interchange -aggressive-instcombine -strip-nondebug -correlated-propagation -mem2reg -reassociate -name-anon-globals -sancov -add-discriminators -slp-vectorizer -libcalls-shrinkwrap -instcombine -prune-eh -loop-data-prefetch -consthoist -mergereturn -barrier -mergeicmps -name-anon-globals -jump-threading -sroa -instnamer -loop-predication -lowerswitch -mergefunc -separate-const-offset-from-gep -constprop -loop-guard-widening -barrier -gvn-hoist -loop-idiom -loop-data-prefetch -aggressive-instcombine -elim-avail-extern -insert-gcov-profiling -coro-split -slsr -name-anon-globals -constmerge -lower-matrix-intrinsics -instsimplify -slsr -sink -inferattrs -rpo-functionattrs -instcombine -post-inline-ee-instrument -loop-idiom -loop-reroll -mergeicmps -loop-vectorize -forceattrs -float2int -loop-data-prefetch -instcombine -speculative-execution -pgo-memop-opt -globaldce -always-inline -functionattrs -loop-fusion -partial-inliner -ipsccp -dce -called-value-propagation -deadargelim -slsr -jump-threading -lower-expect -instnamer -lowerswitch -loop-fusion -adce -forceattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.008849557522124,61.8548686504364,opt -lower-widenable-condition -flattencfg -strip-nondebug -loop-distribute -lowerswitch -rewrite-statepoints-for-gc -loop-load-elim -loop-predication -inject-tli-mappings -partial-inliner -div-rem-pairs -constmerge -coro-early -insert-gcov-profiling -name-anon-globals -callsite-splitting -gvn-hoist -lowerinvoke -early-cse-memssa -jump-threading -strip-dead-prototypes -mergereturn -adce -attributor -consthoist -coro-elide -coro-elide -loop-distribute -memcpyopt -strip-dead-prototypes -constmerge -name-anon-globals -callsite-splitting -always-inline -canonicalize-aliases -loop-sink -dse -adce -mergeicmps -loop-predication -lower-expect -loop-data-prefetch -break-crit-edges -barrier -libcalls-shrinkwrap -consthoist -loop-idiom -forceattrs -inline -adce -coro-elide -mergeicmps -aggressive-instcombine -lowerswitch -early-cse-memssa -inferattrs -simplifycfg -float2int -mergeicmps -early-cse-memssa -coro-early -constmerge -lower-constant-intrinsics -aggressive-instcombine -separate-const-offset-from-gep -strip-dead-prototypes -lower-constant-intrinsics -jump-threading -memcpyopt -strip-nondebug -loop-reduce -loop-deletion -mergeicmps -mldst-motion -sroa -strip-nondebug -pgo-memop-opt -indvars -lower-guard-intrinsic -canonicalize-aliases -constprop -rewrite-statepoints-for-gc -irce -indvars -licm -pgo-memop-opt -separate-const-offset-from-gep -rewrite-statepoints-for-gc -instcombine -coro-early -cross-dso-cfi -div-rem-pairs -loop-vectorize -instcombine -die -attributor -loop-unroll-and-jam -always-inline -jump-threading -licm -loop-simplify -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.008849557522124,61.99087977409363,opt -constmerge -die -licm -pgo-memop-opt -loop-distribute -scalarizer -infer-address-spaces -libcalls-shrinkwrap -alignment-from-assumptions -callsite-splitting -post-inline-ee-instrument -newgvn -globalsplit -barrier -reassociate -elim-avail-extern -ipconstprop -licm -prune-eh -globaldce -partial-inliner -deadargelim -constmerge -functionattrs -inferattrs -coro-early -loop-simplify -irce -indvars -strip-dead-prototypes -mldst-motion -float2int -aggressive-instcombine -called-value-propagation -argpromotion -loop-predication -coro-early -redundant-dbg-inst-elim -loop-unroll -loop-instsimplify -sink -hotcoldsplit -bdce -canonicalize-aliases -insert-gcov-profiling -coro-cleanup -globaldce -guard-widening -callsite-splitting -slsr -loop-unroll-and-jam -loop-predication -constprop -loop-predication -loop-versioning -deadargelim -slsr -loop-simplifycfg -guard-widening -guard-widening -jump-threading -loop-deletion -slp-vectorizer -ee-instrument -speculative-execution -loop-versioning -mergeicmps -coro-split -consthoist -coro-early -functionattrs -lower-expect -loop-simplifycfg -sroa -loop-load-elim -speculative-execution -instcombine -bdce -redundant-dbg-inst-elim -simplifycfg -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0110619469026547,61.65555500984192,opt -early-cse-memssa -coro-early -elim-avail-extern -rpo-functionattrs -coro-early -separate-const-offset-from-gep -globalopt -loop-reroll -mergeicmps -globalopt -loop-predication -loop-interchange -mem2reg -strip-debug-declare -simple-loop-unswitch -mergeicmps -early-cse-memssa -ipsccp -jump-threading -nary-reassociate -canonicalize-aliases -insert-gcov-profiling -instsimplify -callsite-splitting -loop-idiom -strip -loop-deletion -strip-debug-declare -aggressive-instcombine -bdce -float2int -inject-tli-mappings -alignment-from-assumptions -redundant-dbg-inst-elim -pgo-memop-opt -separate-const-offset-from-gep -rewrite-statepoints-for-gc -guard-widening -indvars -insert-gcov-profiling -jump-threading -mergereturn -dse -globaldce -loop-unroll -canonicalize-aliases -gvn -rpo-functionattrs -loop-fusion -partially-inline-libcalls -partial-inliner -lower-guard-intrinsic -tailcallelim -loop-versioning -insert-gcov-profiling -attributor -coro-elide -name-anon-globals -mergefunc -pgo-memop-opt -adce -speculative-execution -instnamer -canonicalize-aliases -loop-deletion -instcombine -canonicalize-aliases -strip-dead-prototypes -lowerswitch -redundant-dbg-inst-elim -loop-fusion -dse -coro-split -tailcallelim -slsr -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.011061946902655,61.76593828201294,opt -inline -partial-inliner -memcpyopt -strip-dead-prototypes -lowerinvoke -correlated-propagation -lcssa -memcpyopt -globalopt -sink -simplifycfg -sancov -globalsplit -callsite-splitting -loop-reduce -deadargelim -sink -constmerge -break-crit-edges -lower-matrix-intrinsics -cross-dso-cfi -adce -sroa -deadargelim -consthoist -tailcallelim -mergeicmps -slp-vectorizer -loop-guard-widening -lower-guard-intrinsic -instcombine -loop-unroll -dse -coro-elide -globaldce -globalopt -correlated-propagation -memcpyopt -globaldce -early-cse-memssa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bitcount,1.0176991150442478,61.881062746047974,opt -loop-simplifycfg -strip-debug-declare -cross-dso-cfi -mem2reg -loop-guard-widening -canonicalize-aliases -loop-data-prefetch -loop-interchange -inferattrs -ipconstprop -loop-versioning-licm -loop-unswitch -lower-constant-intrinsics -simplifycfg -bdce -loop-reduce -partially-inline-libcalls -mem2reg -jump-threading -lcssa -loop-interchange -scalarizer -coro-split -alignment-from-assumptions -mergereturn -loop-unswitch -correlated-propagation -loop-vectorize -memcpyopt -mem2reg -post-inline-ee-instrument -coro-elide -mldst-motion -loop-unroll -prune-eh -tailcallelim -loop-simplify -argpromotion -indvars -scalarizer -sancov -partially-inline-libcalls -post-inline-ee-instrument -callsite-splitting -instcombine -deadargelim -ipsccp -loop-fusion -inline -bdce -libcalls-shrinkwrap -rewrite-statepoints-for-gc -partial-inliner -slsr -coro-early -barrier -jump-threading -mergefunc -partially-inline-libcalls -loop-idiom -adce -loop-predication -memcpyopt -correlated-propagation -early-cse-memssa -functionattrs -coro-elide -globaldce -rewrite-statepoints-for-gc -lower-constant-intrinsics -nary-reassociate -strip-debug-declare -callsite-splitting -instcombine -insert-gcov-profiling -globaldce -licm -loop-instsimplify -ipsccp -canonicalize-aliases -loop-reduce -instnamer -loop-simplify -instcombine -indvars -aggressive-instcombine -float2int -mem2reg -aggressive-instcombine -strip-debug-declare -attributor -irce -strip-debug-declare -loop-load-elim -loop-deletion -mldst-motion -lower-expect -strip-nondebug -simple-loop-unswitch -libcalls-shrinkwrap -loop-interchange -sancov -globalopt -sroa -lower-constant-intrinsics -globalopt -libcalls-shrinkwrap -globalopt -cross-dso-cfi -instcombine -sancov -instcombine -lower-matrix-intrinsics -loop-unroll -lowerinvoke -loop-simplify -aggressive-instcombine -nary-reassociate -ipsccp -loop-predication -partially-inline-libcalls -memcpyopt -loop-predication -post-inline-ee-instrument -loop-unswitch -consthoist -ipsccp -consthoist -coro-early -aggressive-instcombine -loop-deletion -licm -nary-reassociate -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0549618320610687,61.924893379211426,opt -loop-simplify -rewrite-statepoints-for-gc -coro-early -jump-threading -break-crit-edges -ipconstprop -globalopt -simple-loop-unswitch -prune-eh -mem2reg -barrier -loop-versioning-licm -rpo-functionattrs -loop-simplifycfg -newgvn -adce -mergeicmps -tailcallelim -redundant-dbg-inst-elim -post-inline-ee-instrument -constmerge -flattencfg -partially-inline-libcalls -attributor -lower-widenable-condition -loop-predication -nary-reassociate -loop-unroll -rpo-functionattrs -simple-loop-unswitch -callsite-splitting -constmerge -instcombine -newgvn -lower-constant-intrinsics -loop-sink -lower-guard-intrinsic -loop-sink -lower-expect -div-rem-pairs -loop-instsimplify -loop-reroll -post-inline-ee-instrument -flattencfg -loop-unroll-and-jam -break-crit-edges -consthoist -strip-dead-prototypes -name-anon-globals -sroa -elim-avail-extern -loop-data-prefetch -loop-vectorize -pgo-memop-opt -indvars -inline -insert-gcov-profiling -strip-nondebug -infer-address-spaces -loop-predication -partial-inliner -loop-predication -redundant-dbg-inst-elim -loop-reroll -coro-early -irce -strip -lower-expect -lower-constant-intrinsics -loop-interchange -speculative-execution -nary-reassociate -add-discriminators -load-store-vectorizer -loop-guard-widening -instnamer -callsite-splitting -name-anon-globals -loop-data-prefetch -coro-split -loop-load-elim -loop-reroll -post-inline-ee-instrument -attributor -always-inline -barrier -gvn-hoist -nary-reassociate -attributor -aggressive-instcombine -slp-vectorizer -mergefunc -libcalls-shrinkwrap -aggressive-instcombine -instcombine -lower-expect -add-discriminators -load-store-vectorizer -argpromotion -loop-unswitch -simple-loop-unswitch -loop-simplifycfg -canonicalize-aliases -gvn-hoist -lowerinvoke -loop-idiom -loop-predication -add-discriminators -loop-simplify -mergeicmps -indvars -coro-split -callsite-splitting -loop-simplify -libcalls-shrinkwrap -always-inline -argpromotion -div-rem-pairs -sancov -ee-instrument -loop-instsimplify -strip-nondebug -irce -load-store-vectorizer -deadargelim -reassociate -prune-eh -barrier -correlated-propagation -name-anon-globals -div-rem-pairs -redundant-dbg-inst-elim -load-store-vectorizer -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.055470737913486,61.863592863082886,opt -mldst-motion -argpromotion -libcalls-shrinkwrap -speculative-execution -lower-matrix-intrinsics -strip-dead-prototypes -redundant-dbg-inst-elim -loop-deletion -prune-eh -ipconstprop -pgo-memop-opt -simplifycfg -die -canonicalize-aliases -reassociate -scalarizer -mergeicmps -lower-guard-intrinsic -mem2reg -loop-fusion -rewrite-statepoints-for-gc -hotcoldsplit -loop-vectorize -strip-dead-prototypes -lowerinvoke -slp-vectorizer -lcssa -name-anon-globals -instnamer -guard-widening -reassociate -partial-inliner -rpo-functionattrs -barrier -inferattrs -strip -post-inline-ee-instrument -coro-early -ipconstprop -barrier -loop-reroll -instcombine -barrier -tailcallelim -ipconstprop -loop-data-prefetch -mem2reg -div-rem-pairs -lower-matrix-intrinsics -slp-vectorizer -mldst-motion -gvn-hoist -name-anon-globals -loop-fusion -dse -simple-loop-unswitch -lower-matrix-intrinsics -coro-elide -gvn -lower-widenable-condition -load-store-vectorizer -slp-vectorizer -tailcallelim -inferattrs -loop-unswitch -argpromotion -coro-early -loop-sink -reassociate -early-cse-memssa -loop-sink -add-discriminators -dse -ee-instrument -rewrite-statepoints-for-gc -strip -mergeicmps -early-cse-memssa -reassociate -loop-rotate -mergefunc -indvars -instnamer -elim-avail-extern -ipconstprop -tailcallelim -gvn-hoist -canonicalize-aliases -cross-dso-cfi -infer-address-spaces -constprop -nary-reassociate -aggressive-instcombine -mldst-motion -adce -instsimplify -sancov -loop-rotate -sancov -loop-vectorize -loop-unroll-and-jam -constmerge -partially-inline-libcalls -slsr -functionattrs -cross-dso-cfi -dse -loop-unswitch -loop-predication -separate-const-offset-from-gep -loop-rotate -coro-early -redundant-dbg-inst-elim -hotcoldsplit -simplifycfg -elim-avail-extern -lower-constant-intrinsics -lowerinvoke -argpromotion -slsr -loop-versioning-licm -redundant-dbg-inst-elim -nary-reassociate -loop-sink -lowerinvoke -ipconstprop -aggressive-instcombine -loop-reduce -post-inline-ee-instrument -indvars -add-discriminators -instcombine -indvars -instnamer -loop-interchange -loop-load-elim -globaldce -canonicalize-aliases -called-value-propagation -loop-unroll-and-jam -strip -div-rem-pairs -strip -jump-threading -hotcoldsplit -globalopt -inline -elim-avail-extern -cross-dso-cfi -early-cse-memssa -tailcallelim -coro-early -called-value-propagation -ee-instrument -instnamer -forceattrs -globaldce -adce -strip-debug-declare -mergefunc input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0569974554707382,62.10315656661987,opt -flattencfg -prune-eh -loweratomic -mem2reg -loop-distribute -instnamer -mergeicmps -argpromotion -loop-load-elim -lower-matrix-intrinsics -div-rem-pairs -loop-unroll-and-jam -instsimplify -constmerge -partial-inliner -coro-early -lower-expect -tailcallelim -globalopt -hotcoldsplit -instcombine -lower-expect -pgo-memop-opt -loop-sink -lowerswitch -guard-widening -indvars -inline -slp-vectorizer -licm -coro-elide -gvn-hoist -loop-interchange -lower-widenable-condition -loop-deletion -post-inline-ee-instrument -globalsplit -coro-elide -correlated-propagation -libcalls-shrinkwrap -coro-split -loop-deletion -load-store-vectorizer -nary-reassociate -mergereturn -float2int -float2int -dse -strip-debug-declare -loop-reroll -infer-address-spaces -die -loop-reduce -early-cse-memssa -constmerge -loop-versioning-licm -sink -div-rem-pairs -canonicalize-aliases -strip-nondebug -loop-versioning-licm -ee-instrument -loop-load-elim -forceattrs -irce -loop-idiom -lower-matrix-intrinsics -simplifycfg -cross-dso-cfi -scalarizer -lcssa -load-store-vectorizer -simplifycfg -forceattrs -lower-constant-intrinsics -loop-rotate -rewrite-statepoints-for-gc -loop-simplify -hotcoldsplit -deadargelim -guard-widening -lcssa -load-store-vectorizer -guard-widening -instnamer -licm -div-rem-pairs -slsr -newgvn -simple-loop-unswitch -gvn-hoist -elim-avail-extern -hotcoldsplit -slp-vectorizer -loop-vectorize -called-value-propagation -tailcallelim -partially-inline-libcalls -post-inline-ee-instrument -strip -post-inline-ee-instrument -aggressive-instcombine -dce -lowerinvoke -sink -loop-versioning-licm -loweratomic -ipsccp -attributor -lower-widenable-condition -lower-expect -dse -aggressive-instcombine -rewrite-statepoints-for-gc -lcssa -loop-fusion -loop-distribute -instsimplify -infer-address-spaces -lower-constant-intrinsics -canonicalize-aliases -instsimplify -flattencfg -hotcoldsplit -forceattrs -loop-data-prefetch -slp-vectorizer -dce -separate-const-offset-from-gep -globalopt -loop-versioning -reassociate -dce -elim-avail-extern -loweratomic -inferattrs -rewrite-statepoints-for-gc -lower-guard-intrinsic -lower-guard-intrinsic -constmerge -rewrite-statepoints-for-gc -pgo-memop-opt -coro-cleanup -lowerinvoke -memcpyopt -mergefunc -loop-predication -consthoist -libcalls-shrinkwrap -loop-simplify -early-cse-memssa -licm -sink -ipsccp -instcombine -rewrite-statepoints-for-gc -sink -forceattrs -loop-guard-widening -loop-sink -slsr -consthoist -partially-inline-libcalls -simple-loop-unswitch -separate-const-offset-from-gep -instnamer -loop-predication -libcalls-shrinkwrap -indvars -consthoist -nary-reassociate -ee-instrument -strip-nondebug -strip-dead-prototypes -add-discriminators -loop-sink -loop-load-elim -pgo-memop-opt -called-value-propagation -hotcoldsplit -early-cse-memssa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0620865139949112,62.0668671131134,opt -mem2reg -mergefunc -reassociate -dse -loop-sink -infer-address-spaces -libcalls-shrinkwrap -instsimplify -simple-loop-unswitch -infer-address-spaces -tailcallelim -loop-guard-widening -deadargelim -callsite-splitting -pgo-memop-opt -sink -break-crit-edges -canonicalize-aliases -loop-instsimplify -strip -loop-predication -sccp -mldst-motion -div-rem-pairs -coro-cleanup -loop-distribute -loop-idiom -gvn -globalopt -attributor -loop-unroll-and-jam -loop-interchange -early-cse-memssa -break-crit-edges -loop-deletion -loop-guard-widening -loop-unroll-and-jam -lower-guard-intrinsic -sroa -loop-instsimplify -instnamer -memcpyopt -scalarizer -simple-loop-unswitch -callsite-splitting -sancov -argpromotion -add-discriminators -bdce -attributor -loop-unroll -loop-unroll -inferattrs -coro-cleanup -strip-dead-prototypes -instsimplify -loop-idiom -loop-fusion -always-inline -loweratomic -globalopt -loweratomic -float2int -loop-idiom -insert-gcov-profiling -gvn -lower-constant-intrinsics -callsite-splitting -coro-cleanup -lower-matrix-intrinsics -attributor -globalopt -loop-reroll -name-anon-globals -loop-reduce -sroa -constmerge -loop-unswitch -redundant-dbg-inst-elim -gvn -loop-simplify -aggressive-instcombine -flattencfg -inject-tli-mappings -cross-dso-cfi -simple-loop-unswitch -instcombine -ipsccp -argpromotion -correlated-propagation -sccp -barrier -hotcoldsplit -deadargelim -lower-guard-intrinsic -flattencfg -dse -lower-constant-intrinsics -elim-avail-extern -globaldce -aggressive-instcombine -reassociate -mldst-motion -instnamer -slsr -simplifycfg -sroa -lower-expect -argpromotion -dse -insert-gcov-profiling -loop-simplify -redundant-dbg-inst-elim -canonicalize-aliases -constmerge -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -adce -pgo-memop-opt -strip -instcombine -ipconstprop -add-discriminators -aggressive-instcombine -partial-inliner -memcpyopt -canonicalize-aliases -constmerge -instnamer -loop-versioning -partially-inline-libcalls -sccp -inferattrs -gvn-hoist -loop-versioning-licm -sink -constprop -coro-elide -barrier -cross-dso-cfi -loop-idiom -speculative-execution -loop-deletion -lowerinvoke -loweratomic -gvn-hoist -coro-early -rewrite-statepoints-for-gc -loop-unswitch -loop-simplifycfg -loop-simplify -ipconstprop -mldst-motion -ipsccp -barrier -infer-address-spaces -ipsccp -sccp -alignment-from-assumptions -loop-load-elim -load-store-vectorizer -simplifycfg -loop-idiom -loop-idiom -irce -inferattrs -loop-vectorize -inject-tli-mappings -libcalls-shrinkwrap -instsimplify -loweratomic -simple-loop-unswitch -loop-reroll -separate-const-offset-from-gep -lower-guard-intrinsic -guard-widening -loop-sink -redundant-dbg-inst-elim -gvn -loop-instsimplify -mergefunc -deadargelim -hotcoldsplit -callsite-splitting -cross-dso-cfi -slp-vectorizer -licm -adce -slp-vectorizer -memcpyopt -sancov -ee-instrument -rewrite-statepoints-for-gc -rewrite-statepoints-for-gc -always-inline -loop-reroll -lcssa -jump-threading -called-value-propagation -loweratomic -lower-guard-intrinsic -lower-guard-intrinsic -lower-expect -libcalls-shrinkwrap -loop-reduce -slsr -argpromotion -loop-idiom -die -loop-reroll -dse -sancov -insert-gcov-profiling -jump-threading -loop-instsimplify -lowerinvoke -barrier -instcombine -loop-deletion -loop-unroll-and-jam -nary-reassociate -rpo-functionattrs -argpromotion -mldst-motion -partially-inline-libcalls -strip-dead-prototypes -strip-nondebug -hotcoldsplit -loop-reroll -loop-simplify -early-cse-memssa -lcssa -loop-reduce -always-inline -mergefunc -gvn -constprop -loop-distribute -gvn -coro-cleanup -loop-fusion -indvars -break-crit-edges -irce -separate-const-offset-from-gep -sccp -reg2mem -slsr -sroa -loop-deletion -barrier -die -newgvn -die -libcalls-shrinkwrap -partially-inline-libcalls -loop-simplify -loop-unroll-and-jam -called-value-propagation -newgvn -mldst-motion -jump-threading -redundant-dbg-inst-elim -newgvn -mergeicmps -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0641221374045802,62.110954999923706,opt -constmerge -name-anon-globals -cross-dso-cfi -elim-avail-extern -mergeicmps -lower-constant-intrinsics -mergeicmps -loop-versioning-licm -mem2reg -rpo-functionattrs -called-value-propagation -attributor -constmerge -instcombine -ipconstprop -loop-unroll-and-jam -coro-elide -coro-split -loop-unswitch -jump-threading -gvn -mldst-motion -loop-fusion -cross-dso-cfi -post-inline-ee-instrument -licm -indvars -early-cse-memssa -strip-debug-declare -strip -load-store-vectorizer -lower-guard-intrinsic -mergereturn -loop-deletion -slsr -indvars -ipsccp -loop-reroll -constprop -loop-predication -coro-early -bdce -loop-fusion -consthoist -globalopt -attributor -instcombine -name-anon-globals -scalarizer -newgvn -loop-data-prefetch -flattencfg -lcssa -rpo-functionattrs -instcombine -instcombine -strip-dead-prototypes -infer-address-spaces -indvars -sccp -coro-split -pgo-memop-opt -hotcoldsplit -coro-cleanup -argpromotion -simplifycfg -infer-address-spaces -irce -float2int -callsite-splitting -aggressive-instcombine -alignment-from-assumptions -mem2reg -consthoist -dse -loop-predication -load-store-vectorizer -always-inline -lower-constant-intrinsics -loop-guard-widening -mergereturn -mldst-motion -post-inline-ee-instrument -simplifycfg -inferattrs -strip -loop-sink -loop-predication -reg2mem -slsr -loop-data-prefetch -gvn-hoist -loop-deletion -gvn-hoist -coro-elide -indvars -loop-versioning-licm -flattencfg -name-anon-globals -flattencfg -simple-loop-unswitch -coro-early -float2int -coro-elide -aggressive-instcombine -reg2mem -prune-eh -ipsccp -flattencfg -loop-simplifycfg -loop-fusion -guard-widening -name-anon-globals -post-inline-ee-instrument -early-cse-memssa -break-crit-edges -globalsplit -dse -name-anon-globals -lower-matrix-intrinsics -loop-vectorize -prune-eh -nary-reassociate -lowerinvoke -loop-deletion -loop-load-elim -loop-predication -loweratomic -simplifycfg -strip-debug-declare -name-anon-globals -lowerinvoke -loweratomic -inline -loop-unswitch -slsr -newgvn -reg2mem -lower-constant-intrinsics -loop-versioning -licm -hotcoldsplit -alignment-from-assumptions -constprop -dse -functionattrs -loop-vectorize -slsr -called-value-propagation -loop-versioning -canonicalize-aliases -redundant-dbg-inst-elim -dce -consthoist -sink -add-discriminators -mergefunc -consthoist -rpo-functionattrs -always-inline -slsr -lower-widenable-condition -rpo-functionattrs -instnamer -loop-fusion -loop-idiom -barrier -bdce -loop-predication -elim-avail-extern -memcpyopt -gvn -strip -loop-versioning -separate-const-offset-from-gep -instsimplify -loop-data-prefetch -dse -loop-simplifycfg -separate-const-offset-from-gep -strip-debug-declare -reassociate -attributor -slp-vectorizer -gvn-hoist -instcombine -loop-reduce -loop-idiom -ee-instrument -inline -lower-guard-intrinsic -reassociate -instcombine -loop-vectorize -add-discriminators -elim-avail-extern -lowerinvoke -loop-rotate -sroa -reassociate -adce -coro-elide -consthoist -strip-nondebug -break-crit-edges -loop-load-elim -memcpyopt -strip -loop-fusion -loop-versioning -strip-debug-declare -adce -loop-simplify -name-anon-globals -loop-simplifycfg -newgvn -cross-dso-cfi -loop-versioning -globalopt -add-discriminators -deadargelim -load-store-vectorizer -forceattrs -cross-dso-cfi -lower-matrix-intrinsics -ipsccp -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0671755725190841,62.24016213417053,opt -constprop -lower-constant-intrinsics -lcssa -libcalls-shrinkwrap -deadargelim -always-inline -inferattrs -loop-unroll-and-jam -loop-fusion -prune-eh -loop-instsimplify -gvn -rewrite-statepoints-for-gc -strip-debug-declare -ee-instrument -loop-instsimplify -instcombine -mergefunc -name-anon-globals -reassociate -loop-unroll-and-jam -argpromotion -prune-eh -simple-loop-unswitch -instnamer -mem2reg -strip-dead-prototypes -coro-split -partially-inline-libcalls -reassociate -insert-gcov-profiling -loop-unswitch -break-crit-edges -flattencfg -aggressive-instcombine -barrier -slp-vectorizer -irce -libcalls-shrinkwrap -reassociate -name-anon-globals -inferattrs -canonicalize-aliases -simple-loop-unswitch -cross-dso-cfi -slp-vectorizer -loop-unroll-and-jam -add-discriminators -newgvn -loop-fusion -post-inline-ee-instrument -argpromotion -ipconstprop -slsr -mem2reg -irce -strip-dead-prototypes -globalsplit -loop-unroll -scalarizer -pgo-memop-opt -mem2reg -loop-simplifycfg -mergereturn -load-store-vectorizer -irce -libcalls-shrinkwrap -loop-instsimplify -simplifycfg -ipconstprop -partial-inliner -loop-guard-widening -canonicalize-aliases -aggressive-instcombine -inferattrs -mergefunc -gvn-hoist -consthoist -loop-reroll -sink -tailcallelim -float2int -loop-deletion -gvn -gvn -lcssa -post-inline-ee-instrument -load-store-vectorizer -loop-load-elim -loop-deletion -gvn-hoist -slsr -loop-simplify -aggressive-instcombine -memcpyopt -nary-reassociate -loop-unroll-and-jam -mergefunc -licm -alignment-from-assumptions -redundant-dbg-inst-elim -barrier -libcalls-shrinkwrap -sccp -mergeicmps -dce -prune-eh -callsite-splitting -ipconstprop -coro-split -partially-inline-libcalls -globalopt -div-rem-pairs -mergereturn -loop-unswitch -inferattrs -reassociate -barrier -licm -adce -infer-address-spaces -simplifycfg -ipsccp -libcalls-shrinkwrap -rewrite-statepoints-for-gc -loop-load-elim -loop-instsimplify -slsr -sccp -dce -ee-instrument -lower-widenable-condition -loop-load-elim -memcpyopt -loop-vectorize -alignment-from-assumptions -ipsccp -break-crit-edges -constprop -redundant-dbg-inst-elim -loop-unswitch -mldst-motion -slp-vectorizer -instsimplify -barrier -load-store-vectorizer -loop-sink -loop-instsimplify -strip-nondebug -loop-unroll-and-jam -loop-instsimplify -partial-inliner -strip -flattencfg -slsr -div-rem-pairs -partially-inline-libcalls -mergeicmps -loop-reroll -bdce -alignment-from-assumptions -simplifycfg -mem2reg -mem2reg -adce -cross-dso-cfi -tailcallelim -canonicalize-aliases -float2int -licm -globalsplit -mergeicmps -correlated-propagation -globaldce -lcssa -instcombine -globaldce -called-value-propagation -irce -strip-nondebug -instsimplify -early-cse-memssa -jump-threading input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0687022900763359,62.245200872421265,opt -loop-simplifycfg -simple-loop-unswitch -functionattrs -break-crit-edges -rpo-functionattrs -loop-fusion -dce -consthoist -die -loop-interchange -strip -licm -strip -lower-constant-intrinsics -functionattrs -lower-constant-intrinsics -speculative-execution -pgo-memop-opt -dce -strip -sroa -slp-vectorizer -early-cse-memssa -memcpyopt -instcombine -loop-interchange -loop-deletion -globalopt -loop-unroll -loop-versioning -instnamer -functionattrs -rewrite-statepoints-for-gc -loop-instsimplify -coro-split -sroa -loop-deletion -coro-early -instsimplify -simple-loop-unswitch -name-anon-globals -flattencfg -post-inline-ee-instrument -inline -bdce -load-store-vectorizer -load-store-vectorizer -loop-versioning -lower-constant-intrinsics -consthoist -load-store-vectorizer -instnamer -speculative-execution -loop-fusion -irce -irce -flattencfg -lower-guard-intrinsic -sroa -cross-dso-cfi -guard-widening -redundant-dbg-inst-elim -correlated-propagation -gvn-hoist -prune-eh -loop-data-prefetch -always-inline -irce -coro-early -newgvn -strip-dead-prototypes -coro-cleanup -infer-address-spaces -irce -adce -loop-simplify -globalsplit -dse -tailcallelim -loop-idiom -slp-vectorizer -tailcallelim -partial-inliner -mldst-motion -libcalls-shrinkwrap -load-store-vectorizer -strip-nondebug -gvn -loop-unswitch -always-inline -jump-threading -loweratomic -loop-sink -gvn-hoist -globalopt -flattencfg -simple-loop-unswitch -mldst-motion -mergefunc -globalsplit -deadargelim -loweratomic -loop-idiom -globaldce -separate-const-offset-from-gep -mergefunc -lcssa -add-discriminators -coro-cleanup -speculative-execution -infer-address-spaces -gvn -canonicalize-aliases -bdce -callsite-splitting -coro-elide -tailcallelim -lower-constant-intrinsics -loop-versioning -loop-sink -irce -argpromotion -loop-data-prefetch -attributor -simple-loop-unswitch -alignment-from-assumptions -barrier -early-cse-memssa -loop-idiom -simple-loop-unswitch -slp-vectorizer -loop-interchange -coro-early -loop-versioning -loop-simplify -rewrite-statepoints-for-gc -globalopt -alignment-from-assumptions -bdce -barrier -post-inline-ee-instrument -lowerinvoke -pgo-memop-opt -always-inline -newgvn -loweratomic -argpromotion -irce -sink -gvn -attributor -coro-cleanup -speculative-execution -lowerinvoke -aggressive-instcombine -loop-sink -early-cse-memssa -indvars -always-inline -add-discriminators -loop-unswitch -irce -attributor -early-cse-memssa -instcombine -bdce -die -loop-fusion -loop-distribute -ipsccp -lower-constant-intrinsics -slp-vectorizer input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.068702290076336,62.09459686279297,opt -strip-dead-prototypes -post-inline-ee-instrument -lowerinvoke -loop-deletion -lower-constant-intrinsics -ipconstprop -attributor -float2int -partially-inline-libcalls -elim-avail-extern -coro-cleanup -rewrite-statepoints-for-gc -prune-eh -lower-widenable-condition -div-rem-pairs -coro-elide -rpo-functionattrs -float2int -lower-guard-intrinsic -mergereturn -callsite-splitting -loop-predication -ipconstprop -globalsplit -lower-widenable-condition -barrier -partially-inline-libcalls -lower-expect -lower-expect -dce -ipsccp -lowerinvoke -inferattrs -bdce -loop-vectorize -add-discriminators -consthoist -argpromotion -lower-constant-intrinsics -mem2reg -dce -loop-instsimplify -constprop -lower-widenable-condition -reassociate -speculative-execution -rpo-functionattrs -libcalls-shrinkwrap -lower-guard-intrinsic -called-value-propagation -slsr -globalsplit -instcombine -mergeicmps -loop-reroll -loweratomic -hotcoldsplit -globalopt -globalsplit -loop-guard-widening -loop-versioning-licm -loop-sink -loop-versioning-licm -gvn -consthoist -canonicalize-aliases -lowerswitch -libcalls-shrinkwrap -irce -coro-cleanup -loop-versioning-licm -inline -inferattrs -irce -libcalls-shrinkwrap -coro-elide -loop-guard-widening -elim-avail-extern -alignment-from-assumptions -load-store-vectorizer -load-store-vectorizer -constprop -functionattrs -loop-idiom -loop-deletion -float2int -correlated-propagation -rpo-functionattrs -constprop -dce -coro-elide -load-store-vectorizer -lower-matrix-intrinsics -separate-const-offset-from-gep -aggressive-instcombine -tailcallelim -loweratomic -load-store-vectorizer -coro-early -argpromotion -alignment-from-assumptions -bdce -inferattrs -adce -sancov -globaldce -elim-avail-extern -loop-versioning-licm -adce -dce -reg2mem -name-anon-globals -load-store-vectorizer -loop-distribute -hotcoldsplit -always-inline -instsimplify -hotcoldsplit -loop-instsimplify -instsimplify -loop-interchange -loop-load-elim -newgvn -add-discriminators -jump-threading -loweratomic -prune-eh -tailcallelim -loop-load-elim -correlated-propagation -adce -tailcallelim -sccp -constprop -early-cse-memssa -prune-eh -alignment-from-assumptions -ipconstprop -loop-fusion -float2int -prune-eh -newgvn -gvn -early-cse-memssa -loop-versioning -loop-reroll -loop-vectorize -always-inline -redundant-dbg-inst-elim -newgvn -called-value-propagation -slp-vectorizer -alignment-from-assumptions -argpromotion -loop-data-prefetch -instcombine -redundant-dbg-inst-elim -break-crit-edges -jump-threading -loop-simplify -reassociate -sroa -simplifycfg -forceattrs -div-rem-pairs -loop-distribute -ee-instrument -gvn-hoist -prune-eh -tailcallelim -mergefunc -mergeicmps -instnamer -gvn input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0732824427480923,62.259055852890015,opt -forceattrs -jump-threading -forceattrs -dse -simple-loop-unswitch -consthoist -loop-interchange -alignment-from-assumptions -flattencfg -instsimplify -mergefunc -argpromotion -strip -flattencfg -lowerinvoke -simple-loop-unswitch -loop-simplifycfg -coro-elide -load-store-vectorizer -dse -loop-versioning-licm -pgo-memop-opt -cross-dso-cfi -slsr -nary-reassociate -coro-early -coro-elide -instsimplify -loop-vectorize -die -functionattrs -lower-constant-intrinsics -mldst-motion -consthoist -cross-dso-cfi -slsr -lcssa -float2int -globaldce -simplifycfg -licm -simple-loop-unswitch -post-inline-ee-instrument -loweratomic -alignment-from-assumptions -simplifycfg -strip-dead-prototypes -deadargelim -mldst-motion -coro-cleanup -instcombine -add-discriminators -ipsccp -loop-reroll -newgvn -canonicalize-aliases -ee-instrument -loop-versioning-licm -constprop -coro-cleanup -loop-reroll -always-inline -mem2reg -rpo-functionattrs -gvn -partial-inliner -strip -always-inline -sroa -prune-eh -loop-unswitch -slsr -lower-constant-intrinsics -sroa -irce -constprop -dse -slsr -lower-widenable-condition -loop-unroll-and-jam -lowerinvoke -speculative-execution -mldst-motion -loop-unroll -irce -early-cse-memssa -coro-split -argpromotion -loop-load-elim -mergeicmps -mem2reg -loop-interchange -separate-const-offset-from-gep -instcombine -forceattrs -globalopt -loop-idiom -globaldce -mem2reg -newgvn -called-value-propagation -strip-dead-prototypes -strip -name-anon-globals -newgvn -callsite-splitting -speculative-execution -ipsccp -coro-elide -barrier -slp-vectorizer -cross-dso-cfi -loop-sink -die -instcombine -hotcoldsplit -memcpyopt -inline -strip-nondebug -loop-versioning-licm -gvn-hoist -memcpyopt -inline -tailcallelim -loop-instsimplify -barrier -mergefunc -mergeicmps -loop-instsimplify -load-store-vectorizer -inferattrs -constmerge -div-rem-pairs -gvn-hoist -prune-eh -deadargelim -hotcoldsplit -memcpyopt -tailcallelim -loop-sink -loop-fusion -loop-deletion -name-anon-globals -coro-elide -newgvn -ipsccp -strip-dead-prototypes -die -redundant-dbg-inst-elim -ipconstprop -instcombine -called-value-propagation -coro-elide -slp-vectorizer -inferattrs -aggressive-instcombine -float2int -reassociate -newgvn -early-cse-memssa -loop-load-elim -slsr -dce -gvn-hoist -irce -jump-threading -rpo-functionattrs -nary-reassociate -loop-versioning -lowerinvoke -elim-avail-extern -loop-load-elim -bdce -memcpyopt -flattencfg -instcombine -coro-early -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/blowfish,1.0793893129770993,61.71475172042847,opt -slp-vectorizer -loop-reduce -post-inline-ee-instrument -cross-dso-cfi -elim-avail-extern -sroa -callsite-splitting -div-rem-pairs -constmerge -mergeicmps -lcssa -insert-gcov-profiling -mergefunc -tailcallelim -strip-debug-declare -loop-versioning-licm -add-discriminators -loop-distribute -strip -insert-gcov-profiling -prune-eh -coro-split -instcombine -coro-early -loop-interchange -jump-threading -lowerinvoke -prune-eh -loop-unswitch -attributor -called-value-propagation -lower-expect -mem2reg -speculative-execution -partially-inline-libcalls -dce -separate-const-offset-from-gep -jump-threading -ipsccp -sink -flattencfg -mergeicmps -ee-instrument -sink -consthoist -indvars -loop-vectorize -load-store-vectorizer -correlated-propagation -slp-vectorizer -loop-versioning-licm -guard-widening -simplifycfg -consthoist -aggressive-instcombine -called-value-propagation -barrier -loop-idiom -coro-early -ee-instrument -add-discriminators -mldst-motion -forceattrs -newgvn -always-inline -instsimplify -simplifycfg -adce -loop-unswitch -reassociate -strip-debug-declare -irce -div-rem-pairs -deadargelim -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1545071082643337,67.68773531913757,opt -loop-reduce -adce -coro-early -indvars -called-value-propagation -strip-debug-declare -pgo-memop-opt -licm -lcssa -bdce -loop-guard-widening -attributor -mergereturn -loop-idiom -loop-sink -forceattrs -instsimplify -strip -sancov -loop-vectorize -ipsccp -mergefunc -lower-matrix-intrinsics -sroa -loop-versioning-licm -lcssa -elim-avail-extern -lcssa -speculative-execution -bdce -hotcoldsplit -mldst-motion -called-value-propagation -globaldce -newgvn -load-store-vectorizer -break-crit-edges -sink -loop-vectorize -redundant-dbg-inst-elim -reg2mem -aggressive-instcombine -cross-dso-cfi -globalopt -strip-debug-declare -canonicalize-aliases -coro-elide -reassociate -loop-guard-widening -loop-predication -flattencfg -nary-reassociate -loop-fusion -memcpyopt -loop-instsimplify -coro-cleanup -mem2reg -ipsccp -simple-loop-unswitch -loop-data-prefetch -licm -globalopt -coro-early -slp-vectorizer -redundant-dbg-inst-elim -loop-predication -loop-unroll-and-jam -coro-cleanup -loop-fusion -pgo-memop-opt -simplifycfg -loop-unswitch -dce -aggressive-instcombine -simplifycfg -always-inline -loop-fusion -instcombine input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.160287455085143,322.17351841926575,opt -flattencfg -loweratomic -simplifycfg -constmerge -loop-versioning -reg2mem -globalsplit -mem2reg -loop-vectorize -canonicalize-aliases -mergeicmps -indvars -instnamer -correlated-propagation -loop-guard-widening -correlated-propagation -instcombine -alignment-from-assumptions -barrier -newgvn -strip-nondebug -reassociate -loop-fusion -simplifycfg -alignment-from-assumptions -ipsccp -instcombine input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.161927823777535,69.08962750434875,opt -loweratomic -lcssa -dce -called-value-propagation -loop-guard-widening -inferattrs -elim-avail-extern -consthoist -coro-early -globalsplit -add-discriminators -loop-unswitch -coro-cleanup -lowerinvoke -instnamer -aggressive-instcombine -simplifycfg -lower-matrix-intrinsics -called-value-propagation -globalopt -inject-tli-mappings -reg2mem -callsite-splitting -div-rem-pairs -irce -die -lower-guard-intrinsic -rewrite-statepoints-for-gc -nary-reassociate -functionattrs -ee-instrument -loop-data-prefetch -always-inline -elim-avail-extern -separate-const-offset-from-gep -globaldce -always-inline -called-value-propagation -prune-eh -licm -loop-unroll-and-jam -lcssa -mergeicmps -loop-reroll -mergeicmps -div-rem-pairs -elim-avail-extern -lcssa -dse -break-crit-edges -coro-cleanup -inject-tli-mappings -instsimplify -loop-simplifycfg -div-rem-pairs -functionattrs -strip -forceattrs -ipconstprop -loop-versioning-licm -mldst-motion -simple-loop-unswitch -loop-guard-widening -memcpyopt -sroa -functionattrs -insert-gcov-profiling -mldst-motion -loop-idiom -instnamer -add-discriminators -globalsplit -called-value-propagation -lower-constant-intrinsics -globaldce -slsr -redundant-dbg-inst-elim -coro-split -loop-load-elim -partially-inline-libcalls -globaldce -called-value-propagation -jump-threading -argpromotion -loop-fusion -mergereturn -nary-reassociate -constprop -early-cse-memssa -irce -sroa -canonicalize-aliases -loop-idiom -strip-nondebug -reassociate -inferattrs -instcombine -cross-dso-cfi -coro-split -partially-inline-libcalls -partially-inline-libcalls -licm -lowerswitch -aggressive-instcombine -loop-unroll-and-jam -lowerinvoke -bdce -lower-widenable-condition -lower-matrix-intrinsics -redundant-dbg-inst-elim -post-inline-ee-instrument -ee-instrument -coro-split -lower-matrix-intrinsics -functionattrs -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1643493204186848,67.1374294757843,opt -aggressive-instcombine -lowerinvoke -memcpyopt -loop-sink -always-inline -lower-matrix-intrinsics -gvn-hoist -slsr -separate-const-offset-from-gep -speculative-execution -sroa -newgvn -lcssa -forceattrs -coro-split -hotcoldsplit -dse -memcpyopt -lowerinvoke -dce -reassociate -functionattrs -forceattrs -loop-unroll-and-jam -loop-interchange -coro-split -lower-widenable-condition -loop-vectorize -always-inline -load-store-vectorizer -slsr -post-inline-ee-instrument -partially-inline-libcalls -irce -instcombine -memcpyopt -consthoist -loop-load-elim -pgo-memop-opt -barrier -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1674738322137166,69.87810277938843,opt -loop-versioning -loop-simplifycfg -loop-fusion -strip-debug-declare -ipsccp -simple-loop-unswitch -strip-dead-prototypes -gvn-hoist -simplifycfg -loop-sink -div-rem-pairs -prune-eh -post-inline-ee-instrument -loop-guard-widening -sink -speculative-execution -ee-instrument -lcssa -mldst-motion -lower-expect -sroa -dse -tailcallelim -loop-unroll-and-jam -flattencfg -loop-distribute -globalsplit -loop-reroll -loop-reroll -gvn -lower-constant-intrinsics -loop-predication -mergereturn -coro-split -loop-unswitch -simple-loop-unswitch -libcalls-shrinkwrap -sccp -loop-interchange -lowerinvoke -constprop -coro-elide -pgo-memop-opt -name-anon-globals -forceattrs -break-crit-edges -separate-const-offset-from-gep -lower-expect -prune-eh -bdce -attributor -scalarizer -loop-reroll -loweratomic -rewrite-statepoints-for-gc -cross-dso-cfi -scalarizer -nary-reassociate -jump-threading -insert-gcov-profiling -flattencfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1680206217778468,68.25625967979431,opt -flattencfg -mldst-motion -newgvn -attributor -canonicalize-aliases -coro-elide -canonicalize-aliases -ipconstprop -licm -loop-instsimplify -loop-load-elim -attributor -instsimplify -loop-distribute -lower-widenable-condition -strip-dead-prototypes -elim-avail-extern -loop-versioning-licm -mergefunc -loop-unroll -callsite-splitting -irce -flattencfg -lowerswitch -load-store-vectorizer -globalsplit -reassociate -lowerswitch -lcssa -lower-widenable-condition -strip -gvn-hoist -strip -guard-widening -tailcallelim -instnamer -partially-inline-libcalls -strip-debug-declare -cross-dso-cfi -jump-threading -irce -jump-threading -prune-eh -reassociate -load-store-vectorizer -loop-reroll -loop-distribute -loop-versioning -newgvn -loop-simplify -mem2reg -alignment-from-assumptions -mergeicmps -lower-guard-intrinsic -functionattrs -simplifycfg -barrier -coro-early -constprop -globalsplit -loop-versioning -loop-guard-widening -lowerinvoke -libcalls-shrinkwrap -inject-tli-mappings -consthoist -ee-instrument -slp-vectorizer -nary-reassociate -lower-guard-intrinsic -speculative-execution -name-anon-globals -adce -callsite-splitting -dse -instcombine -sancov -lower-widenable-condition -gvn -simplifycfg -memcpyopt input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1706764568036248,68.34867286682129,opt -mergeicmps -newgvn -loop-versioning-licm -dce -partial-inliner -load-store-vectorizer -mem2reg -functionattrs -sccp -functionattrs -strip-debug-declare -dce -mldst-motion -mergeicmps -float2int -infer-address-spaces -jump-threading -mem2reg -break-crit-edges -constprop -always-inline -div-rem-pairs -mergereturn -cross-dso-cfi -gvn -coro-elide -loop-interchange -float2int -loop-idiom -die -dce -instcombine -loop-vectorize -load-store-vectorizer -simplifycfg -attributor -sancov -nary-reassociate -guard-widening -loop-deletion -callsite-splitting -instnamer -coro-early -nary-reassociate -coro-cleanup -newgvn -loop-unroll-and-jam -simplifycfg -simplifycfg -strip -lcssa -jump-threading -lower-guard-intrinsic -slsr -redundant-dbg-inst-elim -correlated-propagation -slsr -load-store-vectorizer -loop-simplify -instnamer -globaldce -adce -redundant-dbg-inst-elim -early-cse-memssa -slp-vectorizer -slsr -irce -loop-data-prefetch -nary-reassociate -deadargelim -licm -separate-const-offset-from-gep -strip-nondebug -prune-eh -loop-deletion -mldst-motion -gvn -alignment-from-assumptions -ipsccp -jump-threading input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.172473051085768,70.48168897628784,opt -mergefunc -scalarizer -deadargelim -alignment-from-assumptions -loweratomic -loop-distribute -lower-matrix-intrinsics -nary-reassociate -loop-versioning -slp-vectorizer -name-anon-globals -constprop -scalarizer -deadargelim -gvn -strip-dead-prototypes -float2int -break-crit-edges -lower-constant-intrinsics -ee-instrument -add-discriminators -globalopt -slp-vectorizer -constmerge -lcssa -cross-dso-cfi -alignment-from-assumptions -early-cse-memssa -dce -loop-unroll-and-jam -cross-dso-cfi -simple-loop-unswitch -guard-widening -loop-sink -loop-fusion -coro-early -guard-widening -scalarizer -pgo-memop-opt -loop-interchange -mergereturn -mergefunc -break-crit-edges -aggressive-instcombine -strip-dead-prototypes -div-rem-pairs -mergereturn -name-anon-globals -always-inline -loweratomic -loop-data-prefetch -newgvn -coro-elide -strip-nondebug -globalopt -lower-matrix-intrinsics -pgo-memop-opt -die -slp-vectorizer -loop-sink -barrier -elim-avail-extern -attributor -loop-load-elim -slsr -ee-instrument -globaldce -early-cse-memssa -pgo-memop-opt -gvn-hoist -loweratomic -rewrite-statepoints-for-gc -canonicalize-aliases -partially-inline-libcalls -instnamer -simplifycfg -barrier -reassociate -insert-gcov-profiling -libcalls-shrinkwrap -loop-vectorize -add-discriminators -correlated-propagation -prune-eh -sroa -redundant-dbg-inst-elim -add-discriminators -simple-loop-unswitch -separate-const-offset-from-gep -strip-nondebug -nary-reassociate -globalsplit -name-anon-globals -strip-debug-declare -loop-deletion -loop-predication -loop-load-elim -called-value-propagation -lower-widenable-condition -loop-distribute -alignment-from-assumptions -coro-early -simplifycfg -div-rem-pairs -newgvn -simple-loop-unswitch -ee-instrument -loop-reroll -strip -aggressive-instcombine -flattencfg -called-value-propagation -inferattrs -tailcallelim -gvn -mergeicmps -strip-debug-declare -slp-vectorizer -loop-simplifycfg -lower-constant-intrinsics -functionattrs -instcombine -gvn-hoist -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1809092329323547,365.934752702713,opt -pgo-memop-opt -loop-versioning-licm -inferattrs -functionattrs -guard-widening -functionattrs -tailcallelim -lower-matrix-intrinsics -barrier -rewrite-statepoints-for-gc -lcssa -inject-tli-mappings -lower-widenable-condition -mem2reg -scalarizer -mergereturn -partially-inline-libcalls -globalopt -dse -break-crit-edges -alignment-from-assumptions -bdce -loop-sink -hotcoldsplit -alignment-from-assumptions -flattencfg -partial-inliner -adce -float2int -callsite-splitting -div-rem-pairs -gvn-hoist -forceattrs -elim-avail-extern -infer-address-spaces -loop-versioning -newgvn -strip-nondebug -flattencfg -mem2reg -loop-load-elim -instcombine -globaldce -inferattrs -loop-distribute -mergereturn -constmerge -consthoist -dse -prune-eh -rpo-functionattrs -scalarizer -load-store-vectorizer -flattencfg -loop-interchange -ipconstprop -canonicalize-aliases -attributor -lower-matrix-intrinsics -mldst-motion -inferattrs -always-inline -mem2reg -loop-instsimplify -sccp -memcpyopt -strip-nondebug -nary-reassociate -lower-constant-intrinsics -die -mergereturn -infer-address-spaces -loop-versioning-licm -called-value-propagation -early-cse-memssa -lower-guard-intrinsic -ipsccp -sink -early-cse-memssa -strip -loop-idiom -instcombine -loop-vectorize -lowerinvoke -callsite-splitting -ipconstprop -libcalls-shrinkwrap -die -loop-interchange -ipconstprop -add-discriminators -alignment-from-assumptions -indvars -lower-widenable-condition -dce -simplifycfg -guard-widening -argpromotion -dce -ipsccp -dse -early-cse-memssa -float2int -newgvn input.bc -o output.bc -benchmark://cBench-v1/bzip2,1.1948914232151224,68.35258197784424,opt -mem2reg -globaldce -loop-unroll-and-jam -correlated-propagation -scalarizer -rpo-functionattrs -licm -flattencfg -loweratomic -libcalls-shrinkwrap -irce -tailcallelim -loop-instsimplify -functionattrs -mergeicmps -coro-early -loop-instsimplify -strip-debug-declare -dce -loop-versioning-licm -loop-unswitch -prune-eh -rpo-functionattrs -loop-versioning-licm -constmerge -div-rem-pairs -loop-guard-widening -ipconstprop -prune-eh -libcalls-shrinkwrap -indvars -lower-matrix-intrinsics -globalopt -strip-nondebug -coro-split -loop-instsimplify -lower-matrix-intrinsics -libcalls-shrinkwrap -loop-idiom -loop-data-prefetch -loop-guard-widening -nary-reassociate -flattencfg -loop-sink -cross-dso-cfi -always-inline -indvars -dce -always-inline -guard-widening -memcpyopt -instnamer -lower-guard-intrinsic -loop-versioning-licm -nary-reassociate -deadargelim -irce -post-inline-ee-instrument -lowerinvoke -sroa -coro-cleanup -simplifycfg -newgvn -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.635990619659424,opt -add-discriminators -loop-unroll-and-jam -lower-constant-intrinsics -mldst-motion -globaldce -add-discriminators -slp-vectorizer -mem2reg -mergereturn -infer-address-spaces -die -nary-reassociate -coro-split -redundant-dbg-inst-elim -barrier -loop-distribute -scalarizer -indvars -instcombine -separate-const-offset-from-gep -lower-constant-intrinsics -inferattrs -guard-widening -lower-widenable-condition -mergefunc -die -lcssa -strip -scalarizer -ipsccp -loop-unroll -loop-guard-widening -loop-instsimplify -coro-early -reassociate -tailcallelim -slp-vectorizer -gvn-hoist -flattencfg -gvn-hoist -forceattrs -mergeicmps -correlated-propagation -called-value-propagation -correlated-propagation -strip-debug-declare -pgo-memop-opt -rewrite-statepoints-for-gc -reassociate -gvn -guard-widening -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.67673325538635,opt -mldst-motion -aggressive-instcombine -loop-interchange -loop-idiom -gvn-hoist -simplifycfg -coro-split -speculative-execution -loop-idiom -load-store-vectorizer -separate-const-offset-from-gep -loop-fusion -inject-tli-mappings -coro-early -coro-early -loop-distribute -loop-load-elim -load-store-vectorizer -prune-eh -rpo-functionattrs -partially-inline-libcalls -ipconstprop -reg2mem -loop-versioning-licm -scalarizer -globalopt -loop-fusion -loop-unroll-and-jam -globalopt -adce -memcpyopt -libcalls-shrinkwrap -strip -coro-split -loop-simplifycfg -infer-address-spaces -partial-inliner -partial-inliner -early-cse-memssa -loop-deletion -licm -redundant-dbg-inst-elim -mergeicmps -ee-instrument -inferattrs -functionattrs -instcombine -indvars -sroa -die -newgvn -loop-distribute -scalarizer -pgo-memop-opt -instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.70763802528381,opt -alignment-from-assumptions -mem2reg -dse -irce -loop-simplifycfg -adce -canonicalize-aliases -constprop -dse -newgvn -loop-unroll-and-jam -globalsplit -slp-vectorizer -loop-unroll -globalopt -scalarizer -mergeicmps -indvars -slsr -coro-cleanup -ee-instrument -partial-inliner -forceattrs -mergeicmps -indvars -simple-loop-unswitch -insert-gcov-profiling -simple-loop-unswitch -slsr -jump-threading -loop-sink -argpromotion -irce -lower-constant-intrinsics -loop-versioning -aggressive-instcombine -newgvn -lower-guard-intrinsic -cross-dso-cfi -ee-instrument -post-inline-ee-instrument -coro-elide -loop-fusion -forceattrs -coro-elide -adce -mergereturn -strip -lower-matrix-intrinsics -gvn-hoist -loop-unroll -rpo-functionattrs -mldst-motion -loweratomic -insert-gcov-profiling -simplifycfg -dse -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.71832275390625,opt -prune-eh -partially-inline-libcalls -slp-vectorizer -redundant-dbg-inst-elim -simplifycfg -prune-eh -loop-unroll -lowerinvoke -coro-elide -licm -loweratomic -gvn-hoist -lowerswitch -dse -loop-idiom -callsite-splitting -name-anon-globals -slsr -gvn -loop-unroll-and-jam -memcpyopt -break-crit-edges -sroa -dce -lower-constant-intrinsics -loop-unroll -sccp -aggressive-instcombine -instcombine -slp-vectorizer -attributor -reassociate -scalarizer -lower-matrix-intrinsics -guard-widening -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.74629616737366,opt -simple-loop-unswitch -early-cse-memssa -insert-gcov-profiling -loop-simplifycfg -lowerswitch -speculative-execution -float2int -separate-const-offset-from-gep -loop-data-prefetch -argpromotion -rewrite-statepoints-for-gc -strip-debug-declare -coro-cleanup -instcombine -called-value-propagation -loop-interchange -dse -libcalls-shrinkwrap -instcombine -jump-threading -aggressive-instcombine -functionattrs -loop-predication -sink -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -always-inline -lowerswitch -gvn -simplifycfg -nary-reassociate -mergefunc -adce -cross-dso-cfi -separate-const-offset-from-gep -infer-address-spaces -loop-versioning-licm -partial-inliner -reassociate -loop-versioning-licm -dse -loop-sink -strip-debug-declare -gvn -float2int -loop-sink -attributor -lcssa -sroa -early-cse-memssa -gvn-hoist -jump-threading -redundant-dbg-inst-elim -simple-loop-unswitch -attributor -elim-avail-extern -guard-widening -loop-data-prefetch -aggressive-instcombine -constprop -lower-matrix-intrinsics -break-crit-edges -mem2reg -functionattrs -constprop -ipconstprop -loop-reroll -inject-tli-mappings -loop-data-prefetch -simple-loop-unswitch -loop-unroll-and-jam -rewrite-statepoints-for-gc -always-inline -inferattrs -lower-widenable-condition -licm -lower-matrix-intrinsics -strip -loop-fusion -callsite-splitting -sancov -strip-dead-prototypes -memcpyopt -globaldce -ipconstprop -adce -add-discriminators -instnamer -lower-widenable-condition -globaldce -loop-versioning-licm -pgo-memop-opt -loop-versioning -loop-versioning-licm -jump-threading -reassociate -memcpyopt -always-inline -insert-gcov-profiling -sink -simplifycfg -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.75835990905762,opt -partial-inliner -mem2reg -argpromotion -die -newgvn -globaldce -instcombine -called-value-propagation -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.77911853790283,opt -loweratomic -bdce -hotcoldsplit -loop-simplify -constmerge -sccp -libcalls-shrinkwrap -lower-matrix-intrinsics -slp-vectorizer -post-inline-ee-instrument -mergefunc -adce -callsite-splitting -coro-elide -instcombine -instnamer -libcalls-shrinkwrap -coro-elide -loop-predication -constmerge -lcssa -loop-vectorize -coro-elide -speculative-execution -sroa -gvn -break-crit-edges -strip-debug-declare -memcpyopt -correlated-propagation -newgvn -loop-reroll -sroa -gvn -prune-eh -mergereturn -lower-guard-intrinsic -coro-cleanup -scalarizer -mergeicmps -loop-unroll -instsimplify -mem2reg -sancov -mergeicmps -bdce -lowerswitch -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.824644327163696,opt -correlated-propagation -lower-matrix-intrinsics -canonicalize-aliases -reassociate -lower-matrix-intrinsics -loop-reroll -simplifycfg -loop-versioning-licm -lower-expect -loop-vectorize -loop-distribute -loop-data-prefetch -instnamer -strip-dead-prototypes -globaldce -post-inline-ee-instrument -mergefunc -loop-idiom -instnamer -lower-expect -coro-elide -lowerswitch -canonicalize-aliases -lower-constant-intrinsics -newgvn -bdce -mergereturn -loop-interchange -globalsplit -pgo-memop-opt -load-store-vectorizer -sancov -instsimplify -globaldce -infer-address-spaces -aggressive-instcombine -mergereturn -flattencfg -sroa -dse -loop-unroll-and-jam -callsite-splitting -nary-reassociate -coro-early -sroa -strip-dead-prototypes -bdce -bdce -guard-widening -indvars -break-crit-edges -libcalls-shrinkwrap -simplifycfg -sccp -coro-early -deadargelim -sancov -instcombine input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.877750396728516,opt -globalsplit -bdce -adce -loop-unswitch -ee-instrument -coro-cleanup -strip -loop-instsimplify -add-discriminators -globaldce -attributor -argpromotion -lowerinvoke -loop-vectorize -coro-elide -gvn -adce -bdce -loop-unroll -libcalls-shrinkwrap -callsite-splitting -partial-inliner -constprop -break-crit-edges -jump-threading -consthoist -loop-idiom -loop-instsimplify -globaldce -break-crit-edges -cross-dso-cfi -inject-tli-mappings -lower-matrix-intrinsics -libcalls-shrinkwrap -argpromotion -loop-idiom -coro-early -loop-predication -loop-reduce -gvn-hoist -always-inline -lower-constant-intrinsics -dse -strip-dead-prototypes -ipconstprop -reassociate -flattencfg -inferattrs -simple-loop-unswitch -redundant-dbg-inst-elim -gvn-hoist -speculative-execution -guard-widening -simple-loop-unswitch -separate-const-offset-from-gep -loop-sink -cross-dso-cfi -add-discriminators -alignment-from-assumptions -reassociate -adce -sancov -licm -forceattrs -loop-reroll -sroa -loop-load-elim -lower-matrix-intrinsics -loop-deletion -inferattrs -loop-interchange -infer-address-spaces -adce -load-store-vectorizer -lcssa -constmerge -coro-cleanup -aggressive-instcombine -early-cse-memssa -instcombine -canonicalize-aliases -mergefunc -alignment-from-assumptions -irce -alignment-from-assumptions -loop-instsimplify -sink -div-rem-pairs -instsimplify -constmerge -die -mem2reg -callsite-splitting -add-discriminators -instsimplify -loop-distribute -loop-guard-widening -mldst-motion -globaldce -infer-address-spaces -dse -pgo-memop-opt -mergefunc -ee-instrument -loop-unroll -break-crit-edges -strip -inject-tli-mappings -nary-reassociate -lcssa -loop-instsimplify -die -gvn-hoist -loop-simplify -strip-nondebug -loop-simplifycfg -rewrite-statepoints-for-gc -callsite-splitting -gvn-hoist -elim-avail-extern -lower-constant-intrinsics -alignment-from-assumptions -loop-idiom -reg2mem -loop-distribute -early-cse-memssa -always-inline -div-rem-pairs -add-discriminators -lower-widenable-condition -mergereturn -loop-reduce -strip-dead-prototypes -mldst-motion -mem2reg -slp-vectorizer -sroa -dse -reg2mem -partially-inline-libcalls -loop-versioning-licm -loop-deletion -lower-guard-intrinsic -constmerge -float2int -adce -callsite-splitting -loop-reroll -constmerge -loop-simplifycfg -mergereturn -loop-simplifycfg -mergefunc -loop-versioning-licm -cross-dso-cfi -infer-address-spaces -tailcallelim -lowerinvoke -loop-simplify -redundant-dbg-inst-elim -pgo-memop-opt -guard-widening -loop-sink -loop-interchange -gvn-hoist -loop-simplify -jump-threading -sancov -gvn -globaldce -globaldce -jump-threading -globaldce -inline -inline -float2int -loop-interchange -constprop -inject-tli-mappings -barrier -always-inline -insert-gcov-profiling -infer-address-spaces -coro-elide -dce -called-value-propagation -loop-sink -name-anon-globals -globaldce -strip -instcombine -functionattrs -mergereturn -loop-load-elim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/crc32,1.0,61.91339898109436,opt -lower-expect -mem2reg -inferattrs -lower-guard-intrinsic -name-anon-globals -instsimplify -post-inline-ee-instrument -newgvn -loop-sink -hotcoldsplit -simplifycfg -add-discriminators -instcombine input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9795918367346942,61.754926919937134,opt -prune-eh -separate-const-offset-from-gep -rpo-functionattrs -dce -argpromotion -name-anon-globals -loop-versioning -correlated-propagation -mem2reg -loop-deletion -simplifycfg -canonicalize-aliases -loop-versioning -lower-widenable-condition -gvn -tailcallelim -elim-avail-extern -gvn-hoist -argpromotion -loop-unroll -globaldce -loop-reroll -bdce -loop-guard-widening -correlated-propagation -reg2mem -prune-eh -redundant-dbg-inst-elim -argpromotion -loop-predication -loop-guard-widening -name-anon-globals -loop-unswitch -always-inline -flattencfg -simplifycfg -nary-reassociate -ipconstprop -forceattrs -partially-inline-libcalls -rpo-functionattrs -indvars -elim-avail-extern -always-inline -functionattrs -mem2reg -flattencfg -reassociate -adce -argpromotion -early-cse-memssa -globalsplit -slsr -early-cse-memssa -break-crit-edges -globalsplit -loop-predication -memcpyopt -load-store-vectorizer -libcalls-shrinkwrap -tailcallelim -insert-gcov-profiling -slp-vectorizer -consthoist -ipconstprop -strip-dead-prototypes -partially-inline-libcalls -separate-const-offset-from-gep -early-cse-memssa -correlated-propagation -load-store-vectorizer -instcombine -loop-idiom -loop-guard-widening -loop-data-prefetch -strip-dead-prototypes -always-inline -mldst-motion -gvn-hoist -loop-unswitch -partially-inline-libcalls -tailcallelim -deadargelim -instsimplify -lcssa -mem2reg -flattencfg -div-rem-pairs -strip-dead-prototypes -globalsplit -memcpyopt -strip-dead-prototypes -loop-instsimplify -loop-instsimplify -deadargelim -mergereturn -lower-matrix-intrinsics -simplifycfg -deadargelim -dse -loop-versioning -loop-simplify -globaldce -tailcallelim -break-crit-edges -break-crit-edges -lower-guard-intrinsic -infer-address-spaces -lower-matrix-intrinsics -rpo-functionattrs -coro-elide -forceattrs -called-value-propagation -loop-load-elim -loop-reduce -correlated-propagation -coro-early -newgvn -callsite-splitting -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9795918367346942,61.764912128448486,opt -sancov -inferattrs -adce -loop-load-elim -argpromotion -redundant-dbg-inst-elim -constprop -rewrite-statepoints-for-gc -libcalls-shrinkwrap -always-inline -nary-reassociate -forceattrs -loop-simplifycfg -reassociate -lower-expect -coro-early -lowerswitch -jump-threading -globalsplit -reassociate -loop-load-elim -loop-versioning-licm -strip-debug-declare -coro-elide -sancov -barrier -loop-guard-widening -callsite-splitting -loop-data-prefetch -mem2reg -tailcallelim -float2int -insert-gcov-profiling -slsr -called-value-propagation -sccp -float2int -sroa -div-rem-pairs -mergefunc -loop-fusion -mergeicmps -libcalls-shrinkwrap -loop-load-elim -gvn-hoist -loop-sink -constmerge -instsimplify -pgo-memop-opt -mem2reg -loop-sink -flattencfg -lower-widenable-condition -flattencfg -load-store-vectorizer -memcpyopt -inferattrs -constmerge -loop-interchange -loop-reduce -rewrite-statepoints-for-gc -attributor -rpo-functionattrs -lower-expect -sancov -loop-distribute -strip -strip-nondebug -loop-interchange -gvn -scalarizer -insert-gcov-profiling -add-discriminators -add-discriminators -infer-address-spaces -break-crit-edges -bdce -loop-reroll -rpo-functionattrs -sroa -instnamer -constmerge -lower-widenable-condition -name-anon-globals -functionattrs -called-value-propagation -sccp -prune-eh -instcombine -lower-widenable-condition -canonicalize-aliases -mem2reg -globalsplit -slsr -partially-inline-libcalls -post-inline-ee-instrument -sroa -early-cse-memssa -add-discriminators -instsimplify -insert-gcov-profiling -mergereturn -always-inline -adce -lcssa -mergereturn -loop-idiom -indvars -libcalls-shrinkwrap -globaldce -coro-cleanup -coro-cleanup -mergefunc -canonicalize-aliases -sccp -inject-tli-mappings -lower-expect -loop-reroll -instnamer -simplifycfg -correlated-propagation input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9285714285714286,62.132272481918335,opt -loop-guard-widening -consthoist -lower-expect -indvars -loop-reduce -simplifycfg -callsite-splitting -lower-matrix-intrinsics -correlated-propagation -reassociate -mldst-motion -ipconstprop -irce -lower-matrix-intrinsics -mergeicmps -globalopt -lowerswitch -bdce -strip-nondebug -partially-inline-libcalls -div-rem-pairs -forceattrs -globalsplit -barrier -functionattrs -loop-predication -loop-versioning-licm -libcalls-shrinkwrap -strip-debug-declare -constmerge -ipsccp -alignment-from-assumptions -ee-instrument -sancov -jump-threading -coro-split -gvn-hoist -die -bdce -loweratomic -dse -instsimplify -name-anon-globals -dce -tailcallelim -mergeicmps -callsite-splitting -speculative-execution -callsite-splitting -consthoist -irce -coro-early -mergereturn -loop-versioning-licm -loop-idiom -add-discriminators -globalsplit -loop-deletion -guard-widening -lower-expect -rewrite-statepoints-for-gc -loop-guard-widening -irce -nary-reassociate -dse -lowerinvoke -gvn -lower-constant-intrinsics -load-store-vectorizer -loop-simplify -lower-guard-intrinsic -partially-inline-libcalls -deadargelim -functionattrs -lower-widenable-condition -always-inline -ipconstprop -loop-simplify -aggressive-instcombine -sroa -div-rem-pairs -lower-guard-intrinsic -coro-elide -forceattrs -mergereturn -called-value-propagation -consthoist -lower-expect -simple-loop-unswitch -break-crit-edges -scalarizer -instcombine -mergereturn -loop-instsimplify -lower-widenable-condition -constprop -strip-dead-prototypes -flattencfg -loop-rotate -elim-avail-extern -slsr -rpo-functionattrs -forceattrs -strip-nondebug -tailcallelim -attributor -barrier -argpromotion -loop-unroll -nary-reassociate -die -libcalls-shrinkwrap -loop-versioning-licm -break-crit-edges -early-cse-memssa -rpo-functionattrs -correlated-propagation -rewrite-statepoints-for-gc -guard-widening -infer-address-spaces -reassociate -loop-deletion -callsite-splitting -die -simplifycfg -cross-dso-cfi -ipconstprop -inject-tli-mappings -barrier -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9846938775510204,61.58521580696106,opt -hotcoldsplit -correlated-propagation -die -loop-versioning -mem2reg -early-cse-memssa -loop-load-elim -cross-dso-cfi -strip -tailcallelim -coro-cleanup -inferattrs -infer-address-spaces -functionattrs -loop-deletion -lower-expect -forceattrs -sroa -loop-simplifycfg -rpo-functionattrs -loop-simplifycfg -loop-distribute -mldst-motion -strip-debug-declare -div-rem-pairs -indvars -simple-loop-unswitch -lowerinvoke -lower-guard-intrinsic -globalopt -loop-data-prefetch -globaldce -always-inline -adce -lower-constant-intrinsics -newgvn -coro-cleanup -sccp -coro-cleanup -always-inline -ee-instrument -separate-const-offset-from-gep -tailcallelim -loop-idiom -adce -bdce -mergereturn -lower-matrix-intrinsics -redundant-dbg-inst-elim -loop-interchange -loop-simplifycfg -early-cse-memssa -nary-reassociate -alignment-from-assumptions -loop-deletion -loop-vectorize -strip -reassociate -break-crit-edges -load-store-vectorizer -elim-avail-extern -sccp -called-value-propagation -slsr -flattencfg -instcombine -cross-dso-cfi -name-anon-globals -simple-loop-unswitch -float2int -adce -correlated-propagation -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9846938775510204,61.78147768974304,opt -loop-unroll-and-jam -simplifycfg -lower-guard-intrinsic -consthoist -lower-matrix-intrinsics -div-rem-pairs -loop-sink -early-cse-memssa -attributor -loop-unroll-and-jam -instnamer -globalopt -div-rem-pairs -dse -coro-early -licm -lowerswitch -loop-interchange -irce -loop-unswitch -called-value-propagation -canonicalize-aliases -loop-distribute -globalsplit -strip-nondebug -mldst-motion -lower-matrix-intrinsics -licm -mldst-motion -attributor -prune-eh -ipconstprop -loop-predication -div-rem-pairs -argpromotion -tailcallelim -consthoist -prune-eh -licm -loop-simplifycfg -die -loop-guard-widening -reassociate -consthoist -die -tailcallelim -ee-instrument -strip-debug-declare -consthoist -nary-reassociate -forceattrs -simplifycfg -strip-debug-declare -jump-threading -dse -sancov -mem2reg -irce -loop-guard-widening -mldst-motion -loop-idiom -loop-sink -prune-eh -deadargelim -separate-const-offset-from-gep -lowerinvoke -newgvn -elim-avail-extern -aggressive-instcombine -load-store-vectorizer -sroa -mldst-motion -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9846938775510204,61.819502115249634,opt -elim-avail-extern -tailcallelim -indvars -loop-reduce -loop-reduce -loop-fusion -scalarizer -coro-elide -load-store-vectorizer -ipsccp -loop-simplifycfg -lower-expect -loop-interchange -argpromotion -memcpyopt -aggressive-instcombine -alignment-from-assumptions -aggressive-instcombine -loop-reduce -barrier -speculative-execution -speculative-execution -lower-guard-intrinsic -canonicalize-aliases -pgo-memop-opt -barrier -scalarizer -adce -ipsccp -loop-distribute -die -break-crit-edges -attributor -infer-address-spaces -loop-vectorize -mldst-motion -simple-loop-unswitch -mergefunc -break-crit-edges -simple-loop-unswitch -strip-nondebug -loop-simplifycfg -sroa -infer-address-spaces -sccp -bdce -globalsplit -loop-unroll -bdce -guard-widening -loop-simplify -rpo-functionattrs -redundant-dbg-inst-elim -argpromotion -lowerswitch -coro-split -forceattrs -lower-matrix-intrinsics -functionattrs -lower-constant-intrinsics -loop-idiom -post-inline-ee-instrument -mergefunc -loop-guard-widening -post-inline-ee-instrument -constmerge -deadargelim -pgo-memop-opt -loop-simplify -loop-sink -globalsplit -coro-cleanup -load-store-vectorizer -attributor -functionattrs -forceattrs -dse -forceattrs -constprop -correlated-propagation -gvn-hoist -licm -instsimplify -newgvn -mldst-motion -coro-cleanup -div-rem-pairs -separate-const-offset-from-gep -functionattrs -coro-split -name-anon-globals -mergereturn -strip-nondebug -canonicalize-aliases -cross-dso-cfi -instcombine -memcpyopt -coro-cleanup -globalopt -loop-predication -early-cse-memssa -pgo-memop-opt -sccp -sancov -early-cse-memssa -canonicalize-aliases -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9846938775510206,61.72368288040161,opt -redundant-dbg-inst-elim -strip-debug-declare -float2int -coro-elide -coro-early -ipsccp -memcpyopt -indvars -jump-threading -loop-instsimplify -loop-reduce -mergefunc -div-rem-pairs -sroa -speculative-execution -lower-expect -callsite-splitting -loop-simplifycfg -correlated-propagation -dse -lcssa -redundant-dbg-inst-elim -memcpyopt -libcalls-shrinkwrap -partially-inline-libcalls -memcpyopt -coro-elide -loop-idiom -constmerge -loop-load-elim -loop-instsimplify -constmerge -sink -loop-interchange -correlated-propagation -attributor -rpo-functionattrs -aggressive-instcombine -mldst-motion -sancov -break-crit-edges -loop-fusion -consthoist -redundant-dbg-inst-elim -sccp -lower-matrix-intrinsics -loop-versioning-licm -lowerinvoke -called-value-propagation -cross-dso-cfi -sink -correlated-propagation -loop-fusion -globalsplit -coro-split -globaldce -name-anon-globals -tailcallelim -lowerswitch -globaldce -lowerswitch -reassociate -slp-vectorizer -reg2mem -functionattrs -lowerinvoke -barrier -elim-avail-extern -dce -load-store-vectorizer -coro-early -infer-address-spaces -sroa -scalarizer -loop-reroll -lower-expect -loop-versioning-licm -slsr -loop-reduce -libcalls-shrinkwrap -consthoist -attributor -loop-simplifycfg -loop-deletion -adce -infer-address-spaces -loop-versioning -attributor -lower-constant-intrinsics -load-store-vectorizer -loop-unroll-and-jam -dse -instsimplify -lower-constant-intrinsics -loop-unroll-and-jam -irce -prune-eh -newgvn -simplifycfg -break-crit-edges -irce -dse -lower-constant-intrinsics -always-inline -die -sroa -instcombine -inferattrs -coro-early -loop-reroll -simplifycfg -constprop -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -bdce -float2int -canonicalize-aliases -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9948979591836733,61.600799798965454,opt -argpromotion -irce -post-inline-ee-instrument -canonicalize-aliases -pgo-memop-opt -rpo-functionattrs -lower-constant-intrinsics -deadargelim -slp-vectorizer -name-anon-globals -loop-simplify -loop-load-elim -canonicalize-aliases -lower-constant-intrinsics -attributor -loop-deletion -globaldce -coro-early -mem2reg -adce -redundant-dbg-inst-elim -loop-versioning-licm -loweratomic -loop-interchange -partially-inline-libcalls -simplifycfg -coro-elide -globalopt -jump-threading -lowerinvoke -post-inline-ee-instrument -callsite-splitting -partially-inline-libcalls -infer-address-spaces -loop-distribute -redundant-dbg-inst-elim -called-value-propagation -mldst-motion -div-rem-pairs -attributor -strip-debug-declare -loop-versioning-licm -sroa -barrier -early-cse-memssa -loop-deletion -guard-widening -gvn-hoist -loop-predication -post-inline-ee-instrument -loop-unroll-and-jam -break-crit-edges -strip-dead-prototypes -strip-debug-declare -ipsccp -loop-unroll-and-jam -loop-fusion -callsite-splitting -loop-reroll -sink -loop-fusion -loop-unroll -early-cse-memssa -strip-dead-prototypes -elim-avail-extern -instsimplify -globalopt -deadargelim -die -argpromotion -called-value-propagation -ipsccp -attributor -argpromotion -loop-versioning-licm -load-store-vectorizer -lowerinvoke -separate-const-offset-from-gep -libcalls-shrinkwrap -loop-unroll -partial-inliner -scalarizer -sccp -callsite-splitting -elim-avail-extern -sroa -die -memcpyopt -deadargelim -slp-vectorizer -ipconstprop -name-anon-globals -sroa -loop-vectorize -loop-versioning-licm -coro-early -loop-reduce -constmerge -sink -loop-versioning -memcpyopt -loop-versioning -elim-avail-extern -loop-data-prefetch -barrier -simple-loop-unswitch -name-anon-globals -ee-instrument -add-discriminators -guard-widening -loop-reroll -loop-instsimplify -forceattrs -guard-widening -mldst-motion -mergefunc -barrier -mem2reg -redundant-dbg-inst-elim -guard-widening -instnamer -loop-reroll -instcombine -irce -mergefunc -strip-debug-declare -partial-inliner -lower-constant-intrinsics -loop-vectorize -instsimplify -newgvn -strip -strip-dead-prototypes -reassociate -functionattrs -tailcallelim -rewrite-statepoints-for-gc -loop-distribute -add-discriminators -lower-constant-intrinsics -functionattrs -guard-widening -loop-versioning -loop-load-elim -mem2reg -lowerinvoke -div-rem-pairs -gvn-hoist -callsite-splitting -constmerge -argpromotion -pgo-memop-opt -tailcallelim -rpo-functionattrs -slp-vectorizer -break-crit-edges -lower-constant-intrinsics -guard-widening -lower-expect -deadargelim -libcalls-shrinkwrap -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9948979591836736,61.76611328125,opt -loop-idiom -pgo-memop-opt -flattencfg -attributor -flattencfg -strip -loop-deletion -elim-avail-extern -jump-threading -loop-data-prefetch -lower-expect -load-store-vectorizer -strip-debug-declare -partially-inline-libcalls -consthoist -mem2reg -loop-deletion -licm -lowerswitch -gvn-hoist -loop-simplify -mergereturn -alignment-from-assumptions -loop-simplify -mergefunc -loop-fusion -strip-debug-declare -deadargelim -constmerge -strip-debug-declare -consthoist -libcalls-shrinkwrap -partially-inline-libcalls -early-cse-memssa -loop-sink -newgvn -constmerge -strip-nondebug -speculative-execution -load-store-vectorizer -lowerinvoke -adce -always-inline -bdce -always-inline -lower-constant-intrinsics -dce -constprop -coro-early -strip-debug-declare -constprop -pgo-memop-opt -strip-nondebug -loop-sink -memcpyopt -forceattrs -rewrite-statepoints-for-gc -strip-nondebug -loop-vectorize -load-store-vectorizer -coro-elide -coro-cleanup -simple-loop-unswitch -pgo-memop-opt -always-inline -lower-expect -loop-unroll -indvars -loop-data-prefetch -loop-data-prefetch -post-inline-ee-instrument -dce -lower-matrix-intrinsics -canonicalize-aliases -instcombine -loop-instsimplify -irce -loop-guard-widening -mem2reg -correlated-propagation -instsimplify -loop-predication -barrier -callsite-splitting -coro-split -mem2reg -reassociate -reassociate -bdce -loop-data-prefetch -loop-reroll -rpo-functionattrs -correlated-propagation -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/dijkstra,0.9948979591836736,61.780680894851685,opt -tailcallelim -pgo-memop-opt -loop-simplifycfg -loop-instsimplify -coro-elide -hotcoldsplit -correlated-propagation -newgvn -coro-cleanup -nary-reassociate -constprop -coro-early -always-inline -strip-nondebug -functionattrs -lowerswitch -separate-const-offset-from-gep -mergeicmps -simplifycfg -loop-instsimplify -die -ee-instrument -loop-simplifycfg -redundant-dbg-inst-elim -ipsccp -loop-unroll-and-jam -load-store-vectorizer -simple-loop-unswitch -licm -adce -callsite-splitting -prune-eh -flattencfg -inferattrs -ee-instrument -lower-constant-intrinsics -add-discriminators -simplifycfg -loop-reduce -lowerswitch -sancov -loop-reduce -newgvn -alignment-from-assumptions -elim-avail-extern -coro-early -indvars -sroa -speculative-execution -indvars -reassociate -licm -reassociate -constprop -loop-instsimplify -add-discriminators -attributor -called-value-propagation -insert-gcov-profiling -loop-unroll -rewrite-statepoints-for-gc -strip-dead-prototypes -adce -dse -licm -post-inline-ee-instrument -instcombine -simple-loop-unswitch -canonicalize-aliases -lower-widenable-condition -constmerge -newgvn -coro-cleanup -infer-address-spaces -loop-interchange -instsimplify -canonicalize-aliases -loop-versioning -separate-const-offset-from-gep -forceattrs -adce -always-inline -reg2mem -constmerge -sancov -aggressive-instcombine -scalarizer -forceattrs -ipsccp -ee-instrument -scalarizer -reg2mem -redundant-dbg-inst-elim -sroa -inject-tli-mappings -barrier -bdce -flattencfg -nary-reassociate -instnamer -loop-load-elim -reassociate -loop-vectorize -sccp -nary-reassociate -separate-const-offset-from-gep -correlated-propagation -instnamer -strip-debug-declare -barrier -div-rem-pairs -aggressive-instcombine -instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9683191859499436,742.1303203105927,opt -loweratomic -dse -add-discriminators -alignment-from-assumptions -attributor -memcpyopt -post-inline-ee-instrument -reg2mem -alignment-from-assumptions -guard-widening -coro-early -infer-address-spaces -elim-avail-extern -simplifycfg -globaldce -mergeicmps -loop-interchange -alignment-from-assumptions -ipsccp -rewrite-statepoints-for-gc -break-crit-edges -lower-matrix-intrinsics -reassociate -dse -loop-simplifycfg -infer-address-spaces -loop-unroll-and-jam -loop-versioning -loop-unswitch -indvars -barrier -flattencfg -newgvn -mergereturn -inject-tli-mappings -lower-matrix-intrinsics -loop-predication -slp-vectorizer -coro-split -gvn-hoist -dse -indvars -coro-split -called-value-propagation -newgvn -loop-unroll-and-jam -guard-widening -lower-expect -slp-vectorizer -sink -alignment-from-assumptions -lower-constant-intrinsics -lower-widenable-condition -loop-simplify -globaldce -attributor -mldst-motion -early-cse-memssa -inject-tli-mappings -strip-dead-prototypes -instnamer -dse -globalopt -ipsccp -float2int -coro-early -argpromotion -slp-vectorizer -correlated-propagation -licm -instnamer -coro-cleanup -mergereturn -irce -globaldce -mergeicmps -instsimplify -sancov -loop-reroll -lcssa -lowerswitch -jump-threading -constprop -die -dse -indvars -strip-dead-prototypes -always-inline -loop-distribute -slsr -mergereturn -lower-expect -loop-simplifycfg -mldst-motion -loop-simplify -strip-dead-prototypes -instsimplify -loop-reroll -separate-const-offset-from-gep -lowerinvoke -float2int -loop-data-prefetch -loop-versioning -mem2reg -gvn-hoist -sccp -functionattrs -loop-unswitch -loop-distribute -flattencfg -insert-gcov-profiling -prune-eh -tailcallelim -inferattrs -always-inline -indvars -dse -aggressive-instcombine -consthoist -post-inline-ee-instrument -ipsccp -lower-expect -globalsplit -globaldce -loop-vectorize -loop-reroll -loop-simplifycfg -loop-unroll -memcpyopt -instsimplify -coro-cleanup -coro-cleanup -loop-reroll -loweratomic -mldst-motion -lower-constant-intrinsics -add-discriminators -tailcallelim -strip -loop-data-prefetch -coro-cleanup -coro-cleanup -bdce -slp-vectorizer -newgvn -attributor -lower-expect -loop-versioning -callsite-splitting -libcalls-shrinkwrap -dse -irce -instcombine -ipconstprop -dse -strip-dead-prototypes -libcalls-shrinkwrap -coro-cleanup -guard-widening -inferattrs -barrier -early-cse-memssa -separate-const-offset-from-gep -lowerswitch -instsimplify -loop-distribute -lower-constant-intrinsics -prune-eh -partially-inline-libcalls -lower-matrix-intrinsics -insert-gcov-profiling -coro-elide -mem2reg -loop-versioning -scalarizer -alignment-from-assumptions -coro-cleanup -consthoist -elim-avail-extern -dce -loop-reduce -lowerswitch -strip-debug-declare -indvars -cross-dso-cfi -loop-instsimplify -globalsplit -loop-deletion -slp-vectorizer -sccp -break-crit-edges -add-discriminators -loop-reduce -indvars -coro-elide -loop-interchange -coro-split -strip-debug-declare -ipconstprop -loop-simplify -globalsplit -coro-elide -sroa -coro-cleanup -flattencfg -loop-data-prefetch -sccp -loweratomic -memcpyopt -loop-vectorize -functionattrs -loop-unroll -canonicalize-aliases -deadargelim -insert-gcov-profiling -irce -mergefunc -loop-interchange -lowerinvoke -ee-instrument -adce -constprop -lcssa -hotcoldsplit -aggressive-instcombine -mem2reg -called-value-propagation -lcssa -tailcallelim -inject-tli-mappings -bdce -sink -dse -inject-tli-mappings -constprop -forceattrs -functionattrs -hotcoldsplit -ipconstprop -consthoist -strip -lower-expect -infer-address-spaces -sroa -mergereturn -dse -newgvn -dse -slsr -loop-fusion -flattencfg -loop-versioning-licm -sancov -always-inline -partially-inline-libcalls -add-discriminators -elim-avail-extern -loop-interchange -sroa -slsr -lower-guard-intrinsic -dce -load-store-vectorizer -simplifycfg -rpo-functionattrs -name-anon-globals -elim-avail-extern -gvn-hoist -cross-dso-cfi -instsimplify -jump-threading input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9694556389925783,492.34522247314453,opt -tailcallelim -loop-rotate -adce -constprop -loop-rotate -rewrite-statepoints-for-gc -elim-avail-extern -post-inline-ee-instrument -strip-debug-declare -constprop -functionattrs -sccp -gvn -flattencfg -constprop -loop-instsimplify -separate-const-offset-from-gep -sccp -die -attributor -canonicalize-aliases -indvars -constprop -sink -loop-reroll -elim-avail-extern -loop-instsimplify -rewrite-statepoints-for-gc -tailcallelim -lower-widenable-condition -irce -hotcoldsplit -float2int -coro-early -sancov -ipsccp -loop-deletion -simplifycfg -loop-guard-widening -strip -callsite-splitting -constmerge -loweratomic -loop-deletion -loop-simplifycfg -loop-predication -mergeicmps -post-inline-ee-instrument -sroa -ee-instrument -coro-split -loop-simplify -lcssa -correlated-propagation -mergeicmps -lowerinvoke -instcombine -loop-guard-widening -separate-const-offset-from-gep -lowerswitch -newgvn -instcombine -simplifycfg -deadargelim -inject-tli-mappings -mergeicmps -float2int -lower-matrix-intrinsics -instsimplify input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9789275380056125,292.0016040802002,opt -forceattrs -separate-const-offset-from-gep -hotcoldsplit -attributor -indvars -loop-unroll -add-discriminators -licm -canonicalize-aliases -reg2mem -bdce -slp-vectorizer -lower-matrix-intrinsics -loop-reduce -loop-distribute -guard-widening -coro-early -early-cse-memssa -load-store-vectorizer -alignment-from-assumptions -name-anon-globals -argpromotion -loop-load-elim -always-inline -early-cse-memssa -licm -memcpyopt -gvn -name-anon-globals -callsite-splitting -gvn-hoist -loop-instsimplify -gvn-hoist -loop-versioning -mldst-motion -attributor -separate-const-offset-from-gep -loop-fusion -rewrite-statepoints-for-gc -dce -coro-early -forceattrs -loop-sink -dce -lower-expect -consthoist -newgvn -loop-unroll-and-jam -memcpyopt -reassociate -speculative-execution -nary-reassociate -mergefunc -loop-deletion -ipsccp -bdce -tailcallelim -rewrite-statepoints-for-gc -scalarizer -functionattrs -deadargelim -loop-simplify -irce -attributor -name-anon-globals -loop-versioning -loop-vectorize -flattencfg -globalopt -partially-inline-libcalls -coro-early -early-cse-memssa -coro-cleanup -strip-dead-prototypes -name-anon-globals -rpo-functionattrs -lower-constant-intrinsics -redundant-dbg-inst-elim -prune-eh -loop-reroll -separate-const-offset-from-gep -sroa -lowerinvoke -irce -loop-unroll-and-jam -rewrite-statepoints-for-gc -coro-split -inject-tli-mappings -name-anon-globals -cross-dso-cfi -mergeicmps -aggressive-instcombine -loop-vectorize -memcpyopt -globaldce -guard-widening -ipsccp -jump-threading -strip -loop-simplify -mergereturn -instcombine -gvn -loop-vectorize -bdce -nary-reassociate -barrier -dse input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9792815868381253,275.35339760780334,opt -rewrite-statepoints-for-gc -loop-unroll-and-jam -partially-inline-libcalls -coro-elide -globalopt -alignment-from-assumptions -div-rem-pairs -lowerinvoke -inferattrs -lower-constant-intrinsics -loop-load-elim -instnamer -loweratomic -constmerge -loop-vectorize -post-inline-ee-instrument -loop-vectorize -loop-reroll -instnamer -loop-simplify -coro-elide -loop-unroll -loop-versioning -partial-inliner -loop-deletion -rpo-functionattrs -simplifycfg -loweratomic -jump-threading -reg2mem -loop-unroll-and-jam -indvars -instsimplify -ipconstprop -inject-tli-mappings -callsite-splitting -called-value-propagation -float2int -break-crit-edges -correlated-propagation -coro-early -infer-address-spaces -strip-dead-prototypes -loop-idiom -loop-interchange -memcpyopt -dce -loop-unroll -consthoist -lower-expect -mergereturn -dce -loop-fusion -rewrite-statepoints-for-gc -loop-idiom -loop-unroll -instsimplify -aggressive-instcombine -called-value-propagation -sroa -loop-idiom -loop-predication -slp-vectorizer -libcalls-shrinkwrap -strip -loop-versioning-licm -rewrite-statepoints-for-gc -barrier -instcombine -loop-unroll -lower-constant-intrinsics -partial-inliner -simple-loop-unswitch -mergeicmps -mergeicmps -insert-gcov-profiling -loweratomic -mem2reg -hotcoldsplit -lower-matrix-intrinsics -loop-interchange -constprop -simplifycfg -die -alignment-from-assumptions -rpo-functionattrs -newgvn input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9801208137003785,266.2952723503113,opt -strip-debug-declare -simple-loop-unswitch -div-rem-pairs -rewrite-statepoints-for-gc -loop-sink -insert-gcov-profiling -simplifycfg -flattencfg -lower-widenable-condition -loop-simplifycfg -strip-nondebug -adce -partial-inliner -strip-dead-prototypes -add-discriminators -rewrite-statepoints-for-gc -lower-widenable-condition -loop-unroll-and-jam -coro-early -coro-split -reassociate -separate-const-offset-from-gep -hotcoldsplit -lowerinvoke -reassociate -strip-debug-declare -rpo-functionattrs -flattencfg -prune-eh -load-store-vectorizer -barrier -strip-debug-declare -sroa -coro-split -gvn -infer-address-spaces -aggressive-instcombine -sink -newgvn -bdce -loweratomic -dce -prune-eh -loop-vectorize -simple-loop-unswitch -redundant-dbg-inst-elim -strip -loop-interchange -rpo-functionattrs -nary-reassociate -ipsccp -rpo-functionattrs -loop-fusion -loop-vectorize -sancov -globaldce -instcombine -loop-unroll -partial-inliner -newgvn -instcombine -functionattrs -insert-gcov-profiling -coro-cleanup -loop-guard-widening -infer-address-spaces -loop-unroll-and-jam -jump-threading -called-value-propagation -loop-simplifycfg -aggressive-instcombine -constprop -loop-vectorize -strip-nondebug -lcssa -elim-avail-extern -alignment-from-assumptions -lower-guard-intrinsic -gvn -slsr -simple-loop-unswitch -redundant-dbg-inst-elim -scalarizer -lcssa -lowerinvoke -redundant-dbg-inst-elim -callsite-splitting -sink -constprop -tailcallelim -lower-guard-intrinsic -redundant-dbg-inst-elim -loop-load-elim -div-rem-pairs -libcalls-shrinkwrap -float2int -loop-vectorize -guard-widening -jump-threading -functionattrs -mldst-motion -gvn -mergereturn -constprop -dse -alignment-from-assumptions -infer-address-spaces -coro-early -simplifycfg -die input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9816987350403442,358.9749844074249,opt -mem2reg -lower-expect -sccp -reassociate -mergereturn -correlated-propagation -barrier -attributor -simplifycfg -rpo-functionattrs -rewrite-statepoints-for-gc -aggressive-instcombine -slsr -loop-load-elim -constprop -instsimplify -add-discriminators -lowerinvoke -scalarizer -instsimplify -insert-gcov-profiling -coro-early -loop-sink -deadargelim -aggressive-instcombine -forceattrs -loop-unroll-and-jam -constprop -globalsplit -bdce -mergereturn -speculative-execution -strip-dead-prototypes -lower-matrix-intrinsics -sancov -nary-reassociate -callsite-splitting -ipconstprop -globaldce -simplifycfg -partially-inline-libcalls -redundant-dbg-inst-elim -ipconstprop -separate-const-offset-from-gep -licm -elim-avail-extern -scalarizer -alignment-from-assumptions -ee-instrument -lower-constant-intrinsics -partially-inline-libcalls -hotcoldsplit -instcombine -strip-nondebug -forceattrs -jump-threading -loop-distribute -lcssa -strip-debug-declare -loop-unroll -constmerge -deadargelim -globalopt -constmerge -lower-constant-intrinsics -inject-tli-mappings -mem2reg -sancov -always-inline -constmerge -deadargelim -globaldce -loop-sink -name-anon-globals -loop-instsimplify -post-inline-ee-instrument -loop-simplify -instsimplify -die -strip -mergereturn -mem2reg -elim-avail-extern -lower-matrix-intrinsics -indvars -break-crit-edges -scalarizer -alignment-from-assumptions -tailcallelim -loop-vectorize -speculative-execution -inject-tli-mappings -lowerswitch -instnamer -attributor -gvn-hoist -instcombine -die -coro-split -lower-guard-intrinsic -ee-instrument -sink -loop-versioning -reassociate -loop-versioning -dce -mergereturn -slsr -attributor -mergereturn -name-anon-globals -speculative-execution -constprop -speculative-execution -rpo-functionattrs -loop-vectorize -ipconstprop -canonicalize-aliases -mergeicmps -canonicalize-aliases -loop-simplify -loop-instsimplify -separate-const-offset-from-gep -lower-widenable-condition -newgvn -strip-nondebug -speculative-execution -coro-cleanup -globaldce -loop-sink -bdce -globaldce -dce -instsimplify -globaldce -instcombine -globalopt -callsite-splitting -jump-threading -bdce input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.985794336967069,404.01260805130005,opt -coro-cleanup -reassociate -called-value-propagation -break-crit-edges -pgo-memop-opt -loop-vectorize -loop-versioning-licm -mem2reg -indvars -mem2reg -sroa -strip-dead-prototypes -mldst-motion -add-discriminators -loop-unswitch -loop-distribute -loop-unroll-and-jam -strip -rewrite-statepoints-for-gc -forceattrs -reassociate -newgvn -jump-threading -attributor -flattencfg -loop-instsimplify -slsr -loop-deletion -loop-reroll -lower-expect -slp-vectorizer -reg2mem -loop-versioning -ipsccp -indvars -newgvn -globalsplit -tailcallelim -speculative-execution -sancov -strip-nondebug -licm -lower-expect -coro-split -globaldce -loop-load-elim -consthoist -loop-reroll -loop-versioning -constmerge -loop-guard-widening -strip -infer-address-spaces -lcssa -loop-versioning -break-crit-edges -ipsccp -loop-sink -post-inline-ee-instrument -loop-deletion -lowerinvoke -forceattrs -ipsccp -add-discriminators -ipconstprop -globaldce -add-discriminators -aggressive-instcombine -inject-tli-mappings -float2int -deadargelim -separate-const-offset-from-gep -strip-debug-declare -mergereturn -licm -name-anon-globals -add-discriminators -sroa -instcombine -strip-nondebug -libcalls-shrinkwrap -consthoist -mergereturn -loop-reroll -separate-const-offset-from-gep -aggressive-instcombine -loop-idiom -sancov -slsr -sink -mergereturn -gvn -rewrite-statepoints-for-gc -partially-inline-libcalls -loop-unroll -canonicalize-aliases -constprop -inject-tli-mappings -loop-unroll-and-jam -flattencfg -prune-eh -dse -licm -adce -loop-deletion -instnamer -div-rem-pairs -add-discriminators -early-cse-memssa -canonicalize-aliases -guard-widening -loop-idiom -lcssa -lowerinvoke -lower-constant-intrinsics -redundant-dbg-inst-elim -reassociate -loop-versioning-licm -name-anon-globals -div-rem-pairs -loop-data-prefetch -mem2reg -loop-sink -instcombine -loop-deletion -lower-widenable-condition -strip -loop-reroll -functionattrs -ipsccp -loop-load-elim -redundant-dbg-inst-elim -flattencfg -deadargelim -jump-threading -bdce -consthoist -nary-reassociate -newgvn input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9872236452168439,293.0374753475189,opt -lowerswitch -name-anon-globals -constmerge -canonicalize-aliases -post-inline-ee-instrument -inject-tli-mappings -consthoist -sink -loop-versioning -strip-nondebug -alignment-from-assumptions -sancov -partially-inline-libcalls -correlated-propagation -globaldce -consthoist -aggressive-instcombine -dse -loop-vectorize -lower-expect -div-rem-pairs -loop-deletion -pgo-memop-opt -loop-simplify -memcpyopt -barrier -globalopt -flattencfg -sroa -memcpyopt -loop-deletion -mergereturn -prune-eh -div-rem-pairs -insert-gcov-profiling -break-crit-edges -lowerinvoke -float2int -elim-avail-extern -prune-eh -loop-reduce -loop-predication -tailcallelim -argpromotion -argpromotion -memcpyopt -guard-widening -partially-inline-libcalls -barrier -globaldce -indvars -strip-dead-prototypes -constprop -instcombine -jump-threading -redundant-dbg-inst-elim -float2int -memcpyopt -attributor -die -called-value-propagation -functionattrs -alignment-from-assumptions -speculative-execution -simplifycfg -gvn -lower-expect -add-discriminators -constmerge -loop-load-elim -break-crit-edges -ipsccp -globalsplit -jump-threading -strip -div-rem-pairs -functionattrs -pgo-memop-opt -dce -mem2reg -canonicalize-aliases -instsimplify -functionattrs -mem2reg -hotcoldsplit -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ghostscript,0.9906854560236381,478.18332958221436,opt -ee-instrument -aggressive-instcombine -lower-constant-intrinsics -post-inline-ee-instrument -simplifycfg -licm -scalarizer -slsr -simple-loop-unswitch -add-discriminators -constmerge -elim-avail-extern -tailcallelim -rewrite-statepoints-for-gc -scalarizer -instsimplify -consthoist -correlated-propagation -mergereturn -callsite-splitting -reassociate -load-store-vectorizer -sroa -inferattrs -div-rem-pairs -die -loop-versioning -strip-nondebug -scalarizer -reassociate -attributor -loop-simplifycfg -loop-unroll-and-jam -flattencfg -argpromotion -instcombine -loop-simplify -loweratomic -speculative-execution -always-inline -strip-nondebug -gvn-hoist -strip -loop-interchange -canonicalize-aliases -load-store-vectorizer -newgvn -lcssa -canonicalize-aliases -break-crit-edges -jump-threading -infer-address-spaces -libcalls-shrinkwrap -correlated-propagation -jump-threading -inject-tli-mappings -name-anon-globals -always-inline -memcpyopt -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/ghostscript,1.001337517811716,288.97663617134094,opt -loop-interchange -lowerswitch -loop-fusion -mergeicmps -constprop -reassociate -attributor -mem2reg -lower-guard-intrinsic -argpromotion -mergefunc -hotcoldsplit -coro-split -name-anon-globals -newgvn -post-inline-ee-instrument -instcombine -always-inline -speculative-execution -coro-elide -prune-eh -nary-reassociate -licm -prune-eh -canonicalize-aliases -jump-threading -canonicalize-aliases -instsimplify -sink -dce -strip-dead-prototypes -strip -name-anon-globals -memcpyopt -forceattrs -gvn-hoist -post-inline-ee-instrument -canonicalize-aliases -redundant-dbg-inst-elim -prune-eh -sroa -simplifycfg -functionattrs -infer-address-spaces -lower-guard-intrinsic -add-discriminators -loop-instsimplify -mem2reg -irce -simple-loop-unswitch -flattencfg -newgvn -newgvn input.bc -o output.bc -benchmark://cBench-v1/gsm,1.049551792828685,62.63266634941101,opt -called-value-propagation -dce -gvn-hoist -irce -sroa -argpromotion -lcssa -barrier -adce -nary-reassociate -ipconstprop -loop-unroll-and-jam -licm -adce -bdce -lower-widenable-condition -cross-dso-cfi -aggressive-instcombine -loop-reroll -memcpyopt -mldst-motion -loop-unroll -loop-simplifycfg -guard-widening -loop-reroll -loop-distribute -globalsplit -loop-fusion -slsr -newgvn -argpromotion -loop-interchange -coro-cleanup -div-rem-pairs -adce -sink -canonicalize-aliases -strip-dead-prototypes -slp-vectorizer -simplifycfg -gvn-hoist -coro-split -functionattrs -loop-vectorize -loop-reroll -globalopt -coro-cleanup -lower-constant-intrinsics -loop-reroll -load-store-vectorizer -inferattrs -reassociate -instsimplify -coro-elide -strip-nondebug -instcombine -loop-instsimplify -lower-expect -pgo-memop-opt -loop-interchange -early-cse-memssa -loop-vectorize -elim-avail-extern -consthoist -consthoist -slsr -loop-unswitch -loop-distribute -guard-widening -loop-fusion -coro-split -gvn-hoist -lower-guard-intrinsic -canonicalize-aliases -lower-guard-intrinsic -simplifycfg -jump-threading input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0515438247011952,64.79662609100342,opt -canonicalize-aliases -nary-reassociate -loop-load-elim -slp-vectorizer -globalsplit -loop-distribute -correlated-propagation -argpromotion -instcombine -sroa -ipsccp -loop-versioning -ipsccp -loop-unroll-and-jam -adce -always-inline -argpromotion -partially-inline-libcalls -dse -rpo-functionattrs -instcombine -sancov -loop-instsimplify -barrier -attributor -insert-gcov-profiling -div-rem-pairs -load-store-vectorizer -loop-versioning-licm -constmerge -coro-elide -loop-load-elim -consthoist -simplifycfg -separate-const-offset-from-gep -infer-address-spaces -lower-widenable-condition -loop-deletion -mergefunc -loop-instsimplify -load-store-vectorizer -consthoist -irce -post-inline-ee-instrument -callsite-splitting -cross-dso-cfi -pgo-memop-opt -strip -simplifycfg -guard-widening -strip-nondebug -load-store-vectorizer -loop-reduce -mergereturn -ipconstprop -mergereturn -loop-sink -flattencfg -float2int -lowerinvoke -infer-address-spaces -simple-loop-unswitch -gvn -constmerge -mem2reg -mergereturn -sccp -guard-widening -name-anon-globals -loop-reduce -slp-vectorizer -indvars -sancov -loop-unswitch -slsr -mldst-motion -loop-instsimplify -always-inline -attributor -instcombine input.bc -o output.bc -benchmark://cBench-v1/gsm,1.052290836653386,63.34988474845886,opt -coro-elide -speculative-execution -mergeicmps -globaldce -speculative-execution -gvn -slp-vectorizer -div-rem-pairs -ipsccp -coro-cleanup -constprop -attributor -strip-dead-prototypes -callsite-splitting -mergefunc -consthoist -dce -aggressive-instcombine -loop-sink -strip -mem2reg -inferattrs -loop-interchange -mem2reg -strip -consthoist -mergereturn -bdce -mem2reg -callsite-splitting -loop-deletion -inferattrs -constmerge -ee-instrument -separate-const-offset-from-gep -loop-simplifycfg -ee-instrument -irce -argpromotion -barrier -separate-const-offset-from-gep -jump-threading -mergeicmps -dce -adce -loop-data-prefetch -loweratomic -coro-split -rpo-functionattrs -ipconstprop -float2int -sroa -lower-matrix-intrinsics -loop-vectorize -dce -guard-widening -coro-elide -simplifycfg -loop-unroll-and-jam -mem2reg -lower-widenable-condition -jump-threading -inferattrs -mergereturn -functionattrs -loop-guard-widening -loop-fusion -insert-gcov-profiling -irce -loop-simplify -lowerinvoke -constmerge -loop-reroll -strip-dead-prototypes -sroa -mldst-motion -slsr -float2int -loop-simplify -functionattrs -loop-data-prefetch -lower-expect -infer-address-spaces -tailcallelim -instsimplify -cross-dso-cfi -dce -irce -instcombine -coro-split -newgvn -loop-versioning -always-inline -lower-matrix-intrinsics -mergeicmps -functionattrs -post-inline-ee-instrument -coro-early -mergeicmps -licm -instnamer -slp-vectorizer -speculative-execution -functionattrs -coro-early -loop-versioning -indvars -loop-idiom -globalopt -strip-dead-prototypes -called-value-propagation -name-anon-globals -nary-reassociate -loop-instsimplify -loop-reduce -mergefunc -loop-predication -mergereturn -rpo-functionattrs -libcalls-shrinkwrap -dse -memcpyopt -lower-expect -indvars -dce -instcombine -cross-dso-cfi -die -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0586404382470118,62.90404176712036,opt -always-inline -lower-matrix-intrinsics -lcssa -dse -deadargelim -pgo-memop-opt -coro-elide -guard-widening -separate-const-offset-from-gep -insert-gcov-profiling -libcalls-shrinkwrap -separate-const-offset-from-gep -loop-instsimplify -lower-constant-intrinsics -nary-reassociate -coro-early -prune-eh -indvars -loop-unswitch -barrier -sccp -deadargelim -constprop -loop-reroll -sink -loop-versioning-licm -loop-predication -ipsccp -ipconstprop -globalopt -sink -constprop -loop-instsimplify -lowerinvoke -pgo-memop-opt -early-cse-memssa -lowerinvoke -callsite-splitting -deadargelim -pgo-memop-opt -sancov -post-inline-ee-instrument -simple-loop-unswitch -sroa -loop-versioning-licm -loop-interchange -instsimplify -indvars -flattencfg -slp-vectorizer -always-inline -instcombine -infer-address-spaces -add-discriminators -break-crit-edges -ipconstprop -slsr -simplifycfg -correlated-propagation -load-store-vectorizer -instcombine -rewrite-statepoints-for-gc -lower-widenable-condition -instcombine -div-rem-pairs -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0632470119521908,65.17371106147766,opt -ipconstprop -mem2reg -reg2mem -ee-instrument -inferattrs -break-crit-edges -sancov -loop-vectorize -rpo-functionattrs -consthoist -loop-unroll-and-jam -coro-elide -always-inline -loop-fusion -bdce -loop-idiom -functionattrs -strip-nondebug -constprop -div-rem-pairs -loop-simplify -slp-vectorizer -loop-sink -name-anon-globals -loop-interchange -loop-load-elim -rpo-functionattrs -redundant-dbg-inst-elim -guard-widening -add-discriminators -correlated-propagation -instcombine -loop-predication -memcpyopt -early-cse-memssa -insert-gcov-profiling -rpo-functionattrs -gvn -redundant-dbg-inst-elim -loop-unroll-and-jam -div-rem-pairs -loop-reduce -ipconstprop -consthoist -functionattrs -mergereturn -loop-simplify -loop-guard-widening -sink -newgvn -lower-guard-intrinsic -loop-simplifycfg -separate-const-offset-from-gep -rewrite-statepoints-for-gc -guard-widening -scalarizer -die -strip-debug-declare -loop-rotate -partial-inliner -newgvn -bdce -gvn-hoist -sancov -loop-guard-widening -post-inline-ee-instrument -strip-nondebug -lower-widenable-condition -loop-interchange -indvars -dse -loop-load-elim -ipconstprop -always-inline -partially-inline-libcalls -loop-predication -loop-guard-widening -sroa -load-store-vectorizer -load-store-vectorizer -instcombine -rpo-functionattrs -simple-loop-unswitch -barrier -loop-guard-widening -simple-loop-unswitch -attributor -lcssa -sccp -name-anon-globals -attributor -guard-widening -early-cse-memssa -float2int -infer-address-spaces -simple-loop-unswitch -reassociate -globalsplit -loop-predication -lower-matrix-intrinsics -slp-vectorizer -constmerge -globalopt -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0634960159362552,65.4237732887268,opt -consthoist -loop-instsimplify -rpo-functionattrs -forceattrs -lowerswitch -constprop -loop-unswitch -gvn -argpromotion -div-rem-pairs -loop-unswitch -consthoist -loop-instsimplify -lower-widenable-condition -infer-address-spaces -simple-loop-unswitch -loop-reroll -loop-simplify -always-inline -constmerge -separate-const-offset-from-gep -globalsplit -loop-load-elim -lower-expect -irce -lower-matrix-intrinsics -name-anon-globals -loop-load-elim -early-cse-memssa -float2int -loop-simplify -lowerswitch -simple-loop-unswitch -always-inline -argpromotion -loop-predication -instsimplify -instnamer -globalopt -name-anon-globals -adce -gvn-hoist -reg2mem -redundant-dbg-inst-elim -loop-deletion -newgvn -sccp -called-value-propagation -mem2reg -loop-unswitch -inferattrs -loop-guard-widening -dce -globaldce -nary-reassociate -flattencfg -called-value-propagation -simplifycfg -correlated-propagation -coro-cleanup -sink -mldst-motion -slsr -strip-nondebug -inject-tli-mappings -loop-unroll-and-jam -loop-distribute -speculative-execution -libcalls-shrinkwrap -rewrite-statepoints-for-gc -coro-elide -early-cse-memssa -always-inline -mergeicmps -instsimplify -functionattrs -sroa -partially-inline-libcalls -nary-reassociate -instcombine -attributor -infer-address-spaces -loop-simplify -simple-loop-unswitch -sink -loop-versioning -canonicalize-aliases -redundant-dbg-inst-elim -deadargelim -lower-expect -inject-tli-mappings -lower-widenable-condition -load-store-vectorizer -strip-debug-declare -coro-split -bdce -memcpyopt -ee-instrument -loop-simplify -loop-interchange -strip-nondebug -load-store-vectorizer -loop-load-elim -irce -partially-inline-libcalls -prune-eh -consthoist -gvn-hoist -lcssa -loop-predication -cross-dso-cfi -newgvn -mem2reg -sroa -strip-nondebug -indvars -loop-rotate -flattencfg -globaldce -separate-const-offset-from-gep -ipsccp -redundant-dbg-inst-elim -simple-loop-unswitch -strip-nondebug -strip-dead-prototypes -aggressive-instcombine -barrier -dce -mergereturn -attributor -indvars -loop-unroll-and-jam -callsite-splitting -slp-vectorizer -irce -adce -consthoist -licm -sancov -early-cse-memssa -separate-const-offset-from-gep -gvn -called-value-propagation -dse -lower-widenable-condition -loop-interchange -simple-loop-unswitch -loop-rotate -rpo-functionattrs -sink -lower-widenable-condition -coro-split -mem2reg -loop-interchange -lowerinvoke -constmerge -aggressive-instcombine -libcalls-shrinkwrap -gvn -loop-unroll-and-jam -ipconstprop -ee-instrument -strip-nondebug -lower-constant-intrinsics -inferattrs -hotcoldsplit -canonicalize-aliases -speculative-execution -rpo-functionattrs -separate-const-offset-from-gep -cross-dso-cfi -die -infer-address-spaces -gvn -memcpyopt -instcombine input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0643675298804778,63.232433795928955,opt -indvars -mergereturn -pgo-memop-opt -ipsccp -redundant-dbg-inst-elim -add-discriminators -jump-threading -jump-threading -attributor -break-crit-edges -redundant-dbg-inst-elim -lowerswitch -early-cse-memssa -early-cse-memssa -loop-versioning -strip-nondebug -alignment-from-assumptions -ipsccp -sroa -redundant-dbg-inst-elim -dse -loop-simplifycfg -pgo-memop-opt -rewrite-statepoints-for-gc -name-anon-globals -simplifycfg -redundant-dbg-inst-elim -constmerge -consthoist -elim-avail-extern -die -coro-cleanup -globalopt -loop-deletion -slsr -add-discriminators -insert-gcov-profiling -infer-address-spaces -loop-fusion -consthoist -partially-inline-libcalls -callsite-splitting -consthoist -loop-load-elim -rewrite-statepoints-for-gc -loop-reroll -loweratomic -inferattrs -loop-unswitch -consthoist -lower-widenable-condition -loop-distribute -mergereturn -rpo-functionattrs -dse -instsimplify -loop-simplifycfg -loop-distribute -loop-unswitch -loop-simplify -callsite-splitting -rewrite-statepoints-for-gc -instcombine -insert-gcov-profiling -adce -instsimplify -loop-deletion -cross-dso-cfi -loweratomic -loop-distribute -insert-gcov-profiling -slp-vectorizer -lowerswitch -loop-guard-widening -loop-versioning -cross-dso-cfi -indvars -argpromotion -reassociate -simplifycfg -insert-gcov-profiling -lcssa -sancov -pgo-memop-opt -speculative-execution -sancov -post-inline-ee-instrument -sink -argpromotion -partially-inline-libcalls -ipsccp -lower-expect -dse -canonicalize-aliases -dce -sancov -prune-eh -loop-unswitch -functionattrs -globaldce -correlated-propagation -flattencfg -lower-matrix-intrinsics -strip -loop-instsimplify -simplifycfg -loop-fusion -loop-idiom -aggressive-instcombine -loop-idiom -coro-elide -called-value-propagation -loop-load-elim -coro-elide -lcssa -globalopt -slp-vectorizer -scalarizer -loop-simplifycfg -called-value-propagation -coro-early -mergeicmps -ee-instrument -loop-data-prefetch -pgo-memop-opt -gvn -bdce -loop-simplifycfg -partial-inliner -slp-vectorizer -globalsplit -dce -reassociate -loop-versioning-licm -barrier -coro-split -strip -loop-guard-widening -lcssa -partially-inline-libcalls -loop-data-prefetch -constprop -loop-vectorize -sroa -coro-elide -libcalls-shrinkwrap -loop-instsimplify -mergeicmps -loop-rotate -adce -strip-debug-declare -forceattrs -add-discriminators -instnamer -canonicalize-aliases -constmerge -lcssa -coro-early -simple-loop-unswitch -redundant-dbg-inst-elim -lower-expect -tailcallelim -forceattrs -lcssa -strip -loop-fusion -strip-dead-prototypes -mldst-motion -globalopt -ipsccp -nary-reassociate -separate-const-offset-from-gep -load-store-vectorizer -loop-simplify -loop-interchange -loop-unswitch -indvars -inject-tli-mappings -elim-avail-extern -newgvn -loop-simplify -jump-threading input.bc -o output.bc -benchmark://cBench-v1/gsm,1.065986055776892,65.38988256454468,opt -instcombine -rpo-functionattrs -infer-address-spaces -mergereturn -float2int -argpromotion -loop-unroll -simplifycfg -partially-inline-libcalls -argpromotion -loop-interchange -lcssa -strip-nondebug -strip -globalopt -redundant-dbg-inst-elim -dce -guard-widening -cross-dso-cfi -name-anon-globals -aggressive-instcombine -mergeicmps -redundant-dbg-inst-elim -rpo-functionattrs -loop-simplifycfg -coro-early -lower-matrix-intrinsics -ipsccp -loop-unroll -loop-simplify -speculative-execution -rpo-functionattrs -loop-data-prefetch -lowerinvoke -loop-sink -gvn -called-value-propagation -instcombine -sccp -reassociate -loop-unswitch -barrier -loop-reroll -simple-loop-unswitch -coro-early -loop-fusion -loop-unswitch -instnamer -flattencfg -dse -lower-expect -loop-fusion -reg2mem -mergereturn -coro-elide -coro-split -loop-distribute -tailcallelim -loop-unroll -coro-early -lcssa -slp-vectorizer -partially-inline-libcalls -rpo-functionattrs -cross-dso-cfi -dse -rpo-functionattrs -libcalls-shrinkwrap -lower-constant-intrinsics -guard-widening -inject-tli-mappings -slp-vectorizer -flattencfg -lower-expect -loop-predication -lcssa -rewrite-statepoints-for-gc -constprop -nary-reassociate -simplifycfg -early-cse-memssa -lowerinvoke -sroa -coro-split -rewrite-statepoints-for-gc -sink -loop-guard-widening -loop-unswitch -newgvn -callsite-splitting -elim-avail-extern -prune-eh -strip-nondebug -sink -elim-avail-extern -licm -lower-widenable-condition -dce -loop-load-elim -add-discriminators -dse -name-anon-globals -separate-const-offset-from-gep -early-cse-memssa -strip-debug-declare -globalsplit -sancov -name-anon-globals -rpo-functionattrs -irce -rpo-functionattrs -adce -newgvn -loop-guard-widening -loop-idiom -lcssa -post-inline-ee-instrument -loop-unroll-and-jam -lower-guard-intrinsic -functionattrs -jump-threading -rpo-functionattrs -globalsplit -loop-reroll -sancov -loop-load-elim -post-inline-ee-instrument -rewrite-statepoints-for-gc -lower-constant-intrinsics -name-anon-globals -dse -indvars -loweratomic -strip-dead-prototypes -loop-load-elim -canonicalize-aliases -strip-dead-prototypes -prune-eh -loop-versioning-licm -loop-fusion -sancov -guard-widening -loop-distribute -coro-early -strip-debug-declare -flattencfg -lcssa -separate-const-offset-from-gep -tailcallelim -slp-vectorizer -loop-sink -sancov -mldst-motion -strip-nondebug -dce -irce -simple-loop-unswitch -mem2reg -newgvn -irce -lower-widenable-condition -mem2reg -coro-cleanup -aggressive-instcombine -float2int -consthoist -add-discriminators -slsr -inject-tli-mappings -attributor -guard-widening -mergefunc -inferattrs -adce -aggressive-instcombine -instnamer -slp-vectorizer -redundant-dbg-inst-elim -sink -always-inline -inject-tli-mappings -lower-widenable-condition -loop-unroll-and-jam -ee-instrument -load-store-vectorizer -loop-simplify -gvn-hoist -loop-fusion -dse -loop-distribute -loop-fusion -loop-guard-widening -ipsccp -mem2reg -globalsplit -pgo-memop-opt -lower-widenable-condition -instcombine input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0709661354581672,63.0761559009552,opt -coro-early -loop-fusion -adce -infer-address-spaces -loop-guard-widening -simplifycfg -lower-guard-intrinsic -mergereturn -rpo-functionattrs -speculative-execution -div-rem-pairs -forceattrs -strip -instsimplify -called-value-propagation -loop-unroll-and-jam -globalopt -loop-load-elim -lowerinvoke -hotcoldsplit -gvn-hoist -early-cse-memssa -forceattrs -strip-nondebug -instsimplify -globaldce -sccp -mergereturn -inject-tli-mappings -loop-interchange -sink -speculative-execution -adce -adce -argpromotion -sccp -inferattrs -tailcallelim -loop-vectorize -div-rem-pairs -elim-avail-extern -loop-fusion -instsimplify -sroa -functionattrs -pgo-memop-opt -argpromotion -mergeicmps -constprop -ee-instrument -flattencfg -mldst-motion -loop-idiom -alignment-from-assumptions -adce -barrier -mergefunc -ee-instrument -separate-const-offset-from-gep -gvn-hoist -adce -prune-eh -lcssa -loop-idiom -loop-unswitch -always-inline -slp-vectorizer -instcombine -slp-vectorizer -prune-eh -memcpyopt -alignment-from-assumptions -sccp -partially-inline-libcalls -ee-instrument -inferattrs -rpo-functionattrs -inject-tli-mappings -loop-distribute -instcombine -redundant-dbg-inst-elim -aggressive-instcombine -canonicalize-aliases -rpo-functionattrs -loop-instsimplify -mem2reg -licm -loop-interchange -hotcoldsplit -loop-predication -strip-nondebug -globalopt -memcpyopt -lower-widenable-condition -ee-instrument -called-value-propagation -simple-loop-unswitch -constmerge -slp-vectorizer -loop-simplifycfg -partial-inliner -loop-load-elim -gvn -licm -early-cse-memssa -correlated-propagation -loop-interchange -ee-instrument -float2int -mergereturn -pgo-memop-opt -ipconstprop -mergeicmps -die -ee-instrument -load-store-vectorizer -ipsccp -infer-address-spaces -callsite-splitting -flattencfg -loop-versioning-licm -sink -infer-address-spaces -loop-reroll -coro-early -loop-instsimplify -float2int -gvn-hoist -elim-avail-extern -bdce -lower-guard-intrinsic -loop-fusion -aggressive-instcombine -flattencfg -gvn -coro-early -deadargelim -adce -sancov -rpo-functionattrs -pgo-memop-opt -adce -loweratomic -ipsccp -guard-widening -simple-loop-unswitch -jump-threading -adce -loop-sink -early-cse-memssa -simplifycfg -coro-early -loop-idiom -early-cse-memssa -coro-cleanup -indvars -infer-address-spaces -infer-address-spaces -lower-expect -mem2reg -sancov -loop-interchange -loop-versioning -mergefunc -post-inline-ee-instrument -loop-versioning -loop-reroll -ipsccp -ee-instrument -nary-reassociate -hotcoldsplit -slp-vectorizer -strip-debug-declare -gvn-hoist -strip-nondebug -sancov -loop-distribute -loop-idiom -strip-debug-declare -reassociate -adce -newgvn -loop-fusion -mem2reg -memcpyopt -strip-dead-prototypes -instnamer -guard-widening -sroa -loop-simplify -rpo-functionattrs -slp-vectorizer -post-inline-ee-instrument -lower-constant-intrinsics -constmerge -loop-load-elim -ipsccp -loop-versioning -hotcoldsplit -loop-simplifycfg -mergeicmps -loop-idiom -rpo-functionattrs -constmerge -die -attributor -lower-expect -instcombine input.bc -o output.bc -benchmark://cBench-v1/gsm,1.0743276892430278,63.134528160095215,opt -simple-loop-unswitch -constprop -gvn-hoist -name-anon-globals -indvars -always-inline -name-anon-globals -instcombine -always-inline -simplifycfg -pgo-memop-opt -rewrite-statepoints-for-gc -loop-distribute -nary-reassociate -name-anon-globals -mergefunc -callsite-splitting -loop-rotate -loop-predication -alignment-from-assumptions -forceattrs -reg2mem -redundant-dbg-inst-elim -reg2mem -barrier -slsr -lower-widenable-condition -loop-reduce -loop-idiom -constprop -strip -tailcallelim -simplifycfg -callsite-splitting -loop-simplifycfg -mergeicmps -loop-rotate -mem2reg -coro-early -alignment-from-assumptions -loop-simplify -simplifycfg -dse -loop-data-prefetch -simple-loop-unswitch -loop-simplify -constprop -loop-guard-widening -cross-dso-cfi -sink -globalsplit -strip -instcombine -adce -always-inline -inject-tli-mappings -speculative-execution -instnamer -barrier -loop-simplifycfg -newgvn -name-anon-globals -lowerinvoke -tailcallelim -gvn -loop-sink -hotcoldsplit -slp-vectorizer -loop-unswitch -coro-split -canonicalize-aliases -loop-unroll-and-jam -dse -lower-widenable-condition -lower-matrix-intrinsics -insert-gcov-profiling -loop-unroll-and-jam -loop-instsimplify -strip-debug-declare -flattencfg -correlated-propagation -guard-widening -coro-elide -functionattrs -argpromotion -flattencfg -newgvn -strip-debug-declare -loop-data-prefetch -loop-unroll-and-jam -div-rem-pairs -insert-gcov-profiling -sccp -float2int -canonicalize-aliases -ee-instrument -loop-fusion -sancov -loop-versioning-licm -globalsplit -loop-unswitch -partial-inliner -deadargelim -functionattrs -lowerinvoke -loop-deletion -coro-early -jump-threading -globalsplit -coro-elide -ipsccp -redundant-dbg-inst-elim -prune-eh -coro-early -ee-instrument -strip -libcalls-shrinkwrap -rpo-functionattrs -insert-gcov-profiling -mergeicmps -loop-interchange -adce -strip-nondebug -tailcallelim -nary-reassociate -loop-reroll -mldst-motion -coro-cleanup -reg2mem -coro-early -rpo-functionattrs -loop-fusion -loop-guard-widening -redundant-dbg-inst-elim -bdce -load-store-vectorizer -called-value-propagation -loweratomic -jump-threading -constprop -float2int -globalopt -speculative-execution -guard-widening -argpromotion -lower-constant-intrinsics -called-value-propagation -callsite-splitting -loop-load-elim -loop-sink -loop-distribute -mergereturn -load-store-vectorizer -div-rem-pairs -partial-inliner -alignment-from-assumptions -gvn-hoist -correlated-propagation -instnamer -scalarizer -loop-sink -mem2reg -libcalls-shrinkwrap -sroa -partially-inline-libcalls -coro-split -always-inline -globalsplit -separate-const-offset-from-gep -loop-guard-widening -forceattrs -loop-unroll-and-jam -loop-unswitch -licm -instcombine -slsr -callsite-splitting -pgo-memop-opt -coro-cleanup -cross-dso-cfi -rpo-functionattrs -loop-load-elim -loop-idiom -globalopt -dce -die -gvn-hoist -newgvn -reassociate -loop-simplifycfg -load-store-vectorizer -licm -loweratomic -aggressive-instcombine -loop-unswitch -mergeicmps -flattencfg -mldst-motion -globaldce -loop-reroll -loop-vectorize -lower-guard-intrinsic -loop-unswitch -early-cse-memssa -slp-vectorizer -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9643912737508797,63.807353258132935,opt -instnamer -lcssa -infer-address-spaces -lower-guard-intrinsic -loop-simplify -slp-vectorizer -deadargelim -adce -barrier -inferattrs -early-cse-memssa -separate-const-offset-from-gep -sccp -strip -mergereturn -sroa -sroa -instcombine -separate-const-offset-from-gep -float2int -simple-loop-unswitch -correlated-propagation -loop-reduce -pgo-memop-opt -alignment-from-assumptions -coro-early -loop-vectorize -constprop -sccp -mergereturn -argpromotion -instsimplify -jump-threading -early-cse-memssa -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9748064743138635,64.32104349136353,opt -strip-nondebug -indvars -coro-elide -flattencfg -deadargelim -tailcallelim -tailcallelim -prune-eh -loweratomic -separate-const-offset-from-gep -lower-constant-intrinsics -loop-interchange -insert-gcov-profiling -lower-matrix-intrinsics -sroa -redundant-dbg-inst-elim -simplifycfg -inferattrs -loop-load-elim -gvn-hoist -slsr -libcalls-shrinkwrap -constprop -loop-unroll -instcombine -attributor -strip-debug-declare -loop-versioning-licm -loop-fusion -lcssa -strip -ee-instrument -sink -redundant-dbg-inst-elim -loop-interchange -consthoist -globalopt -loop-deletion -constmerge -sroa -prune-eh -sccp -globalsplit -mergeicmps -prune-eh -simplifycfg -coro-split -lowerinvoke -cross-dso-cfi -mergereturn -consthoist -slsr -simplifycfg -float2int -deadargelim -speculative-execution -loop-distribute -loop-fusion -loop-fusion -div-rem-pairs -loop-unroll-and-jam -gvn-hoist -loop-unroll -strip-debug-declare -loop-idiom -constmerge -ee-instrument -loop-sink -loweratomic -strip-debug-declare -mergereturn -inject-tli-mappings -canonicalize-aliases -loop-reroll -loop-unroll-and-jam -name-anon-globals -guard-widening -jump-threading -break-crit-edges -mergeicmps -canonicalize-aliases -elim-avail-extern -lower-expect -sccp -ipsccp -loop-simplifycfg -loop-unroll -scalarizer -strip-nondebug -loop-unroll -hotcoldsplit -mldst-motion -inferattrs -aggressive-instcombine -called-value-propagation -instcombine -coro-split -tailcallelim -sancov -newgvn -scalarizer -lower-widenable-condition -gvn -separate-const-offset-from-gep -lower-matrix-intrinsics -newgvn -add-discriminators -lower-matrix-intrinsics -pgo-memop-opt -callsite-splitting -loop-unroll-and-jam -sroa -lower-expect -functionattrs -sink -loop-guard-widening -coro-cleanup -functionattrs -lower-widenable-condition -irce -cross-dso-cfi -reassociate -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9791695988740322,64.13968276977539,opt -name-anon-globals -break-crit-edges -coro-early -loop-guard-widening -partial-inliner -slp-vectorizer -loweratomic -loop-reduce -partial-inliner -sroa -instcombine -correlated-propagation -sccp -strip-nondebug -simplifycfg -mergeicmps -inject-tli-mappings -slsr -loop-versioning-licm -alignment-from-assumptions -loop-unroll-and-jam -newgvn -instsimplify -sroa -scalarizer -instcombine -ee-instrument -scalarizer -irce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9847994370161856,66.86581897735596,opt -redundant-dbg-inst-elim -lower-widenable-condition -strip -nary-reassociate -loop-reduce -nary-reassociate -loop-load-elim -simple-loop-unswitch -loop-versioning-licm -redundant-dbg-inst-elim -scalarizer -nary-reassociate -instnamer -simplifycfg -break-crit-edges -loop-load-elim -indvars -load-store-vectorizer -dse -lower-matrix-intrinsics -lower-constant-intrinsics -pgo-memop-opt -slsr -instsimplify -sink -loop-predication -loweratomic -float2int -constmerge -speculative-execution -loop-reroll -callsite-splitting -always-inline -consthoist -redundant-dbg-inst-elim -cross-dso-cfi -inferattrs -globaldce -ipsccp -mergeicmps -instsimplify -constprop -redundant-dbg-inst-elim -sroa -globalopt -div-rem-pairs -coro-elide -early-cse-memssa -loop-versioning-licm -inferattrs -scalarizer -globalopt -loop-versioning -rpo-functionattrs -load-store-vectorizer -barrier -globalopt -irce -redundant-dbg-inst-elim -ipconstprop -guard-widening -post-inline-ee-instrument -globalopt -mem2reg -coro-cleanup -sroa -deadargelim -instsimplify -add-discriminators -constprop -alignment-from-assumptions -partially-inline-libcalls -aggressive-instcombine -reg2mem -early-cse-memssa -strip -mem2reg -newgvn -coro-split -always-inline -strip-nondebug -rewrite-statepoints-for-gc -licm -functionattrs -instsimplify -slsr -hotcoldsplit -dce -infer-address-spaces -coro-cleanup -float2int -post-inline-ee-instrument -loop-instsimplify -elim-avail-extern -globaldce -functionattrs -sink -guard-widening -loop-sink -add-discriminators -inject-tli-mappings -globalopt -indvars -instnamer -instcombine -ipconstprop -strip-debug-declare -functionattrs -jump-threading -gvn -always-inline -prune-eh -attributor -slp-vectorizer -newgvn input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9855031667839551,64.19602680206299,opt -functionattrs -barrier -globalsplit -speculative-execution -correlated-propagation -separate-const-offset-from-gep -loop-interchange -constmerge -memcpyopt -loop-distribute -redundant-dbg-inst-elim -loop-instsimplify -lower-expect -alignment-from-assumptions -early-cse-memssa -indvars -gvn-hoist -globalsplit -partially-inline-libcalls -constprop -loop-unswitch -strip -post-inline-ee-instrument -loop-versioning -sccp -argpromotion -instcombine -argpromotion -lowerinvoke -loop-deletion -elim-avail-extern -sroa -partially-inline-libcalls -reassociate -dse -scalarizer -strip-nondebug -loop-guard-widening -strip-dead-prototypes -gvn -loop-data-prefetch -sccp -name-anon-globals -coro-early -simplifycfg -called-value-propagation -instnamer -load-store-vectorizer -forceattrs -mergefunc -prune-eh -lower-constant-intrinsics -ipconstprop -newgvn -jump-threading -called-value-propagation -instcombine input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9874736101337088,64.0391092300415,opt -loop-idiom -float2int -aggressive-instcombine -nary-reassociate -simple-loop-unswitch -mldst-motion -loop-sink -correlated-propagation -insert-gcov-profiling -partially-inline-libcalls -lower-widenable-condition -scalarizer -load-store-vectorizer -guard-widening -hotcoldsplit -aggressive-instcombine -redundant-dbg-inst-elim -guard-widening -loop-guard-widening -indvars -inferattrs -sancov -dce -rpo-functionattrs -called-value-propagation -coro-split -callsite-splitting -newgvn -mem2reg -instnamer -instsimplify -partially-inline-libcalls -loop-versioning-licm -deadargelim -instcombine -newgvn -pgo-memop-opt -ipconstprop -pgo-memop-opt -loop-versioning -loweratomic -strip-dead-prototypes -callsite-splitting -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9894440534834623,65.27008605003357,opt -deadargelim -loop-vectorize -inferattrs -jump-threading -name-anon-globals -coro-cleanup -simplifycfg -jump-threading -gvn-hoist -div-rem-pairs -loop-idiom -reg2mem -loop-unswitch -loop-unswitch -loop-versioning -hotcoldsplit -slp-vectorizer -sink -loop-interchange -sancov -gvn -redundant-dbg-inst-elim -globalsplit -coro-elide -strip-nondebug -lower-constant-intrinsics -loop-versioning -indvars -loop-load-elim -lower-widenable-condition -loop-reroll -partial-inliner -gvn -cross-dso-cfi -always-inline -loop-versioning -argpromotion -loop-unroll-and-jam -strip-debug-declare -lower-guard-intrinsic -barrier -argpromotion -loop-simplifycfg -argpromotion -coro-cleanup -prune-eh -coro-cleanup -coro-early -loop-simplifycfg -break-crit-edges -sccp -ipconstprop -called-value-propagation -inject-tli-mappings -memcpyopt -tailcallelim -argpromotion -tailcallelim -gvn-hoist -dce -elim-avail-extern -post-inline-ee-instrument -slsr -always-inline -indvars -inferattrs -simplifycfg -speculative-execution -always-inline -alignment-from-assumptions -inject-tli-mappings -globalsplit -coro-cleanup -gvn -load-store-vectorizer -insert-gcov-profiling -lowerinvoke -partially-inline-libcalls -instcombine -name-anon-globals -globalsplit -separate-const-offset-from-gep -sccp -forceattrs -coro-elide -barrier -loop-reroll -nary-reassociate -reassociate -callsite-splitting -post-inline-ee-instrument -newgvn -inferattrs -loop-versioning -mergereturn -always-inline -post-inline-ee-instrument -strip -loop-idiom -mem2reg -newgvn -break-crit-edges -scalarizer -reassociate -loop-unroll -strip-nondebug -lower-matrix-intrinsics -rpo-functionattrs -cross-dso-cfi -instcombine -break-crit-edges -dce -inject-tli-mappings -sink -pgo-memop-opt -globalopt -consthoist -loop-idiom -rpo-functionattrs -functionattrs -always-inline -newgvn -float2int -argpromotion -instnamer -hotcoldsplit -simplifycfg -lower-expect -mergefunc input.bc -o output.bc -benchmark://cBench-v1/ispell,0.9952146375791695,65.40430235862732,opt -name-anon-globals -memcpyopt -aggressive-instcombine -float2int -ee-instrument -gvn-hoist -div-rem-pairs -instnamer -prune-eh -forceattrs -coro-cleanup -alignment-from-assumptions -lower-guard-intrinsic -coro-elide -newgvn -prune-eh -sancov -indvars -float2int -loop-guard-widening -loop-simplifycfg -loop-idiom -dse -prune-eh -loop-guard-widening -flattencfg -lower-guard-intrinsic -deadargelim -float2int -simplifycfg -load-store-vectorizer -coro-split -float2int -lowerinvoke -mergefunc -guard-widening -break-crit-edges -inferattrs -mem2reg -instcombine -cross-dso-cfi -insert-gcov-profiling -memcpyopt -gvn-hoist -reg2mem -separate-const-offset-from-gep -elim-avail-extern -sroa -ipconstprop -loop-unroll -pgo-memop-opt -memcpyopt -sancov -newgvn -functionattrs -slp-vectorizer -loop-unroll-and-jam -loop-deletion -rpo-functionattrs -lower-widenable-condition -attributor -loop-simplifycfg -simple-loop-unswitch -loop-idiom -loop-fusion -ipsccp -loop-guard-widening -loop-vectorize -alignment-from-assumptions -insert-gcov-profiling -consthoist -sancov -ee-instrument -loop-deletion -redundant-dbg-inst-elim -insert-gcov-profiling -barrier -consthoist -div-rem-pairs -partial-inliner -lcssa -correlated-propagation -partially-inline-libcalls -lower-constant-intrinsics -callsite-splitting -loop-predication -constmerge -sccp -jump-threading -instsimplify input.bc -o output.bc -benchmark://cBench-v1/ispell,1.0014074595355382,64.54691743850708,opt -callsite-splitting -slp-vectorizer -name-anon-globals -argpromotion -insert-gcov-profiling -inject-tli-mappings -lowerinvoke -sancov -globalopt -strip-dead-prototypes -div-rem-pairs -always-inline -loop-idiom -instnamer -loop-versioning -cross-dso-cfi -sccp -bdce -mergeicmps -slp-vectorizer -pgo-memop-opt -reg2mem -prune-eh -constmerge -constmerge -speculative-execution -strip-nondebug -lower-matrix-intrinsics -early-cse-memssa -mem2reg -loweratomic -sroa -loop-reroll -globalsplit -globalsplit -loop-unroll -newgvn -strip-dead-prototypes -constprop -indvars -simplifycfg -argpromotion -post-inline-ee-instrument -loop-reroll -argpromotion -globalsplit -sancov -early-cse-memssa -loop-simplifycfg -gvn -instcombine -strip-nondebug -lowerinvoke -slp-vectorizer -mldst-motion -loweratomic -reassociate -loop-simplifycfg -rewrite-statepoints-for-gc -loop-sink -break-crit-edges -mergeicmps -jump-threading -loop-distribute -lcssa -canonicalize-aliases -attributor -bdce -lower-expect -coro-split -loop-fusion -guard-widening -instnamer -rpo-functionattrs -strip-dead-prototypes -early-cse-memssa -callsite-splitting -separate-const-offset-from-gep -newgvn -lower-matrix-intrinsics -gvn -mldst-motion -loop-data-prefetch -ipconstprop -dse -strip-nondebug -loop-versioning-licm -newgvn -libcalls-shrinkwrap -early-cse-memssa -dse -attributor -early-cse-memssa -called-value-propagation -lower-matrix-intrinsics -slp-vectorizer -coro-early -slsr -argpromotion -tailcallelim -slsr -jump-threading -coro-early -gvn-hoist -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/ispell,1.0014074595355382,64.55206608772278,opt -memcpyopt -inferattrs -speculative-execution -consthoist -callsite-splitting -flattencfg -loop-simplifycfg -scalarizer -reassociate -mergeicmps -always-inline -gvn-hoist -newgvn -dse -mem2reg -speculative-execution -loop-idiom -loop-simplify -simplifycfg -newgvn -infer-address-spaces -jump-threading -load-store-vectorizer -loop-data-prefetch -sink -insert-gcov-profiling -lower-constant-intrinsics -barrier -loop-idiom -mergefunc -add-discriminators -div-rem-pairs -functionattrs -float2int -deadargelim -licm -scalarizer -forceattrs -loop-predication -instcombine -simplifycfg -loop-vectorize -flattencfg -loop-unroll-and-jam -loop-reroll -guard-widening -loop-distribute -lcssa -div-rem-pairs -coro-cleanup -barrier -strip-dead-prototypes -prune-eh -jump-threading -loop-distribute -licm -argpromotion -forceattrs -guard-widening -lower-widenable-condition -simple-loop-unswitch -redundant-dbg-inst-elim -loop-reduce -forceattrs -dce -instsimplify -load-store-vectorizer -flattencfg -post-inline-ee-instrument -loop-distribute -loop-load-elim -ee-instrument -memcpyopt -loop-versioning-licm -barrier -coro-split -lower-constant-intrinsics -constprop -load-store-vectorizer -rewrite-statepoints-for-gc -loop-load-elim -irce -coro-elide -simple-loop-unswitch -loop-predication -lower-guard-intrinsic -deadargelim -lower-expect -functionattrs -globaldce -newgvn -dce -cross-dso-cfi -loop-simplifycfg -float2int -die -instnamer -memcpyopt -lower-widenable-condition -loop-distribute -strip-debug-declare -coro-elide -barrier -rpo-functionattrs -ee-instrument -instsimplify -bdce -dce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0063552097219208,76.24695205688477,opt -sccp -partially-inline-libcalls -barrier -slsr -hotcoldsplit -forceattrs -simple-loop-unswitch -dse -strip-dead-prototypes -rewrite-statepoints-for-gc -hotcoldsplit -die -cross-dso-cfi -sancov -lower-expect -mem2reg -loop-vectorize -newgvn -loop-vectorize -loop-reroll -loop-sink -licm -lowerswitch -bdce -mergeicmps -strip-dead-prototypes -pgo-memop-opt -lowerswitch -mldst-motion -loop-rotate -div-rem-pairs -loop-fusion -forceattrs -loop-unroll-and-jam -coro-split -canonicalize-aliases -scalarizer -dce -constmerge -dse -attributor -reassociate -loop-simplify -jump-threading -speculative-execution -sroa -loop-idiom -name-anon-globals -break-crit-edges -loop-interchange -coro-split -constprop -attributor -simple-loop-unswitch -coro-elide -constmerge -loop-deletion -attributor -licm -post-inline-ee-instrument -pgo-memop-opt -newgvn -loweratomic -loop-versioning-licm -strip-nondebug -load-store-vectorizer -forceattrs -coro-early -break-crit-edges -loop-rotate -slsr -simplifycfg -tailcallelim -sroa -lower-constant-intrinsics -libcalls-shrinkwrap -strip-debug-declare -instcombine input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.006696220975292,73.28315615653992,opt -slp-vectorizer -elim-avail-extern -libcalls-shrinkwrap -load-store-vectorizer -rpo-functionattrs -mem2reg -callsite-splitting -instcombine -constprop -licm -barrier -load-store-vectorizer -functionattrs -sink -redundant-dbg-inst-elim -attributor -jump-threading -coro-cleanup -strip-nondebug -loop-versioning -name-anon-globals -deadargelim -libcalls-shrinkwrap -mergereturn -scalarizer -strip-dead-prototypes -libcalls-shrinkwrap -flattencfg -indvars -loweratomic -loweratomic -infer-address-spaces -canonicalize-aliases -prune-eh -gvn-hoist -ipconstprop -insert-gcov-profiling -newgvn -loop-load-elim -bdce -cross-dso-cfi -infer-address-spaces -lower-expect -prune-eh -globaldce input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0068822271134945,73.44375777244568,opt -instsimplify -early-cse-memssa -barrier -loop-unswitch -argpromotion -mergereturn -attributor -memcpyopt -float2int -coro-early -redundant-dbg-inst-elim -flattencfg -div-rem-pairs -scalarizer -die -loop-instsimplify -early-cse-memssa -argpromotion -globaldce -break-crit-edges -mergereturn -dse -loop-simplifycfg -inject-tli-mappings -mem2reg -lcssa -argpromotion -indvars -slp-vectorizer -scalarizer -coro-elide -sancov -adce -instnamer -sroa -alignment-from-assumptions -bdce -aggressive-instcombine -ipconstprop -ipsccp -attributor -early-cse-memssa -instcombine -mergefunc -ipconstprop -rpo-functionattrs -infer-address-spaces -jump-threading -instsimplify input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.012245404098335,77.20652055740356,opt -prune-eh -redundant-dbg-inst-elim -strip-nondebug -partially-inline-libcalls -mergeicmps -inferattrs -die -strip-dead-prototypes -newgvn -strip-nondebug -mergefunc -sroa -instsimplify -instnamer -mldst-motion -jump-threading -ee-instrument -die -ipconstprop -argpromotion -scalarizer -coro-early -memcpyopt -loop-instsimplify -barrier -die -loop-deletion -slsr -coro-cleanup -instsimplify -coro-cleanup -instcombine -reg2mem -redundant-dbg-inst-elim -guard-widening -slsr -deadargelim -dse -float2int -attributor -loop-instsimplify -sink -redundant-dbg-inst-elim -indvars -reg2mem -early-cse-memssa -loop-data-prefetch -coro-elide -tailcallelim -slp-vectorizer -consthoist -gvn-hoist -lower-constant-intrinsics -lower-expect -deadargelim -sink -mergefunc -coro-elide -coro-early -insert-gcov-profiling -float2int -inject-tli-mappings -loop-fusion -libcalls-shrinkwrap -loop-simplify -lower-widenable-condition -globaldce -loop-instsimplify -loop-sink -functionattrs -memcpyopt -callsite-splitting -early-cse-memssa -simplifycfg -globaldce -sroa -coro-split -licm -mergereturn -lower-matrix-intrinsics -loop-versioning-licm -name-anon-globals -inferattrs -instcombine -rpo-functionattrs -elim-avail-extern -loop-versioning-licm -consthoist -scalarizer -mergefunc -tailcallelim -barrier -loop-distribute -loop-reroll -irce -loop-interchange -deadargelim -memcpyopt -indvars -float2int -mem2reg -loop-sink -globalopt -pgo-memop-opt -ipconstprop -mldst-motion -reassociate -loop-unroll-and-jam -name-anon-globals -jump-threading input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0148184890101377,75.44664001464844,opt -lcssa -rewrite-statepoints-for-gc -dse -sancov -inferattrs -inject-tli-mappings -speculative-execution -sccp -flattencfg -dse -lower-widenable-condition -ipsccp -rpo-functionattrs -indvars -load-store-vectorizer -gvn-hoist -ipsccp -callsite-splitting -coro-early -partially-inline-libcalls -loop-versioning -dce -libcalls-shrinkwrap -loop-versioning -strip-debug-declare -coro-cleanup -loop-sink -lower-widenable-condition -load-store-vectorizer -flattencfg -mergefunc -early-cse-memssa -canonicalize-aliases -functionattrs -loop-interchange -loop-instsimplify -guard-widening -ee-instrument -bdce -loop-guard-widening -strip -scalarizer -instsimplify -ipsccp -loop-fusion -correlated-propagation -scalarizer -mergefunc -coro-split -loop-reroll -loop-versioning-licm -constmerge -loop-sink -dse -jump-threading -mldst-motion -separate-const-offset-from-gep -instnamer -post-inline-ee-instrument -tailcallelim -coro-elide -loop-distribute -called-value-propagation -loop-unswitch -speculative-execution -constprop -ipsccp -coro-cleanup -licm -gvn-hoist -loop-unroll-and-jam -mldst-motion -ipconstprop -flattencfg -loop-simplify -reg2mem -loweratomic -loop-interchange -loop-guard-widening -consthoist -cross-dso-cfi -loop-unroll -sroa -pgo-memop-opt -strip-debug-declare -loop-guard-widening -loop-instsimplify -nary-reassociate -forceattrs -loop-vectorize -loop-instsimplify -lcssa -instcombine -libcalls-shrinkwrap -post-inline-ee-instrument -loop-reroll -indvars -name-anon-globals -inferattrs -loop-load-elim -instsimplify -memcpyopt -ee-instrument -loop-unroll-and-jam -adce -constprop -lowerinvoke -ipsccp -consthoist -constmerge -loweratomic -gvn-hoist -slsr -infer-address-spaces -strip-nondebug -pgo-memop-opt -loop-unroll-and-jam -functionattrs -slp-vectorizer -ipsccp -float2int -loop-sink -simplifycfg -correlated-propagation -loop-unroll-and-jam -loop-interchange -loop-guard-widening -loop-sink -div-rem-pairs -called-value-propagation -instcombine -load-store-vectorizer -gvn -globaldce -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0154075084477787,74.82714986801147,opt -loop-unroll-and-jam -argpromotion -pgo-memop-opt -coro-cleanup -lowerinvoke -loop-reroll -sccp -strip-debug-declare -alignment-from-assumptions -loop-instsimplify -loop-distribute -strip-dead-prototypes -rewrite-statepoints-for-gc -canonicalize-aliases -mergeicmps -post-inline-ee-instrument -early-cse-memssa -bdce -functionattrs -break-crit-edges -loop-deletion -memcpyopt -loop-guard-widening -name-anon-globals -loop-reduce -loop-fusion -canonicalize-aliases -attributor -argpromotion -coro-cleanup -reg2mem -strip-dead-prototypes -add-discriminators -globaldce -loop-interchange -mem2reg -lower-widenable-condition -gvn -partially-inline-libcalls -lower-guard-intrinsic -loop-instsimplify -instsimplify -lower-guard-intrinsic -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0182906035899184,74.4551010131836,opt -attributor -loop-instsimplify -sroa -argpromotion -redundant-dbg-inst-elim -flattencfg -strip -jump-threading -mergeicmps -lower-matrix-intrinsics -scalarizer -nary-reassociate -lower-widenable-condition -barrier -adce -indvars -coro-cleanup -mergeicmps -redundant-dbg-inst-elim -elim-avail-extern -lower-widenable-condition -inferattrs -alignment-from-assumptions -coro-split -ipconstprop -loop-vectorize -forceattrs -loop-versioning-licm -mergeicmps -loop-distribute -inferattrs -instcombine -strip -inject-tli-mappings -lower-expect -indvars -constprop -tailcallelim -loop-fusion -licm -nary-reassociate -elim-avail-extern -ipconstprop -redundant-dbg-inst-elim -gvn-hoist -lower-widenable-condition -sancov -loop-instsimplify -indvars -mldst-motion -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0190346281427287,72.94964694976807,opt -hotcoldsplit -loop-load-elim -mem2reg -redundant-dbg-inst-elim -functionattrs -constprop -guard-widening -mergeicmps -sroa -coro-cleanup -gvn -load-store-vectorizer -called-value-propagation -loweratomic -loop-versioning-licm -ipsccp -inject-tli-mappings -mem2reg -loop-interchange -lowerinvoke -redundant-dbg-inst-elim -jump-threading -tailcallelim -sink -inject-tli-mappings -instcombine -add-discriminators -partially-inline-libcalls -coro-elide -lcssa -infer-address-spaces -jump-threading -break-crit-edges -aggressive-instcombine -infer-address-spaces -early-cse-memssa -elim-avail-extern -redundant-dbg-inst-elim -flattencfg -lowerinvoke -slp-vectorizer -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0216077130545307,374.86166167259216,opt -sccp -mergereturn -constmerge -reassociate -lowerinvoke -globalopt -coro-cleanup -strip-debug-declare -strip-debug-declare -lower-matrix-intrinsics -functionattrs -jump-threading -ipconstprop -alignment-from-assumptions -loop-versioning-licm -strip -alignment-from-assumptions -ee-instrument -lcssa -dce -rewrite-statepoints-for-gc -ipconstprop -mem2reg -strip -loop-guard-widening -mergereturn -correlated-propagation -instsimplify -name-anon-globals -lower-expect -div-rem-pairs -constprop -lower-matrix-intrinsics -always-inline -guard-widening -newgvn -coro-early -forceattrs -ipconstprop -argpromotion -aggressive-instcombine -correlated-propagation -break-crit-edges -called-value-propagation -strip-debug-declare -lower-matrix-intrinsics -gvn-hoist -gvn-hoist -callsite-splitting -lower-constant-intrinsics -lowerinvoke -tailcallelim -lower-expect -rewrite-statepoints-for-gc -hotcoldsplit -irce -mldst-motion -gvn-hoist -aggressive-instcombine -loop-idiom -globalsplit -instcombine -post-inline-ee-instrument -loop-versioning -aggressive-instcombine -globalsplit -memcpyopt -constprop -infer-address-spaces -early-cse-memssa -partially-inline-libcalls -guard-widening -die -scalarizer -mergefunc -licm -loop-data-prefetch -loop-data-prefetch -loop-deletion -hotcoldsplit -rewrite-statepoints-for-gc -gvn-hoist -scalarizer -lower-constant-intrinsics -constprop -reg2mem -rpo-functionattrs -loop-reduce -loop-unroll-and-jam -lower-widenable-condition -loop-guard-widening -insert-gcov-profiling -speculative-execution -instsimplify -sroa -mergefunc -licm -loop-sink -loop-simplify -globalsplit -lower-matrix-intrinsics -hotcoldsplit -canonicalize-aliases -indvars -die -coro-cleanup -cross-dso-cfi -hotcoldsplit -called-value-propagation -simple-loop-unswitch -simplifycfg -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,1.0307220138264561,76.84722781181335,opt -coro-early -indvars -slp-vectorizer -callsite-splitting -attributor -loop-reroll -lower-constant-intrinsics -instsimplify -consthoist -lcssa -partially-inline-libcalls -alignment-from-assumptions -deadargelim -lower-widenable-condition -loop-versioning -adce -add-discriminators -speculative-execution -loop-predication -die -elim-avail-extern -loop-deletion -licm -loop-load-elim -break-crit-edges -sink -simplifycfg -div-rem-pairs -forceattrs -tailcallelim -strip-dead-prototypes -loweratomic -rpo-functionattrs -constprop -loop-simplifycfg -canonicalize-aliases -nary-reassociate -consthoist -loop-simplifycfg -reg2mem -lcssa -infer-address-spaces -lower-constant-intrinsics -loop-versioning-licm -insert-gcov-profiling -strip-dead-prototypes -loop-idiom -coro-split -strip-nondebug -barrier -ee-instrument -name-anon-globals -sancov -loop-instsimplify -loop-versioning -loop-simplify -loop-deletion -aggressive-instcombine -globalopt -gvn-hoist -sroa -instcombine -correlated-propagation -loop-sink -sccp -simple-loop-unswitch -argpromotion -rewrite-statepoints-for-gc -libcalls-shrinkwrap -gvn-hoist -elim-avail-extern -always-inline -mergereturn -newgvn -sancov -irce -strip -slp-vectorizer -inject-tli-mappings -lower-expect -always-inline -sancov -partially-inline-libcalls -indvars -mem2reg -correlated-propagation -coro-split -loop-load-elim -coro-early -sink -instsimplify -constprop -guard-widening -instsimplify -loop-guard-widening -constmerge -simplifycfg -inferattrs -loop-deletion -memcpyopt -loop-distribute -rewrite-statepoints-for-gc -irce -loop-data-prefetch -inject-tli-mappings -gvn-hoist -strip -slsr -irce -bdce -dse -loop-data-prefetch -loop-reroll -break-crit-edges -simplifycfg -tailcallelim -slp-vectorizer -loop-unroll-and-jam -ipsccp -licm -loweratomic -mldst-motion -always-inline -loop-versioning -sink -lower-guard-intrinsic -loop-sink -lcssa -reassociate -inferattrs -lowerinvoke -rpo-functionattrs -strip-debug-declare -reassociate -dse -globaldce -slsr -mergeicmps -coro-split -flattencfg -forceattrs -speculative-execution -elim-avail-extern -globalopt -memcpyopt -lower-constant-intrinsics -ee-instrument -correlated-propagation -simplifycfg -libcalls-shrinkwrap -libcalls-shrinkwrap -called-value-propagation -redundant-dbg-inst-elim -strip-debug-declare -div-rem-pairs -nary-reassociate input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.014874915483435,77.7471342086792,opt -loop-reroll -mergeicmps -called-value-propagation -loop-vectorize -adce -name-anon-globals -loop-reroll -canonicalize-aliases -tailcallelim -constprop -loop-versioning-licm -loop-deletion -mem2reg -loop-versioning-licm -insert-gcov-profiling -called-value-propagation -loop-deletion -sancov -loop-idiom -lower-guard-intrinsic -speculative-execution -tailcallelim -sink -loop-idiom -inferattrs -gvn -called-value-propagation -coro-split -constprop -barrier -cross-dso-cfi -scalarizer -coro-early -name-anon-globals -mem2reg -lowerinvoke -globalopt -licm -inferattrs -loop-load-elim -loop-unroll -lower-expect -attributor -gvn-hoist -mem2reg -die -mergereturn -rpo-functionattrs -lower-constant-intrinsics -irce -instsimplify -called-value-propagation -reassociate -loop-unroll-and-jam -prune-eh -elim-avail-extern -memcpyopt -instcombine -die -strip-debug-declare -post-inline-ee-instrument -argpromotion -insert-gcov-profiling -lower-matrix-intrinsics -strip-debug-declare -called-value-propagation -coro-cleanup -guard-widening -mergereturn -sancov -loweratomic -mldst-motion -instsimplify -slsr -globaldce -simplifycfg -lowerinvoke -bdce -break-crit-edges -infer-address-spaces -mergereturn -deadargelim -canonicalize-aliases -coro-elide -aggressive-instcombine -strip-debug-declare -ee-instrument -lower-expect -globaldce -loop-interchange -loop-idiom -lcssa -loop-predication -loweratomic -loop-simplifycfg -loop-load-elim -coro-early -ipsccp -die -separate-const-offset-from-gep -aggressive-instcombine -ipsccp -cross-dso-cfi -hotcoldsplit -constmerge -strip -ee-instrument -globaldce -loop-deletion -loop-versioning -mergefunc -lower-expect -aggressive-instcombine -elim-avail-extern -sroa -loop-distribute -irce -insert-gcov-profiling -infer-address-spaces -simplifycfg -loop-sink -loop-simplify -loop-deletion -loop-simplify -instcombine -attributor -nary-reassociate -memcpyopt -globalsplit -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0167423291155535,78.36895751953125,opt -loop-versioning-licm -loop-vectorize -gvn-hoist -rpo-functionattrs -loop-interchange -sccp -loop-simplifycfg -sancov -lower-matrix-intrinsics -gvn-hoist -callsite-splitting -loop-guard-widening -loop-unroll -ipsccp -strip-debug-declare -separate-const-offset-from-gep -simplifycfg -post-inline-ee-instrument -alignment-from-assumptions -mem2reg -libcalls-shrinkwrap -hotcoldsplit -loop-predication -partially-inline-libcalls -post-inline-ee-instrument -lower-widenable-condition -loop-reroll -bdce -loop-predication -loop-data-prefetch -indvars -loop-idiom -globaldce -strip-dead-prototypes -loop-simplifycfg -separate-const-offset-from-gep -loop-simplify -loop-predication -loop-unswitch -always-inline -loop-versioning-licm -mergefunc -rpo-functionattrs -reg2mem -elim-avail-extern -pgo-memop-opt -partial-inliner -ipsccp -die -globalsplit -add-discriminators -memcpyopt -div-rem-pairs -canonicalize-aliases -bdce -nary-reassociate -simple-loop-unswitch -insert-gcov-profiling -loop-simplify -partial-inliner -loop-unswitch -die -sancov -insert-gcov-profiling -break-crit-edges -functionattrs -break-crit-edges -loop-vectorize -ipconstprop -load-store-vectorizer -sroa -gvn -lower-matrix-intrinsics -loop-reroll -barrier -loop-simplify -rewrite-statepoints-for-gc -newgvn -sancov -coro-split -scalarizer -loop-versioning-licm -add-discriminators -mldst-motion -partial-inliner -consthoist -licm -rewrite-statepoints-for-gc -simplifycfg -jump-threading -sccp -lcssa -globaldce -deadargelim -hotcoldsplit -coro-cleanup -loop-data-prefetch -die -loop-vectorize -indvars -strip-debug-declare -jump-threading -coro-split -instcombine -float2int -instsimplify -insert-gcov-profiling -inject-tli-mappings -loop-simplify -loop-data-prefetch -lower-widenable-condition -strip-debug-declare -loop-simplifycfg -dse -indvars -loop-distribute -strip-nondebug -strip-dead-prototypes -functionattrs -ipsccp -gvn -indvars -lower-matrix-intrinsics -consthoist -alignment-from-assumptions -memcpyopt -loop-load-elim -sancov -loop-simplifycfg -barrier -strip-nondebug -infer-address-spaces -mergefunc -barrier -mem2reg -loop-guard-widening -mergereturn -loop-sink -rpo-functionattrs -sancov -add-discriminators -coro-elide -simplifycfg -rewrite-statepoints-for-gc -coro-early -name-anon-globals -loop-fusion -adce -lower-matrix-intrinsics -alignment-from-assumptions -tailcallelim -scalarizer -coro-early -loop-versioning-licm -cross-dso-cfi -coro-early -mergeicmps -strip-debug-declare -loop-simplifycfg -coro-cleanup -pgo-memop-opt -prune-eh -constprop -coro-split -div-rem-pairs -loop-fusion -jump-threading -functionattrs -lowerinvoke -functionattrs -elim-avail-extern -loop-idiom -lower-expect -argpromotion -loop-sink -rewrite-statepoints-for-gc -loop-unswitch -slp-vectorizer -lower-constant-intrinsics -lower-widenable-condition -lower-constant-intrinsics -lower-constant-intrinsics -argpromotion -argpromotion -ee-instrument -loop-load-elim -lower-guard-intrinsic -strip-dead-prototypes -correlated-propagation -forceattrs -libcalls-shrinkwrap -alignment-from-assumptions -always-inline -jump-threading -loop-fusion -canonicalize-aliases -coro-cleanup -mldst-motion -loop-interchange -rpo-functionattrs -loop-idiom -loop-simplify -rewrite-statepoints-for-gc -instcombine -loop-load-elim -irce -memcpyopt -loop-fusion -cross-dso-cfi -loop-predication -loweratomic -lower-widenable-condition -correlated-propagation -slsr -gvn-hoist -loop-instsimplify -mergefunc -mem2reg -sink -constmerge -loop-simplifycfg -forceattrs -lower-matrix-intrinsics -prune-eh -attributor -argpromotion -sccp -gvn -simple-loop-unswitch -dse -loop-simplifycfg -irce -reassociate -break-crit-edges -strip-debug-declare -mem2reg -loop-versioning-licm -attributor -globalopt -loop-deletion -loop-sink -rpo-functionattrs -loop-load-elim -tailcallelim -loop-reroll -jump-threading -lower-guard-intrinsic -globalopt -consthoist -callsite-splitting -loop-reroll -loop-unroll-and-jam -alignment-from-assumptions -nary-reassociate -loop-versioning-licm -simple-loop-unswitch -loop-deletion -mergeicmps -argpromotion -float2int -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.020702533887118,75.7045681476593,opt -newgvn -insert-gcov-profiling -bdce -indvars -deadargelim -dse -loop-guard-widening -always-inline -aggressive-instcombine -div-rem-pairs -load-store-vectorizer -constmerge -globalopt -ipconstprop -rewrite-statepoints-for-gc -gvn-hoist -lcssa -post-inline-ee-instrument -hotcoldsplit -lowerswitch -break-crit-edges -indvars -loop-guard-widening -loop-reroll -inject-tli-mappings -mem2reg -globalsplit -constmerge -insert-gcov-profiling -slp-vectorizer -lowerswitch -callsite-splitting -licm -loop-unroll-and-jam -separate-const-offset-from-gep -strip-debug-declare -loop-guard-widening -argpromotion -inject-tli-mappings -aggressive-instcombine -licm -add-discriminators -loop-load-elim -licm -lower-constant-intrinsics -hotcoldsplit -simple-loop-unswitch -infer-address-spaces -partially-inline-libcalls -strip-dead-prototypes -globaldce -argpromotion -loop-idiom -constmerge -rewrite-statepoints-for-gc -infer-address-spaces -nary-reassociate -loop-simplify -loop-predication -strip-dead-prototypes -loop-distribute -loop-guard-widening -called-value-propagation -loop-interchange -forceattrs -loop-guard-widening -ipsccp -strip -mem2reg -globalsplit -loop-simplifycfg -div-rem-pairs -guard-widening -load-store-vectorizer -early-cse-memssa -loop-versioning-licm -partial-inliner -elim-avail-extern -loop-sink -lower-guard-intrinsic -indvars -loop-sink -canonicalize-aliases -pgo-memop-opt -loop-load-elim -loop-data-prefetch -lower-constant-intrinsics -functionattrs -sroa -strip-nondebug -constprop -lower-matrix-intrinsics -flattencfg -loweratomic -alignment-from-assumptions -flattencfg -inferattrs -functionattrs -canonicalize-aliases -flattencfg -loop-distribute -simple-loop-unswitch -loop-guard-widening -prune-eh -lower-widenable-condition -strip-debug-declare -insert-gcov-profiling -deadargelim -cross-dso-cfi -ee-instrument -loop-versioning-licm -ipconstprop -sccp -mergeicmps -simplifycfg -float2int -loop-reroll -inferattrs -globaldce -lower-guard-intrinsic -instcombine -sccp -newgvn -newgvn -globaldce input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.020992304967964,74.4376745223999,opt -insert-gcov-profiling -sroa -load-store-vectorizer -reassociate -nary-reassociate -loop-guard-widening -die -sancov -aggressive-instcombine -ee-instrument -rpo-functionattrs -loop-versioning-licm -aggressive-instcombine -jump-threading -lower-matrix-intrinsics -cross-dso-cfi -post-inline-ee-instrument -tailcallelim -reassociate -strip -newgvn -always-inline -instnamer -sink -lcssa -strip-dead-prototypes -irce -mldst-motion -correlated-propagation -libcalls-shrinkwrap -nary-reassociate -loop-guard-widening -called-value-propagation -prune-eh -strip-nondebug -inject-tli-mappings -lower-widenable-condition -consthoist -simplifycfg -slsr -licm -scalarizer -sancov -constmerge -early-cse-memssa -callsite-splitting -separate-const-offset-from-gep -simple-loop-unswitch -sancov -cross-dso-cfi -instcombine -gvn-hoist -gvn -memcpyopt -mem2reg -inferattrs -loop-distribute -sroa -constprop -loop-instsimplify -cross-dso-cfi -gvn-hoist -partially-inline-libcalls -load-store-vectorizer -memcpyopt -ee-instrument -instcombine input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.022408963585434,71.32278347015381,opt -correlated-propagation -float2int -name-anon-globals -jump-threading -redundant-dbg-inst-elim -loop-data-prefetch -redundant-dbg-inst-elim -div-rem-pairs -sancov -correlated-propagation -slp-vectorizer -mem2reg -simplifycfg -coro-elide -libcalls-shrinkwrap -strip-dead-prototypes -float2int -slp-vectorizer -globaldce -slp-vectorizer -separate-const-offset-from-gep -early-cse-memssa -flattencfg -lower-constant-intrinsics -instnamer -libcalls-shrinkwrap -loop-vectorize -dce -inject-tli-mappings -functionattrs -instcombine -float2int -strip-dead-prototypes -bdce -gvn-hoist -loop-idiom -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0232460800412118,73.95274901390076,opt -sink -guard-widening -cross-dso-cfi -hotcoldsplit -mergereturn -break-crit-edges -licm -inject-tli-mappings -break-crit-edges -argpromotion -alignment-from-assumptions -rewrite-statepoints-for-gc -die -ipsccp -slsr -loop-predication -bdce -constprop -rewrite-statepoints-for-gc -coro-split -slsr -lower-expect -aggressive-instcombine -lcssa -div-rem-pairs -separate-const-offset-from-gep -sroa -partially-inline-libcalls -libcalls-shrinkwrap -sroa -guard-widening -loop-simplifycfg -instcombine -nary-reassociate -canonicalize-aliases -licm -newgvn -gvn -mergeicmps -loop-unroll-and-jam -attributor -ipconstprop -partial-inliner -elim-avail-extern -loop-guard-widening -pgo-memop-opt -lowerswitch -slp-vectorizer -guard-widening -inferattrs -slsr -instcombine -lower-guard-intrinsic -simplifycfg -mldst-motion -sancov -ee-instrument -memcpyopt -bdce input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.027367268746579,74.0155394077301,opt -elim-avail-extern -strip-nondebug -dse -lower-matrix-intrinsics -loop-reduce -globalopt -reg2mem -early-cse-memssa -separate-const-offset-from-gep -separate-const-offset-from-gep -argpromotion -instsimplify -dce -reassociate -jump-threading -globalopt -lcssa -bdce -simple-loop-unswitch -mem2reg -guard-widening -tailcallelim -instcombine -loop-predication -coro-elide -tailcallelim -licm -licm -lower-expect -simplifycfg -libcalls-shrinkwrap -mergereturn -newgvn input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0304903570623651,81.23560118675232,opt -newgvn -coro-early -hotcoldsplit -loop-idiom -canonicalize-aliases -loop-interchange -always-inline -lcssa -strip -rewrite-statepoints-for-gc -float2int -alignment-from-assumptions -sink -aggressive-instcombine -callsite-splitting -constmerge -insert-gcov-profiling -canonicalize-aliases -irce -lower-widenable-condition -callsite-splitting -lower-expect -gvn-hoist -loop-interchange -mem2reg -sancov -simplifycfg -instsimplify -canonicalize-aliases -speculative-execution -mergefunc -libcalls-shrinkwrap -instcombine -instsimplify -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.0318104253195528,73.58163642883301,opt -instsimplify -reassociate -loop-instsimplify -coro-elide -rpo-functionattrs -alignment-from-assumptions -alignment-from-assumptions -ee-instrument -loop-load-elim -sink -loop-instsimplify -loop-versioning-licm -called-value-propagation -pgo-memop-opt -loop-simplify -inferattrs -separate-const-offset-from-gep -globalsplit -flattencfg -rewrite-statepoints-for-gc -licm -loop-unroll-and-jam -newgvn -rpo-functionattrs -strip-dead-prototypes -loop-vectorize -sroa -load-store-vectorizer -mergereturn -ipsccp -attributor -insert-gcov-profiling -globalsplit -bdce -coro-elide -always-inline -loop-reroll -loop-sink -newgvn -add-discriminators -loop-fusion -adce -break-crit-edges -loop-reroll -pgo-memop-opt -forceattrs -simple-loop-unswitch -die -early-cse-memssa -mergefunc -partially-inline-libcalls -gvn -loop-vectorize -instcombine -globalopt -partially-inline-libcalls -sancov -loop-unroll-and-jam -loop-sink -globaldce -break-crit-edges -mldst-motion -jump-threading -sancov -dce -lower-widenable-condition -loop-data-prefetch -dce -memcpyopt -lower-widenable-condition -slsr -cross-dso-cfi -hotcoldsplit -inject-tli-mappings -bdce -lcssa -rpo-functionattrs -licm -constprop -lower-widenable-condition -partially-inline-libcalls -inferattrs -loop-vectorize -constprop -speculative-execution -lower-expect -always-inline -cross-dso-cfi -slp-vectorizer -load-store-vectorizer -mergereturn -early-cse-memssa -slp-vectorizer -loweratomic -attributor -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,1.040793328825783,74.14569687843323,opt -prune-eh -loop-data-prefetch -partially-inline-libcalls -loop-fusion -strip -canonicalize-aliases -loop-interchange -coro-cleanup -jump-threading -early-cse-memssa -consthoist -loop-unroll -loop-data-prefetch -sink -loop-unroll -mem2reg -loop-instsimplify -pgo-memop-opt -simplifycfg -inferattrs -simple-loop-unswitch -loop-instsimplify -functionattrs -called-value-propagation -mergefunc -mldst-motion -jump-threading -insert-gcov-profiling -strip-dead-prototypes -loop-vectorize -loop-guard-widening -callsite-splitting -mem2reg -canonicalize-aliases -sroa -loop-load-elim -loop-predication -die -lcssa -irce -ipconstprop -loop-versioning-licm -indvars -sccp -mergefunc -mergereturn -memcpyopt -ipconstprop -always-inline -ipsccp -float2int -newgvn -reassociate -loop-instsimplify -strip-dead-prototypes -correlated-propagation -guard-widening -memcpyopt -alignment-from-assumptions -lower-guard-intrinsic -irce -loop-vectorize -attributor -loop-data-prefetch -licm -loop-predication -consthoist -barrier -dce -infer-address-spaces -mem2reg -mem2reg -prune-eh -gvn -inject-tli-mappings -adce -tailcallelim -gvn-hoist -globalsplit -loop-distribute -prune-eh -ipconstprop -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0177636073787293,82.4673900604248,opt -canonicalize-aliases -loweratomic -loop-unroll-and-jam -loop-vectorize -infer-address-spaces -loop-instsimplify -break-crit-edges -rewrite-statepoints-for-gc -nary-reassociate -mergefunc -post-inline-ee-instrument -name-anon-globals -flattencfg -functionattrs -strip-debug-declare -loop-vectorize -lowerinvoke -strip-nondebug -redundant-dbg-inst-elim -simple-loop-unswitch -memcpyopt -instnamer -lower-widenable-condition -sink -newgvn -loop-load-elim -pgo-memop-opt -scalarizer -loop-reroll -flattencfg -early-cse-memssa -early-cse-memssa -lowerswitch -sroa -loop-predication -mem2reg -reg2mem -mergeicmps -float2int -die -mergefunc -loop-unroll -lower-constant-intrinsics -instsimplify -bdce -simple-loop-unswitch -loop-guard-widening -globalsplit -loop-distribute -ee-instrument -loop-guard-widening -lower-matrix-intrinsics -bdce -loop-sink -instnamer -infer-address-spaces -strip-dead-prototypes -loop-guard-widening -libcalls-shrinkwrap -adce -gvn -loop-predication -tailcallelim -consthoist -attributor -inject-tli-mappings -correlated-propagation -loop-predication -elim-avail-extern -loop-unroll-and-jam -forceattrs -slsr -partial-inliner -loop-simplifycfg -early-cse-memssa -loweratomic -mldst-motion -loop-reroll -div-rem-pairs -lcssa -loop-versioning -instcombine -alignment-from-assumptions -loop-versioning-licm -coro-split -sccp -guard-widening -lowerinvoke -aggressive-instcombine -hotcoldsplit -adce -adce -loop-simplify -cross-dso-cfi -pgo-memop-opt -always-inline -gvn -add-discriminators -prune-eh -callsite-splitting -memcpyopt -loop-predication -barrier -sroa -strip-dead-prototypes -coro-early -lower-constant-intrinsics -instsimplify -mem2reg -ipsccp -dse -reassociate -loop-data-prefetch -reassociate -canonicalize-aliases -constprop -coro-elide -loop-versioning -float2int -coro-split -inferattrs -loop-vectorize -early-cse-memssa -slp-vectorizer -sancov -ipconstprop -irce -ee-instrument -strip-debug-declare -partially-inline-libcalls -jump-threading -argpromotion -coro-early -strip -bdce -loop-fusion -ipsccp -globaldce -div-rem-pairs -pgo-memop-opt -lowerswitch -insert-gcov-profiling -reassociate -deadargelim -mem2reg -break-crit-edges -partial-inliner -post-inline-ee-instrument -coro-cleanup -irce -lower-guard-intrinsic -correlated-propagation -aggressive-instcombine -add-discriminators -ipconstprop -loop-distribute -lower-constant-intrinsics -separate-const-offset-from-gep -bdce -loop-versioning -dse -coro-cleanup -inferattrs -early-cse-memssa -argpromotion -instcombine -loweratomic -licm -alignment-from-assumptions -mergefunc -deadargelim -strip-dead-prototypes -sink -loop-unswitch -load-store-vectorizer -adce -strip-dead-prototypes -early-cse-memssa -pgo-memop-opt -slp-vectorizer -elim-avail-extern -prune-eh -loop-distribute -coro-elide -gvn-hoist -deadargelim -loop-distribute -reg2mem -reg2mem -mem2reg -attributor -guard-widening -partial-inliner -sink -loop-simplifycfg -loop-idiom -instsimplify -break-crit-edges -loop-unswitch -hotcoldsplit -simplifycfg -float2int -loop-instsimplify -div-rem-pairs -strip-dead-prototypes -guard-widening -indvars -loop-versioning-licm -loop-instsimplify -prune-eh -loop-versioning-licm -globalopt -attributor -lowerswitch -coro-split -sink -mergeicmps -rewrite-statepoints-for-gc -lower-guard-intrinsic -loop-sink -hotcoldsplit -rewrite-statepoints-for-gc -loop-fusion -coro-early -loop-vectorize -mergereturn -div-rem-pairs -mldst-motion -gvn -pgo-memop-opt -forceattrs -speculative-execution -ipsccp -loop-unroll-and-jam -strip -correlated-propagation -lower-widenable-condition -lower-constant-intrinsics -float2int -constprop -strip-nondebug -scalarizer -slp-vectorizer -deadargelim -inject-tli-mappings -lower-widenable-condition -rewrite-statepoints-for-gc -memcpyopt -ipsccp -globaldce -instnamer -coro-early -insert-gcov-profiling -loop-data-prefetch -tailcallelim -instnamer -globalsplit -inferattrs -lower-guard-intrinsic -slsr -always-inline -float2int -globalopt -deadargelim -instcombine -sroa -float2int -lowerswitch -loop-simplifycfg -libcalls-shrinkwrap -die -sink -loop-simplify -loop-simplifycfg -mergefunc -infer-address-spaces -loop-versioning -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0220906399453424,80.74984622001648,opt -lower-guard-intrinsic -loop-predication -mem2reg -mergeicmps -correlated-propagation -mergereturn -coro-split -loop-predication -inject-tli-mappings -prune-eh -correlated-propagation -name-anon-globals -lower-constant-intrinsics -prune-eh -loop-instsimplify -simplifycfg -canonicalize-aliases -ee-instrument -loop-versioning -alignment-from-assumptions -mem2reg -cross-dso-cfi -canonicalize-aliases -die -simplifycfg -slp-vectorizer -globalopt -loop-fusion -callsite-splitting -loop-instsimplify -simple-loop-unswitch -instcombine -mergeicmps -tailcallelim -reassociate -attributor -insert-gcov-profiling -newgvn input.bc -o output.bc -benchmark://cBench-v1/lame,1.026000151825704,89.91641187667847,opt -ipsccp -coro-elide -strip-debug-declare -strip-dead-prototypes -sroa -consthoist -lowerswitch -loweratomic -loop-simplifycfg -coro-elide -alignment-from-assumptions -tailcallelim -lcssa -instnamer -pgo-memop-opt -irce -rewrite-statepoints-for-gc -forceattrs -cross-dso-cfi -mergereturn -loop-sink -gvn-hoist -rpo-functionattrs -float2int -infer-address-spaces -libcalls-shrinkwrap -deadargelim -functionattrs -consthoist -mldst-motion -globalsplit -die -aggressive-instcombine -bdce -aggressive-instcombine -licm -gvn-hoist -slsr -loop-deletion -slsr -loop-idiom -coro-early -licm -globalopt -nary-reassociate -early-cse-memssa -barrier -lowerinvoke -sroa -flattencfg -insert-gcov-profiling -adce -loop-versioning -loop-simplifycfg -partially-inline-libcalls -ee-instrument -simple-loop-unswitch -instnamer -post-inline-ee-instrument -simple-loop-unswitch -ipsccp -bdce -loop-interchange -break-crit-edges -jump-threading -redundant-dbg-inst-elim -lower-expect -always-inline -simplifycfg -speculative-execution -coro-elide -loop-guard-widening -mergefunc -strip-nondebug -mldst-motion -jump-threading -die -loop-guard-widening -instsimplify -prune-eh -ipsccp -instcombine input.bc -o output.bc -benchmark://cBench-v1/lame,1.0306687922265239,78.65229177474976,opt -callsite-splitting -simplifycfg -indvars -mem2reg -correlated-propagation -lower-widenable-condition -constprop -loop-instsimplify -partial-inliner -callsite-splitting -sccp -loop-vectorize -loop-data-prefetch -mergefunc -newgvn -coro-early -loop-idiom -simplifycfg -loop-predication -coro-early -gvn -loweratomic -consthoist -argpromotion -loop-interchange -mldst-motion -loop-deletion -loop-predication -partially-inline-libcalls -jump-threading -instcombine -deadargelim -constprop -name-anon-globals -functionattrs -tailcallelim -attributor -loop-unroll-and-jam -always-inline -memcpyopt -aggressive-instcombine -ee-instrument -loop-vectorize -loop-simplify -mldst-motion -loop-sink -instcombine -ipsccp -jump-threading -elim-avail-extern input.bc -o output.bc -benchmark://cBench-v1/lame,1.0326804828057392,102.16820931434631,opt -jump-threading -strip -inferattrs -gvn -loop-fusion -barrier -canonicalize-aliases -deadargelim -mergefunc -post-inline-ee-instrument -sroa -coro-split -redundant-dbg-inst-elim -loop-reroll -sccp -indvars -reassociate -irce -lower-constant-intrinsics -loop-simplify -post-inline-ee-instrument -mem2reg -slsr -loop-versioning-licm -separate-const-offset-from-gep -mergeicmps -dce -globalsplit -loop-instsimplify -flattencfg -simplifycfg -memcpyopt -rpo-functionattrs -loop-distribute -sroa -hotcoldsplit -float2int -deadargelim -globalsplit -load-store-vectorizer -float2int -rewrite-statepoints-for-gc -globalsplit -mergeicmps -add-discriminators -loop-sink -constprop -strip-dead-prototypes -argpromotion -loop-distribute -libcalls-shrinkwrap -die -loop-load-elim -instnamer -indvars -correlated-propagation -instnamer -instcombine -strip-debug-declare -early-cse-memssa -loop-idiom -ee-instrument -loop-guard-widening -coro-split -lower-guard-intrinsic -cross-dso-cfi -licm -alignment-from-assumptions -flattencfg -consthoist -bdce -add-discriminators -elim-avail-extern -loop-unroll-and-jam -loop-simplifycfg -memcpyopt -speculative-execution -globaldce -loop-interchange -rpo-functionattrs -loop-distribute -mergereturn -memcpyopt -separate-const-offset-from-gep -mergefunc -deadargelim -reassociate -libcalls-shrinkwrap -loop-versioning -mldst-motion -newgvn -nary-reassociate -instcombine input.bc -o output.bc -benchmark://cBench-v1/lame,1.0330600470659683,195.33090710639954,opt -separate-const-offset-from-gep -coro-early -bdce -pgo-memop-opt -nary-reassociate -loop-sink -loop-unswitch -loop-simplifycfg -globalopt -coro-elide -loop-vectorize -break-crit-edges -irce -sccp -coro-cleanup -speculative-execution -functionattrs -called-value-propagation -instnamer -loop-vectorize -argpromotion -mldst-motion -mergereturn -flattencfg -loop-unroll-and-jam -loop-distribute -globalopt -always-inline -instnamer -separate-const-offset-from-gep -load-store-vectorizer -coro-early -lower-guard-intrinsic -insert-gcov-profiling -insert-gcov-profiling -irce -loop-idiom -coro-elide -float2int -licm -loop-simplifycfg -sink -lower-matrix-intrinsics -inject-tli-mappings -lower-expect -inferattrs -simple-loop-unswitch -adce -ipconstprop -strip-nondebug -called-value-propagation -dce -loop-deletion -bdce -float2int -lower-expect -slp-vectorizer -post-inline-ee-instrument -guard-widening -sink -loop-reroll -argpromotion -break-crit-edges -coro-split -mem2reg -guard-widening -simplifycfg -hotcoldsplit -rpo-functionattrs -loop-instsimplify -dse -globaldce -loop-idiom -alignment-from-assumptions -loop-sink -redundant-dbg-inst-elim -gvn-hoist -loop-deletion -loop-simplifycfg -newgvn -rewrite-statepoints-for-gc -strip-nondebug -elim-avail-extern -strip-debug-declare -attributor -lower-expect -lowerinvoke -div-rem-pairs -libcalls-shrinkwrap -tailcallelim -always-inline -instcombine -lowerinvoke -indvars -nary-reassociate -mldst-motion -loop-guard-widening -aggressive-instcombine -mem2reg -deadargelim -attributor -attributor -infer-address-spaces -callsite-splitting -correlated-propagation -attributor -loop-versioning -float2int -hotcoldsplit -hotcoldsplit -inject-tli-mappings -argpromotion -break-crit-edges -instcombine -rewrite-statepoints-for-gc -loop-interchange -loop-data-prefetch -float2int -lower-constant-intrinsics -loop-guard-widening -globaldce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/lame,1.0341607834206334,72.04348230361938,opt -loop-unswitch -licm -lower-constant-intrinsics -dse -irce -strip-debug-declare -hotcoldsplit -sroa -strip-debug-declare -callsite-splitting -early-cse-memssa -lower-constant-intrinsics -die -div-rem-pairs -lower-expect -attributor -reassociate -insert-gcov-profiling -ee-instrument -deadargelim -correlated-propagation -dse -loop-load-elim -coro-split -strip -loop-versioning-licm -loop-predication -mem2reg -guard-widening -strip -float2int -loop-guard-widening -strip-dead-prototypes -loop-instsimplify -globalsplit -elim-avail-extern -loop-versioning -ipconstprop -irce -inject-tli-mappings -insert-gcov-profiling -gvn-hoist -die -lowerswitch -partially-inline-libcalls -gvn -die -instsimplify -post-inline-ee-instrument -loop-sink -loop-unroll-and-jam -loop-predication -loop-unroll-and-jam -ipconstprop -loop-versioning -sroa -cross-dso-cfi -instnamer -loop-vectorize -constmerge -loop-instsimplify -sccp -lower-constant-intrinsics -sink -mergefunc -reassociate -add-discriminators -sccp -instcombine -instcombine -loop-simplifycfg -loop-fusion -slsr -inject-tli-mappings -irce -alignment-from-assumptions -loop-versioning-licm -sccp -post-inline-ee-instrument -lowerinvoke -ipsccp -flattencfg -loop-instsimplify -ee-instrument -flattencfg -simplifycfg -infer-address-spaces -memcpyopt -loop-load-elim -coro-elide -loop-guard-widening -rpo-functionattrs -adce -loop-simplify -newgvn input.bc -o output.bc -benchmark://cBench-v1/lame,1.039892203750095,87.48616743087769,opt -insert-gcov-profiling -gvn-hoist -loop-deletion -strip-debug-declare -adce -strip-debug-declare -lower-expect -early-cse-memssa -loop-reroll -partially-inline-libcalls -simplifycfg -sroa -instcombine -gvn -infer-address-spaces -lowerinvoke -loop-predication -memcpyopt -nary-reassociate -reg2mem -coro-elide -loop-instsimplify -simple-loop-unswitch -sroa -called-value-propagation -lcssa -loop-fusion -rewrite-statepoints-for-gc -separate-const-offset-from-gep -lower-matrix-intrinsics -irce -loop-unswitch -loop-reroll -lower-guard-intrinsic -ipconstprop -simplifycfg -mergereturn -coro-early -argpromotion -instcombine -mergereturn -lower-guard-intrinsic -strip -elim-avail-extern -ipsccp input.bc -o output.bc -benchmark://cBench-v1/lame,1.0432703256661353,320.4585802555084,opt -separate-const-offset-from-gep -irce -jump-threading -constprop -loop-deletion -sroa -newgvn -licm -lowerinvoke -canonicalize-aliases -inferattrs -simple-loop-unswitch -speculative-execution -name-anon-globals -adce -sancov -die -instsimplify -separate-const-offset-from-gep -inject-tli-mappings -lower-guard-intrinsic -licm -lower-matrix-intrinsics -mergereturn -constprop -instcombine -mem2reg -loop-instsimplify -inferattrs -loop-data-prefetch -mergereturn -irce -speculative-execution -loop-versioning-licm -called-value-propagation -globaldce -loop-reroll -forceattrs -ee-instrument -sccp -inferattrs -loop-load-elim -barrier -simplifycfg -loop-fusion -loop-reroll -loop-distribute -insert-gcov-profiling -lower-widenable-condition -sink -div-rem-pairs -redundant-dbg-inst-elim -loop-instsimplify -deadargelim -nary-reassociate -correlated-propagation -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/lame,1.0480528353450238,136.65584301948547,opt -globalsplit -inject-tli-mappings -mergefunc -tailcallelim -libcalls-shrinkwrap -gvn-hoist -loop-fusion -loop-versioning -prune-eh -loop-interchange -strip-debug-declare -loop-sink -flattencfg -dce -elim-avail-extern -consthoist -barrier -float2int -globalopt -sroa -gvn-hoist -correlated-propagation -gvn -float2int -simple-loop-unswitch -functionattrs -globalsplit -newgvn -instsimplify -simplifycfg -simple-loop-unswitch -loop-versioning -functionattrs -newgvn -loweratomic -pgo-memop-opt -lcssa -adce -insert-gcov-profiling -loop-unroll-and-jam -infer-address-spaces -loop-data-prefetch -loop-deletion -correlated-propagation -rpo-functionattrs -lcssa -instcombine -loop-reroll -flattencfg -loop-predication -functionattrs -scalarizer -insert-gcov-profiling -tailcallelim -loop-fusion -mergefunc -sancov -loop-interchange -loop-unroll-and-jam -loop-sink -inject-tli-mappings -globalopt -loweratomic -sroa -separate-const-offset-from-gep -prune-eh -mergereturn -loop-distribute -deadargelim -loop-instsimplify -ipconstprop -simplifycfg -loop-data-prefetch -pgo-memop-opt -add-discriminators -coro-elide -pgo-memop-opt -partially-inline-libcalls -sccp -rpo-functionattrs -sccp -memcpyopt -constprop -rewrite-statepoints-for-gc -indvars -dce -ipconstprop -globalsplit -argpromotion -called-value-propagation -strip-debug-declare -redundant-dbg-inst-elim -lower-expect -globaldce -ee-instrument -newgvn -mldst-motion input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9955506117908788,61.57529139518738,opt -loop-sink -simplifycfg -lower-widenable-condition -strip -inject-tli-mappings -mldst-motion -lower-constant-intrinsics -adce -loop-distribute -loop-predication -lower-matrix-intrinsics -rpo-functionattrs -lowerinvoke -name-anon-globals -load-store-vectorizer -coro-cleanup -hotcoldsplit -ipsccp -consthoist -guard-widening -strip-debug-declare -bdce -coro-early -bdce -loop-interchange -simplifycfg -redundant-dbg-inst-elim -simplifycfg -loop-guard-widening -forceattrs -loop-versioning -ipconstprop -name-anon-globals -canonicalize-aliases -barrier -loop-data-prefetch -post-inline-ee-instrument -tailcallelim -mem2reg -simplifycfg -ipsccp -loop-interchange -scalarizer -prune-eh -nary-reassociate -post-inline-ee-instrument -nary-reassociate -loop-deletion -argpromotion -insert-gcov-profiling -loop-deletion -constmerge -add-discriminators -gvn -dse -instcombine -functionattrs -coro-elide -loop-load-elim -strip-nondebug -loop-load-elim -ee-instrument -gvn -attributor -die -globalopt -redundant-dbg-inst-elim -strip-dead-prototypes -sccp -float2int -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9955506117908788,61.80874562263489,opt -rpo-functionattrs -lowerswitch -rpo-functionattrs -loop-unroll -early-cse-memssa -deadargelim -hotcoldsplit -inferattrs -mldst-motion -flattencfg -argpromotion -load-store-vectorizer -forceattrs -newgvn -post-inline-ee-instrument -loop-simplifycfg -mldst-motion -globaldce -name-anon-globals -add-discriminators -ee-instrument -mergereturn -loweratomic -sink -argpromotion -jump-threading -consthoist -strip -break-crit-edges -coro-cleanup -lower-matrix-intrinsics -loop-interchange -guard-widening -loop-unroll-and-jam -loop-instsimplify -loop-data-prefetch -jump-threading -indvars -loop-simplifycfg -strip-debug-declare -instnamer -div-rem-pairs -ee-instrument -lower-guard-intrinsic -lower-constant-intrinsics -loop-load-elim -coro-split -lowerinvoke -loop-guard-widening -speculative-execution -loop-unroll-and-jam -loweratomic -gvn -dse -loop-predication -strip -correlated-propagation -die -loop-sink -mem2reg -functionattrs -coro-split -loop-instsimplify -always-inline -globaldce -sroa -loop-simplifycfg -irce -consthoist -attributor -flattencfg -separate-const-offset-from-gep -barrier -ee-instrument -guard-widening -mergereturn -partially-inline-libcalls -loop-simplifycfg -die -loop-deletion -reassociate -strip-dead-prototypes -ipsccp -irce -loop-load-elim -irce -bdce -insert-gcov-profiling -loop-reroll -loop-simplifycfg -strip -lower-guard-intrinsic -loop-reduce -instnamer -deadargelim -coro-split -licm -rpo-functionattrs -loop-deletion -add-discriminators -name-anon-globals -called-value-propagation -loop-versioning -loop-data-prefetch -gvn-hoist -guard-widening -loop-deletion -div-rem-pairs -instcombine -partial-inliner -name-anon-globals -indvars -insert-gcov-profiling -strip-nondebug -globalopt -newgvn -float2int -redundant-dbg-inst-elim -callsite-splitting -deadargelim -ipsccp -loop-predication -loop-simplifycfg -alignment-from-assumptions -barrier -cross-dso-cfi -redundant-dbg-inst-elim -early-cse-memssa -argpromotion -loop-versioning -callsite-splitting -called-value-propagation -loop-versioning-licm -instcombine -sccp -loop-unroll -simplifycfg -strip -loop-sink -consthoist -strip-nondebug -instsimplify -infer-address-spaces -globaldce -loop-guard-widening -die -instnamer -simplifycfg -rewrite-statepoints-for-gc -instcombine input.bc -o output.bc -benchmark://cBench-v1/patricia,0.995550611790879,61.725738286972046,opt -inferattrs -attributor -partially-inline-libcalls -correlated-propagation -speculative-execution -ipsccp -elim-avail-extern -coro-cleanup -loop-versioning-licm -forceattrs -nary-reassociate -constprop -coro-cleanup -loop-simplifycfg -attributor -simple-loop-unswitch -consthoist -constprop -correlated-propagation -partial-inliner -gvn -rewrite-statepoints-for-gc -slp-vectorizer -barrier -instnamer -loop-simplifycfg -instcombine -deadargelim -dce -scalarizer -newgvn -alignment-from-assumptions -loop-interchange -called-value-propagation -functionattrs -guard-widening -forceattrs -loop-interchange -loop-guard-widening -indvars -sccp -early-cse-memssa -dse -correlated-propagation -instnamer -mldst-motion -redundant-dbg-inst-elim -loop-distribute -slsr -loop-predication -lower-matrix-intrinsics -lower-matrix-intrinsics -coro-early -strip-dead-prototypes -hotcoldsplit -loop-simplifycfg -loop-interchange -pgo-memop-opt -memcpyopt -loop-simplifycfg -coro-cleanup -indvars -loop-load-elim -mem2reg -bdce -reassociate -loop-versioning-licm -callsite-splitting -rewrite-statepoints-for-gc -loop-data-prefetch -loop-load-elim -rpo-functionattrs -loweratomic -loop-load-elim -newgvn -gvn-hoist -inferattrs -dce -coro-early -dce -lower-widenable-condition -loweratomic -pgo-memop-opt -dse -die -mem2reg -loop-guard-widening -ipsccp -inferattrs -aggressive-instcombine -instnamer -gvn-hoist -lower-matrix-intrinsics -memcpyopt -libcalls-shrinkwrap -partial-inliner -loop-reduce -reassociate -lower-expect -loop-deletion -instnamer -mergefunc -loop-simplifycfg -lower-widenable-condition -pgo-memop-opt -strip -deadargelim -coro-elide -barrier -newgvn -gvn -sancov -float2int -inject-tli-mappings -barrier -coro-split -tailcallelim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9977753058954394,61.65921092033386,opt -loop-reroll -coro-early -libcalls-shrinkwrap -loop-guard-widening -loop-unswitch -callsite-splitting -post-inline-ee-instrument -early-cse-memssa -add-discriminators -mldst-motion -strip-nondebug -loop-unswitch -break-crit-edges -infer-address-spaces -sroa -instnamer -loop-fusion -loop-sink -flattencfg -lower-constant-intrinsics -reg2mem -indvars -indvars -mergefunc -insert-gcov-profiling -flattencfg -mldst-motion -elim-avail-extern -loop-vectorize -prune-eh -partial-inliner -functionattrs -speculative-execution -bdce -dce -canonicalize-aliases -coro-elide -pgo-memop-opt -prune-eh -mergefunc -simplifycfg -mergeicmps -loop-unroll-and-jam -lower-guard-intrinsic -mergereturn -bdce -libcalls-shrinkwrap -loop-simplifycfg -coro-split -dse -lowerinvoke -loop-deletion -loop-guard-widening -pgo-memop-opt -load-store-vectorizer -correlated-propagation -loop-sink -loop-guard-widening -mergeicmps -loop-distribute -strip -inject-tli-mappings -loop-reduce -strip-debug-declare -strip -coro-cleanup -irce -simple-loop-unswitch -scalarizer -gvn-hoist -sancov -called-value-propagation -simplifycfg -globalopt -always-inline -rewrite-statepoints-for-gc -ee-instrument -div-rem-pairs -add-discriminators -lower-expect -coro-elide -loop-versioning -ipconstprop -loop-deletion -coro-split -die -mem2reg -gvn -rewrite-statepoints-for-gc -strip-nondebug -attributor -adce -elim-avail-extern -loop-instsimplify -aggressive-instcombine -name-anon-globals -constprop -mergefunc -ee-instrument -lower-expect -separate-const-offset-from-gep -loop-guard-widening -adce -strip -loop-deletion -loop-instsimplify -add-discriminators -newgvn -constprop -instcombine -strip -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9977753058954394,62.400047063827515,opt -sancov -barrier -loop-data-prefetch -libcalls-shrinkwrap -loop-simplifycfg -mldst-motion -strip-dead-prototypes -coro-elide -loop-reduce -loop-idiom -globalopt -loop-sink -loop-unroll-and-jam -canonicalize-aliases -barrier -indvars -strip-nondebug -float2int -simplifycfg -forceattrs -infer-address-spaces -cross-dso-cfi -loop-unroll -coro-cleanup -bdce -nary-reassociate -globalsplit -licm -nary-reassociate -callsite-splitting -slsr -float2int -correlated-propagation -lower-widenable-condition -globalsplit -ee-instrument -callsite-splitting -add-discriminators -constmerge -loop-distribute -functionattrs -flattencfg -early-cse-memssa -lower-constant-intrinsics -correlated-propagation -lower-constant-intrinsics -rewrite-statepoints-for-gc -functionattrs -ipconstprop -rewrite-statepoints-for-gc -insert-gcov-profiling -constmerge -guard-widening -loop-sink -loop-guard-widening -partially-inline-libcalls -mergefunc -partial-inliner -loop-load-elim -loop-data-prefetch -mem2reg -flattencfg -alignment-from-assumptions -called-value-propagation -partially-inline-libcalls -rewrite-statepoints-for-gc -loop-reroll -loop-simplifycfg -instnamer -coro-split -loop-interchange -strip -instcombine -gvn -nary-reassociate -lowerinvoke -globaldce -aggressive-instcombine -globaldce -float2int -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9988876529477196,61.67392659187317,opt -strip -break-crit-edges -loop-unroll-and-jam -correlated-propagation -rpo-functionattrs -functionattrs -separate-const-offset-from-gep -forceattrs -mergereturn -lcssa -scalarizer -redundant-dbg-inst-elim -instnamer -libcalls-shrinkwrap -coro-early -lcssa -ipconstprop -loop-unroll -lower-constant-intrinsics -coro-early -gvn -mergefunc -instcombine -strip-dead-prototypes -sancov -globalsplit -slp-vectorizer -aggressive-instcombine -name-anon-globals -elim-avail-extern -sccp -loop-guard-widening -mergereturn -loop-guard-widening -simplifycfg -add-discriminators -loop-interchange -ipconstprop -callsite-splitting -loop-simplifycfg -lower-constant-intrinsics -jump-threading -scalarizer -coro-cleanup -loop-vectorize -mldst-motion -loop-versioning -correlated-propagation -called-value-propagation -sink -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/patricia,0.9999999999999999,61.583837270736694,opt -ipconstprop -attributor -hotcoldsplit -coro-split -newgvn -barrier -irce -lower-widenable-condition -mem2reg -mergeicmps -die -name-anon-globals -always-inline -loop-deletion -globalsplit -rpo-functionattrs -reassociate -loop-interchange -break-crit-edges -lower-constant-intrinsics -argpromotion -forceattrs -rpo-functionattrs -slsr -loop-unroll -globaldce -sancov -globalopt -loop-sink -mergeicmps -simplifycfg -lower-guard-intrinsic -reg2mem -div-rem-pairs -loop-idiom -lower-constant-intrinsics -mem2reg -mergefunc -pgo-memop-opt -partially-inline-libcalls -cross-dso-cfi -loop-load-elim -instnamer -hotcoldsplit -mergereturn -add-discriminators -irce -partially-inline-libcalls -flattencfg -alignment-from-assumptions -globaldce -mem2reg -loweratomic -functionattrs -insert-gcov-profiling -lower-constant-intrinsics -loop-predication -post-inline-ee-instrument -ipconstprop -loop-vectorize -die -mergeicmps -strip-dead-prototypes -loop-predication -nary-reassociate -strip -cross-dso-cfi -instcombine -loop-distribute -strip-nondebug -constprop -guard-widening -dse -instsimplify -licm -strip-dead-prototypes -loop-fusion -newgvn -mldst-motion -constprop -reassociate -float2int -loop-load-elim -speculative-execution -flattencfg -loop-load-elim -add-discriminators -rpo-functionattrs -scalarizer -rpo-functionattrs -functionattrs -inferattrs -simplifycfg -lowerinvoke -instnamer -lower-matrix-intrinsics -dse input.bc -o output.bc -benchmark://cBench-v1/patricia,1.0000000000000002,61.69987082481384,opt -forceattrs -sink -loop-simplify -loop-simplify -adce -ee-instrument -loop-vectorize -loop-fusion -partial-inliner -loweratomic -lower-widenable-condition -mergeicmps -post-inline-ee-instrument -prune-eh -aggressive-instcombine -scalarizer -insert-gcov-profiling -slsr -barrier -loop-simplify -lower-guard-intrinsic -insert-gcov-profiling -irce -correlated-propagation -coro-cleanup -licm -lower-guard-intrinsic -speculative-execution -forceattrs -sink -break-crit-edges -lcssa -mergereturn -barrier -ee-instrument -strip-debug-declare -memcpyopt -instnamer -constprop -ee-instrument -redundant-dbg-inst-elim -strip-nondebug -mergefunc -constmerge -gvn-hoist -mem2reg -prune-eh -globalsplit -loop-unroll-and-jam -functionattrs -slp-vectorizer -simplifycfg -strip-debug-declare -indvars -reassociate -coro-cleanup -loop-predication -float2int -loop-fusion -called-value-propagation -coro-elide -bdce -loop-simplifycfg -called-value-propagation -strip -cross-dso-cfi -tailcallelim -lower-guard-intrinsic -ipsccp -mem2reg -mldst-motion -simplifycfg -instcombine -loop-idiom -loop-vectorize -always-inline -strip-debug-declare -consthoist -attributor -nary-reassociate -constmerge -loop-interchange -newgvn -lower-matrix-intrinsics -coro-early -lowerinvoke -aggressive-instcombine -simple-loop-unswitch -float2int -bdce -loop-fusion -gvn -licm -consthoist -flattencfg -simplifycfg -loop-simplify -ee-instrument -float2int -partially-inline-libcalls -irce -redundant-dbg-inst-elim -barrier -add-discriminators -jump-threading -redundant-dbg-inst-elim -infer-address-spaces -mldst-motion -canonicalize-aliases -lowerswitch -sink -always-inline -strip-nondebug -lower-constant-intrinsics -mem2reg -name-anon-globals -instsimplify input.bc -o output.bc -benchmark://cBench-v1/patricia,1.0000000000000002,61.75343203544617,opt -globalopt -memcpyopt -mergereturn -infer-address-spaces -globaldce -lowerinvoke -insert-gcov-profiling -sroa -speculative-execution -rewrite-statepoints-for-gc -nary-reassociate -guard-widening -globalopt -bdce -scalarizer -simplifycfg -lower-guard-intrinsic -float2int -loop-idiom -mergereturn -constmerge -argpromotion -loop-instsimplify -name-anon-globals -loop-reroll -globalopt -lowerinvoke -mergeicmps -nary-reassociate -simplifycfg -consthoist -mergeicmps -instnamer -flattencfg -libcalls-shrinkwrap -loop-versioning-licm -lowerinvoke -inject-tli-mappings -indvars -sink -loop-simplifycfg -ipsccp -callsite-splitting -constmerge -loweratomic -licm -loop-unroll -dse -sancov -newgvn -globalopt -argpromotion -loop-simplify -redundant-dbg-inst-elim -libcalls-shrinkwrap -post-inline-ee-instrument -attributor -loop-versioning-licm -lower-expect -correlated-propagation -early-cse-memssa -libcalls-shrinkwrap -lower-constant-intrinsics -sroa -functionattrs -loop-sink -instcombine -reg2mem -loop-predication -loop-simplifycfg -rpo-functionattrs -globaldce -scalarizer -rewrite-statepoints-for-gc -mem2reg -coro-split -loop-vectorize -coro-elide -simplifycfg -simple-loop-unswitch -ipconstprop -name-anon-globals -infer-address-spaces -loop-unroll-and-jam -sroa -loop-idiom -loop-reroll -separate-const-offset-from-gep -inferattrs -simple-loop-unswitch -ee-instrument -loop-fusion -loop-guard-widening -always-inline -rpo-functionattrs -redundant-dbg-inst-elim -instsimplify -sink -loop-reduce -gvn-hoist -mergereturn -jump-threading -pgo-memop-opt -globalopt -gvn-hoist -barrier -loop-predication -rewrite-statepoints-for-gc -partially-inline-libcalls -insert-gcov-profiling -coro-early -newgvn -tailcallelim -forceattrs -loop-guard-widening -loop-interchange -nary-reassociate -coro-early -loop-versioning -flattencfg -rpo-functionattrs -post-inline-ee-instrument -gvn -infer-address-spaces -irce -consthoist -coro-elide -functionattrs -mergefunc -reg2mem -loop-versioning-licm -mem2reg -simplifycfg -always-inline -simplifycfg -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/patricia,1.0011123470522802,61.89285445213318,opt -infer-address-spaces -redundant-dbg-inst-elim -coro-early -loop-predication -speculative-execution -loop-unroll-and-jam -mem2reg -hotcoldsplit -infer-address-spaces -memcpyopt -globalopt -elim-avail-extern -name-anon-globals -loop-versioning-licm -strip-nondebug -coro-early -dse -reg2mem -lowerinvoke -separate-const-offset-from-gep -globaldce -loop-deletion -bdce -dce -argpromotion -always-inline -loop-data-prefetch -inferattrs -coro-early -loop-guard-widening -lower-guard-intrinsic -gvn -pgo-memop-opt -rpo-functionattrs -coro-elide -nary-reassociate -dce -consthoist -scalarizer -lcssa -partially-inline-libcalls -coro-elide -gvn-hoist -adce -loop-instsimplify -licm -prune-eh -mergefunc -strip-debug-declare -newgvn -attributor -loop-unroll-and-jam -coro-early -scalarizer -scalarizer -mergereturn -cross-dso-cfi -loop-distribute -globalsplit -pgo-memop-opt -sink -indvars -globalsplit -cross-dso-cfi -inferattrs -mergereturn -loop-versioning -libcalls-shrinkwrap -called-value-propagation -loweratomic -callsite-splitting -mergeicmps -libcalls-shrinkwrap -ee-instrument -barrier -tailcallelim -ee-instrument -canonicalize-aliases -div-rem-pairs -tailcallelim -libcalls-shrinkwrap -ipconstprop -alignment-from-assumptions -redundant-dbg-inst-elim -flattencfg -loop-idiom -break-crit-edges -load-store-vectorizer -mldst-motion -globalsplit -lowerswitch -lower-matrix-intrinsics -loop-simplifycfg -nary-reassociate -ee-instrument -loop-fusion -infer-address-spaces -loop-unroll-and-jam -div-rem-pairs -libcalls-shrinkwrap -tailcallelim -elim-avail-extern -reassociate -attributor -cross-dso-cfi -loop-deletion -infer-address-spaces -loop-sink -ipsccp -canonicalize-aliases -callsite-splitting -barrier -sancov -called-value-propagation -lower-expect -loop-versioning -gvn-hoist -loop-versioning -consthoist -coro-cleanup -lcssa -name-anon-globals -simplifycfg -rewrite-statepoints-for-gc -always-inline -loop-simplify -mergefunc -loop-data-prefetch -sink -licm -argpromotion -hotcoldsplit -loop-idiom -slsr -nary-reassociate -mem2reg -insert-gcov-profiling -add-discriminators -memcpyopt -loop-sink -forceattrs -lower-guard-intrinsic -ee-instrument -pgo-memop-opt -name-anon-globals -instsimplify -loweratomic -lowerswitch -instcombine -simplifycfg -die -loop-simplifycfg -simple-loop-unswitch -adce -loop-versioning-licm -inferattrs -loop-load-elim -simple-loop-unswitch -lower-expect -attributor -strip-nondebug -loop-vectorize -attributor -slsr -strip-nondebug -cross-dso-cfi -functionattrs -newgvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1145510835913313,61.80645179748535,opt -inferattrs -add-discriminators -memcpyopt -lowerswitch -constmerge -memcpyopt -elim-avail-extern -loop-load-elim -loop-distribute -deadargelim -loop-reroll -reg2mem -instnamer -globaldce -sancov -simple-loop-unswitch -ipconstprop -strip -loweratomic -loop-distribute -sroa -called-value-propagation -loop-distribute -instcombine -cross-dso-cfi -loop-predication -div-rem-pairs -loop-fusion -loop-reroll -loop-idiom -newgvn -globalsplit -dce -bdce -coro-cleanup -coro-cleanup -ee-instrument -coro-elide -loop-distribute -always-inline -lcssa -speculative-execution -loop-distribute -slsr -lower-matrix-intrinsics -instnamer -guard-widening -deadargelim -forceattrs -loop-deletion -rewrite-statepoints-for-gc -coro-cleanup -tailcallelim -loop-predication -loop-versioning -break-crit-edges -cross-dso-cfi -load-store-vectorizer -sink -redundant-dbg-inst-elim -break-crit-edges -sccp -lowerinvoke -deadargelim -dse -functionattrs -constmerge -tailcallelim -gvn-hoist -attributor -inject-tli-mappings -separate-const-offset-from-gep -mergefunc -flattencfg -libcalls-shrinkwrap -scalarizer -name-anon-globals -scalarizer -guard-widening -loop-data-prefetch -loop-simplifycfg -slp-vectorizer -deadargelim -loop-unswitch -dce -loop-reroll -mem2reg -indvars -flattencfg -inject-tli-mappings -div-rem-pairs -strip-dead-prototypes -loop-idiom -loop-distribute -loop-guard-widening -globaldce -sink -attributor -slp-vectorizer -ee-instrument -loop-interchange -loweratomic -lowerinvoke -partially-inline-libcalls -lowerswitch -lower-constant-intrinsics -loop-simplify -rewrite-statepoints-for-gc -adce -jump-threading -loop-load-elim -alignment-from-assumptions -globaldce -inject-tli-mappings -loop-sink -scalarizer -pgo-memop-opt -argpromotion -adce -functionattrs -sink -irce -sroa -alignment-from-assumptions -loweratomic -ipconstprop -globalsplit -lcssa -newgvn -attributor -speculative-execution -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.117647058823529,61.690404653549194,opt -globaldce -mergefunc -gvn-hoist -ipconstprop -mergeicmps -tailcallelim -newgvn -loop-simplifycfg -mem2reg -lower-guard-intrinsic -constprop -constmerge -mldst-motion -barrier -tailcallelim -lowerinvoke -barrier -name-anon-globals -lower-matrix-intrinsics -lcssa -strip-dead-prototypes -globaldce -loop-predication -slp-vectorizer -guard-widening -always-inline -coro-cleanup -loop-unroll-and-jam -slp-vectorizer -elim-avail-extern -instcombine -inferattrs -slp-vectorizer -lowerswitch -insert-gcov-profiling -coro-early -instnamer -strip-debug-declare -globalopt -simplifycfg -loop-deletion -globalsplit -loop-guard-widening -gvn-hoist -simplifycfg -libcalls-shrinkwrap -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1207430340557274,61.65247201919556,opt -slsr -coro-cleanup -insert-gcov-profiling -lowerswitch -sink -lower-widenable-condition -post-inline-ee-instrument -coro-split -strip-debug-declare -deadargelim -lower-constant-intrinsics -loop-reroll -forceattrs -jump-threading -loop-reduce -canonicalize-aliases -loop-interchange -loop-idiom -globalsplit -loop-distribute -callsite-splitting -mergereturn -bdce -loop-vectorize -loop-unswitch -partially-inline-libcalls -ee-instrument -loop-load-elim -globaldce -coro-split -deadargelim -barrier -loweratomic -slsr -elim-avail-extern -loop-data-prefetch -sroa -alignment-from-assumptions -gvn -strip-nondebug -libcalls-shrinkwrap -indvars -loop-unroll-and-jam -guard-widening -loop-guard-widening -insert-gcov-profiling -loop-simplify -gvn -guard-widening -jump-threading -globalopt -coro-elide -early-cse-memssa -infer-address-spaces -loop-simplifycfg -float2int -sccp -dse -lower-guard-intrinsic -loop-deletion -lower-guard-intrinsic -lcssa -loop-vectorize -strip -ipsccp -die -prune-eh -dse -inject-tli-mappings -inferattrs -mergeicmps -alignment-from-assumptions -strip-debug-declare -strip-dead-prototypes -simple-loop-unswitch -coro-split -gvn -lowerinvoke -sink -inject-tli-mappings -loop-data-prefetch -break-crit-edges -libcalls-shrinkwrap -strip -speculative-execution -adce -loweratomic -hotcoldsplit -reassociate -redundant-dbg-inst-elim -strip -guard-widening -strip-debug-declare -inferattrs -newgvn -sancov -loop-distribute -adce -licm -add-discriminators -insert-gcov-profiling -ee-instrument -instcombine -attributor -loop-unswitch -loop-deletion -canonicalize-aliases -coro-cleanup -deadargelim -strip-nondebug -add-discriminators -libcalls-shrinkwrap -div-rem-pairs -lower-constant-intrinsics -barrier -sancov -instnamer -simplifycfg -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1207430340557276,61.6931471824646,opt -loop-load-elim -irce -loop-sink -loop-idiom -loop-deletion -early-cse-memssa -pgo-memop-opt -partially-inline-libcalls -break-crit-edges -mldst-motion -rpo-functionattrs -elim-avail-extern -canonicalize-aliases -libcalls-shrinkwrap -irce -loweratomic -constmerge -strip -loop-load-elim -licm -callsite-splitting -inject-tli-mappings -globalsplit -loop-versioning-licm -loop-reroll -float2int -loop-unswitch -separate-const-offset-from-gep -slp-vectorizer -sccp -aggressive-instcombine -gvn -loop-guard-widening -flattencfg -prune-eh -loop-unroll-and-jam -float2int -loop-fusion -instcombine -adce -load-store-vectorizer -die -pgo-memop-opt -ipsccp -rewrite-statepoints-for-gc -loop-simplifycfg -simplifycfg -reassociate -strip -globalsplit -coro-early -gvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1207430340557276,61.77819585800171,opt -loop-reduce -break-crit-edges -hotcoldsplit -loop-interchange -post-inline-ee-instrument -reassociate -loop-fusion -coro-elide -irce -loop-idiom -libcalls-shrinkwrap -gvn-hoist -called-value-propagation -loop-data-prefetch -coro-cleanup -lowerinvoke -name-anon-globals -load-store-vectorizer -canonicalize-aliases -constprop -forceattrs -slsr -rewrite-statepoints-for-gc -functionattrs -name-anon-globals -sroa -sancov -licm -strip-debug-declare -consthoist -ee-instrument -lower-expect -loop-deletion -gvn -instcombine -rewrite-statepoints-for-gc -pgo-memop-opt -newgvn -loop-fusion -lowerinvoke -lower-constant-intrinsics -instcombine -callsite-splitting -newgvn -float2int -loop-sink -canonicalize-aliases -div-rem-pairs -float2int -instcombine -rpo-functionattrs -forceattrs -mergefunc -separate-const-offset-from-gep -guard-widening -lower-guard-intrinsic -div-rem-pairs -scalarizer -die -ipconstprop -prune-eh -irce -mem2reg -coro-cleanup -simplifycfg -inject-tli-mappings -correlated-propagation input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1207430340557276,61.80295729637146,opt -mergefunc -separate-const-offset-from-gep -loop-unroll -called-value-propagation -loop-reroll -elim-avail-extern -sroa -name-anon-globals -loop-predication -add-discriminators -name-anon-globals -speculative-execution -loop-reroll -elim-avail-extern -inject-tli-mappings -globalopt -loop-unswitch -sancov -mergefunc -coro-cleanup -div-rem-pairs -loop-simplify -newgvn -barrier -instcombine -lcssa -early-cse-memssa -lower-matrix-intrinsics -break-crit-edges -loop-guard-widening -nary-reassociate -strip-dead-prototypes -slp-vectorizer -dse -loop-instsimplify -loweratomic -instnamer -functionattrs -globalopt -strip-nondebug -consthoist -slp-vectorizer -name-anon-globals -load-store-vectorizer -coro-split -slsr -sink -loop-interchange -float2int -argpromotion -simplifycfg -instsimplify -gvn input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1207430340557276,64.49103260040283,opt -coro-early -coro-early -loop-deletion -ee-instrument -sink -argpromotion -lcssa -partially-inline-libcalls -sancov -div-rem-pairs -separate-const-offset-from-gep -load-store-vectorizer -aggressive-instcombine -simple-loop-unswitch -bdce -newgvn -instsimplify -early-cse-memssa -sink -inferattrs -bdce -rpo-functionattrs -ipconstprop -consthoist -mergereturn -scalarizer -redundant-dbg-inst-elim -loop-idiom -mem2reg -globalopt -lowerswitch -elim-avail-extern -loop-reroll -deadargelim -elim-avail-extern -lowerinvoke -scalarizer -barrier -instcombine -loop-unswitch -lower-expect -lowerinvoke -separate-const-offset-from-gep -guard-widening -barrier -gvn -deadargelim -pgo-memop-opt -guard-widening -reassociate -mergeicmps -instnamer -flattencfg -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1207430340557278,61.58107852935791,opt -scalarizer -mergefunc -reassociate -loop-vectorize -loop-instsimplify -guard-widening -lower-constant-intrinsics -sancov -constprop -newgvn -guard-widening -mem2reg -instcombine -canonicalize-aliases -licm -alignment-from-assumptions -inject-tli-mappings -mergereturn -sancov -lcssa -sccp -loop-simplifycfg -sccp -ipsccp -constmerge -lower-constant-intrinsics -lower-constant-intrinsics -callsite-splitting -loop-versioning -die -break-crit-edges -coro-cleanup -strip -post-inline-ee-instrument -lower-constant-intrinsics -lower-widenable-condition -elim-avail-extern -strip-nondebug -newgvn -lower-matrix-intrinsics -dse -nary-reassociate -name-anon-globals -reassociate -gvn-hoist -globalsplit -insert-gcov-profiling -strip-debug-declare -die -sccp -newgvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.1238390092879258,61.713104486465454,opt -partially-inline-libcalls -consthoist -loop-versioning -instnamer -add-discriminators -name-anon-globals -lower-guard-intrinsic -mergereturn -newgvn -indvars -name-anon-globals -callsite-splitting -lowerinvoke -scalarizer -lowerswitch -constmerge -loop-sink -instcombine -consthoist -separate-const-offset-from-gep -loop-sink -inject-tli-mappings -loop-reduce -slsr -gvn -ipsccp -always-inline -sink -slsr -insert-gcov-profiling -post-inline-ee-instrument -sancov -loop-deletion -strip-nondebug -loop-interchange -indvars -sccp -globaldce -loop-predication -strip-dead-prototypes -dce -lower-constant-intrinsics -rpo-functionattrs -instcombine -lower-guard-intrinsic -nary-reassociate -memcpyopt -strip-dead-prototypes -simple-loop-unswitch -ee-instrument -sroa -mergeicmps -libcalls-shrinkwrap -lower-widenable-condition -strip-debug-declare -partially-inline-libcalls -gvn -div-rem-pairs -lower-constant-intrinsics -canonicalize-aliases -callsite-splitting -dce -die -dse -coro-cleanup -inject-tli-mappings -instsimplify -inject-tli-mappings -die -strip-debug-declare -coro-split -loop-unroll -nary-reassociate -sancov -guard-widening -correlated-propagation -strip-dead-prototypes -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/qsort,1.123839009287926,61.65643358230591,opt -instsimplify -globalopt -mergereturn -load-store-vectorizer -reg2mem -loop-simplify -ipsccp -slsr -load-store-vectorizer -loop-unswitch -indvars -loop-deletion -mergeicmps -memcpyopt -pgo-memop-opt -forceattrs -argpromotion -infer-address-spaces -flattencfg -loop-load-elim -simplifycfg -loop-vectorize -ipsccp -irce -load-store-vectorizer -div-rem-pairs -loop-unswitch -barrier -strip-debug-declare -slsr -licm -instnamer -loop-data-prefetch -sccp -deadargelim -lcssa -pgo-memop-opt -canonicalize-aliases -inferattrs -loop-reroll -speculative-execution -separate-const-offset-from-gep -globalopt -nary-reassociate -slsr -constprop -scalarizer -called-value-propagation -hotcoldsplit -loop-versioning -nary-reassociate -libcalls-shrinkwrap -lcssa -strip-nondebug -mldst-motion -coro-cleanup -gvn-hoist -mergefunc -strip-dead-prototypes -ee-instrument -mergefunc -strip-dead-prototypes -die -nary-reassociate -reassociate -loop-versioning -loop-vectorize -aggressive-instcombine -loop-unroll-and-jam -gvn -float2int -globaldce -globaldce -constmerge -consthoist -dse -sancov -add-discriminators -prune-eh -simplifycfg -loop-unroll -forceattrs -newgvn -canonicalize-aliases -loop-vectorize -float2int -mergereturn -loop-deletion -partial-inliner -bdce -instsimplify -loop-data-prefetch -reassociate -dse -post-inline-ee-instrument -scalarizer -called-value-propagation -strip -loop-instsimplify -aggressive-instcombine -nary-reassociate -loop-predication -loop-load-elim -lower-guard-intrinsic -name-anon-globals -lowerinvoke -strip -loop-simplify -loop-guard-widening -break-crit-edges -loop-unswitch -sancov -instsimplify -gvn-hoist -nary-reassociate -newgvn -newgvn -load-store-vectorizer -gvn-hoist -licm -ee-instrument -flattencfg -loop-predication -globalsplit -newgvn -canonicalize-aliases -instnamer -instcombine -coro-early -bdce -irce -loop-versioning -simplifycfg -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.0969720199310078,63.5710289478302,opt -partially-inline-libcalls -simplifycfg -reassociate -called-value-propagation -loop-fusion -libcalls-shrinkwrap -loop-sink -ee-instrument -canonicalize-aliases -loop-distribute -gvn -mem2reg -sancov -float2int -loop-load-elim -slp-vectorizer -dse -licm -jump-threading -loop-fusion -instcombine -div-rem-pairs -rpo-functionattrs -slsr -gvn-hoist -constmerge -loweratomic -loop-versioning-licm -memcpyopt -nary-reassociate -constprop -infer-address-spaces -lower-guard-intrinsic -rpo-functionattrs -prune-eh -strip -bdce -mldst-motion -strip-debug-declare -rpo-functionattrs -loop-reroll -functionattrs -slp-vectorizer -loop-instsimplify -div-rem-pairs -mem2reg -mergereturn -ipconstprop -loop-distribute -callsite-splitting -newgvn -coro-split -ee-instrument -alignment-from-assumptions -mergeicmps -loop-simplify -instsimplify -mem2reg -sroa -loop-data-prefetch -tailcallelim -loop-interchange -gvn-hoist -called-value-propagation -float2int -jump-threading -loop-sink -loop-idiom -inject-tli-mappings -loop-guard-widening -instnamer -inferattrs -ee-instrument -newgvn input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.0981218857799924,62.43927502632141,opt -sroa -loop-vectorize -die -simplifycfg -slp-vectorizer -argpromotion -loop-unroll-and-jam -gvn-hoist -pgo-memop-opt -forceattrs -reassociate -called-value-propagation -instcombine -loop-load-elim -coro-elide -gvn-hoist -insert-gcov-profiling -reassociate -irce -ipconstprop -libcalls-shrinkwrap -loop-data-prefetch -instcombine -deadargelim -partially-inline-libcalls -canonicalize-aliases -speculative-execution -bdce -lower-expect -loop-interchange -coro-cleanup -newgvn input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.100038328861633,62.28735589981079,opt -strip-debug-declare -loweratomic -alignment-from-assumptions -ipsccp -loop-guard-widening -flattencfg -redundant-dbg-inst-elim -lower-expect -instnamer -prune-eh -early-cse-memssa -inject-tli-mappings -gvn -constprop -ee-instrument -inferattrs -loop-sink -prune-eh -loop-reduce -mergeicmps -dse -canonicalize-aliases -irce -mergeicmps -argpromotion -lower-widenable-condition -loop-reduce -inferattrs -jump-threading -tailcallelim -strip-debug-declare -always-inline -sccp -sancov -mergereturn -always-inline -inject-tli-mappings -loop-unroll-and-jam -mergeicmps -dce -consthoist -rewrite-statepoints-for-gc -loop-reduce -instcombine -die -loop-simplifycfg -pgo-memop-opt -coro-split -rewrite-statepoints-for-gc -break-crit-edges -argpromotion -canonicalize-aliases -reassociate -called-value-propagation -partial-inliner -rewrite-statepoints-for-gc -gvn -jump-threading -prune-eh -forceattrs -loop-fusion -sancov -newgvn -sroa -tailcallelim -libcalls-shrinkwrap -rewrite-statepoints-for-gc -argpromotion -instcombine -sancov -canonicalize-aliases -argpromotion -coro-elide -slsr -loop-guard-widening -coro-cleanup -dse -inject-tli-mappings -coro-early -libcalls-shrinkwrap -newgvn -loweratomic -inferattrs -strip-nondebug -coro-cleanup -lower-matrix-intrinsics -die -loop-fusion -jump-threading -loop-instsimplify -simplifycfg -lower-widenable-condition -sink -sancov -cross-dso-cfi -gvn input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1008049060942893,64.57522320747375,opt -mem2reg -loop-simplifycfg -die -strip-dead-prototypes -ee-instrument -name-anon-globals -reassociate -gvn-hoist -globalopt -loop-simplify -loweratomic -loweratomic -loop-reroll -inferattrs -coro-elide -separate-const-offset-from-gep -lcssa -newgvn -loop-sink -ipconstprop -early-cse-memssa -loop-fusion -hotcoldsplit -cross-dso-cfi -scalarizer -loop-distribute -globalopt -sink -newgvn -name-anon-globals -called-value-propagation -cross-dso-cfi -die -canonicalize-aliases -lower-guard-intrinsic -prune-eh -loop-fusion -libcalls-shrinkwrap -lcssa -slp-vectorizer -nary-reassociate -loop-versioning -infer-address-spaces -constmerge -loweratomic -partial-inliner -sroa -mldst-motion -coro-elide -constmerge -flattencfg -constmerge -lowerinvoke -attributor -bdce -lower-widenable-condition -argpromotion -ipsccp -globaldce -licm -loweratomic -div-rem-pairs -globalopt -speculative-execution -inferattrs -lcssa -deadargelim -lowerinvoke -partially-inline-libcalls -loop-simplify -separate-const-offset-from-gep -slp-vectorizer -strip-debug-declare -newgvn -sccp -break-crit-edges -forceattrs -irce -simplifycfg -lower-guard-intrinsic -instcombine -loop-versioning -mergereturn -bdce -lower-constant-intrinsics -guard-widening -bdce -flattencfg -lower-matrix-intrinsics -coro-elide -loop-fusion -lower-guard-intrinsic -ipconstprop -mergereturn -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1011881947106172,62.217052936553955,opt -correlated-propagation -forceattrs -lcssa -guard-widening -memcpyopt -instcombine -reassociate -loop-predication -hotcoldsplit -nary-reassociate -slsr -libcalls-shrinkwrap -infer-address-spaces -constmerge -aggressive-instcombine -flattencfg -sink -infer-address-spaces -lower-expect -constmerge -break-crit-edges -mergereturn -loop-simplifycfg -partially-inline-libcalls -instcombine -loop-guard-widening -sancov -forceattrs -loop-reroll -lcssa -strip -constmerge -instsimplify -loop-load-elim -coro-early -guard-widening -loweratomic -loop-vectorize -rpo-functionattrs -gvn -cross-dso-cfi -loop-fusion -ee-instrument -indvars -break-crit-edges -consthoist -argpromotion -loop-guard-widening -functionattrs -ipsccp -die -gvn-hoist -loop-guard-widening -coro-elide -sccp -constprop -sroa -slsr -consthoist -loop-data-prefetch -correlated-propagation -loop-versioning-licm -infer-address-spaces -loop-vectorize -nary-reassociate -loop-idiom -mem2reg -inject-tli-mappings -speculative-execution -break-crit-edges -loweratomic -loop-unswitch -coro-early -mem2reg -dce -partial-inliner -pgo-memop-opt -loop-guard-widening -gvn-hoist -pgo-memop-opt -mem2reg -strip-dead-prototypes -loweratomic -constprop -ee-instrument -mem2reg -always-inline -callsite-splitting -flattencfg -loop-deletion -globalopt -memcpyopt -instnamer -loweratomic -loweratomic -constmerge -lower-expect -nary-reassociate -attributor -globalopt -simplifycfg -globalopt -pgo-memop-opt -slsr -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1015714833269452,62.28260684013367,opt -globalsplit -speculative-execution -ee-instrument -cross-dso-cfi -lowerinvoke -dse -loop-unroll-and-jam -aggressive-instcombine -ee-instrument -strip-nondebug -elim-avail-extern -sink -loop-reroll -loweratomic -loop-distribute -instsimplify -irce -loop-deletion -add-discriminators -loop-interchange -loop-idiom -break-crit-edges -irce -sccp -sancov -loop-instsimplify -break-crit-edges -called-value-propagation -functionattrs -gvn-hoist -loop-unroll-and-jam -elim-avail-extern -ee-instrument -div-rem-pairs -coro-split -simple-loop-unswitch -loop-unswitch -ipconstprop -forceattrs -partially-inline-libcalls -sroa -instcombine -float2int -early-cse-memssa -simplifycfg -post-inline-ee-instrument -loweratomic -globalopt -lowerinvoke -lower-guard-intrinsic -slsr -gvn -loweratomic -newgvn -libcalls-shrinkwrap -inject-tli-mappings -callsite-splitting -aggressive-instcombine -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1023380605596014,61.92038822174072,opt -strip -loop-fusion -correlated-propagation -lower-matrix-intrinsics -consthoist -mldst-motion -inject-tli-mappings -nary-reassociate -partial-inliner -loop-load-elim -loop-simplify -strip-dead-prototypes -ipconstprop -loop-data-prefetch -functionattrs -reassociate -constmerge -indvars -lower-guard-intrinsic -loop-unswitch -indvars -coro-elide -sroa -add-discriminators -flattencfg -indvars -bdce -libcalls-shrinkwrap -elim-avail-extern -memcpyopt -loop-unroll -mergereturn -strip-debug-declare -always-inline -loop-simplify -loop-reroll -loop-simplifycfg -adce -constmerge -loop-versioning -coro-split -loop-simplify -bdce -jump-threading -libcalls-shrinkwrap -loop-simplifycfg -argpromotion -functionattrs -loop-interchange -called-value-propagation -instcombine -reg2mem -pgo-memop-opt -lower-constant-intrinsics -ipsccp -called-value-propagation -scalarizer -slp-vectorizer -instsimplify -mldst-motion -coro-elide -jump-threading -newgvn -ipsccp -infer-address-spaces -mergefunc -globaldce -insert-gcov-profiling -name-anon-globals -nary-reassociate -lower-matrix-intrinsics -mem2reg -loop-load-elim -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1027213491759291,62.01464819908142,opt -slsr -nary-reassociate -indvars -loop-vectorize -coro-elide -loop-versioning -elim-avail-extern -irce -loop-versioning-licm -instnamer -prune-eh -bdce -loop-simplify -sroa -early-cse-memssa -inferattrs -infer-address-spaces -constmerge -mem2reg -strip-nondebug -deadargelim -constmerge -instcombine -instsimplify -loop-instsimplify -coro-cleanup -functionattrs -globalsplit -simplifycfg -dse -mergereturn -redundant-dbg-inst-elim -slsr -forceattrs -loop-simplify -jump-threading -globalsplit -simplifycfg -called-value-propagation -adce -reassociate -lowerinvoke -gvn input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1038712150249135,62.3216187953949,opt -slsr -lower-expect -globalsplit -die -irce -slp-vectorizer -elim-avail-extern -partial-inliner -simplifycfg -sroa -forceattrs -lower-widenable-condition -sancov -cross-dso-cfi -consthoist -mergeicmps -ee-instrument -loop-simplifycfg -mem2reg -loop-load-elim -globalopt -mergereturn -strip-dead-prototypes -callsite-splitting -sink -attributor -gvn -loop-sink -loop-guard-widening -correlated-propagation -separate-const-offset-from-gep -simple-loop-unswitch -loop-distribute -lower-expect -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -loop-distribute -rewrite-statepoints-for-gc -loop-predication -break-crit-edges -strip-debug-declare -nary-reassociate -lowerinvoke -loop-guard-widening -jump-threading -correlated-propagation -sroa -post-inline-ee-instrument -rewrite-statepoints-for-gc -forceattrs -dse -loop-fusion -die -prune-eh -cross-dso-cfi -newgvn -separate-const-offset-from-gep -infer-address-spaces -alignment-from-assumptions -loop-sink -guard-widening -called-value-propagation -gvn-hoist -globalopt -simplifycfg -div-rem-pairs -instcombine -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/rijndael,1.1046377922575703,62.29489493370056,opt -adce -pgo-memop-opt -speculative-execution -loop-unroll-and-jam -coro-cleanup -loop-sink -dce -newgvn -simple-loop-unswitch -irce -inferattrs -argpromotion -always-inline -simplifycfg -globaldce -simplifycfg -lower-widenable-condition -globalsplit -deadargelim -loop-guard-widening -deadargelim -flattencfg -functionattrs -constmerge -loop-distribute -lower-widenable-condition -coro-cleanup -simple-loop-unswitch -sroa -loop-vectorize -mergereturn -gvn-hoist -infer-address-spaces -loop-deletion -ee-instrument -pgo-memop-opt -prune-eh -rpo-functionattrs -loop-data-prefetch -loop-guard-widening -instsimplify -lower-matrix-intrinsics -instsimplify -dce -pgo-memop-opt -inferattrs -strip-dead-prototypes -alignment-from-assumptions -gvn -loop-deletion -simplifycfg -globalopt -reg2mem -insert-gcov-profiling -loop-simplify -indvars -newgvn -loop-distribute -simple-loop-unswitch -ipsccp -inline -loop-vectorize -constmerge -loop-deletion -loop-unroll -gvn-hoist -callsite-splitting -cross-dso-cfi -flattencfg -mergefunc -loop-data-prefetch -name-anon-globals -jump-threading -mldst-motion -coro-cleanup -consthoist -strip-nondebug -bdce -loop-interchange -loop-idiom -tailcallelim -gvn -reg2mem -sccp -dse -correlated-propagation -insert-gcov-profiling -alignment-from-assumptions -newgvn -insert-gcov-profiling -deadargelim -div-rem-pairs -tailcallelim -loop-idiom -lower-widenable-condition -jump-threading -partially-inline-libcalls -mergeicmps -newgvn -coro-elide -inline -rpo-functionattrs -lowerinvoke -early-cse-memssa -loop-sink -tailcallelim -globalopt -adce -coro-split -ipconstprop -dse -loop-instsimplify -canonicalize-aliases -instcombine -bdce -loop-unswitch -jump-threading -loop-distribute -coro-cleanup -prune-eh -attributor -reassociate -globaldce -loop-predication -callsite-splitting -prune-eh -indvars -instsimplify -loop-predication -early-cse-memssa -gvn -loop-versioning -instcombine -loop-load-elim -loop-fusion -loop-rotate -loop-reroll -lower-constant-intrinsics -newgvn -loop-reroll -loop-guard-widening -argpromotion -loop-distribute -forceattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.4816053511705685,61.649839878082275,opt -loop-guard-widening -tailcallelim -partially-inline-libcalls -loop-simplifycfg -attributor -dse -reg2mem -loop-load-elim -ipconstprop -reg2mem -strip-nondebug -load-store-vectorizer -lower-constant-intrinsics -infer-address-spaces -instsimplify -prune-eh -early-cse-memssa -slsr -post-inline-ee-instrument -newgvn -loop-idiom -simplifycfg -globalopt -loop-data-prefetch -rewrite-statepoints-for-gc -elim-avail-extern -slp-vectorizer -argpromotion -speculative-execution -instcombine -div-rem-pairs -prune-eh -sink -alignment-from-assumptions -float2int -loop-instsimplify -adce -tailcallelim -loop-interchange -functionattrs -bdce -sroa -loop-versioning-licm -jump-threading -loop-versioning-licm -mldst-motion -strip-debug-declare -loop-load-elim -lowerswitch -mergeicmps -strip-nondebug -loop-load-elim -indvars -mergeicmps -nary-reassociate -coro-early -speculative-execution -sancov -sccp -lowerinvoke -alignment-from-assumptions -lower-expect -sccp -loop-interchange -globalopt -prune-eh -slsr -strip-nondebug -slsr -loop-data-prefetch -nary-reassociate -mergeicmps -cross-dso-cfi -loop-unroll-and-jam -loop-reroll -flattencfg -strip-dead-prototypes -elim-avail-extern -mem2reg -sccp -separate-const-offset-from-gep -slp-vectorizer -callsite-splitting -barrier -globalsplit -div-rem-pairs -cross-dso-cfi -name-anon-globals -loop-predication -reassociate -dse -newgvn -rpo-functionattrs -div-rem-pairs -separate-const-offset-from-gep -mem2reg -loop-unroll-and-jam -libcalls-shrinkwrap -hotcoldsplit -functionattrs -infer-address-spaces -reassociate -mldst-motion -loop-data-prefetch -strip-debug-declare -lcssa -correlated-propagation -separate-const-offset-from-gep -coro-early -licm -rewrite-statepoints-for-gc -gvn -strip-debug-declare -mergereturn -lower-guard-intrinsic -guard-widening -reassociate -insert-gcov-profiling -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.4983277591973243,61.73563838005066,opt -lowerswitch -tailcallelim -slp-vectorizer -newgvn -globalsplit -always-inline -argpromotion -called-value-propagation -constprop -correlated-propagation -add-discriminators -sancov -lower-matrix-intrinsics -loweratomic -mergefunc -loop-reduce -die -guard-widening -loop-unroll-and-jam -slsr -indvars -partially-inline-libcalls -strip-dead-prototypes -instnamer -sroa -lower-widenable-condition -strip-debug-declare -partial-inliner -lower-expect -tailcallelim -float2int -redundant-dbg-inst-elim -alignment-from-assumptions -loop-distribute -instcombine -correlated-propagation -loop-unroll-and-jam -loop-fusion -correlated-propagation -coro-early -scalarizer -elim-avail-extern -ipconstprop -loop-data-prefetch -scalarizer -newgvn -mergeicmps -loop-versioning-licm -canonicalize-aliases -coro-elide -slp-vectorizer -float2int -loweratomic -separate-const-offset-from-gep -redundant-dbg-inst-elim -called-value-propagation -libcalls-shrinkwrap -loop-guard-widening -argpromotion -indvars -elim-avail-extern -reassociate -prune-eh -libcalls-shrinkwrap -ipconstprop -mergeicmps -globaldce -coro-cleanup -break-crit-edges -slsr -mem2reg -gvn-hoist -loop-deletion -dce -post-inline-ee-instrument -loop-simplify -simplifycfg -mergereturn -strip -functionattrs -inferattrs -instcombine -libcalls-shrinkwrap -div-rem-pairs -loweratomic -always-inline -called-value-propagation -loop-data-prefetch -argpromotion -functionattrs -instsimplify -flattencfg -loop-data-prefetch -strip-debug-declare -licm -strip -attributor -gvn -cross-dso-cfi -functionattrs -inferattrs -insert-gcov-profiling -flattencfg -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.501672240802675,61.79606604576111,opt -redundant-dbg-inst-elim -mergefunc -nary-reassociate -adce -licm -loop-data-prefetch -constprop -die -lowerswitch -scalarizer -lcssa -sancov -adce -ipconstprop -inject-tli-mappings -loop-interchange -pgo-memop-opt -break-crit-edges -deadargelim -ipconstprop -post-inline-ee-instrument -loop-sink -sancov -sroa -instcombine -early-cse-memssa -loop-deletion -loop-versioning-licm -slsr -ee-instrument -reg2mem -mergeicmps -loop-deletion -lower-constant-intrinsics -div-rem-pairs -coro-early -indvars -forceattrs -early-cse-memssa -gvn -early-cse-memssa -loop-sink -loop-instsimplify -mem2reg -coro-split -name-anon-globals -loop-interchange -irce -indvars -libcalls-shrinkwrap -load-store-vectorizer -simplifycfg -redundant-dbg-inst-elim -gvn -nary-reassociate -simplifycfg -sroa -argpromotion -post-inline-ee-instrument -bdce -ee-instrument -lower-expect -loop-interchange -speculative-execution -loop-distribute -lower-guard-intrinsic -lowerswitch -sancov -inject-tli-mappings -mldst-motion -inferattrs -loop-simplify -mergeicmps -globaldce -licm -simplifycfg -strip-nondebug -mergereturn -strip-dead-prototypes -scalarizer -adce -rewrite-statepoints-for-gc -float2int -deadargelim -globaldce -coro-early -called-value-propagation -coro-early -gvn-hoist -mergefunc -memcpyopt -mergefunc -flattencfg -loop-interchange -jump-threading -reassociate -alignment-from-assumptions -globalopt -constmerge -gvn -instcombine input.bc -o output.bc -benchmark://cBench-v1/sha,1.5050167224080266,61.69275736808777,opt -lower-matrix-intrinsics -barrier -slsr -partially-inline-libcalls -instsimplify -loop-unroll-and-jam -speculative-execution -loop-unroll -loop-distribute -functionattrs -hotcoldsplit -forceattrs -mem2reg -partial-inliner -sroa -functionattrs -loop-idiom -scalarizer -attributor -add-discriminators -add-discriminators -newgvn -loop-sink -add-discriminators -coro-early -callsite-splitting -strip -indvars -libcalls-shrinkwrap -loop-deletion -add-discriminators -pgo-memop-opt -constprop -loop-unroll-and-jam -rpo-functionattrs -add-discriminators -globalsplit -dse -mldst-motion -instcombine -loop-idiom -globalsplit -globaldce -memcpyopt -loop-versioning -correlated-propagation -flattencfg -adce -gvn-hoist -adce -nary-reassociate -instnamer -simplifycfg -lowerinvoke -speculative-execution -gvn -tailcallelim -sancov -inferattrs -deadargelim -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/sha,1.5083612040133778,61.7785108089447,opt -lower-widenable-condition -break-crit-edges -early-cse-memssa -loop-predication -ipsccp -float2int -indvars -post-inline-ee-instrument -ipconstprop -instnamer -loop-predication -loop-idiom -libcalls-shrinkwrap -strip-dead-prototypes -die -lower-guard-intrinsic -mldst-motion -loop-interchange -flattencfg -reassociate -loop-data-prefetch -flattencfg -gvn -functionattrs -dce -lower-widenable-condition -float2int -name-anon-globals -simplifycfg -speculative-execution -mldst-motion -libcalls-shrinkwrap -strip-nondebug -forceattrs -strip-debug-declare -post-inline-ee-instrument -prune-eh -sancov -loop-unroll-and-jam -sccp -loop-versioning-licm -coro-early -lower-widenable-condition -speculative-execution -mem2reg -globalopt -strip -coro-split -loop-idiom -loop-simplify -callsite-splitting -instcombine -dse -adce -sink -nary-reassociate -gvn -sroa -mergereturn -coro-early -rpo-functionattrs -newgvn -add-discriminators -called-value-propagation -loop-load-elim -loop-data-prefetch -loop-deletion -barrier -loop-vectorize -callsite-splitting -indvars -deadargelim -guard-widening -die -early-cse-memssa -inferattrs -gvn -instnamer -canonicalize-aliases -argpromotion -loweratomic -inject-tli-mappings -mem2reg -loop-simplifycfg -loop-reroll -adce -ipconstprop -lowerswitch -alignment-from-assumptions -always-inline -scalarizer -guard-widening -loop-versioning-licm -inject-tli-mappings -globaldce -div-rem-pairs -insert-gcov-profiling -strip-nondebug -slp-vectorizer -loop-simplify -attributor -indvars -ipconstprop -elim-avail-extern -bdce -instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.5117056856187288,61.70262050628662,opt -loop-reduce -flattencfg -loop-versioning -loweratomic -sroa -strip-debug-declare -alignment-from-assumptions -insert-gcov-profiling -forceattrs -coro-elide -redundant-dbg-inst-elim -early-cse-memssa -lower-constant-intrinsics -load-store-vectorizer -gvn -loop-reroll -post-inline-ee-instrument -loop-guard-widening -speculative-execution -sroa -tailcallelim -scalarizer -dce -pgo-memop-opt -loop-distribute -mldst-motion -post-inline-ee-instrument -instnamer -speculative-execution -float2int -mergereturn -called-value-propagation -div-rem-pairs -cross-dso-cfi -cross-dso-cfi -lower-expect -redundant-dbg-inst-elim -loop-versioning-licm -speculative-execution -ipconstprop -callsite-splitting -sccp -loop-simplifycfg -simple-loop-unswitch -scalarizer -mem2reg -lower-constant-intrinsics -loop-simplify -licm -prune-eh -partially-inline-libcalls -partially-inline-libcalls -loop-data-prefetch -lcssa -dce -memcpyopt -loop-sink -redundant-dbg-inst-elim -prune-eh -strip-dead-prototypes -pgo-memop-opt -load-store-vectorizer -gvn -instcombine -loweratomic -adce -speculative-execution -loop-unroll-and-jam -mldst-motion -loop-reroll -mergereturn -post-inline-ee-instrument -strip-nondebug -forceattrs -coro-early -rewrite-statepoints-for-gc -partial-inliner -loop-distribute -strip-debug-declare -strip -mergefunc -functionattrs -infer-address-spaces -lowerswitch -tailcallelim -sccp -sink -newgvn -indvars -loop-unroll-and-jam -loop-simplify -loop-simplify -callsite-splitting -deadargelim -simplifycfg -argpromotion -coro-split -newgvn input.bc -o output.bc -benchmark://cBench-v1/sha,1.511705685618729,61.58654522895813,opt -early-cse-memssa -inferattrs -coro-elide -sccp -load-store-vectorizer -lower-guard-intrinsic -coro-elide -loop-simplifycfg -load-store-vectorizer -nary-reassociate -die -libcalls-shrinkwrap -mergeicmps -loop-versioning-licm -tailcallelim -strip -name-anon-globals -redundant-dbg-inst-elim -mldst-motion -called-value-propagation -alignment-from-assumptions -strip-debug-declare -ipconstprop -bdce -mergeicmps -elim-avail-extern -always-inline -gvn -licm -post-inline-ee-instrument -ee-instrument -cross-dso-cfi -loop-simplify -loop-reroll -jump-threading -ee-instrument -lowerinvoke -float2int -loop-versioning -hotcoldsplit -instcombine -loop-data-prefetch -reassociate -simple-loop-unswitch -coro-split -loop-simplifycfg -gvn-hoist -sancov -load-store-vectorizer -lower-expect -lowerswitch -load-store-vectorizer -loop-rotate -barrier -simple-loop-unswitch -newgvn -called-value-propagation -load-store-vectorizer -loop-predication -memcpyopt -mergeicmps -float2int -div-rem-pairs -instsimplify -loop-instsimplify -speculative-execution -coro-cleanup -inferattrs -callsite-splitting -cross-dso-cfi -correlated-propagation -consthoist -mergeicmps -loop-vectorize -constmerge -mem2reg -instsimplify -ee-instrument -coro-early -loop-data-prefetch -argpromotion -irce -indvars -scalarizer -callsite-splitting -loop-guard-widening -instcombine -sancov -loop-unroll-and-jam -loop-deletion -loop-idiom -lower-matrix-intrinsics -loop-sink -simple-loop-unswitch -sccp -memcpyopt -cross-dso-cfi -mldst-motion -gvn -slsr -inject-tli-mappings -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/sha,1.5150501672240804,62.05151176452637,opt -elim-avail-extern -early-cse-memssa -jump-threading -tailcallelim -gvn-hoist -lower-widenable-condition -partially-inline-libcalls -lower-expect -speculative-execution -loop-guard-widening -insert-gcov-profiling -globalsplit -loop-distribute -lcssa -pgo-memop-opt -reassociate -pgo-memop-opt -loop-deletion -functionattrs -instsimplify -mldst-motion -scalarizer -canonicalize-aliases -speculative-execution -loop-idiom -add-discriminators -inferattrs -barrier -globaldce -consthoist -loop-reduce -mem2reg -partially-inline-libcalls -globalsplit -partial-inliner -jump-threading -functionattrs -sancov -globaldce -float2int -div-rem-pairs -simplifycfg -speculative-execution -lower-expect -coro-split -newgvn -rpo-functionattrs -indvars -rewrite-statepoints-for-gc -simplifycfg -ipsccp -instsimplify -barrier -ipsccp -ipconstprop -ee-instrument -indvars -ee-instrument -coro-early -float2int -attributor -ipconstprop -licm -lower-expect -slsr -globaldce -rpo-functionattrs -correlated-propagation -ipsccp -mldst-motion -infer-address-spaces -load-store-vectorizer -newgvn -sccp -indvars -newgvn -simple-loop-unswitch -simplifycfg -gvn -always-inline -partially-inline-libcalls -nary-reassociate -insert-gcov-profiling -coro-early -mergeicmps -irce -instcombine -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.5183946488294315,61.559239864349365,opt -ipconstprop -reg2mem -ipconstprop -prune-eh -pgo-memop-opt -rewrite-statepoints-for-gc -rpo-functionattrs -always-inline -constprop -globaldce -libcalls-shrinkwrap -loop-unroll -loop-reroll -consthoist -coro-split -lower-constant-intrinsics -functionattrs -pgo-memop-opt -coro-elide -slsr -inject-tli-mappings -memcpyopt -loop-vectorize -barrier -libcalls-shrinkwrap -adce -div-rem-pairs -ipsccp -memcpyopt -gvn-hoist -partially-inline-libcalls -prune-eh -lowerinvoke -always-inline -loop-reroll -lowerswitch -coro-split -break-crit-edges -nary-reassociate -partially-inline-libcalls -gvn-hoist -attributor -instnamer -rpo-functionattrs -gvn -loop-fusion -bdce -sink -add-discriminators -simplifycfg -infer-address-spaces -lcssa -strip-dead-prototypes -loop-versioning -simplifycfg -partially-inline-libcalls -loop-deletion -simple-loop-unswitch -loop-distribute -licm -loop-vectorize -aggressive-instcombine -globalsplit -lower-guard-intrinsic -constmerge -constmerge -always-inline -loop-simplify -insert-gcov-profiling -indvars -elim-avail-extern -mergeicmps -loop-interchange -mem2reg -loop-reroll -load-store-vectorizer -alignment-from-assumptions -bdce -partial-inliner -loop-distribute -gvn-hoist -memcpyopt -mergefunc -coro-split -coro-split -mldst-motion -loop-idiom -loop-deletion -rpo-functionattrs -attributor -attributor -slsr -slp-vectorizer -loop-distribute -irce -lower-guard-intrinsic -gvn -loop-versioning-licm -loop-interchange -die -add-discriminators -deadargelim -instcombine -irce -lowerinvoke -separate-const-offset-from-gep -partially-inline-libcalls -jump-threading -consthoist -constprop -libcalls-shrinkwrap -aggressive-instcombine -flattencfg -constmerge -slsr -partial-inliner -sroa -correlated-propagation -deadargelim -correlated-propagation -indvars -mergefunc -indvars -load-store-vectorizer -loop-interchange -loop-interchange -jump-threading -inject-tli-mappings -attributor -forceattrs -loop-predication -loweratomic -sroa -loop-predication -correlated-propagation -loop-distribute -simple-loop-unswitch -loop-predication -loop-interchange -slp-vectorizer -loop-predication -jump-threading -loop-simplify -sink -loop-sink -sroa -coro-early -loop-distribute -insert-gcov-profiling -post-inline-ee-instrument -memcpyopt -coro-cleanup -name-anon-globals -loop-sink -sancov -slsr -lower-matrix-intrinsics -licm -simplifycfg -dse -early-cse-memssa -attributor -strip-debug-declare -nary-reassociate -div-rem-pairs -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/sha,1.5250836120401334,61.66695785522461,opt -partial-inliner -coro-elide -sancov -irce -nary-reassociate -alignment-from-assumptions -mergereturn -insert-gcov-profiling -ipconstprop -instsimplify -correlated-propagation -barrier -attributor -loop-deletion -load-store-vectorizer -dce -licm -globaldce -loop-vectorize -div-rem-pairs -strip-debug-declare -load-store-vectorizer -always-inline -inferattrs -mergeicmps -sink -loop-unroll-and-jam -flattencfg -sccp -load-store-vectorizer -loop-rotate -deadargelim -lcssa -attributor -indvars -globalopt -scalarizer -coro-cleanup -prune-eh -post-inline-ee-instrument -gvn -loop-idiom -loop-load-elim -attributor -simplifycfg -strip -constmerge -indvars -sroa -dce -instcombine -separate-const-offset-from-gep -mergefunc -loop-simplify -barrier -tailcallelim -lower-expect -globalopt -libcalls-shrinkwrap -lower-widenable-condition -jump-threading -deadargelim -pgo-memop-opt -rewrite-statepoints-for-gc -callsite-splitting -mergefunc -globalsplit -mergeicmps -gvn -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,0.9959016393442623,61.68849325180054,opt -nary-reassociate -lower-matrix-intrinsics -cross-dso-cfi -lower-expect -canonicalize-aliases -load-store-vectorizer -forceattrs -loop-idiom -barrier -slp-vectorizer -loop-versioning-licm -insert-gcov-profiling -dse -strip-nondebug -early-cse-memssa -instnamer -globaldce -hotcoldsplit -mergeicmps -lowerinvoke -sink -coro-early -lower-constant-intrinsics -ipconstprop -pgo-memop-opt -scalarizer -sancov -loop-fusion -barrier -pgo-memop-opt -coro-split -reg2mem -globalopt -lower-expect -infer-address-spaces -constprop -loop-sink -slp-vectorizer -gvn -nary-reassociate -speculative-execution -loop-interchange -lowerinvoke -libcalls-shrinkwrap -float2int -add-discriminators -sink -elim-avail-extern -reassociate -memcpyopt -loop-sink -elim-avail-extern -redundant-dbg-inst-elim -lowerswitch -mergefunc -add-discriminators -loop-fusion -simple-loop-unswitch -lower-matrix-intrinsics -globaldce -add-discriminators -load-store-vectorizer -infer-address-spaces -callsite-splitting -loop-simplifycfg -instnamer -adce -sroa -attributor -adce -name-anon-globals -globaldce -redundant-dbg-inst-elim -forceattrs -loop-simplify -elim-avail-extern -loop-distribute -aggressive-instcombine -lowerswitch -die -strip-dead-prototypes -forceattrs -infer-address-spaces -rpo-functionattrs -loop-simplify -globalsplit -loop-load-elim -licm -lower-widenable-condition -ee-instrument -lower-constant-intrinsics -insert-gcov-profiling -float2int -globalopt -attributor -redundant-dbg-inst-elim -lower-guard-intrinsic -sccp -strip -aggressive-instcombine -strip-nondebug -ipconstprop -loop-fusion -coro-elide -strip-dead-prototypes -loop-reroll -mergeicmps -float2int -loop-data-prefetch -reassociate -hotcoldsplit -newgvn -instcombine -mldst-motion -redundant-dbg-inst-elim -jump-threading -gvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0013661202185793,61.93865656852722,opt -loop-fusion -coro-elide -coro-cleanup -guard-widening -simplifycfg -mergefunc -hotcoldsplit -inferattrs -guard-widening -guard-widening -globalopt -lower-matrix-intrinsics -loop-versioning-licm -lower-widenable-condition -loop-fusion -loop-instsimplify -irce -loop-vectorize -float2int -loop-reduce -partially-inline-libcalls -sccp -lower-expect -loop-distribute -lowerswitch -loop-predication -newgvn -early-cse-memssa -lowerswitch -libcalls-shrinkwrap -loop-deletion -loweratomic -attributor -coro-cleanup -loop-guard-widening -insert-gcov-profiling -lower-constant-intrinsics -sccp -loop-idiom -gvn-hoist -slsr -barrier -gvn -mem2reg -slsr -bdce -simple-loop-unswitch -newgvn -insert-gcov-profiling -globalopt -nary-reassociate -loop-idiom -gvn-hoist -partial-inliner -lcssa -die -aggressive-instcombine -canonicalize-aliases -loop-idiom -loop-idiom -libcalls-shrinkwrap -dse -globaldce -strip -coro-cleanup -adce -instcombine -loop-data-prefetch -instnamer -newgvn -deadargelim -loop-distribute -coro-split -sancov -correlated-propagation -mergereturn -insert-gcov-profiling -mergefunc -reassociate -insert-gcov-profiling -coro-elide -post-inline-ee-instrument -callsite-splitting -libcalls-shrinkwrap -loop-predication -loop-data-prefetch -lower-matrix-intrinsics -lower-expect -instsimplify -lowerinvoke -pgo-memop-opt -ipsccp -hotcoldsplit -sroa -coro-elide -gvn -loop-unroll -globalopt -redundant-dbg-inst-elim -ipsccp -dse -loop-guard-widening -ipconstprop -loop-deletion -memcpyopt -loop-sink -loop-instsimplify -partial-inliner -die -insert-gcov-profiling -loop-sink -constmerge -mergefunc -partially-inline-libcalls -inferattrs -loweratomic -sroa -constprop -dse -libcalls-shrinkwrap -callsite-splitting -barrier -name-anon-globals -name-anon-globals -loop-predication -correlated-propagation -loop-unroll-and-jam -deadargelim -loop-idiom -loop-deletion -loop-idiom -post-inline-ee-instrument -speculative-execution -loop-sink -lowerinvoke -speculative-execution -consthoist -die -canonicalize-aliases -canonicalize-aliases -memcpyopt -scalarizer -elim-avail-extern -tailcallelim -callsite-splitting -irce -speculative-execution -post-inline-ee-instrument -barrier -loop-interchange -pgo-memop-opt -lcssa -reg2mem -functionattrs -name-anon-globals -loop-reduce -loop-fusion -indvars -loop-unroll-and-jam -correlated-propagation -lower-constant-intrinsics -float2int -loop-interchange -functionattrs -ipsccp -loop-distribute -mergefunc -mergereturn -reg2mem -irce -strip-debug-declare -irce -reg2mem -loop-versioning-licm -functionattrs -slp-vectorizer -scalarizer -sancov -barrier -coro-cleanup -loop-unroll-and-jam -pgo-memop-opt -mem2reg -instnamer -newgvn -lcssa -cross-dso-cfi -globalsplit -loop-simplify -hotcoldsplit -called-value-propagation -sroa -jump-threading -mem2reg -mergeicmps -called-value-propagation -ipsccp -loop-unroll-and-jam -simplifycfg -loop-versioning -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0013661202185793,62.70221829414368,opt -loop-fusion -loop-simplifycfg -loop-reduce -loop-load-elim -loop-unswitch -partially-inline-libcalls -coro-split -insert-gcov-profiling -ipsccp -always-inline -post-inline-ee-instrument -coro-elide -loop-fusion -functionattrs -gvn -prune-eh -instsimplify -die -slp-vectorizer -inferattrs -coro-split -globaldce -callsite-splitting -sccp -loop-interchange -inject-tli-mappings -loop-versioning-licm -tailcallelim -partially-inline-libcalls -insert-gcov-profiling -nary-reassociate -jump-threading -float2int -tailcallelim -sroa -loop-versioning -loop-sink -called-value-propagation -loop-unroll -sccp -barrier -loop-instsimplify -coro-elide -constmerge -strip-nondebug -nary-reassociate -coro-early -cross-dso-cfi -attributor -mergeicmps -deadargelim -speculative-execution -constmerge -alignment-from-assumptions -ipsccp -div-rem-pairs -redundant-dbg-inst-elim -speculative-execution -prune-eh -newgvn -mldst-motion -sroa -lower-widenable-condition -attributor -simplifycfg -memcpyopt -indvars -lowerswitch -newgvn -name-anon-globals -strip-debug-declare -inject-tli-mappings -prune-eh -name-anon-globals -instcombine -coro-cleanup -functionattrs -globalsplit -functionattrs -aggressive-instcombine -sancov -bdce -rewrite-statepoints-for-gc -cross-dso-cfi -indvars -ipconstprop -nary-reassociate -separate-const-offset-from-gep -callsite-splitting -canonicalize-aliases -licm -sccp -redundant-dbg-inst-elim -loop-guard-widening -loop-reroll -consthoist -float2int -gvn-hoist -loop-data-prefetch -globaldce -elim-avail-extern -loop-sink -strip-dead-prototypes -argpromotion -correlated-propagation -indvars -lower-widenable-condition -rpo-functionattrs -loop-unswitch -lower-constant-intrinsics -lower-expect -jump-threading -globaldce -globaldce -simplifycfg -lower-constant-intrinsics -infer-address-spaces -early-cse-memssa -jump-threading -elim-avail-extern -rpo-functionattrs -dse -correlated-propagation -memcpyopt -strip -alignment-from-assumptions -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0027322404371586,61.595093727111816,opt -canonicalize-aliases -gvn-hoist -float2int -coro-early -reg2mem -ipconstprop -loop-versioning -strip-debug-declare -strip-nondebug -constprop -speculative-execution -redundant-dbg-inst-elim -licm -simplifycfg -constmerge -inferattrs -lower-widenable-condition -globalopt -loop-vectorize -deadargelim -sancov -loop-distribute -post-inline-ee-instrument -partially-inline-libcalls -lower-constant-intrinsics -dce -dse -slp-vectorizer -die -ipconstprop -loop-vectorize -slp-vectorizer -prune-eh -strip -post-inline-ee-instrument -pgo-memop-opt -partial-inliner -deadargelim -gvn -forceattrs -load-store-vectorizer -globalsplit -separate-const-offset-from-gep -loop-interchange -pgo-memop-opt -lowerswitch -reassociate -rewrite-statepoints-for-gc -mergefunc -lcssa -inferattrs -infer-address-spaces -float2int -mldst-motion -libcalls-shrinkwrap -simplifycfg -ipconstprop -deadargelim -functionattrs -loop-simplify -lower-matrix-intrinsics -strip -mergereturn -elim-avail-extern -functionattrs -rpo-functionattrs -inject-tli-mappings -loop-simplify -loop-deletion -instcombine -lowerswitch -post-inline-ee-instrument -sroa -speculative-execution -infer-address-spaces -dce -lower-widenable-condition -jump-threading -loop-load-elim -sink -partial-inliner -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.005464480874317,61.7589898109436,opt -lower-constant-intrinsics -loop-predication -rewrite-statepoints-for-gc -loop-idiom -rpo-functionattrs -hotcoldsplit -infer-address-spaces -coro-cleanup -coro-elide -jump-threading -instsimplify -loop-reroll -coro-split -sink -coro-elide -lcssa -libcalls-shrinkwrap -correlated-propagation -infer-address-spaces -sroa -newgvn -elim-avail-extern -guard-widening -always-inline -simplifycfg -ipsccp -mergeicmps -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0054644808743174,61.90070199966431,opt -always-inline -float2int -loop-interchange -globalsplit -constmerge -nary-reassociate -flattencfg -loop-interchange -slsr -newgvn -lower-guard-intrinsic -loweratomic -lcssa -guard-widening -prune-eh -loop-interchange -float2int -flattencfg -libcalls-shrinkwrap -loop-idiom -loop-distribute -sccp -simple-loop-unswitch -mergereturn -functionattrs -slsr -always-inline -canonicalize-aliases -redundant-dbg-inst-elim -barrier -lower-widenable-condition -coro-elide -coro-split -loop-versioning -partially-inline-libcalls -dce -attributor -canonicalize-aliases -canonicalize-aliases -canonicalize-aliases -aggressive-instcombine -infer-address-spaces -mem2reg -deadargelim -libcalls-shrinkwrap -globalsplit -lower-widenable-condition -lower-matrix-intrinsics -lcssa -guard-widening -argpromotion -coro-split -strip -dse -loop-simplifycfg -rpo-functionattrs -slsr -loop-deletion -break-crit-edges -loop-reroll -coro-cleanup -simplifycfg -strip-debug-declare -scalarizer -lowerswitch -loop-load-elim -add-discriminators -partial-inliner -coro-split -globalsplit -loop-vectorize -lower-matrix-intrinsics -lower-widenable-condition -sancov -reassociate -coro-cleanup -alignment-from-assumptions -elim-avail-extern -strip-dead-prototypes -early-cse-memssa -reassociate -reg2mem -called-value-propagation -flattencfg -loop-unswitch -coro-cleanup -constprop -canonicalize-aliases -loop-reduce -irce -elim-avail-extern -sink -argpromotion -loop-data-prefetch -inject-tli-mappings -loop-data-prefetch -redundant-dbg-inst-elim -load-store-vectorizer -lower-constant-intrinsics -simplifycfg -inline -globaldce -sccp -elim-avail-extern -strip-dead-prototypes -functionattrs -coro-split -lower-expect -cross-dso-cfi -mergeicmps -globaldce -rpo-functionattrs -dse -loop-fusion -loop-reroll -constprop -lowerswitch -correlated-propagation -speculative-execution -inferattrs -deadargelim -simplifycfg -dce -post-inline-ee-instrument -globalopt -gvn -reassociate -loop-versioning -constmerge -coro-split -always-inline -gvn -loop-sink -newgvn -loop-idiom -guard-widening -reg2mem -indvars -aggressive-instcombine -strip -deadargelim -irce -loop-unroll-and-jam -reg2mem -sroa -loop-guard-widening -loop-sink -strip -break-crit-edges -instsimplify -slsr -break-crit-edges -inferattrs -always-inline -simple-loop-unswitch -instcombine -called-value-propagation -mergeicmps -slp-vectorizer -strip-debug-declare -lower-matrix-intrinsics -break-crit-edges -loop-sink -always-inline -lcssa -loop-versioning-licm -guard-widening -consthoist -loop-load-elim -argpromotion -mergefunc -reassociate -sink -simple-loop-unswitch -aggressive-instcombine -lcssa -reg2mem -strip-nondebug -lower-widenable-condition -mergereturn -simplifycfg -load-store-vectorizer -forceattrs -constprop -instsimplify -loop-reduce -ee-instrument -loop-simplify -globalsplit -mergereturn -adce -sroa -lower-matrix-intrinsics -ee-instrument -bdce -nary-reassociate -coro-early -rpo-functionattrs -called-value-propagation -cross-dso-cfi -jump-threading -name-anon-globals -rewrite-statepoints-for-gc -loop-reroll -pgo-memop-opt -alignment-from-assumptions -bdce -memcpyopt -forceattrs -deadargelim -sccp -argpromotion -speculative-execution -strip-nondebug -die -infer-address-spaces -sccp -mergefunc -strip-nondebug -sancov -sccp -always-inline -scalarizer -forceattrs -insert-gcov-profiling -mldst-motion -barrier -loop-versioning -lcssa -infer-address-spaces -coro-split -consthoist -loop-deletion -libcalls-shrinkwrap -loop-vectorize -reassociate -loop-simplify -simplifycfg -called-value-propagation -mergeicmps -lower-widenable-condition -rpo-functionattrs -memcpyopt -newgvn -insert-gcov-profiling -newgvn -insert-gcov-profiling -always-inline -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0068306010928962,61.69719099998474,opt -loop-reroll -sancov -pgo-memop-opt -coro-early -loop-unroll-and-jam -strip-nondebug -instsimplify -loop-simplify -strip -break-crit-edges -die -globalsplit -lower-widenable-condition -add-discriminators -mergefunc -reassociate -lower-expect -div-rem-pairs -licm -argpromotion -gvn -post-inline-ee-instrument -gvn-hoist -scalarizer -loop-interchange -sink -rpo-functionattrs -reg2mem -inject-tli-mappings -ee-instrument -float2int -reg2mem -inferattrs -newgvn -div-rem-pairs -tailcallelim -coro-cleanup -instsimplify -deadargelim -name-anon-globals -pgo-memop-opt -partial-inliner -globalsplit -loop-versioning-licm -sancov -loop-simplify -indvars -slsr -correlated-propagation -libcalls-shrinkwrap -break-crit-edges -dse -nary-reassociate -slp-vectorizer -instnamer -float2int -infer-address-spaces -guard-widening -float2int -inline -lowerinvoke -sccp -loop-simplify -loop-distribute -alignment-from-assumptions -loop-simplifycfg -jump-threading -sink -scalarizer -die -inline -loop-unroll-and-jam -elim-avail-extern -gvn -die -mldst-motion -infer-address-spaces -consthoist -lower-expect -loop-instsimplify -barrier -simplifycfg -strip-dead-prototypes -name-anon-globals -called-value-propagation -sancov -barrier -tailcallelim -tailcallelim -loop-data-prefetch -loop-vectorize -name-anon-globals -lower-expect -reassociate -lcssa -loweratomic -globaldce -gvn-hoist -libcalls-shrinkwrap -nary-reassociate -adce -dse -adce -loop-versioning-licm -dse -libcalls-shrinkwrap -canonicalize-aliases -sroa -ipsccp -mergefunc -constmerge -inferattrs -name-anon-globals -mldst-motion -pgo-memop-opt -loop-versioning -die -add-discriminators -strip-nondebug -licm -libcalls-shrinkwrap -loop-unswitch -simplifycfg -constprop -cross-dso-cfi -forceattrs -sancov -coro-early -newgvn -nary-reassociate -instcombine -mem2reg -loop-predication -cross-dso-cfi -mem2reg -loop-data-prefetch -dse -loop-vectorize -irce -strip -cross-dso-cfi -loop-versioning-licm -loweratomic -loop-simplifycfg -partial-inliner -loop-instsimplify -loop-deletion -partially-inline-libcalls -loop-unroll -loop-predication -attributor -sink -correlated-propagation -lower-constant-intrinsics -reassociate -lower-expect -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0068306010928965,61.84607648849487,opt -constmerge -memcpyopt -libcalls-shrinkwrap -consthoist -lower-constant-intrinsics -mem2reg -loop-data-prefetch -rewrite-statepoints-for-gc -called-value-propagation -separate-const-offset-from-gep -forceattrs -gvn -loop-simplify -rpo-functionattrs -constmerge -irce -dce -loop-load-elim -coro-early -constmerge -lower-matrix-intrinsics -slp-vectorizer -slp-vectorizer -add-discriminators -gvn -scalarizer -jump-threading -die -cross-dso-cfi -strip -loop-vectorize -inferattrs -adce -loweratomic -rewrite-statepoints-for-gc -lowerswitch -post-inline-ee-instrument -float2int -argpromotion -coro-split -ipconstprop -slp-vectorizer -lowerswitch -alignment-from-assumptions -add-discriminators -consthoist -mergeicmps -argpromotion -sink -loop-load-elim -loop-versioning-licm -mem2reg -inferattrs -indvars -instcombine -coro-early -ee-instrument -instcombine -alignment-from-assumptions -loop-instsimplify -consthoist -canonicalize-aliases -coro-split -load-store-vectorizer -aggressive-instcombine -gvn -slsr -loop-reroll -lower-constant-intrinsics -instnamer -sroa -infer-address-spaces -elim-avail-extern -correlated-propagation -scalarizer -lowerinvoke -inject-tli-mappings -constmerge -strip-debug-declare -loop-unswitch -elim-avail-extern -scalarizer -functionattrs -partial-inliner -early-cse-memssa -div-rem-pairs -inferattrs -mem2reg -mergefunc -separate-const-offset-from-gep -inferattrs -globalsplit -consthoist -mergeicmps -loop-sink -lower-guard-intrinsic -nary-reassociate -rewrite-statepoints-for-gc -partial-inliner -post-inline-ee-instrument -load-store-vectorizer -mldst-motion -deadargelim -barrier -dce -simplifycfg -loop-unroll -simple-loop-unswitch -break-crit-edges -loop-sink -globalsplit -loop-deletion -strip -deadargelim -loop-sink -loop-unswitch -loop-idiom -strip-nondebug -gvn-hoist -nary-reassociate -loop-vectorize -infer-address-spaces -early-cse-memssa -dse -always-inline -coro-split -globalsplit -loop-distribute -callsite-splitting -mldst-motion -loop-simplifycfg -speculative-execution -early-cse-memssa -die -instcombine -canonicalize-aliases -coro-early -die -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.0081967213114753,61.87919545173645,opt -called-value-propagation -jump-threading -break-crit-edges -globaldce -break-crit-edges -adce -gvn-hoist -name-anon-globals -mldst-motion -coro-split -attributor -correlated-propagation -jump-threading -simple-loop-unswitch -loop-unswitch -mergefunc -loop-unroll -pgo-memop-opt -partial-inliner -tailcallelim -add-discriminators -strip-nondebug -prune-eh -strip -load-store-vectorizer -strip -loop-deletion -callsite-splitting -slp-vectorizer -licm -lower-matrix-intrinsics -aggressive-instcombine -lower-widenable-condition -lowerinvoke -sroa -attributor -instnamer -attributor -loweratomic -load-store-vectorizer -insert-gcov-profiling -globaldce -sroa -simplifycfg -loop-interchange -simple-loop-unswitch -jump-threading -guard-widening -nary-reassociate -memcpyopt -gvn -ipconstprop -functionattrs -loop-load-elim -licm -irce -pgo-memop-opt -infer-address-spaces -elim-avail-extern -sccp -elim-avail-extern -correlated-propagation -coro-split -rpo-functionattrs -prune-eh -constprop -break-crit-edges -correlated-propagation -coro-cleanup -redundant-dbg-inst-elim -globalsplit -barrier -called-value-propagation -constmerge -hotcoldsplit -simplifycfg -scalarizer -insert-gcov-profiling -globalopt -loop-simplify -float2int -redundant-dbg-inst-elim -dce -slp-vectorizer -jump-threading -post-inline-ee-instrument -sancov -guard-widening -tailcallelim -coro-split -gvn -loop-versioning-licm -strip -licm -mem2reg -loop-unroll -dce -partial-inliner -reassociate -slsr -memcpyopt -instcombine -guard-widening -die -loop-predication -loweratomic -infer-address-spaces -libcalls-shrinkwrap -loop-unroll -redundant-dbg-inst-elim -instcombine -strip-dead-prototypes -instnamer -lower-constant-intrinsics -globaldce -sroa -callsite-splitting -licm -lower-expect -globalsplit -loop-predication -libcalls-shrinkwrap -globaldce -flattencfg -name-anon-globals -inferattrs -loweratomic -lower-matrix-intrinsics -mergefunc -elim-avail-extern -strip-nondebug -sink -loop-unswitch -simplifycfg -die -newgvn input.bc -o output.bc -benchmark://cBench-v1/stringsearch,1.012295081967213,61.989551305770874,opt -slsr -alignment-from-assumptions -ipsccp -canonicalize-aliases -slp-vectorizer -gvn-hoist -rewrite-statepoints-for-gc -lower-expect -constmerge -canonicalize-aliases -ee-instrument -nary-reassociate -licm -flattencfg -loop-unroll-and-jam -load-store-vectorizer -newgvn -loop-reroll -loop-distribute -licm -gvn -lcssa -globalopt -instnamer -mergereturn -loop-simplify -loop-interchange -globaldce -irce -flattencfg -mldst-motion -bdce -instcombine -jump-threading -loop-unswitch -callsite-splitting -licm -load-store-vectorizer -slsr -lower-constant-intrinsics -correlated-propagation -callsite-splitting -instnamer -infer-address-spaces -dse -loop-unswitch -dse -mergereturn -strip -loweratomic -instsimplify -loop-deletion -functionattrs -gvn-hoist -lower-expect -barrier -consthoist -inject-tli-mappings -prune-eh -lcssa -dse -strip-debug-declare -loop-reroll -called-value-propagation -deadargelim -mergereturn -loop-simplify -loop-unswitch -strip-dead-prototypes -coro-elide -attributor -tailcallelim -partially-inline-libcalls -loop-distribute -dce -licm -loop-versioning -inferattrs -loop-predication -loop-deletion -post-inline-ee-instrument -slp-vectorizer -coro-early -add-discriminators -name-anon-globals -strip -adce -consthoist -ipconstprop -loop-predication -lower-matrix-intrinsics -loop-sink -bdce -loop-reroll -simplifycfg -loop-versioning-licm -barrier -irce -dce -loop-load-elim -newgvn -always-inline -always-inline -callsite-splitting -loop-unroll -callsite-splitting -loweratomic -ee-instrument -lower-widenable-condition -break-crit-edges -instnamer -deadargelim -lowerswitch -ipconstprop -mem2reg -loop-load-elim -callsite-splitting -pgo-memop-opt -instcombine -lower-constant-intrinsics -strip -gvn -add-discriminators -loop-versioning -canonicalize-aliases -strip-nondebug -barrier -loop-fusion -inferattrs -mem2reg -lower-matrix-intrinsics -functionattrs -irce -correlated-propagation -deadargelim -sroa -strip-dead-prototypes -loop-predication -flattencfg -cross-dso-cfi -constmerge -strip-debug-declare -dce -reg2mem -lower-matrix-intrinsics -loop-predication -loop-predication -lower-constant-intrinsics -instnamer -attributor -dce -ipconstprop -instnamer -alignment-from-assumptions -strip-dead-prototypes -loop-simplifycfg -elim-avail-extern -argpromotion -early-cse-memssa -dse -loop-instsimplify -reg2mem -lowerswitch -partial-inliner -insert-gcov-profiling -loop-simplify -post-inline-ee-instrument -partial-inliner -float2int -loop-fusion -prune-eh -lcssa -float2int -div-rem-pairs -strip-debug-declare -loop-sink -loop-reduce -strip -alignment-from-assumptions -loop-simplify -canonicalize-aliases -reg2mem -gvn -insert-gcov-profiling -barrier -newgvn -mem2reg -strip-dead-prototypes -loop-simplify -loop-data-prefetch -loop-versioning-licm -simplifycfg -slsr -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9850746268656715,61.64527368545532,opt -memcpyopt -sroa -elim-avail-extern -lower-widenable-condition -div-rem-pairs -div-rem-pairs -loop-load-elim -cross-dso-cfi -gvn -loop-versioning -insert-gcov-profiling -early-cse-memssa -instcombine -redundant-dbg-inst-elim -inferattrs -nary-reassociate -coro-cleanup -inferattrs -partial-inliner -loop-fusion -consthoist -adce -name-anon-globals -loop-versioning -aggressive-instcombine -correlated-propagation -loweratomic -early-cse-memssa -loop-unroll -jump-threading -sroa -name-anon-globals -speculative-execution -barrier -constprop -loop-data-prefetch -lower-expect -load-store-vectorizer -coro-split -lower-widenable-condition -early-cse-memssa -speculative-execution -elim-avail-extern -loop-guard-widening -loop-sink -coro-early -globalsplit -forceattrs -slsr -coro-elide -pgo-memop-opt -canonicalize-aliases -deadargelim -instcombine -deadargelim -sancov -guard-widening -elim-avail-extern -always-inline -libcalls-shrinkwrap -coro-cleanup -load-store-vectorizer -redundant-dbg-inst-elim -speculative-execution -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9850746268656717,62.151060581207275,opt -loop-simplifycfg -mem2reg -loop-interchange -tailcallelim -coro-cleanup -sroa -sink -insert-gcov-profiling -adce -die -loop-vectorize -rpo-functionattrs -post-inline-ee-instrument -slsr -loop-versioning -mergeicmps -load-store-vectorizer -loop-sink -loop-unroll -barrier -loweratomic -insert-gcov-profiling -mergereturn -div-rem-pairs -slp-vectorizer -mergefunc -strip-dead-prototypes -loop-sink -bdce -redundant-dbg-inst-elim -flattencfg -mergereturn -infer-address-spaces -flattencfg -newgvn -attributor -instcombine -bdce -mergereturn -loop-load-elim -redundant-dbg-inst-elim -add-discriminators -cross-dso-cfi -strip-debug-declare -inferattrs -mergereturn -loop-simplify -lower-widenable-condition -coro-early -barrier -loop-instsimplify -jump-threading -div-rem-pairs -loop-unroll-and-jam -loop-vectorize -loop-data-prefetch -scalarizer -functionattrs -loop-interchange -inject-tli-mappings -loop-sink -dce -newgvn -constprop -post-inline-ee-instrument -elim-avail-extern -coro-cleanup -correlated-propagation -mem2reg -guard-widening -lower-widenable-condition -globaldce -loop-distribute -instcombine -die -loop-load-elim -slsr -libcalls-shrinkwrap -mergefunc -ee-instrument -prune-eh -ee-instrument -coro-split -rewrite-statepoints-for-gc -tailcallelim -rpo-functionattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9888059701492538,61.676395654678345,opt -loop-vectorize -slp-vectorizer -ee-instrument -float2int -called-value-propagation -loop-reroll -coro-elide -canonicalize-aliases -prune-eh -alignment-from-assumptions -inferattrs -indvars -indvars -globalsplit -partially-inline-libcalls -loop-unroll-and-jam -adce -indvars -inject-tli-mappings -name-anon-globals -globaldce -constprop -mldst-motion -sroa -loop-vectorize -rewrite-statepoints-for-gc -gvn -loop-sink -prune-eh -always-inline -mergereturn -mldst-motion -cross-dso-cfi -ipsccp -coro-elide -sink -separate-const-offset-from-gep -mergefunc -cross-dso-cfi -infer-address-spaces -always-inline -forceattrs -aggressive-instcombine -strip-debug-declare -partially-inline-libcalls -lower-matrix-intrinsics -instsimplify -break-crit-edges -lcssa -early-cse-memssa -loop-unroll -infer-address-spaces -strip-nondebug -jump-threading -alignment-from-assumptions -loop-vectorize -gvn -partially-inline-libcalls -constmerge -flattencfg -globaldce -mergeicmps -constmerge -loop-unroll-and-jam -partially-inline-libcalls -partial-inliner -inject-tli-mappings -globaldce -simplifycfg -mergereturn -inject-tli-mappings -speculative-execution -loop-distribute -rpo-functionattrs -indvars -lowerswitch -coro-elide -callsite-splitting -load-store-vectorizer -aggressive-instcombine -loop-predication -argpromotion -loop-guard-widening -insert-gcov-profiling -argpromotion -argpromotion -dse -partially-inline-libcalls -newgvn -lcssa -mldst-motion -lower-guard-intrinsic -simplifycfg -hotcoldsplit -load-store-vectorizer -dse -consthoist -dce -instcombine input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9888059701492538,64.41505336761475,opt -barrier -nary-reassociate -strip-debug-declare -strip-nondebug -loop-reduce -constmerge -deadargelim -ipsccp -float2int -instsimplify -coro-cleanup -break-crit-edges -speculative-execution -loop-deletion -loop-versioning -coro-split -coro-cleanup -globalsplit -callsite-splitting -strip-dead-prototypes -loop-guard-widening -prune-eh -loop-distribute -sroa -newgvn -always-inline -coro-elide -newgvn -correlated-propagation -dce -scalarizer -partially-inline-libcalls -loop-data-prefetch -strip-debug-declare -called-value-propagation -loop-deletion -loop-guard-widening -sink -lower-widenable-condition -constprop -barrier -reg2mem -instsimplify -reg2mem -loop-interchange -simple-loop-unswitch -ipconstprop -loop-sink -early-cse-memssa -rpo-functionattrs -lower-constant-intrinsics -sink -prune-eh -mergefunc -name-anon-globals -coro-early -loop-deletion -sink -loop-guard-widening -loop-versioning -strip -loop-unswitch -instnamer -lowerinvoke -guard-widening -nary-reassociate -ee-instrument -ipsccp -elim-avail-extern -correlated-propagation -canonicalize-aliases -strip-dead-prototypes -lower-guard-intrinsic -separate-const-offset-from-gep -loop-idiom -lower-constant-intrinsics -dce -globaldce -loop-instsimplify -prune-eh -forceattrs -scalarizer -strip-nondebug -rewrite-statepoints-for-gc -loop-interchange -lower-constant-intrinsics -lower-guard-intrinsic -sancov -partially-inline-libcalls -insert-gcov-profiling -constprop -libcalls-shrinkwrap -loop-guard-widening -inferattrs -loop-unroll-and-jam -memcpyopt -sroa -slp-vectorizer -coro-elide -strip-nondebug -strip-dead-prototypes -loop-versioning -deadargelim -globalopt -lcssa -slp-vectorizer -ee-instrument -loop-unswitch -loop-unroll-and-jam -loop-idiom -sroa -coro-elide -dce -load-store-vectorizer -lower-widenable-condition -redundant-dbg-inst-elim -redundant-dbg-inst-elim -canonicalize-aliases -redundant-dbg-inst-elim -early-cse-memssa -indvars -post-inline-ee-instrument -lower-constant-intrinsics -rpo-functionattrs -loop-predication -sancov -ee-instrument -callsite-splitting -loop-reroll -strip -partial-inliner -irce -strip-debug-declare -mem2reg -instcombine -loop-guard-widening -inferattrs -callsite-splitting -memcpyopt -early-cse-memssa -reassociate -strip-nondebug -functionattrs -reassociate -nary-reassociate -bdce -licm -partially-inline-libcalls -ipconstprop -globaldce -strip -coro-elide -simplifycfg -guard-widening -correlated-propagation input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9888059701492539,61.77658653259277,opt -always-inline -ipconstprop -libcalls-shrinkwrap -newgvn -inferattrs -elim-avail-extern -mem2reg -bdce -reassociate -gvn -strip -attributor -loop-guard-widening -guard-widening -reassociate -loop-idiom -forceattrs -die -aggressive-instcombine -memcpyopt -consthoist -mldst-motion -loop-vectorize -strip -rewrite-statepoints-for-gc -loop-idiom -name-anon-globals -strip -infer-address-spaces -instnamer -argpromotion -strip-nondebug -strip -lower-widenable-condition -ipsccp -callsite-splitting -slsr -memcpyopt -coro-elide -mergeicmps -aggressive-instcombine -indvars -always-inline -strip-debug-declare -functionattrs -insert-gcov-profiling -mem2reg -constmerge -mldst-motion -separate-const-offset-from-gep -memcpyopt -gvn -insert-gcov-profiling -elim-avail-extern -bdce -loop-distribute -sroa -coro-split -div-rem-pairs -slp-vectorizer -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.988805970149254,61.721890687942505,opt -mldst-motion -canonicalize-aliases -irce -infer-address-spaces -functionattrs -scalarizer -attributor -mldst-motion -licm -barrier -coro-split -rpo-functionattrs -nary-reassociate -separate-const-offset-from-gep -coro-elide -consthoist -loop-fusion -coro-elide -sroa -constmerge -inferattrs -instsimplify -coro-early -prune-eh -sink -sccp -instsimplify -lower-matrix-intrinsics -newgvn -coro-early -loop-guard-widening -sccp -barrier -mergereturn -loop-vectorize -tailcallelim -sancov -add-discriminators -loop-predication -coro-elide -instcombine -separate-const-offset-from-gep -indvars -libcalls-shrinkwrap -bdce -name-anon-globals -loop-deletion -lower-guard-intrinsic -tailcallelim -loop-guard-widening -cross-dso-cfi -strip-dead-prototypes -partially-inline-libcalls -simplifycfg -loop-distribute -pgo-memop-opt -globalsplit -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9925373134328358,61.8615505695343,opt -lower-constant-intrinsics -functionattrs -loop-reduce -instnamer -forceattrs -loop-guard-widening -die -strip-nondebug -lowerswitch -constprop -redundant-dbg-inst-elim -sancov -loop-unswitch -callsite-splitting -constmerge -lower-matrix-intrinsics -loop-simplify -lower-expect -mergeicmps -instsimplify -bdce -loop-predication -dse -reg2mem -called-value-propagation -guard-widening -loop-vectorize -speculative-execution -ipconstprop -mergefunc -globalopt -constprop -bdce -ipconstprop -tailcallelim -attributor -nary-reassociate -libcalls-shrinkwrap -loop-versioning-licm -cross-dso-cfi -sroa -speculative-execution -jump-threading -partial-inliner -prune-eh -loop-simplify -functionattrs -sink -loop-vectorize -loop-unswitch -mldst-motion -loop-reroll -consthoist -attributor -barrier -sink -tailcallelim -ipsccp -redundant-dbg-inst-elim -called-value-propagation -deadargelim -loop-idiom -canonicalize-aliases -lowerinvoke -loop-unswitch -adce -loop-data-prefetch -loop-data-prefetch -float2int -alignment-from-assumptions -mergeicmps -globaldce -simple-loop-unswitch -called-value-propagation -constmerge -partial-inliner -sancov -loop-versioning -inferattrs -reassociate -rpo-functionattrs -loop-interchange -globaldce -ipconstprop -instcombine -lower-guard-intrinsic -rpo-functionattrs -ipconstprop -lower-expect -insert-gcov-profiling -strip-debug-declare -functionattrs -loweratomic -strip-dead-prototypes -loop-versioning -lower-constant-intrinsics -mergefunc -gvn-hoist -loop-simplifycfg -instcombine -lower-constant-intrinsics -correlated-propagation -lowerswitch -coro-early -mergeicmps -nary-reassociate -slp-vectorizer -load-store-vectorizer -load-store-vectorizer -early-cse-memssa -mergefunc -coro-cleanup -simple-loop-unswitch -flattencfg -bdce -flattencfg -gvn -separate-const-offset-from-gep -loweratomic -aggressive-instcombine -flattencfg -add-discriminators -mem2reg -strip-nondebug -lower-widenable-condition -loweratomic -instnamer -forceattrs -gvn-hoist -bdce -div-rem-pairs -simplifycfg -callsite-splitting -dse -lower-constant-intrinsics -load-store-vectorizer -coro-early -break-crit-edges -partial-inliner -lower-constant-intrinsics -consthoist -inject-tli-mappings -instcombine -div-rem-pairs -mem2reg -argpromotion -loop-predication -sccp -globaldce -elim-avail-extern -inject-tli-mappings -simplifycfg -globaldce -mergereturn -loweratomic -die -die -loweratomic -memcpyopt -scalarizer -sink -alignment-from-assumptions -irce -indvars -ipconstprop -aggressive-instcombine -jump-threading -aggressive-instcombine -globalsplit -mergefunc -globalsplit -gvn-hoist -loop-versioning-licm -guard-widening -coro-early -newgvn -sroa -constprop -inject-tli-mappings -alignment-from-assumptions -add-discriminators -instnamer -globalopt -speculative-execution -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.9962686567164178,61.62188148498535,opt -load-store-vectorizer -loop-interchange -loop-simplify -constmerge -loop-unroll-and-jam -ipsccp -sroa -dce -loop-sink -constprop -rpo-functionattrs -slp-vectorizer -loop-load-elim -die -barrier -slp-vectorizer -loop-sink -div-rem-pairs -gvn-hoist -dce -loop-distribute -loop-fusion -name-anon-globals -licm -rpo-functionattrs -scalarizer -sink -barrier -sroa -loop-sink -irce -correlated-propagation -strip-debug-declare -mergereturn -canonicalize-aliases -early-cse-memssa -sroa -inferattrs -loop-distribute -instcombine -deadargelim -early-cse-memssa -strip-dead-prototypes -strip-dead-prototypes -sink -irce -always-inline -early-cse-memssa -functionattrs -loop-idiom -slp-vectorizer -lower-guard-intrinsic -indvars -loop-sink -lcssa -dce -add-discriminators -sancov -lowerswitch -mldst-motion -deadargelim -jump-threading -gvn -ee-instrument -loop-deletion -coro-split -correlated-propagation -name-anon-globals -lower-expect -globalopt -attributor -loop-instsimplify -elim-avail-extern -coro-early -loop-interchange -loop-guard-widening -tailcallelim -simplifycfg -strip-nondebug -guard-widening -globalopt -barrier -lower-matrix-intrinsics -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.996268656716418,61.765552043914795,opt -cross-dso-cfi -loop-interchange -elim-avail-extern -insert-gcov-profiling -partially-inline-libcalls -mldst-motion -slp-vectorizer -loop-idiom -deadargelim -lower-constant-intrinsics -speculative-execution -sccp -coro-early -correlated-propagation -adce -loop-unroll-and-jam -nary-reassociate -insert-gcov-profiling -separate-const-offset-from-gep -newgvn -correlated-propagation -loop-simplifycfg -strip-nondebug -dse -attributor -gvn -functionattrs -called-value-propagation -newgvn -ee-instrument -instcombine -div-rem-pairs -pgo-memop-opt -partially-inline-libcalls -mergereturn -dce -newgvn -gvn-hoist -mergereturn -loop-simplify -insert-gcov-profiling -inferattrs -loop-deletion -strip-debug-declare -indvars -globalopt -simple-loop-unswitch -newgvn -loop-interchange -add-discriminators -irce -newgvn -nary-reassociate -ipsccp -canonicalize-aliases -mem2reg -correlated-propagation -break-crit-edges -partially-inline-libcalls -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,0.996268656716418,61.78978753089905,opt -simplifycfg -newgvn -mem2reg -indvars -mergeicmps -inferattrs -aggressive-instcombine -rpo-functionattrs -constprop -loop-versioning -slp-vectorizer -inject-tli-mappings -loop-simplifycfg -insert-gcov-profiling -rpo-functionattrs -indvars -coro-elide -tailcallelim -attributor -coro-cleanup -instcombine -ipconstprop -div-rem-pairs -lower-expect -strip-dead-prototypes -insert-gcov-profiling -coro-early -rpo-functionattrs -argpromotion -loop-versioning-licm -constprop -reassociate -loop-simplifycfg -mergereturn -partial-inliner -partially-inline-libcalls -ipconstprop -float2int -instsimplify -partially-inline-libcalls -slp-vectorizer -redundant-dbg-inst-elim -mem2reg -gvn -sink -loweratomic -coro-split -loop-interchange -gvn -elim-avail-extern -gvn -dce -mergeicmps -rewrite-statepoints-for-gc -aggressive-instcombine -lower-matrix-intrinsics -scalarizer -memcpyopt -loop-unswitch -tailcallelim -loop-vectorize -inject-tli-mappings -libcalls-shrinkwrap -loop-deletion -inject-tli-mappings -instcombine -mldst-motion -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0008958280010236,63.07995295524597,opt -loop-sink -mem2reg -nary-reassociate -indvars -loop-load-elim -loop-simplify -insert-gcov-profiling -loop-simplifycfg -irce -loop-deletion -div-rem-pairs -loop-unroll-and-jam -add-discriminators -rewrite-statepoints-for-gc -simplifycfg -coro-early -lower-expect -loop-interchange -partial-inliner -gvn -loop-data-prefetch -functionattrs -simple-loop-unswitch -guard-widening -mergeicmps -gvn -dse -mldst-motion -lower-guard-intrinsic -loop-simplify -lower-constant-intrinsics -loop-fusion -newgvn -rpo-functionattrs -simplifycfg -inferattrs -partially-inline-libcalls -separate-const-offset-from-gep -loop-load-elim -separate-const-offset-from-gep -loop-guard-widening -loop-predication -instcombine -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/susan,1.0012797542871767,66.32646870613098,opt -instcombine -sroa -partial-inliner -licm -early-cse-memssa -lower-constant-intrinsics -load-store-vectorizer -loop-vectorize -loop-guard-widening -flattencfg -guard-widening -partial-inliner -dse -gvn-hoist -sink -lower-widenable-condition -strip-nondebug -loop-versioning -forceattrs -loop-idiom -loop-versioning-licm -licm -libcalls-shrinkwrap -memcpyopt -loop-simplify -sroa -die -irce -simplifycfg -simple-loop-unswitch -strip-dead-prototypes -instcombine -functionattrs -speculative-execution -mergefunc -jump-threading -consthoist -tailcallelim -alignment-from-assumptions -lcssa -sccp -lower-guard-intrinsic -mldst-motion -loop-unroll-and-jam -jump-threading -partial-inliner -pgo-memop-opt -slsr -simple-loop-unswitch -sroa -loop-simplify -mergereturn -sroa -loop-deletion -coro-cleanup -sancov -jump-threading -mem2reg -slsr -add-discriminators -early-cse-memssa -infer-address-spaces -loop-guard-widening -mergereturn -partially-inline-libcalls -mldst-motion -dce -flattencfg -sroa -newgvn -lower-constant-intrinsics -loop-sink -loop-vectorize -loweratomic -libcalls-shrinkwrap -jump-threading -guard-widening -nary-reassociate -constprop -instnamer -correlated-propagation -loop-versioning-licm -coro-early -simple-loop-unswitch -libcalls-shrinkwrap -loop-versioning-licm -licm -div-rem-pairs -coro-cleanup -coro-split -instsimplify -always-inline -mergefunc -globaldce -rpo-functionattrs -elim-avail-extern -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/susan,1.0051190171487074,63.4972939491272,opt -simplifycfg -ipconstprop -sroa -mem2reg -nary-reassociate -loop-data-prefetch -globalopt -loop-instsimplify -flattencfg -canonicalize-aliases -gvn -pgo-memop-opt -memcpyopt -inferattrs -flattencfg -redundant-dbg-inst-elim -coro-early -deadargelim -loop-unroll -rpo-functionattrs -mergeicmps -dce -post-inline-ee-instrument -strip-dead-prototypes -inject-tli-mappings -loop-instsimplify -lowerswitch -lcssa -alignment-from-assumptions -callsite-splitting -simplifycfg -memcpyopt -reassociate -jump-threading -sroa -strip-debug-declare -guard-widening -lower-guard-intrinsic -loop-idiom -coro-early -strip -sroa -globalopt -mergereturn -libcalls-shrinkwrap -nary-reassociate -separate-const-offset-from-gep -partial-inliner -attributor -slsr -slsr -newgvn -loop-reroll -licm -forceattrs -ipsccp -ipconstprop -loop-reroll -lowerinvoke -instcombine -post-inline-ee-instrument -newgvn -loop-load-elim -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -barrier -strip-nondebug -rpo-functionattrs -loop-simplify -loop-data-prefetch -scalarizer -cross-dso-cfi -libcalls-shrinkwrap -memcpyopt -loop-deletion -nary-reassociate -mergefunc -loop-idiom -instnamer -correlated-propagation -loop-fusion -alignment-from-assumptions -correlated-propagation -cross-dso-cfi -strip-debug-declare -rpo-functionattrs -functionattrs -sancov -called-value-propagation -canonicalize-aliases -indvars -insert-gcov-profiling -separate-const-offset-from-gep -loop-data-prefetch -indvars -gvn-hoist -sancov -guard-widening -add-discriminators -insert-gcov-profiling -nary-reassociate -loop-unroll-and-jam -dce -correlated-propagation -loop-instsimplify -partially-inline-libcalls -mem2reg -loop-interchange -elim-avail-extern -slp-vectorizer -loop-reroll -argpromotion -elim-avail-extern -partial-inliner -instcombine -constmerge -instcombine -canonicalize-aliases -sccp -redundant-dbg-inst-elim -sink -guard-widening -simplifycfg -redundant-dbg-inst-elim -canonicalize-aliases -speculative-execution -alignment-from-assumptions -sroa -inferattrs -add-discriminators -partially-inline-libcalls -speculative-execution -gvn-hoist -div-rem-pairs -loop-versioning -mergefunc -slp-vectorizer -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/susan,1.0051190171487077,63.2826771736145,opt -sancov -libcalls-shrinkwrap -loweratomic -sroa -guard-widening -insert-gcov-profiling -loop-instsimplify -guard-widening -mergereturn -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -nary-reassociate -always-inline -coro-split -cross-dso-cfi -functionattrs -gvn -loop-reroll -mergefunc -mergeicmps -instsimplify -memcpyopt -loop-interchange -loop-predication -alignment-from-assumptions -loop-vectorize -loop-simplify -mem2reg -libcalls-shrinkwrap -strip-debug-declare -mldst-motion -attributor -loop-sink -loop-fusion -called-value-propagation -mldst-motion -mergeicmps -strip-dead-prototypes -loop-deletion -coro-early -gvn -canonicalize-aliases -sink -barrier -inferattrs -loop-deletion -load-store-vectorizer -loop-deletion -nary-reassociate -reassociate -loop-versioning -ee-instrument -attributor -prune-eh -lower-widenable-condition -called-value-propagation -post-inline-ee-instrument -dce -lowerinvoke -slp-vectorizer -elim-avail-extern -load-store-vectorizer -strip -ee-instrument -canonicalize-aliases -strip-dead-prototypes -loop-load-elim -early-cse-memssa -sccp -argpromotion -infer-address-spaces -loop-data-prefetch -dce -loop-load-elim -constmerge -called-value-propagation -loop-vectorize -flattencfg -instnamer -loop-unroll -loweratomic -gvn-hoist -prune-eh -memcpyopt -mldst-motion -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/susan,1.005758894292296,310.464004278183,opt -tailcallelim -break-crit-edges -strip-dead-prototypes -die -loop-vectorize -slp-vectorizer -prune-eh -speculative-execution -newgvn -hotcoldsplit -called-value-propagation -lcssa -strip-dead-prototypes -tailcallelim -dce -redundant-dbg-inst-elim -sroa -jump-threading -loop-versioning-licm -loop-deletion -infer-address-spaces -elim-avail-extern -functionattrs -alignment-from-assumptions -infer-address-spaces -slp-vectorizer -mergefunc -sancov -scalarizer -separate-const-offset-from-gep -functionattrs -sancov -reassociate -loop-unroll -constprop -mergeicmps -globalopt -rewrite-statepoints-for-gc -float2int -barrier -partial-inliner -mldst-motion -deadargelim -memcpyopt -loop-guard-widening -mergefunc -irce -loop-versioning -deadargelim -inferattrs -loop-interchange -loop-simplify -loop-predication -lcssa -functionattrs -coro-elide -load-store-vectorizer -strip-debug-declare -always-inline -insert-gcov-profiling -newgvn -add-discriminators -consthoist -licm -consthoist -prune-eh -elim-avail-extern -indvars -prune-eh -reassociate -functionattrs -rewrite-statepoints-for-gc -simplifycfg -libcalls-shrinkwrap -lower-widenable-condition -newgvn -lower-guard-intrinsic -lower-constant-intrinsics -elim-avail-extern -flattencfg -irce -hotcoldsplit -strip -insert-gcov-profiling -sroa -reassociate -instcombine -sink -lower-matrix-intrinsics -insert-gcov-profiling -sccp -libcalls-shrinkwrap -licm -name-anon-globals -correlated-propagation -lower-matrix-intrinsics -loop-load-elim -coro-elide -adce -loweratomic -cross-dso-cfi -mem2reg -insert-gcov-profiling -lower-constant-intrinsics -strip-debug-declare -strip-nondebug -instnamer -lower-widenable-condition -lower-guard-intrinsic -mergefunc -canonicalize-aliases -dse -loop-simplifycfg -loop-unroll-and-jam -alignment-from-assumptions -libcalls-shrinkwrap -loop-data-prefetch -globalsplit -newgvn input.bc -o output.bc -benchmark://cBench-v1/susan,1.0112618377271563,66.1175889968872,opt -callsite-splitting -deadargelim -simple-loop-unswitch -tailcallelim -simple-loop-unswitch -adce -globalopt -aggressive-instcombine -sroa -inject-tli-mappings -add-discriminators -dce -elim-avail-extern -float2int -strip-dead-prototypes -loop-load-elim -mergereturn -lower-guard-intrinsic -loop-vectorize -libcalls-shrinkwrap -instcombine -licm -correlated-propagation -indvars -strip-debug-declare -strip-debug-declare -instsimplify -infer-address-spaces -float2int -always-inline -flattencfg -dce -newgvn -partial-inliner -jump-threading -lower-matrix-intrinsics -rpo-functionattrs -speculative-execution -loop-sink -globalsplit -lowerinvoke -gvn-hoist -elim-avail-extern -name-anon-globals -lower-guard-intrinsic -lowerinvoke -early-cse-memssa -always-inline -lower-guard-intrinsic -mergeicmps -loop-instsimplify -consthoist -jump-threading -argpromotion -newgvn -loop-distribute -loop-guard-widening -prune-eh -separate-const-offset-from-gep -sancov -inferattrs -lowerinvoke -early-cse-memssa -loweratomic -loop-load-elim -lower-guard-intrinsic -loop-unroll -loop-instsimplify -loop-versioning -div-rem-pairs -ipsccp -strip-debug-declare -prune-eh -mldst-motion -licm -bdce -loop-simplify -loweratomic -add-discriminators -lower-widenable-condition -loop-versioning -simplifycfg -functionattrs -loop-versioning-licm -loop-distribute -mem2reg -adce -strip -float2int -break-crit-edges -loop-data-prefetch -memcpyopt -ee-instrument -sccp -post-inline-ee-instrument -attributor -libcalls-shrinkwrap -cross-dso-cfi -loop-idiom -loop-guard-widening -die -attributor -coro-split -gvn -break-crit-edges -float2int -loop-versioning-licm -always-inline -coro-split -break-crit-edges -argpromotion -attributor -simplifycfg -constmerge -newgvn -instcombine -lowerswitch -canonicalize-aliases -float2int -pgo-memop-opt -infer-address-spaces -die -strip -nary-reassociate -reassociate -forceattrs -partial-inliner -add-discriminators -lowerinvoke -mem2reg -lower-constant-intrinsics -libcalls-shrinkwrap -loop-unroll -loop-deletion -callsite-splitting -loop-simplify -flattencfg -mldst-motion -adce -mergereturn -lowerinvoke -canonicalize-aliases -simplifycfg -strip-nondebug -constprop -coro-early -bdce -reassociate -newgvn -attributor -loop-data-prefetch -slsr -instcombine -lower-matrix-intrinsics -slsr -coro-cleanup -always-inline -loop-guard-widening -lower-matrix-intrinsics -sroa -div-rem-pairs -partially-inline-libcalls -indvars -forceattrs -ipsccp -loweratomic -nary-reassociate input.bc -o output.bc -benchmark://cBench-v1/susan,1.013437420015357,141.09184956550598,opt -sancov -loop-idiom -flattencfg -partially-inline-libcalls -guard-widening -loop-instsimplify -partial-inliner -ipconstprop -sink -strip -partial-inliner -early-cse-memssa -mergereturn -loop-distribute -inferattrs -loop-versioning -jump-threading -globaldce -inferattrs -loop-simplifycfg -licm -mergereturn -slp-vectorizer -strip -post-inline-ee-instrument -coro-early -adce -strip-debug-declare -sccp -correlated-propagation -canonicalize-aliases -rpo-functionattrs -rewrite-statepoints-for-gc -functionattrs -float2int -sroa -reg2mem -loop-sink -loop-unroll-and-jam -pgo-memop-opt -partial-inliner -constprop -loop-deletion -alignment-from-assumptions -strip -loop-sink -called-value-propagation -callsite-splitting -argpromotion -loop-versioning -instcombine -instcombine -instsimplify -coro-split -partial-inliner -consthoist -globalsplit -inject-tli-mappings -loop-unroll -lower-constant-intrinsics -break-crit-edges -rewrite-statepoints-for-gc -loop-versioning-licm -bdce -globalsplit -slp-vectorizer -newgvn -loop-guard-widening -simplifycfg -argpromotion -loop-simplifycfg -gvn -jump-threading -newgvn -inferattrs -loop-idiom -canonicalize-aliases -bdce -forceattrs -bdce -instnamer -reassociate -sroa -instsimplify -lower-constant-intrinsics -lower-widenable-condition -globalsplit -loop-simplify -gvn -instnamer -tailcallelim -instcombine -called-value-propagation -lower-expect -loop-predication -libcalls-shrinkwrap -licm -tailcallelim -dce -break-crit-edges -loop-idiom -tailcallelim -libcalls-shrinkwrap -coro-cleanup -separate-const-offset-from-gep -irce -loop-simplifycfg -lowerinvoke -slp-vectorizer -add-discriminators -cross-dso-cfi -alignment-from-assumptions -loop-idiom -coro-cleanup -guard-widening -globalopt -speculative-execution -loop-instsimplify -loop-simplify -reg2mem -lowerinvoke -loop-vectorize -instcombine -simple-loop-unswitch -elim-avail-extern -inject-tli-mappings -elim-avail-extern -sroa -newgvn input.bc -o output.bc -benchmark://cBench-v1/susan,1.0167647811620169,63.417919397354126,opt -mergefunc -flattencfg -aggressive-instcombine -always-inline -jump-threading -loop-unroll-and-jam -lower-guard-intrinsic -mem2reg -globalsplit -always-inline -strip-debug-declare -mergereturn -instnamer -always-inline -jump-threading -mergeicmps -scalarizer -coro-early -post-inline-ee-instrument -argpromotion -loop-deletion -strip -loop-versioning -mergereturn -constmerge -mergeicmps -loop-unroll -speculative-execution -infer-address-spaces -coro-early -forceattrs -loop-load-elim -lower-expect -scalarizer -libcalls-shrinkwrap -instnamer -post-inline-ee-instrument -loop-guard-widening -loop-instsimplify -loop-unroll-and-jam -ipconstprop -die -globalsplit -slsr -prune-eh -coro-split -gvn -lcssa -called-value-propagation -loop-interchange -barrier -inline -inferattrs -adce -insert-gcov-profiling -always-inline -globalopt -inferattrs -mergefunc -loop-reroll -barrier -functionattrs -callsite-splitting -simple-loop-unswitch -insert-gcov-profiling -hotcoldsplit -instnamer -constmerge -slsr -lower-widenable-condition -loop-instsimplify -callsite-splitting -loop-unroll -die -scalarizer -globaldce -loop-simplify -always-inline -called-value-propagation -rpo-functionattrs -div-rem-pairs -infer-address-spaces -name-anon-globals -div-rem-pairs -loop-load-elim -loop-interchange -forceattrs -functionattrs -post-inline-ee-instrument -deadargelim -load-store-vectorizer -constmerge -inferattrs -loop-distribute -canonicalize-aliases -loop-predication -lowerinvoke -elim-avail-extern -slsr -lower-constant-intrinsics -jump-threading -loop-deletion -instcombine -slsr -loop-reroll -newgvn -loop-versioning-licm -sink -loop-unswitch -sccp -simplifycfg -loweratomic -add-discriminators -reg2mem -instsimplify -coro-cleanup -bdce -loop-sink -simplifycfg -loop-vectorize -gvn -loop-deletion -strip -aggressive-instcombine -loop-sink -speculative-execution -name-anon-globals -loop-unswitch -loop-instsimplify -separate-const-offset-from-gep -lower-matrix-intrinsics -loop-instsimplify -constmerge -instcombine -redundant-dbg-inst-elim -tailcallelim -lower-guard-intrinsic -newgvn -coro-cleanup -coro-elide -loop-fusion -lower-widenable-condition -simplifycfg -loop-simplify -cross-dso-cfi -inject-tli-mappings -strip-debug-declare -bdce -loop-predication -lowerinvoke -load-store-vectorizer -partially-inline-libcalls -speculative-execution -forceattrs -loop-idiom -inject-tli-mappings -guard-widening -loop-predication -partially-inline-libcalls -lower-matrix-intrinsics -loop-unroll -memcpyopt -loweratomic -ipsccp -hotcoldsplit -dce -lower-widenable-condition -lower-matrix-intrinsics -guard-widening -infer-address-spaces -callsite-splitting -lower-matrix-intrinsics -div-rem-pairs -indvars -loop-distribute -loop-idiom -reassociate -lower-constant-intrinsics -loop-instsimplify -instcombine input.bc -o output.bc -benchmark://cBench-v1/susan,1.023931405170207,63.62526869773865,opt -rewrite-statepoints-for-gc -dce -reassociate -infer-address-spaces -loop-unswitch -called-value-propagation -strip-debug-declare -lower-matrix-intrinsics -constprop -strip-dead-prototypes -mldst-motion -mergereturn -functionattrs -loop-unroll-and-jam -globaldce -insert-gcov-profiling -partial-inliner -inject-tli-mappings -loop-reduce -ee-instrument -partial-inliner -loop-data-prefetch -redundant-dbg-inst-elim -loweratomic -loop-versioning-licm -loweratomic -separate-const-offset-from-gep -mergefunc -strip-debug-declare -mergeicmps -slp-vectorizer -indvars -loop-sink -alignment-from-assumptions -rpo-functionattrs -callsite-splitting -post-inline-ee-instrument -loop-distribute -always-inline -mem2reg -redundant-dbg-inst-elim -loop-versioning -loop-fusion -redundant-dbg-inst-elim -coro-early -gvn -loop-versioning-licm -loop-distribute -coro-early -loop-data-prefetch -instnamer -forceattrs -callsite-splitting -loop-guard-widening -load-store-vectorizer -sccp -libcalls-shrinkwrap -loop-unswitch -lower-expect -slsr -float2int -add-discriminators -slp-vectorizer -coro-split -functionattrs -name-anon-globals -separate-const-offset-from-gep -inferattrs -insert-gcov-profiling -prune-eh -lower-guard-intrinsic -inject-tli-mappings -redundant-dbg-inst-elim -newgvn -slsr -name-anon-globals -instsimplify -loop-guard-widening -loop-simplify -lowerswitch -constprop -consthoist -reg2mem -libcalls-shrinkwrap -sccp -inferattrs -simplifycfg -loop-predication -memcpyopt -flattencfg -loop-predication -adce -speculative-execution -consthoist -reg2mem -instsimplify -ipsccp -loop-simplify -div-rem-pairs -globalsplit -flattencfg -nary-reassociate -loop-data-prefetch -loop-fusion -guard-widening -loop-guard-widening -simplifycfg -simple-loop-unswitch -strip-dead-prototypes -gvn-hoist -coro-cleanup -loop-simplify -loop-load-elim -name-anon-globals -argpromotion -deadargelim -rewrite-statepoints-for-gc -correlated-propagation -ipsccp -instcombine -loop-data-prefetch -gvn -newgvn -strip-dead-prototypes -reassociate -simplifycfg -guard-widening -ee-instrument -globaldce -rpo-functionattrs -flattencfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/susan,1.0476068594829784,63.81288194656372,opt -adce -coro-split -mergereturn -loop-idiom -always-inline -strip-debug-declare -memcpyopt -guard-widening -barrier -cross-dso-cfi -loop-instsimplify -loop-versioning -hotcoldsplit -die -loop-simplifycfg -loop-fusion -loop-instsimplify -flattencfg -functionattrs -die -instsimplify -alignment-from-assumptions -loop-unswitch -irce -alignment-from-assumptions -load-store-vectorizer -scalarizer -loop-fusion -flattencfg -argpromotion -partially-inline-libcalls -pgo-memop-opt -consthoist -constmerge -dce -lower-expect -coro-split -callsite-splitting -ipconstprop -inject-tli-mappings -mem2reg -adce -guard-widening -elim-avail-extern -aggressive-instcombine -elim-avail-extern -pgo-memop-opt -loop-sink -adce -canonicalize-aliases -sancov -instsimplify -sroa -sccp -loop-sink -loop-distribute -strip-debug-declare -loop-reroll -dse -always-inline -sccp -strip-dead-prototypes -slp-vectorizer -argpromotion -instsimplify -redundant-dbg-inst-elim -mldst-motion -strip -loop-fusion -aggressive-instcombine -globaldce -sroa -simple-loop-unswitch -loop-simplify -lower-expect -constprop -infer-address-spaces -nary-reassociate -memcpyopt -scalarizer -jump-threading -sccp -coro-elide -early-cse-memssa -strip-debug-declare -bdce -globalopt -attributor -separate-const-offset-from-gep -globaldce -ipconstprop -lower-widenable-condition -loop-instsimplify -callsite-splitting -consthoist -add-discriminators -globalopt -guard-widening -slsr -jump-threading -loop-instsimplify -rewrite-statepoints-for-gc -early-cse-memssa -indvars -gvn-hoist -instcombine -instsimplify -inferattrs -separate-const-offset-from-gep -dse -redundant-dbg-inst-elim -globalsplit -slp-vectorizer -loop-versioning -ipsccp -partially-inline-libcalls -simple-loop-unswitch -load-store-vectorizer -reg2mem -speculative-execution -functionattrs -gvn -newgvn -globaldce -instcombine -partial-inliner -callsite-splitting -ee-instrument -loop-rotate -name-anon-globals -constprop -name-anon-globals -canonicalize-aliases -guard-widening -strip-debug-declare -scalarizer -simple-loop-unswitch -strip-nondebug -strip-nondebug -libcalls-shrinkwrap -loop-interchange -barrier -prune-eh -break-crit-edges -loop-rotate -forceattrs -loop-sink -lower-constant-intrinsics -gvn -attributor -slsr -loop-data-prefetch -loweratomic -rpo-functionattrs -globaldce -div-rem-pairs -mldst-motion -gvn -sink -callsite-splitting -reassociate -globalsplit -instcombine -partial-inliner -coro-cleanup -cross-dso-cfi -sroa -guard-widening -deadargelim -jump-threading -dse -loop-reroll -div-rem-pairs -lower-constant-intrinsics -always-inline -loop-vectorize -nary-reassociate -loop-versioning-licm -libcalls-shrinkwrap -barrier -scalarizer -mergereturn -reassociate -adce -gvn -loop-predication -forceattrs -mergereturn -strip-dead-prototypes -post-inline-ee-instrument -ipsccp -loop-idiom -rpo-functionattrs -deadargelim -indvars -ipsccp -speculative-execution -mldst-motion -globaldce -libcalls-shrinkwrap -consthoist -simple-loop-unswitch -infer-address-spaces -loop-sink -gvn -loop-interchange -dce -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.014864429241735,74.9220666885376,opt -loop-sink -strip -loop-interchange -canonicalize-aliases -instsimplify -licm -correlated-propagation -speculative-execution -loop-load-elim -nary-reassociate -guard-widening -ipconstprop -coro-split -loop-deletion -inferattrs -correlated-propagation -licm -newgvn -strip-nondebug -globalsplit -inject-tli-mappings -elim-avail-extern -barrier -licm -instsimplify -lower-widenable-condition -loweratomic -prune-eh -coro-early -lower-matrix-intrinsics -lower-guard-intrinsic -coro-elide -ipconstprop -gvn-hoist -loop-fusion -die -strip -loop-instsimplify -coro-cleanup -canonicalize-aliases -loop-data-prefetch -loop-versioning -name-anon-globals -sroa -globaldce -lowerinvoke -indvars -loop-distribute -gvn-hoist -sancov -gvn-hoist -scalarizer -sroa -sccp -adce -flattencfg -indvars -separate-const-offset-from-gep -instcombine -coro-early -instnamer -div-rem-pairs -coro-cleanup -loop-unroll -reassociate -simple-loop-unswitch -float2int -redundant-dbg-inst-elim -mergereturn -partially-inline-libcalls -pgo-memop-opt -dce -correlated-propagation -early-cse-memssa -gvn-hoist -loop-unroll -add-discriminators -pgo-memop-opt -forceattrs -gvn-hoist -lower-widenable-condition -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0191625774562125,74.73441576957703,opt -instsimplify -elim-avail-extern -flattencfg -indvars -strip-debug-declare -loop-rotate -loop-instsimplify -reg2mem -partially-inline-libcalls -cross-dso-cfi -instsimplify -simple-loop-unswitch -alignment-from-assumptions -lower-matrix-intrinsics -coro-elide -simple-loop-unswitch -loop-guard-widening -loop-unroll-and-jam -functionattrs -globalsplit -hotcoldsplit -scalarizer -loop-versioning-licm -float2int -infer-address-spaces -post-inline-ee-instrument -strip -argpromotion -die -loop-simplifycfg -redundant-dbg-inst-elim -jump-threading -tailcallelim -mergeicmps -globalsplit -globalopt -lower-widenable-condition -infer-address-spaces -sink -rpo-functionattrs -break-crit-edges -rpo-functionattrs -simple-loop-unswitch -ipconstprop -sroa -loop-instsimplify -inject-tli-mappings -loop-versioning-licm -mergefunc -licm -instcombine -newgvn -loop-simplify -simplifycfg -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0203445682151937,75.50654411315918,opt -argpromotion -lcssa -newgvn -lower-matrix-intrinsics -rewrite-statepoints-for-gc -alignment-from-assumptions -loop-reroll -lower-guard-intrinsic -lower-guard-intrinsic -functionattrs -strip-dead-prototypes -inject-tli-mappings -consthoist -correlated-propagation -bdce -pgo-memop-opt -jump-threading -loop-sink -mldst-motion -loop-vectorize -callsite-splitting -partially-inline-libcalls -div-rem-pairs -flattencfg -loop-simplify -ee-instrument -sink -libcalls-shrinkwrap -mem2reg -speculative-execution -constprop -loop-fusion -prune-eh -constmerge -loop-simplifycfg -sink -strip-dead-prototypes -constprop -sink -instnamer -barrier -callsite-splitting -loop-load-elim -loop-reroll -insert-gcov-profiling -loweratomic -irce -instcombine -infer-address-spaces -irce -bdce -jump-threading -newgvn -elim-avail-extern -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0219921916974106,139.76473093032837,opt -lcssa -reg2mem -loop-reroll -globalopt -coro-cleanup -adce -inferattrs -coro-cleanup -always-inline -loop-unroll -loweratomic -slsr -correlated-propagation -coro-elide -loop-fusion -insert-gcov-profiling -name-anon-globals -loop-data-prefetch -ee-instrument -forceattrs -coro-split -rewrite-statepoints-for-gc -partial-inliner -strip-nondebug -cross-dso-cfi -reassociate -elim-avail-extern -inferattrs -loop-deletion -deadargelim -instsimplify -lower-widenable-condition -slsr -loop-unroll-and-jam -memcpyopt -strip -adce -jump-threading -lower-widenable-condition -callsite-splitting -rpo-functionattrs -mem2reg -callsite-splitting -guard-widening -slsr -instnamer -jump-threading -hotcoldsplit -coro-cleanup -strip -separate-const-offset-from-gep -rpo-functionattrs -constprop -always-inline -name-anon-globals -instsimplify -irce -inject-tli-mappings -ipconstprop -loop-vectorize -gvn -mergereturn -div-rem-pairs -loop-vectorize -loop-idiom -loop-vectorize -ee-instrument -simple-loop-unswitch -strip-nondebug -lcssa -simplifycfg -loweratomic -rewrite-statepoints-for-gc -rpo-functionattrs -instnamer -lower-widenable-condition -mergereturn -slsr -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.022171281206347,73.88120555877686,opt -inferattrs -prune-eh -sroa -ipconstprop -redundant-dbg-inst-elim -post-inline-ee-instrument -mergereturn -licm -simplifycfg -correlated-propagation -mergereturn -always-inline -inferattrs -instnamer -newgvn -sroa -die -coro-split -alignment-from-assumptions -infer-address-spaces -tailcallelim -coro-elide -strip -mldst-motion -callsite-splitting -newgvn -constprop -rpo-functionattrs -loop-instsimplify -inferattrs -reassociate -loop-reroll -indvars -constprop -barrier -always-inline -redundant-dbg-inst-elim -coro-elide -instcombine -slp-vectorizer input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0225652781260075,74.9262228012085,opt -alignment-from-assumptions -pgo-memop-opt -loop-deletion -loop-fusion -constmerge -tailcallelim -nary-reassociate -loop-instsimplify -prune-eh -loop-predication -die -break-crit-edges -sancov -instnamer -loop-simplifycfg -lower-constant-intrinsics -strip-nondebug -lcssa -lower-expect -sancov -dce -loop-instsimplify -sroa -indvars -early-cse-memssa -barrier -loop-guard-widening -mem2reg -mergefunc -hotcoldsplit -slp-vectorizer -rpo-functionattrs -die -newgvn -loop-unroll-and-jam -called-value-propagation -mergereturn -mergereturn -instsimplify -tailcallelim -instcombine -loop-idiom -strip -lower-guard-intrinsic -memcpyopt -hotcoldsplit -ipconstprop -strip -lcssa -forceattrs -simplifycfg -lower-constant-intrinsics -loop-vectorize -inject-tli-mappings -strip-debug-declare -loop-vectorize -coro-early -loop-data-prefetch -simple-loop-unswitch -lcssa -simplifycfg -coro-cleanup -sink -simplifycfg -reassociate -lower-widenable-condition -slsr -loop-deletion -instcombine -name-anon-globals -loop-unroll -consthoist -adce -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.024033812099287,77.53979635238647,opt -lowerinvoke -float2int -mem2reg -lower-guard-intrinsic -break-crit-edges -sroa -partial-inliner -instcombine -loop-guard-widening -div-rem-pairs -inject-tli-mappings -rpo-functionattrs -coro-split -loop-load-elim -sroa -prune-eh -loop-deletion -coro-elide -loop-simplify -correlated-propagation -inferattrs -div-rem-pairs -jump-threading -instsimplify -adce -instsimplify -slp-vectorizer -dse -globalsplit -guard-widening -add-discriminators -jump-threading -lower-widenable-condition -attributor -ipconstprop -coro-split -loop-simplify -prune-eh -reg2mem -loop-unroll-and-jam -alignment-from-assumptions -argpromotion -lowerinvoke -called-value-propagation -early-cse-memssa -called-value-propagation -sroa -prune-eh -pgo-memop-opt -dse -sroa -attributor -loop-predication -sink -bdce -mergefunc -instsimplify -mergeicmps -loop-simplifycfg -name-anon-globals -loop-unroll-and-jam -indvars -barrier -die -licm -float2int -loop-load-elim -inferattrs -canonicalize-aliases -alignment-from-assumptions -coro-split -reassociate -constmerge -cross-dso-cfi -ee-instrument -lower-expect -strip-nondebug -libcalls-shrinkwrap -loop-guard-widening -nary-reassociate -dce -always-inline -load-store-vectorizer -instcombine -loop-guard-widening -hotcoldsplit -name-anon-globals -die -ipsccp -prune-eh -barrier -instnamer -gvn -coro-elide -loop-instsimplify -name-anon-globals -loop-load-elim -coro-split -loop-guard-widening -instsimplify -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0244994448225224,74.15848064422607,opt -sroa -loop-versioning -strip-debug-declare -hotcoldsplit -name-anon-globals -slsr -name-anon-globals -instsimplify -loop-unswitch -rpo-functionattrs -deadargelim -rewrite-statepoints-for-gc -indvars -loop-guard-widening -early-cse-memssa -inject-tli-mappings -simplifycfg -loop-guard-widening -loop-interchange -ipconstprop -indvars -coro-cleanup -correlated-propagation -mem2reg -coro-early -loop-data-prefetch -sink -coro-cleanup -argpromotion -inferattrs -lower-widenable-condition -functionattrs -flattencfg -newgvn -ipsccp -mergereturn -barrier -constprop -newgvn -cross-dso-cfi -gvn-hoist -globalopt -nary-reassociate -forceattrs -insert-gcov-profiling -instcombine -globaldce -bdce -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.0286901393316379,74.36752319335938,opt -break-crit-edges -instsimplify -instsimplify -mldst-motion -ee-instrument -simplifycfg -hotcoldsplit -rpo-functionattrs -strip-nondebug -early-cse-memssa -mem2reg -gvn-hoist -dce -instcombine -loop-unroll -ipconstprop -load-store-vectorizer -callsite-splitting -nary-reassociate -float2int -mem2reg -instsimplify -memcpyopt -ipconstprop -loop-idiom -instsimplify -newgvn -loop-simplifycfg -lower-widenable-condition -reassociate -sroa -functionattrs -guard-widening -sroa -globalsplit -loop-distribute -loop-simplifycfg -dse -reassociate -instcombine -attributor -canonicalize-aliases -loop-fusion -instnamer -ipsccp -always-inline -lcssa -rewrite-statepoints-for-gc -slsr -mergefunc -loweratomic -simplifycfg -lower-matrix-intrinsics -add-discriminators -loop-unroll -redundant-dbg-inst-elim -argpromotion -loop-deletion -guard-widening -simple-loop-unswitch -gvn-hoist -loop-unroll-and-jam -loop-idiom -flattencfg -dse -loop-reroll -slp-vectorizer -hotcoldsplit -instsimplify -loop-vectorize -speculative-execution -load-store-vectorizer -loop-idiom -loop-distribute -loop-guard-widening -loop-idiom -coro-elide -globaldce -loop-unroll -loweratomic -loop-simplifycfg -scalarizer -nary-reassociate -alignment-from-assumptions -partially-inline-libcalls -elim-avail-extern -pgo-memop-opt -gvn-hoist -jump-threading -nary-reassociate -jump-threading -jump-threading -strip-nondebug -correlated-propagation -float2int -partially-inline-libcalls -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,1.031555571474623,75.60634303092957,opt -libcalls-shrinkwrap -loop-interchange -loop-distribute -rpo-functionattrs -flattencfg -jump-threading -loop-versioning -strip -rewrite-statepoints-for-gc -sink -loop-versioning-licm -strip-nondebug -coro-elide -loop-instsimplify -deadargelim -strip-dead-prototypes -indvars -reassociate -loop-reduce -loop-distribute -memcpyopt -lower-widenable-condition -elim-avail-extern -loop-versioning-licm -nary-reassociate -post-inline-ee-instrument -consthoist -lower-matrix-intrinsics -coro-early -sancov -irce -lowerinvoke -loop-guard-widening -lower-guard-intrinsic -attributor -loop-unroll -loop-sink -instnamer -instnamer -loop-versioning-licm -loop-vectorize -reg2mem -irce -post-inline-ee-instrument -ipconstprop -instsimplify -inject-tli-mappings -callsite-splitting -name-anon-globals -strip-debug-declare -hotcoldsplit -loop-sink -loop-data-prefetch -globalopt -strip-debug-declare -lower-constant-intrinsics -flattencfg -mem2reg -pgo-memop-opt -sccp -rpo-functionattrs -prune-eh -separate-const-offset-from-gep -strip-dead-prototypes -deadargelim -flattencfg -gvn-hoist -ipconstprop -infer-address-spaces -early-cse-memssa -lower-expect -sroa -post-inline-ee-instrument -libcalls-shrinkwrap -gvn-hoist -consthoist -die -libcalls-shrinkwrap -lower-widenable-condition -ipsccp -loop-instsimplify -loop-versioning -break-crit-edges -loop-deletion -constmerge -canonicalize-aliases -slp-vectorizer -post-inline-ee-instrument -inferattrs -lower-widenable-condition -prune-eh -argpromotion -dce -lowerinvoke -called-value-propagation -loop-reroll -rewrite-statepoints-for-gc -loop-interchange -loop-load-elim -cross-dso-cfi -simplifycfg -float2int -correlated-propagation -loweratomic -sancov -functionattrs -instcombine -deadargelim -bdce -lowerinvoke -memcpyopt -argpromotion -hotcoldsplit -coro-elide -strip-debug-declare -argpromotion -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.000753985351142,77.92356705665588,opt -ee-instrument -loop-load-elim -functionattrs -early-cse-memssa -sccp -attributor -canonicalize-aliases -libcalls-shrinkwrap -loop-guard-widening -irce -sroa -loop-reroll -ee-instrument -irce -nary-reassociate -add-discriminators -loop-sink -post-inline-ee-instrument -globalopt -early-cse-memssa -globalopt -loop-data-prefetch -loop-guard-widening -float2int -lower-widenable-condition -indvars -strip-dead-prototypes -scalarizer -redundant-dbg-inst-elim -load-store-vectorizer -globalopt -redundant-dbg-inst-elim -name-anon-globals -break-crit-edges -div-rem-pairs -inject-tli-mappings -loop-distribute -attributor -mergereturn -coro-split -rewrite-statepoints-for-gc -coro-cleanup -loop-deletion -speculative-execution -loop-reduce -loop-instsimplify -scalarizer -instsimplify -attributor -elim-avail-extern -bdce -scalarizer -strip-dead-prototypes -gvn -consthoist -loop-versioning -aggressive-instcombine -newgvn -cross-dso-cfi -memcpyopt -lcssa -lower-guard-intrinsic -mergeicmps -loop-distribute -loop-deletion -tailcallelim -loop-data-prefetch -separate-const-offset-from-gep -ee-instrument -insert-gcov-profiling -indvars -lower-guard-intrinsic -memcpyopt -loop-idiom -slp-vectorizer -elim-avail-extern -jump-threading -alignment-from-assumptions -loop-unroll-and-jam -loop-load-elim -rpo-functionattrs -strip-dead-prototypes -guard-widening -loop-idiom -mergefunc -gvn -rewrite-statepoints-for-gc -break-crit-edges -coro-early -pgo-memop-opt -cross-dso-cfi -mldst-motion -loop-sink -jump-threading -lcssa -jump-threading -guard-widening -bdce -instnamer -lower-guard-intrinsic -reg2mem -insert-gcov-profiling -loop-interchange -mem2reg -simple-loop-unswitch -hotcoldsplit -loop-unswitch -gvn-hoist -loop-unswitch -constmerge -add-discriminators -instcombine -slsr -loop-predication -loop-data-prefetch -barrier -simplifycfg -barrier -globaldce -instsimplify input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0105557949159845,74.41571712493896,opt -partially-inline-libcalls -sccp -loop-idiom -flattencfg -div-rem-pairs -globalopt -coro-cleanup -elim-avail-extern -called-value-propagation -loop-unswitch -loop-vectorize -attributor -always-inline -loop-simplifycfg -prune-eh -mergeicmps -loop-fusion -elim-avail-extern -adce -post-inline-ee-instrument -div-rem-pairs -argpromotion -simplifycfg -loop-simplifycfg -loop-data-prefetch -lower-matrix-intrinsics -loop-idiom -gvn-hoist -alignment-from-assumptions -deadargelim -mldst-motion -correlated-propagation -lower-matrix-intrinsics -memcpyopt -functionattrs -die -loop-instsimplify -loop-versioning-licm -die -sccp -coro-cleanup -sink -loop-fusion -memcpyopt -nary-reassociate -cross-dso-cfi -reassociate -coro-early -infer-address-spaces -float2int -guard-widening -rpo-functionattrs -aggressive-instcombine -float2int -simple-loop-unswitch -loop-unroll -indvars -lowerinvoke -scalarizer -prune-eh -ipsccp -inferattrs -strip-debug-declare -sroa -bdce -loop-deletion -lowerinvoke -forceattrs -rpo-functionattrs -load-store-vectorizer -rewrite-statepoints-for-gc -coro-elide -libcalls-shrinkwrap -strip -loop-deletion -die -speculative-execution -aggressive-instcombine -loop-fusion -sink -loop-vectorize -loop-versioning-licm -slp-vectorizer -prune-eh -separate-const-offset-from-gep -loop-versioning-licm -instsimplify -simplifycfg -mergefunc -canonicalize-aliases -correlated-propagation -float2int -coro-early -globaldce -gvn-hoist -loop-vectorize -simple-loop-unswitch -loop-predication -prune-eh -loop-simplifycfg -memcpyopt -inferattrs -always-inline -functionattrs -simple-loop-unswitch -loop-guard-widening -consthoist -indvars -instsimplify -slp-vectorizer -aggressive-instcombine -instcombine -aggressive-instcombine -gvn input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0111661640097658,76.2009334564209,opt -slp-vectorizer -correlated-propagation -adce -partially-inline-libcalls -loop-versioning-licm -loweratomic -speculative-execution -ee-instrument -jump-threading -inferattrs -elim-avail-extern -simplifycfg -loop-data-prefetch -break-crit-edges -newgvn -div-rem-pairs -loop-reduce -prune-eh -bdce -die -loop-predication -reassociate -break-crit-edges -lower-matrix-intrinsics -rewrite-statepoints-for-gc -coro-cleanup -loop-idiom -bdce -mergereturn -indvars -always-inline -constprop -prune-eh -mergeicmps -separate-const-offset-from-gep -adce -lower-matrix-intrinsics -partial-inliner -slp-vectorizer -loop-fusion -coro-early -insert-gcov-profiling -strip -post-inline-ee-instrument -globalopt -loop-simplify -guard-widening -post-inline-ee-instrument -canonicalize-aliases -tailcallelim -lcssa -name-anon-globals -adce -coro-cleanup -break-crit-edges -loop-simplifycfg -reg2mem -loop-unroll -nary-reassociate -simple-loop-unswitch -strip -mem2reg -lower-constant-intrinsics -memcpyopt -div-rem-pairs -correlated-propagation -prune-eh -forceattrs -pgo-memop-opt -loop-unswitch -lcssa -constprop -loop-deletion -deadargelim -ipsccp -loop-simplifycfg -loop-sink -separate-const-offset-from-gep -slp-vectorizer -coro-cleanup -called-value-propagation -strip-dead-prototypes -simple-loop-unswitch -ipconstprop -div-rem-pairs -strip-debug-declare -speculative-execution -scalarizer -loop-versioning-licm -coro-cleanup -partial-inliner -loop-versioning-licm -called-value-propagation -functionattrs -slp-vectorizer -float2int -ipsccp -scalarizer -coro-early -adce -callsite-splitting -slsr -elim-avail-extern -tailcallelim -name-anon-globals -memcpyopt -coro-elide -forceattrs -lowerinvoke -libcalls-shrinkwrap -sink -lower-guard-intrinsic -prune-eh -nary-reassociate -forceattrs -rpo-functionattrs -cross-dso-cfi -bdce -correlated-propagation -loop-data-prefetch -loop-distribute -always-inline -sroa -loop-unroll -loop-versioning -loop-versioning-licm -globaldce -coro-cleanup -slsr -loweratomic -coro-split -loop-simplify -insert-gcov-profiling -die -instsimplify -loop-distribute -called-value-propagation -slp-vectorizer -sccp -libcalls-shrinkwrap -loop-unroll -slp-vectorizer -early-cse-memssa -loop-interchange -lower-widenable-condition -strip -strip-dead-prototypes -dse -coro-elide -constprop -pgo-memop-opt -coro-elide -add-discriminators -loop-distribute -simplifycfg -guard-widening -loop-versioning-licm -slp-vectorizer -lcssa -coro-early -loop-guard-widening -gvn -instcombine -correlated-propagation -lower-expect -functionattrs -lcssa -adce -instcombine -sccp -ipsccp -tailcallelim -ipconstprop -strip-dead-prototypes -rpo-functionattrs -forceattrs -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0149360907654748,74.06858968734741,opt -dce -constprop -attributor -loop-reroll -slsr -always-inline -instsimplify -inject-tli-mappings -inject-tli-mappings -sroa -loop-versioning-licm -float2int -lower-widenable-condition -loop-sink -coro-elide -speculative-execution -loweratomic -strip-dead-prototypes -flattencfg -simplifycfg -loop-reroll -slsr -loop-deletion -div-rem-pairs -reassociate -mergefunc -scalarizer -callsite-splitting -simple-loop-unswitch -prune-eh -loop-instsimplify -guard-widening -loop-idiom -bdce -constprop -loop-predication -die -mem2reg -newgvn -mem2reg -mergeicmps -deadargelim -early-cse-memssa -correlated-propagation -called-value-propagation -reassociate -mergefunc -div-rem-pairs -loop-versioning -post-inline-ee-instrument -mem2reg -loop-versioning -gvn-hoist -early-cse-memssa -rewrite-statepoints-for-gc -strip-dead-prototypes -simple-loop-unswitch -coro-split -sink -strip-dead-prototypes -jump-threading -sccp -break-crit-edges -scalarizer -loop-load-elim -loop-guard-widening -memcpyopt -ipconstprop -coro-elide -mergereturn -globalopt -mldst-motion -div-rem-pairs -speculative-execution -simple-loop-unswitch -callsite-splitting -infer-address-spaces -licm -simplifycfg -cross-dso-cfi -strip-debug-declare -early-cse-memssa -mldst-motion -lcssa -slsr -functionattrs -sancov -rpo-functionattrs -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0156541720522767,76.2298526763916,opt -loop-load-elim -mem2reg -rpo-functionattrs -ee-instrument -ipsccp -strip-debug-declare -licm -sccp -dce -loop-simplifycfg -post-inline-ee-instrument -globaldce -reassociate -coro-cleanup -slsr -simplifycfg -constmerge -loop-predication -constprop -sroa -mergefunc -coro-elide -forceattrs -constprop -sroa -loop-unswitch -called-value-propagation -simple-loop-unswitch -memcpyopt -strip-dead-prototypes -loop-simplify -pgo-memop-opt -die -globaldce -guard-widening -instcombine -cross-dso-cfi -infer-address-spaces -div-rem-pairs -simple-loop-unswitch -loop-instsimplify -instcombine -coro-elide -loop-fusion -mergefunc -consthoist -callsite-splitting -called-value-propagation -globalopt -memcpyopt -lower-expect -sancov -instcombine -strip-debug-declare -elim-avail-extern -scalarizer -coro-early -loop-fusion -loop-idiom -inject-tli-mappings -loop-instsimplify -newgvn -break-crit-edges -barrier -loop-unroll-and-jam -loop-simplifycfg -gvn-hoist -strip-debug-declare -licm -canonicalize-aliases -inject-tli-mappings -sancov -reassociate -rewrite-statepoints-for-gc -simple-loop-unswitch -loop-instsimplify -loop-deletion -speculative-execution -mem2reg -correlated-propagation -mergereturn -rewrite-statepoints-for-gc -loop-predication -jump-threading -gvn-hoist -licm -ipconstprop -loop-unroll -flattencfg -functionattrs -loop-simplifycfg -lower-constant-intrinsics -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0159414045669974,77.51045274734497,opt -strip-debug-declare -sroa -jump-threading -partially-inline-libcalls -sink -dse -globaldce -mem2reg -argpromotion -consthoist -loop-reduce -tailcallelim -libcalls-shrinkwrap -lower-matrix-intrinsics -loop-load-elim -simple-loop-unswitch -mergeicmps -sancov -gvn-hoist -break-crit-edges -break-crit-edges -early-cse-memssa -argpromotion -scalarizer -always-inline -add-discriminators -guard-widening -callsite-splitting -loop-simplify -globaldce -loop-unroll-and-jam -insert-gcov-profiling -float2int -indvars -separate-const-offset-from-gep -loop-interchange -jump-threading -inferattrs -loop-unroll-and-jam -strip-dead-prototypes -div-rem-pairs -attributor -mergereturn -sancov -loop-versioning-licm -simple-loop-unswitch -tailcallelim -inferattrs -float2int -forceattrs -float2int -instcombine -loop-versioning -inferattrs -callsite-splitting -loop-guard-widening -speculative-execution -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0213270142180093,75.81489181518555,opt -loop-idiom -div-rem-pairs -mem2reg -simple-loop-unswitch -mem2reg -mergefunc -loop-idiom -loop-instsimplify -irce -sroa -loop-distribute -libcalls-shrinkwrap -newgvn -memcpyopt -coro-elide -simplifycfg -ipconstprop -loop-unroll-and-jam -forceattrs -loweratomic -loop-reroll -barrier -lcssa -libcalls-shrinkwrap -mergereturn -name-anon-globals -flattencfg -instsimplify -loop-fusion -loop-versioning -early-cse-memssa -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0244506678155967,76.34029912948608,opt -ee-instrument -globaldce -mem2reg -rpo-functionattrs -loop-vectorize -instcombine -strip -callsite-splitting -infer-address-spaces -alignment-from-assumptions -mldst-motion -redundant-dbg-inst-elim -strip-dead-prototypes -loop-data-prefetch -pgo-memop-opt -die -bdce -early-cse-memssa -loop-predication -reassociate -lowerinvoke -instnamer -indvars -sroa -cross-dso-cfi -mergefunc -deadargelim -gvn-hoist -instcombine -post-inline-ee-instrument -loop-data-prefetch -nary-reassociate -irce -lowerinvoke -sancov -elim-avail-extern -nary-reassociate -loop-distribute -aggressive-instcombine -tailcallelim -correlated-propagation -early-cse-memssa -loop-idiom -loop-predication -slsr -mldst-motion -loop-reroll -newgvn -coro-elide -reassociate -loop-distribute -simplifycfg -inject-tli-mappings -memcpyopt input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0263535832256214,76.55784583091736,opt -loop-distribute -speculative-execution -inferattrs -die -instnamer -loop-versioning -name-anon-globals -rewrite-statepoints-for-gc -loop-instsimplify -correlated-propagation -indvars -loop-idiom -libcalls-shrinkwrap -strip-nondebug -load-store-vectorizer -canonicalize-aliases -indvars -scalarizer -coro-elide -globalsplit -sroa -ipconstprop -lower-guard-intrinsic -nary-reassociate -mem2reg -loop-versioning -newgvn -instnamer -instsimplify -tailcallelim -memcpyopt -mergefunc -die -partially-inline-libcalls -loop-predication -loop-distribute -aggressive-instcombine -sccp -reg2mem -scalarizer -forceattrs -die -guard-widening -libcalls-shrinkwrap -libcalls-shrinkwrap -gvn-hoist -coro-cleanup -mem2reg -memcpyopt -loop-predication -scalarizer -inferattrs -loop-simplify -flattencfg -scalarizer -loop-distribute -mldst-motion -coro-early -scalarizer -infer-address-spaces -instnamer -reassociate -break-crit-edges -lowerinvoke -early-cse-memssa -ee-instrument -globalopt -called-value-propagation -guard-widening -correlated-propagation -guard-widening -loop-unroll-and-jam -partial-inliner -partial-inliner -loop-predication -loop-idiom -loop-reduce -loop-deletion -correlated-propagation -functionattrs -loop-versioning-licm -deadargelim -die -gvn-hoist -globalopt -argpromotion -strip-dead-prototypes -irce -strip-nondebug -globalopt -lower-constant-intrinsics -rpo-functionattrs -sccp -div-rem-pairs -globalopt -loop-unswitch -lower-guard-intrinsic -ipsccp -loop-predication -scalarizer -loop-reroll -licm -mergereturn -elim-avail-extern -loop-fusion -simple-loop-unswitch -loop-interchange -simplifycfg -ipsccp -dce -lcssa -sccp -strip-debug-declare -loop-versioning-licm -hotcoldsplit -coro-cleanup -add-discriminators -break-crit-edges -ee-instrument -loop-data-prefetch -functionattrs -reassociate -inject-tli-mappings -load-store-vectorizer -loop-load-elim -simple-loop-unswitch -loop-unroll -strip -pgo-memop-opt -instcombine -dce -newgvn -lower-matrix-intrinsics -hotcoldsplit -argpromotion -prune-eh -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,1.0282564986356453,76.88841128349304,opt -aggressive-instcombine -float2int -inject-tli-mappings -post-inline-ee-instrument -coro-elide -called-value-propagation -reg2mem -constprop -functionattrs -adce -dce -add-discriminators -pgo-memop-opt -prune-eh -attributor -mem2reg -argpromotion -coro-early -adce -mergefunc -strip -indvars -rpo-functionattrs -deadargelim -post-inline-ee-instrument -mergeicmps -coro-early -functionattrs -loop-versioning-licm -irce -mergefunc -loop-predication -lower-matrix-intrinsics -adce -strip-nondebug -gvn -dse -gvn-hoist -sancov -lower-widenable-condition -ee-instrument -rewrite-statepoints-for-gc -strip-debug-declare -barrier -insert-gcov-profiling -load-store-vectorizer -rewrite-statepoints-for-gc -hotcoldsplit -strip-debug-declare -called-value-propagation -instnamer -lower-widenable-condition -mergereturn -loop-unroll -slsr -speculative-execution -partially-inline-libcalls -jump-threading -lower-constant-intrinsics -constmerge -barrier -gvn -loop-reroll -attributor -reassociate -lower-guard-intrinsic -licm -redundant-dbg-inst-elim -guard-widening -tailcallelim -lcssa -dse -mem2reg -sroa -break-crit-edges -loop-interchange -mergeicmps -indvars -loweratomic -mergefunc -gvn-hoist -aggressive-instcombine -tailcallelim -loop-interchange -rpo-functionattrs -libcalls-shrinkwrap -lower-matrix-intrinsics -consthoist -loop-unroll-and-jam -alignment-from-assumptions -globalsplit -pgo-memop-opt -ee-instrument -coro-early -attributor -constprop -loweratomic -instnamer -prune-eh -loop-simplify -nary-reassociate -mem2reg -called-value-propagation -partial-inliner -loop-fusion -indvars -coro-elide -elim-avail-extern -strip -loop-distribute -rpo-functionattrs -loop-sink -float2int -globalopt -sink -dce -float2int -loop-reroll -forceattrs -slp-vectorizer -loop-instsimplify -mergeicmps -globaldce -load-store-vectorizer -loop-unroll-and-jam -lcssa -loop-simplify -coro-cleanup -lower-matrix-intrinsics -lower-matrix-intrinsics -loop-reroll -sroa -sink -hotcoldsplit -break-crit-edges -tailcallelim -mldst-motion -tailcallelim -globalsplit -deadargelim -lower-matrix-intrinsics -barrier -loop-distribute -name-anon-globals -instcombine -lower-guard-intrinsic -coro-elide -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0113177623990772,77.15600180625916,opt -loop-load-elim -div-rem-pairs -prune-eh -gvn -argpromotion -div-rem-pairs -mem2reg -strip-debug-declare -add-discriminators -coro-early -attributor -dce -guard-widening -inject-tli-mappings -loop-predication -ee-instrument -simplifycfg -lower-widenable-condition -strip -cross-dso-cfi -loop-unswitch -loop-unroll -lower-widenable-condition -redundant-dbg-inst-elim -load-store-vectorizer -strip -correlated-propagation -consthoist -memcpyopt -lowerinvoke -instnamer -licm -sink -lower-matrix-intrinsics -lower-matrix-intrinsics -lower-widenable-condition -loop-unswitch -lower-guard-intrinsic -flattencfg -indvars -dce -lcssa -loop-unroll-and-jam -dce -hotcoldsplit -gvn-hoist -alignment-from-assumptions -callsite-splitting -libcalls-shrinkwrap -load-store-vectorizer -strip -break-crit-edges -lower-widenable-condition -sink -coro-early -ipsccp -lcssa -licm -load-store-vectorizer -strip-dead-prototypes -called-value-propagation -gvn -early-cse-memssa -lowerinvoke -inject-tli-mappings -early-cse-memssa -insert-gcov-profiling -aggressive-instcombine -loop-interchange -consthoist -loop-load-elim -coro-elide -prune-eh -bdce -lcssa -scalarizer -correlated-propagation -flattencfg -coro-split -licm -early-cse-memssa -ipconstprop -licm -lowerinvoke -lower-constant-intrinsics -callsite-splitting -constprop -prune-eh -guard-widening -simple-loop-unswitch -insert-gcov-profiling -break-crit-edges -strip -newgvn -correlated-propagation -loop-simplify -barrier -ipsccp -ipconstprop -loop-idiom -ipconstprop -loop-vectorize -partial-inliner -lower-expect -ipsccp -ipconstprop -simplifycfg -loop-versioning -mergeicmps -called-value-propagation -flattencfg -sink -early-cse-memssa -libcalls-shrinkwrap -loop-simplifycfg -loop-guard-widening -loop-predication -always-inline -loop-instsimplify -load-store-vectorizer -mergeicmps -instsimplify -gvn -instsimplify -mem2reg -loop-interchange -forceattrs -mem2reg -libcalls-shrinkwrap -instsimplify -lcssa -loop-sink -callsite-splitting -load-store-vectorizer -ipconstprop -die -inferattrs -loop-guard-widening -div-rem-pairs -insert-gcov-profiling -scalarizer -called-value-propagation -loop-versioning -div-rem-pairs -loop-reduce -pgo-memop-opt -ipsccp -correlated-propagation -sink -loop-versioning-licm -functionattrs -newgvn -ipconstprop -aggressive-instcombine -loop-simplify -name-anon-globals -lcssa -licm -cross-dso-cfi -loop-interchange -lower-matrix-intrinsics -mem2reg -reassociate -hotcoldsplit -add-discriminators -tailcallelim -always-inline -slsr -loweratomic -lower-matrix-intrinsics -instcombine -tailcallelim -strip -post-inline-ee-instrument -lowerinvoke -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0122909457900806,381.1352982521057,opt -name-anon-globals -libcalls-shrinkwrap -loop-data-prefetch -float2int -lcssa -gvn -coro-elide -loop-interchange -separate-const-offset-from-gep -sroa -rewrite-statepoints-for-gc -ipconstprop -cross-dso-cfi -argpromotion -aggressive-instcombine -separate-const-offset-from-gep -functionattrs -instnamer -mldst-motion -rewrite-statepoints-for-gc -loop-predication -globaldce -gvn-hoist -loop-data-prefetch -ipsccp -hotcoldsplit -mergereturn -rewrite-statepoints-for-gc -libcalls-shrinkwrap -add-discriminators -mldst-motion -globalopt -indvars -constmerge -prune-eh -partially-inline-libcalls -loop-reroll -loop-instsimplify -adce -tailcallelim -aggressive-instcombine -mergereturn -libcalls-shrinkwrap -mergefunc -simple-loop-unswitch -post-inline-ee-instrument -name-anon-globals -barrier -coro-early -partially-inline-libcalls -licm -loop-interchange -lowerinvoke -sink -sink -simple-loop-unswitch -lower-constant-intrinsics -consthoist -loop-data-prefetch -loop-unroll -instcombine -nary-reassociate -forceattrs -scalarizer -float2int -dse -early-cse-memssa -memcpyopt -loop-interchange -div-rem-pairs -lower-matrix-intrinsics -memcpyopt -scalarizer -instcombine -simple-loop-unswitch -post-inline-ee-instrument -instsimplify -instnamer -mergeicmps -globalsplit -callsite-splitting -ipsccp -globalopt -rpo-functionattrs -ipconstprop -callsite-splitting -insert-gcov-profiling -loop-reduce -loop-simplifycfg -strip-nondebug -barrier -inject-tli-mappings -loop-distribute -licm -libcalls-shrinkwrap -coro-cleanup -name-anon-globals -post-inline-ee-instrument -strip-debug-declare -sink -lcssa -ee-instrument -loop-instsimplify -simple-loop-unswitch -simplifycfg -canonicalize-aliases -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0167243367935412,88.61051821708679,opt -correlated-propagation -instnamer -redundant-dbg-inst-elim -loop-idiom -loop-simplify -globalsplit -div-rem-pairs -break-crit-edges -constmerge -ipconstprop -loop-instsimplify -alignment-from-assumptions -canonicalize-aliases -coro-split -consthoist -sroa -irce -loop-versioning -lower-matrix-intrinsics -gvn -mldst-motion -coro-cleanup -loop-guard-widening -insert-gcov-profiling -load-store-vectorizer -elim-avail-extern -constprop -instcombine -gvn-hoist -die -called-value-propagation -lower-widenable-condition -newgvn -pgo-memop-opt -called-value-propagation -functionattrs -forceattrs -instcombine -guard-widening -callsite-splitting -coro-early -loop-load-elim -aggressive-instcombine -lcssa -constprop -reassociate -mem2reg -always-inline -newgvn -scalarizer -consthoist -constmerge -loop-load-elim -consthoist -coro-elide -barrier -guard-widening -loop-versioning -lower-widenable-condition -scalarizer -mldst-motion -argpromotion -adce -scalarizer -scalarizer -correlated-propagation -forceattrs -correlated-propagation -gvn -coro-elide -hotcoldsplit -jump-threading -lowerinvoke -slsr -loop-distribute -constprop -loop-sink -correlated-propagation -coro-split -break-crit-edges -loweratomic -barrier -elim-avail-extern -elim-avail-extern -dce -mem2reg -strip-dead-prototypes -lower-expect -break-crit-edges -lcssa -consthoist -adce -loop-vectorize -div-rem-pairs -correlated-propagation -lower-widenable-condition -constprop -sancov -loop-unroll-and-jam -loop-reduce -lower-constant-intrinsics -deadargelim -infer-address-spaces -coro-cleanup -deadargelim -loop-idiom -coro-early -lower-matrix-intrinsics -globalsplit -globaldce -loop-deletion -mldst-motion -nary-reassociate -coro-split -die -simplifycfg -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0197159746251443,78.524822473526,opt -pgo-memop-opt -consthoist -simplifycfg -gvn-hoist -nary-reassociate -instnamer -gvn-hoist -redundant-dbg-inst-elim -post-inline-ee-instrument -loop-guard-widening -lower-matrix-intrinsics -hotcoldsplit -canonicalize-aliases -simplifycfg -nary-reassociate -cross-dso-cfi -loop-versioning -instsimplify -constmerge -lowerinvoke -adce -scalarizer -pgo-memop-opt -argpromotion -hotcoldsplit -correlated-propagation -loop-idiom -loop-deletion -barrier -dse -partially-inline-libcalls -loop-simplifycfg -coro-split -lower-expect -redundant-dbg-inst-elim -loop-interchange -reg2mem -separate-const-offset-from-gep -newgvn -globaldce -elim-avail-extern -loop-sink -lcssa -coro-cleanup -strip-debug-declare -mem2reg -gvn-hoist -loop-versioning-licm -forceattrs -mldst-motion -strip-dead-prototypes -strip-dead-prototypes -instcombine -sroa -jump-threading -tailcallelim -speculative-execution -loop-unroll-and-jam -adce -mergefunc -loop-versioning -dse -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0200043252595157,76.91719341278076,opt -loop-simplify -strip -gvn -lcssa -functionattrs -argpromotion -strip -correlated-propagation -lower-expect -prune-eh -cross-dso-cfi -tailcallelim -lower-matrix-intrinsics -simple-loop-unswitch -instcombine -instsimplify -guard-widening -inject-tli-mappings -speculative-execution -strip-debug-declare -loop-instsimplify -sink -strip-nondebug -lcssa -sccp -strip -instnamer -gvn -gvn-hoist -loop-unroll-and-jam -strip-dead-prototypes -always-inline -lower-guard-intrinsic -elim-avail-extern -lcssa -tailcallelim -constmerge -strip -rpo-functionattrs -reassociate -loop-data-prefetch -loop-reduce -elim-avail-extern -simplifycfg -lowerinvoke -coro-cleanup -break-crit-edges -cross-dso-cfi -globalopt -coro-elide -sroa -gvn-hoist -argpromotion -loweratomic -speculative-execution -guard-widening -insert-gcov-profiling -bdce -lower-widenable-condition -mergefunc -slsr -simple-loop-unswitch -called-value-propagation -partial-inliner -div-rem-pairs -instcombine -dce -add-discriminators -coro-early -canonicalize-aliases -newgvn -globaldce -name-anon-globals -simple-loop-unswitch -dce -correlated-propagation -loop-unroll -rewrite-statepoints-for-gc -loop-instsimplify -nary-reassociate -loweratomic -loop-predication -licm -constprop -instsimplify -inject-tli-mappings -tailcallelim -pgo-memop-opt -prune-eh -name-anon-globals -lower-widenable-condition -globalopt -slsr -loop-instsimplify -early-cse-memssa -deadargelim -insert-gcov-profiling -guard-widening -sroa -deadargelim -mldst-motion -alignment-from-assumptions -alignment-from-assumptions -strip-dead-prototypes -lower-expect -coro-elide -flattencfg -globalsplit -lower-widenable-condition -always-inline -forceattrs -flattencfg -always-inline -sancov -lower-constant-intrinsics -instcombine -attributor -jump-threading input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0214821222606691,74.76235461235046,opt -inferattrs -gvn-hoist -globaldce -loop-deletion -sccp -loop-guard-widening -ipconstprop -canonicalize-aliases -coro-split -mergeicmps -insert-gcov-profiling -lower-guard-intrinsic -lower-matrix-intrinsics -adce -argpromotion -loweratomic -newgvn -strip-dead-prototypes -flattencfg -lowerinvoke -name-anon-globals -functionattrs -strip-dead-prototypes -nary-reassociate -ee-instrument -rpo-functionattrs -loop-unroll -break-crit-edges -loop-predication -dse -reassociate -sroa -instcombine -lower-widenable-condition -loop-fusion -indvars -newgvn -lower-guard-intrinsic -float2int -nary-reassociate -memcpyopt -canonicalize-aliases -inject-tli-mappings -loop-vectorize -callsite-splitting -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.021914648212226,76.11744666099548,opt -constmerge -mergereturn -early-cse-memssa -instsimplify -always-inline -libcalls-shrinkwrap -float2int -adce -simplifycfg -mldst-motion -adce -constmerge -gvn -constprop -callsite-splitting -loop-deletion -loop-simplify -coro-cleanup -infer-address-spaces -libcalls-shrinkwrap -deadargelim -memcpyopt -globalopt -speculative-execution -name-anon-globals -break-crit-edges -memcpyopt -nary-reassociate -canonicalize-aliases -loop-interchange -post-inline-ee-instrument -add-discriminators -argpromotion -indvars -gvn -dce -loop-instsimplify -libcalls-shrinkwrap -lowerinvoke -loop-reroll -lower-matrix-intrinsics -loop-deletion -aggressive-instcombine -gvn -redundant-dbg-inst-elim -globaldce -lower-widenable-condition -loop-load-elim -aggressive-instcombine -deadargelim -loop-versioning-licm -lcssa -post-inline-ee-instrument -globalsplit -sink -loop-fusion -mem2reg -irce -simple-loop-unswitch -ipsccp -coro-early -pgo-memop-opt -memcpyopt -separate-const-offset-from-gep -libcalls-shrinkwrap -nary-reassociate -rewrite-statepoints-for-gc -functionattrs -strip-debug-declare -lower-matrix-intrinsics -coro-split -instsimplify -loop-versioning -strip-nondebug -instcombine -bdce -nary-reassociate -loweratomic -loop-simplifycfg -lower-widenable-condition -hotcoldsplit -loop-unroll-and-jam -coro-elide -constprop -loop-unroll -instcombine -simplifycfg -separate-const-offset-from-gep -jump-threading -canonicalize-aliases -loop-simplifycfg -loop-sink -early-cse-memssa -prune-eh -div-rem-pairs -strip-debug-declare -memcpyopt -mergereturn -simple-loop-unswitch -lower-constant-intrinsics -die -indvars -strip-dead-prototypes -strip -lowerinvoke -loop-simplify -lower-expect -scalarizer -loweratomic -mldst-motion -lowerinvoke -loop-guard-widening -flattencfg -div-rem-pairs -forceattrs -mergefunc -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.024617935409458,75.6703040599823,opt -reg2mem -callsite-splitting -sroa -constmerge -lower-guard-intrinsic -constprop -loop-predication -strip-nondebug -loop-unroll -adce -coro-early -scalarizer -globalopt -indvars -loweratomic -loop-simplify -mldst-motion -constprop -div-rem-pairs -loop-instsimplify -dce -partial-inliner -loop-simplify -barrier -functionattrs -gvn -speculative-execution -loop-distribute -loop-versioning-licm -lower-widenable-condition -infer-address-spaces -simple-loop-unswitch -coro-elide -speculative-execution -lower-guard-intrinsic -dce -loop-data-prefetch -instcombine -inferattrs -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0302768166089966,115.1228277683258,opt -instnamer -loop-idiom -rewrite-statepoints-for-gc -post-inline-ee-instrument -loop-interchange -ipsccp -elim-avail-extern -ipsccp -cross-dso-cfi -name-anon-globals -tailcallelim -loop-deletion -argpromotion -reassociate -loop-simplify -lcssa -rpo-functionattrs -aggressive-instcombine -instnamer -float2int -correlated-propagation -strip-debug-declare -correlated-propagation -consthoist -prune-eh -canonicalize-aliases -loop-simplifycfg -irce -loop-data-prefetch -lower-matrix-intrinsics -called-value-propagation -add-discriminators -partially-inline-libcalls -loop-versioning-licm -strip-nondebug -jump-threading -argpromotion -inject-tli-mappings -correlated-propagation -dce -inject-tli-mappings -coro-cleanup -simplifycfg -inject-tli-mappings -mergeicmps -insert-gcov-profiling -strip-dead-prototypes -lowerinvoke -coro-elide -break-crit-edges -loop-unroll-and-jam -sccp -functionattrs -partially-inline-libcalls -mem2reg -constprop -prune-eh -loop-idiom -slsr -callsite-splitting -strip-debug-declare -redundant-dbg-inst-elim -loop-fusion -lower-matrix-intrinsics -gvn -scalarizer -rpo-functionattrs -coro-elide -loop-simplifycfg -elim-avail-extern -instcombine -add-discriminators -lower-widenable-condition -loop-reroll -break-crit-edges -loop-data-prefetch -ipsccp -load-store-vectorizer -newgvn -flattencfg -reg2mem -mem2reg -coro-cleanup -gvn-hoist -coro-elide -partial-inliner -loop-unroll -constprop -loop-distribute -gvn-hoist -sancov -instnamer -nary-reassociate -ee-instrument -loop-fusion -loop-vectorize -lower-widenable-condition -ee-instrument -correlated-propagation -gvn -loop-guard-widening -constprop -add-discriminators -barrier -infer-address-spaces -loop-reroll -sink -globalopt -ee-instrument -callsite-splitting -mergefunc -rewrite-statepoints-for-gc -loop-predication -loop-interchange -cross-dso-cfi -loop-simplifycfg -reassociate -correlated-propagation -bdce -loop-reroll -loweratomic -loop-unroll -sink -pgo-memop-opt -speculative-execution -deadargelim -irce -instnamer -instnamer -add-discriminators -lowerinvoke -sancov -guard-widening -sancov -instcombine -add-discriminators -prune-eh -cross-dso-cfi -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffdither,1.0309616493656286,74.79893708229065,opt -alignment-from-assumptions -callsite-splitting -correlated-propagation -simplifycfg -sccp -callsite-splitting -scalarizer -loop-vectorize -adce -sccp -lower-constant-intrinsics -loop-idiom -loop-unswitch -simplifycfg -partially-inline-libcalls -slsr -loop-instsimplify -pgo-memop-opt -loop-simplify -strip-dead-prototypes -instnamer -reassociate -guard-widening -rewrite-statepoints-for-gc -correlated-propagation -canonicalize-aliases -mergefunc -loweratomic -reassociate -instsimplify -pgo-memop-opt -loop-idiom -reg2mem -loop-load-elim -reg2mem -loop-deletion -post-inline-ee-instrument -scalarizer -strip-dead-prototypes -mergeicmps -loop-predication -flattencfg -loop-simplify -mldst-motion -loop-deletion -indvars -loop-load-elim -ipsccp -loop-unswitch -add-discriminators -break-crit-edges -sink -hotcoldsplit -mem2reg -globalsplit -loop-guard-widening -attributor -memcpyopt -callsite-splitting -inject-tli-mappings -loweratomic -loop-distribute -ipsccp -partially-inline-libcalls -early-cse-memssa -rewrite-statepoints-for-gc -consthoist -forceattrs -partial-inliner -coro-early -irce -float2int -libcalls-shrinkwrap -flattencfg -loop-data-prefetch -constprop -irce -instcombine -instsimplify -rewrite-statepoints-for-gc -loop-distribute -slsr -cross-dso-cfi -canonicalize-aliases -simplifycfg -inject-tli-mappings -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0072743417233017,77.22859692573547,opt -rpo-functionattrs -coro-split -loop-unroll-and-jam -mem2reg -loop-fusion -correlated-propagation -deadargelim -loop-load-elim -speculative-execution -instsimplify -mldst-motion -mergeicmps -loop-instsimplify -scalarizer -correlated-propagation -instnamer -simplifycfg -name-anon-globals -slsr -strip -strip-nondebug -post-inline-ee-instrument -inferattrs -separate-const-offset-from-gep -pgo-memop-opt -strip-dead-prototypes -argpromotion -simple-loop-unswitch -barrier -deadargelim -constprop -instcombine -loop-interchange -tailcallelim -bdce -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0072743417233019,73.91927719116211,opt -irce -elim-avail-extern -irce -called-value-propagation -slsr -inject-tli-mappings -redundant-dbg-inst-elim -scalarizer -coro-split -instsimplify -sroa -dse -rewrite-statepoints-for-gc -loop-vectorize -gvn-hoist -add-discriminators -load-store-vectorizer -sancov -irce -loop-simplify -instcombine -memcpyopt -lower-matrix-intrinsics -simple-loop-unswitch -constprop -partially-inline-libcalls -lcssa -loop-reroll -loop-load-elim -pgo-memop-opt -licm -prune-eh -rpo-functionattrs -redundant-dbg-inst-elim -attributor -nary-reassociate -lower-expect -simplifycfg -loop-sink -loop-instsimplify -instcombine -reassociate -loop-interchange -alignment-from-assumptions -loop-deletion -mem2reg -globaldce -rpo-functionattrs -loop-instsimplify -instnamer -add-discriminators -early-cse-memssa input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0106895256309552,74.7277250289917,opt -newgvn -sroa -mergefunc -strip -nary-reassociate -cross-dso-cfi -always-inline -name-anon-globals -loop-reroll -inject-tli-mappings -strip-debug-declare -coro-early -lower-guard-intrinsic -argpromotion -argpromotion -barrier -tailcallelim -callsite-splitting -div-rem-pairs -strip-nondebug -ipsccp -dce -reassociate -simplifycfg -loop-fusion -globaldce -partially-inline-libcalls -strip-debug-declare -lower-widenable-condition -elim-avail-extern -early-cse-memssa -loop-unroll-and-jam -name-anon-globals -dse -coro-cleanup -post-inline-ee-instrument -instsimplify -lower-matrix-intrinsics -cross-dso-cfi -newgvn -lower-guard-intrinsic -inject-tli-mappings -gvn -lower-matrix-intrinsics -loop-simplifycfg -loop-simplifycfg -die -coro-cleanup -name-anon-globals -tailcallelim -sink -loop-predication -hotcoldsplit -tailcallelim -ipsccp -gvn -called-value-propagation -float2int -lower-matrix-intrinsics -sink -partially-inline-libcalls -simple-loop-unswitch -loop-simplifycfg -rewrite-statepoints-for-gc -instcombine input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0140364058604556,77.69796371459961,opt -loop-unroll-and-jam -deadargelim -sancov -partially-inline-libcalls -inject-tli-mappings -loweratomic -loop-reduce -barrier -slsr -name-anon-globals -flattencfg -libcalls-shrinkwrap -pgo-memop-opt -coro-early -lower-expect -div-rem-pairs -loop-sink -loop-distribute -inject-tli-mappings -alignment-from-assumptions -globalsplit -jump-threading -instsimplify -partially-inline-libcalls -speculative-execution -loop-reduce -dse -early-cse-memssa -loop-predication -name-anon-globals -lower-expect -break-crit-edges -loop-predication -infer-address-spaces -loop-deletion -globaldce -constmerge -rewrite-statepoints-for-gc -separate-const-offset-from-gep -loweratomic -bdce -loop-distribute -alignment-from-assumptions -barrier -instsimplify -insert-gcov-profiling -strip-dead-prototypes -loop-distribute -correlated-propagation -strip-dead-prototypes -ipconstprop -attributor -post-inline-ee-instrument -sroa -flattencfg -sink -jump-threading -inject-tli-mappings -scalarizer -constprop -partially-inline-libcalls -always-inline -lower-matrix-intrinsics -slsr -attributor -indvars -loop-distribute -constmerge -gvn-hoist -slp-vectorizer -instcombine -mergereturn -insert-gcov-profiling -sink -mldst-motion -strip-dead-prototypes -ipconstprop -coro-elide -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -nary-reassociate -float2int -barrier -sancov -consthoist -slp-vectorizer -correlated-propagation -lower-constant-intrinsics -lcssa -loop-data-prefetch -ipconstprop -loop-reroll -lower-expect -globalsplit -mergereturn -functionattrs -die -loop-fusion -newgvn -lower-widenable-condition -flattencfg -newgvn input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0168027048256547,74.16467475891113,opt -sroa -gvn-hoist -sroa -globaldce -hotcoldsplit -float2int -mem2reg -strip-dead-prototypes -name-anon-globals -name-anon-globals -barrier -callsite-splitting -mldst-motion -libcalls-shrinkwrap -instcombine -loop-distribute -correlated-propagation -reg2mem -lcssa -constmerge -nary-reassociate -callsite-splitting -partial-inliner -called-value-propagation -die -slsr -alignment-from-assumptions -cross-dso-cfi -dse -die -early-cse-memssa -loop-load-elim -indvars -indvars -loop-load-elim -instsimplify -loop-predication -loop-interchange -deadargelim -coro-elide -sroa -loop-vectorize -mergereturn -licm -callsite-splitting -guard-widening -infer-address-spaces -deadargelim -strip-debug-declare -globalopt -lower-matrix-intrinsics -inject-tli-mappings -jump-threading -nary-reassociate -partially-inline-libcalls -gvn input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.018066322871487,358.7716484069824,opt -loop-deletion -add-discriminators -loop-unswitch -die -callsite-splitting -strip-debug-declare -libcalls-shrinkwrap -float2int -lower-widenable-condition -argpromotion -mem2reg -newgvn -early-cse-memssa -dce -lower-matrix-intrinsics -nary-reassociate -early-cse-memssa -loop-simplifycfg -loop-deletion -instcombine -speculative-execution -pgo-memop-opt -inject-tli-mappings -loop-sink -loop-deletion -jump-threading -hotcoldsplit -globalopt -libcalls-shrinkwrap -deadargelim -callsite-splitting -lower-expect -always-inline -float2int -sroa -sccp -elim-avail-extern -early-cse-memssa -nary-reassociate input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0195007001127012,76.38189339637756,opt -lower-widenable-condition -barrier -loop-distribute -constmerge -lower-constant-intrinsics -newgvn -inferattrs -inject-tli-mappings -mldst-motion -speculative-execution -libcalls-shrinkwrap -guard-widening -hotcoldsplit -loweratomic -coro-elide -partially-inline-libcalls -break-crit-edges -attributor -mldst-motion -guard-widening -jump-threading -infer-address-spaces -hotcoldsplit -bdce -sancov -strip-dead-prototypes -coro-early -loop-idiom -name-anon-globals -lower-constant-intrinsics -loop-predication -mergefunc -irce -strip-dead-prototypes -loop-data-prefetch -reg2mem -float2int -irce -sroa -loop-data-prefetch -load-store-vectorizer -called-value-propagation -loop-versioning-licm -ipconstprop -memcpyopt -instcombine -libcalls-shrinkwrap -loop-simplify -sancov -always-inline -coro-split -lower-constant-intrinsics -strip -loop-reroll -strip -loop-interchange -loop-interchange -die -lower-constant-intrinsics -callsite-splitting -cross-dso-cfi -separate-const-offset-from-gep -redundant-dbg-inst-elim -strip-nondebug -sink -inject-tli-mappings -simplifycfg -inferattrs -loop-vectorize -mergereturn -loop-fusion -mergereturn -load-store-vectorizer -speculative-execution -early-cse-memssa -hotcoldsplit -always-inline -mergefunc -coro-early -mldst-motion -loop-unroll -sroa -loop-simplifycfg -sroa -slp-vectorizer -loop-distribute -lower-guard-intrinsic -strip-debug-declare -loop-vectorize -rewrite-statepoints-for-gc -loop-reroll -strip-dead-prototypes -hotcoldsplit -lcssa -alignment-from-assumptions -loweratomic -loop-reroll -correlated-propagation -loop-deletion -loop-load-elim -prune-eh -rewrite-statepoints-for-gc -guard-widening -loop-unroll -loop-idiom -bdce -called-value-propagation -consthoist -simplifycfg -deadargelim -instsimplify input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0216864178135994,76.33752155303955,opt -elim-avail-extern -bdce -speculative-execution -bdce -consthoist -elim-avail-extern -loop-predication -coro-cleanup -globalsplit -inject-tli-mappings -loop-versioning-licm -mergeicmps -callsite-splitting -rewrite-statepoints-for-gc -jump-threading -loweratomic -sancov -dse -loop-sink -mem2reg -instcombine -hotcoldsplit -gvn -forceattrs -post-inline-ee-instrument -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.025579727468324,74.7141592502594,opt -lower-guard-intrinsic -lower-guard-intrinsic -sancov -sink -callsite-splitting -loop-simplifycfg -guard-widening -libcalls-shrinkwrap -loop-reroll -ee-instrument -prune-eh -argpromotion -loop-reduce -argpromotion -loop-simplifycfg -loop-unroll-and-jam -loop-versioning-licm -float2int -scalarizer -infer-address-spaces -simple-loop-unswitch -deadargelim -loop-idiom -loop-reroll -lower-expect -lower-expect -mergeicmps -mergefunc -coro-cleanup -canonicalize-aliases -scalarizer -gvn-hoist -redundant-dbg-inst-elim -add-discriminators -deadargelim -post-inline-ee-instrument -indvars -name-anon-globals -mem2reg -loop-simplifycfg -speculative-execution -separate-const-offset-from-gep -lowerinvoke -float2int -load-store-vectorizer -consthoist -strip -always-inline -slp-vectorizer -correlated-propagation -slsr -coro-early -callsite-splitting -lower-guard-intrinsic -lower-widenable-condition -redundant-dbg-inst-elim -globalsplit -loop-distribute -loop-deletion -rewrite-statepoints-for-gc -instnamer -licm -loop-distribute -instcombine -simplifycfg -mldst-motion -guard-widening -loop-instsimplify -simplifycfg -newgvn -reassociate input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,1.0331955875823913,76.41833972930908,opt -separate-const-offset-from-gep -coro-cleanup -die -coro-cleanup -called-value-propagation -adce -cross-dso-cfi -inject-tli-mappings -rpo-functionattrs -add-discriminators -lower-matrix-intrinsics -simplifycfg -simple-loop-unswitch -memcpyopt -instnamer -attributor -scalarizer -adce -loop-unroll-and-jam -post-inline-ee-instrument -reg2mem -flattencfg -lower-expect -loop-load-elim -strip-dead-prototypes -mergefunc -tailcallelim -barrier -inject-tli-mappings -loop-unroll -canonicalize-aliases -loop-distribute -loop-unswitch -slsr -partial-inliner -name-anon-globals -loop-interchange -lcssa -slsr -nary-reassociate -lower-constant-intrinsics -sink -loop-versioning-licm -coro-early -loop-instsimplify -pgo-memop-opt -post-inline-ee-instrument -tailcallelim -loop-distribute -loop-fusion -loop-reduce -loop-versioning -sancov -partially-inline-libcalls -instsimplify -early-cse-memssa -early-cse-memssa -coro-early -hotcoldsplit -early-cse-memssa -loop-simplify -memcpyopt -irce -mem2reg -guard-widening -canonicalize-aliases -attributor -cross-dso-cfi -attributor -globalsplit -functionattrs -strip-nondebug -instsimplify -loop-interchange -loop-predication -instcombine -gvn-hoist -globaldce -slsr -always-inline -lcssa -dce -mldst-motion -instsimplify -simple-loop-unswitch -mergefunc -lower-constant-intrinsics -newgvn -prune-eh -mergefunc -lcssa -cross-dso-cfi -loop-unroll -hotcoldsplit -loop-vectorize -loop-guard-widening -insert-gcov-profiling -name-anon-globals -early-cse-memssa -strip -loweratomic -simplifycfg -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0000000000000002,62.01178193092346,opt -strip-debug-declare -sroa -add-discriminators -speculative-execution -loop-versioning -loop-fusion -post-inline-ee-instrument -deadargelim -loop-unroll -instcombine -memcpyopt -loop-reduce -forceattrs -loop-vectorize -gvn -coro-elide -libcalls-shrinkwrap -loop-predication -loop-versioning-licm -instsimplify -dce -simplifycfg -pgo-memop-opt -scalarizer -loop-unroll-and-jam -break-crit-edges -loop-predication -instcombine -jump-threading -lower-matrix-intrinsics -sroa -instcombine -lower-constant-intrinsics -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0027932960893853,61.84229135513306,opt -loop-versioning-licm -lower-widenable-condition -lowerswitch -die -loop-unroll-and-jam -barrier -ipconstprop -mergereturn -gvn-hoist -instsimplify -argpromotion -mergeicmps -licm -pgo-memop-opt -sink -load-store-vectorizer -simplifycfg -loop-distribute -callsite-splitting -instnamer -globaldce -coro-early -deadargelim -strip-dead-prototypes -cross-dso-cfi -loweratomic -die -inline -rewrite-statepoints-for-gc -instcombine -consthoist -lower-matrix-intrinsics -lcssa -irce -loop-data-prefetch -loop-idiom -flattencfg -ipsccp -coro-cleanup -pgo-memop-opt -flattencfg -globalopt -loop-deletion -constprop -post-inline-ee-instrument -constprop -rpo-functionattrs -adce -coro-elide -loop-sink -gvn -inject-tli-mappings -mem2reg -sroa -load-store-vectorizer -loop-reroll -instnamer -post-inline-ee-instrument -lower-constant-intrinsics -rewrite-statepoints-for-gc -called-value-propagation -sink -loop-unswitch -loop-predication -aggressive-instcombine -lower-matrix-intrinsics -simple-loop-unswitch -licm -early-cse-memssa -loop-data-prefetch -loweratomic -loop-unroll-and-jam -coro-cleanup -tailcallelim -loop-predication -post-inline-ee-instrument -add-discriminators -dse -jump-threading -strip-debug-declare -mergefunc -nary-reassociate -lowerswitch -coro-cleanup -post-inline-ee-instrument -loop-interchange -inject-tli-mappings -nary-reassociate -loop-distribute -lower-constant-intrinsics -loop-versioning-licm -instsimplify input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0027932960893857,61.92401933670044,opt -pgo-memop-opt -functionattrs -sroa -loop-load-elim -memcpyopt -alignment-from-assumptions -speculative-execution -reassociate -ipconstprop -globaldce -lower-constant-intrinsics -indvars -loop-versioning -bdce -loop-deletion -post-inline-ee-instrument -reassociate -simplifycfg -cross-dso-cfi -memcpyopt -reassociate -dse -loop-unroll-and-jam -memcpyopt -tailcallelim -instcombine -sccp -div-rem-pairs -coro-elide -loop-guard-widening -loop-predication -sroa -nary-reassociate -loop-instsimplify -separate-const-offset-from-gep -name-anon-globals -flattencfg -partially-inline-libcalls -licm -lcssa -lower-constant-intrinsics -instsimplify -inline -coro-split -indvars -deadargelim -mldst-motion -loop-data-prefetch -loop-simplifycfg -pgo-memop-opt -coro-cleanup -loop-idiom -mergeicmps -name-anon-globals -gvn -rewrite-statepoints-for-gc -ipconstprop -always-inline -libcalls-shrinkwrap -lowerinvoke -name-anon-globals -dse -loop-unroll -loop-guard-widening -loop-vectorize -strip-debug-declare -strip-debug-declare -die -die -loop-fusion -lower-widenable-condition -attributor -coro-elide -libcalls-shrinkwrap -loop-predication -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -correlated-propagation -globaldce -loop-data-prefetch -redundant-dbg-inst-elim -instsimplify -inject-tli-mappings -slsr -correlated-propagation -ipsccp -strip-dead-prototypes -slsr -inject-tli-mappings -sroa -loweratomic -adce -constprop -simple-loop-unswitch -inferattrs -constprop -rpo-functionattrs -loop-data-prefetch -lower-guard-intrinsic -mergereturn -scalarizer -reassociate -simplifycfg -add-discriminators -insert-gcov-profiling -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0027932960893857,61.99663496017456,opt -sink -globalopt -gvn-hoist -hotcoldsplit -sroa -add-discriminators -forceattrs -redundant-dbg-inst-elim -flattencfg -forceattrs -loop-idiom -loop-reduce -speculative-execution -memcpyopt -sccp -sancov -ipsccp -sancov -loop-load-elim -loop-fusion -coro-cleanup -strip-dead-prototypes -sink -coro-elide -loop-predication -loop-predication -constmerge -mergeicmps -constmerge -ipconstprop -libcalls-shrinkwrap -canonicalize-aliases -loweratomic -prune-eh -memcpyopt -loop-vectorize -adce -strip-debug-declare -argpromotion -lower-widenable-condition -lowerswitch -called-value-propagation -loop-instsimplify -libcalls-shrinkwrap -post-inline-ee-instrument -mldst-motion -instsimplify -sccp -flattencfg -mergeicmps -tailcallelim -simplifycfg -inline -name-anon-globals -instnamer -scalarizer -dce -insert-gcov-profiling -nary-reassociate -sccp -mergereturn -globaldce -coro-split -nary-reassociate -add-discriminators -inferattrs -div-rem-pairs -break-crit-edges -strip-nondebug -licm -simple-loop-unswitch -ipconstprop -slp-vectorizer -gvn-hoist -partial-inliner -adce -float2int -strip-debug-declare -speculative-execution -alignment-from-assumptions -flattencfg -rewrite-statepoints-for-gc -loop-unroll -callsite-splitting -constprop -mem2reg -partial-inliner -called-value-propagation -post-inline-ee-instrument -redundant-dbg-inst-elim -instcombine -memcpyopt -prune-eh -newgvn -constmerge -add-discriminators -libcalls-shrinkwrap -strip-nondebug -deadargelim -callsite-splitting -irce -gvn -loweratomic -lowerinvoke -slsr -globalopt -coro-split -loop-guard-widening -irce -argpromotion -break-crit-edges -coro-elide -mergefunc -loweratomic -jump-threading -consthoist -loop-versioning -ee-instrument -sccp -loop-vectorize -instnamer -guard-widening -loop-deletion -loop-instsimplify -div-rem-pairs -inject-tli-mappings -newgvn -loop-sink -licm -loop-unroll-and-jam -loop-unroll -lower-widenable-condition -correlated-propagation -nary-reassociate -nary-reassociate -aggressive-instcombine -ee-instrument -aggressive-instcombine -loop-sink -prune-eh -loweratomic -loop-versioning -early-cse-memssa -inferattrs -sccp -loweratomic -loop-fusion -memcpyopt -globalopt -die -inferattrs -partial-inliner -globaldce -loop-load-elim -mergereturn -mergeicmps -slp-vectorizer -strip-debug-declare -elim-avail-extern -partial-inliner -bdce -loweratomic -dce -constprop -load-store-vectorizer -insert-gcov-profiling -jump-threading -die -consthoist -lowerinvoke -indvars -loop-unroll-and-jam -loop-predication -simple-loop-unswitch -globalopt -lowerswitch -jump-threading -coro-early -cross-dso-cfi -inline -irce -loop-versioning -aggressive-instcombine -libcalls-shrinkwrap -lowerinvoke -pgo-memop-opt -instcombine input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.005586592178771,61.88795065879822,opt -name-anon-globals -infer-address-spaces -lower-guard-intrinsic -reassociate -constmerge -separate-const-offset-from-gep -strip-debug-declare -coro-cleanup -loop-unroll-and-jam -add-discriminators -globaldce -barrier -name-anon-globals -reg2mem -infer-address-spaces -loop-versioning-licm -sancov -slsr -loop-unroll -loop-distribute -adce -argpromotion -lcssa -break-crit-edges -instnamer -coro-early -barrier -callsite-splitting -functionattrs -redundant-dbg-inst-elim -loop-idiom -loop-guard-widening -flattencfg -mem2reg -consthoist -called-value-propagation -mergeicmps -lower-matrix-intrinsics -indvars -lower-expect -simplifycfg -name-anon-globals -redundant-dbg-inst-elim -strip-debug-declare -inject-tli-mappings -indvars -separate-const-offset-from-gep -loop-interchange -infer-address-spaces -strip-nondebug -rewrite-statepoints-for-gc -loop-unswitch -separate-const-offset-from-gep -strip-nondebug -libcalls-shrinkwrap -deadargelim -gvn-hoist -barrier -barrier -guard-widening -loop-versioning-licm -lowerinvoke -argpromotion -mem2reg -instcombine -strip-dead-prototypes -loop-idiom -globalopt -attributor -aggressive-instcombine -bdce -consthoist -partially-inline-libcalls -loop-data-prefetch -mem2reg -loop-reduce -loop-versioning-licm -instcombine -slsr -lower-expect -inline -loop-load-elim -simple-loop-unswitch -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.005586592178771,61.90937900543213,opt -instcombine -loop-fusion -ipsccp -slsr -functionattrs -aggressive-instcombine -tailcallelim -nary-reassociate -guard-widening -loop-interchange -die -aggressive-instcombine -lower-widenable-condition -ee-instrument -dse -rpo-functionattrs -jump-threading -loop-simplify -canonicalize-aliases -alignment-from-assumptions -alignment-from-assumptions -constprop -libcalls-shrinkwrap -irce -load-store-vectorizer -separate-const-offset-from-gep -ee-instrument -loop-reduce -post-inline-ee-instrument -lower-widenable-condition -loop-deletion -licm -post-inline-ee-instrument -scalarizer -globalsplit -mergereturn -mem2reg -loop-sink -dce -licm -memcpyopt -load-store-vectorizer -barrier -called-value-propagation -memcpyopt -mergereturn -early-cse-memssa -mldst-motion -lower-guard-intrinsic -loop-load-elim -ee-instrument -load-store-vectorizer -loop-distribute -ipconstprop -deadargelim -gvn-hoist -inject-tli-mappings -deadargelim -mergeicmps -newgvn -loop-predication -loop-unroll-and-jam -guard-widening -ipconstprop -loop-reroll -loop-simplify -lower-constant-intrinsics -break-crit-edges -speculative-execution -break-crit-edges -loop-idiom -lower-expect -lowerswitch -scalarizer -ipconstprop -aggressive-instcombine -mldst-motion -mergefunc -ee-instrument -loop-reduce -always-inline -inferattrs -loop-instsimplify -barrier -tailcallelim -loop-guard-widening -gvn-hoist -ee-instrument -lcssa -tailcallelim -simplifycfg -irce -loop-predication -slsr -indvars -loweratomic -slsr -mergereturn -ipconstprop -sink -mem2reg -loop-load-elim -cross-dso-cfi -inferattrs -dse -loop-simplifycfg -loop-instsimplify -dse -inline -newgvn -lcssa -loop-unroll -loop-simplify -loop-data-prefetch -loop-unroll-and-jam -guard-widening -insert-gcov-profiling -licm -canonicalize-aliases -sancov -instsimplify -lower-matrix-intrinsics -name-anon-globals -newgvn -rpo-functionattrs -licm -coro-split -redundant-dbg-inst-elim -instnamer -loop-interchange -loop-interchange -lower-constant-intrinsics -loop-predication -loop-versioning-licm -gvn -alignment-from-assumptions -instcombine -name-anon-globals -insert-gcov-profiling -lowerswitch -forceattrs -lower-constant-intrinsics -speculative-execution -bdce -sroa -mergeicmps -tailcallelim -coro-elide -coro-elide -simplifycfg -mldst-motion -break-crit-edges -gvn-hoist -tailcallelim -loop-predication -lower-expect -loop-fusion -globaldce -irce -coro-early -pgo-memop-opt -simple-loop-unswitch -loop-unswitch -instnamer -loop-unroll-and-jam -bdce -loop-interchange -lower-constant-intrinsics -loop-simplifycfg -forceattrs -globalopt -globaldce -memcpyopt -loop-sink -sancov -loop-sink -loop-idiom -gvn -newgvn -tailcallelim -argpromotion -redundant-dbg-inst-elim -loop-distribute -inject-tli-mappings -jump-threading input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.005586592178771,62.016544580459595,opt -mem2reg -newgvn -loop-unroll -ipconstprop -adce -strip-dead-prototypes -loop-deletion -inferattrs -strip-dead-prototypes -speculative-execution -reg2mem -forceattrs -aggressive-instcombine -mldst-motion -lower-expect -loop-versioning-licm -lower-matrix-intrinsics -pgo-memop-opt -loop-predication -irce -loop-interchange -loop-deletion -loop-distribute -coro-early -post-inline-ee-instrument -partial-inliner -forceattrs -loop-unswitch -loop-reduce -coro-elide -loop-idiom -correlated-propagation -post-inline-ee-instrument -slsr -loop-unroll -strip-nondebug -loop-deletion -lower-matrix-intrinsics -loop-versioning -alignment-from-assumptions -inject-tli-mappings -inject-tli-mappings -alignment-from-assumptions -lower-constant-intrinsics -rewrite-statepoints-for-gc -nary-reassociate -instnamer -flattencfg -hotcoldsplit -lower-expect -slp-vectorizer -always-inline -pgo-memop-opt -loop-sink -loop-sink -loop-load-elim -loop-reroll -insert-gcov-profiling -elim-avail-extern -memcpyopt -sroa -constmerge -instsimplify -reassociate -strip-nondebug -lcssa -globalsplit -ipconstprop -inject-tli-mappings -constprop -prune-eh -loop-vectorize -coro-early -ipconstprop -hotcoldsplit -strip-nondebug -lowerswitch -die -lower-matrix-intrinsics -aggressive-instcombine -lowerswitch -loop-simplifycfg -prune-eh -slp-vectorizer -called-value-propagation -correlated-propagation -rpo-functionattrs -functionattrs -loop-deletion -slsr -ee-instrument -loop-simplifycfg -early-cse-memssa -slsr -loop-unroll -simplifycfg -guard-widening -ee-instrument -slp-vectorizer -irce -strip -instsimplify -loop-interchange -load-store-vectorizer -ipsccp -globaldce -loop-predication -separate-const-offset-from-gep -gvn -loop-simplifycfg -loop-predication -mldst-motion -strip -early-cse-memssa -lower-widenable-condition -loop-predication -sink -instcombine -consthoist -instnamer -loop-interchange -loop-unswitch -loop-fusion -scalarizer -mldst-motion -coro-split -loop-data-prefetch -loweratomic -loop-unroll -sroa -loop-predication -alignment-from-assumptions -mergefunc -separate-const-offset-from-gep -simple-loop-unswitch -gvn -dce -consthoist -lowerswitch -reassociate -loop-instsimplify -partially-inline-libcalls -loop-reduce -barrier -lower-matrix-intrinsics -sink -sccp -tailcallelim -aggressive-instcombine -newgvn -slsr -redundant-dbg-inst-elim -lower-widenable-condition -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0055865921787712,61.891133546829224,opt -callsite-splitting -loop-unswitch -loop-interchange -gvn-hoist -deadargelim -mergefunc -barrier -attributor -loop-data-prefetch -inline -hotcoldsplit -sroa -callsite-splitting -jump-threading -separate-const-offset-from-gep -loop-simplifycfg -callsite-splitting -loop-instsimplify -lcssa -dse -barrier -loop-data-prefetch -lower-expect -lowerinvoke -name-anon-globals -rewrite-statepoints-for-gc -name-anon-globals -loop-simplifycfg -forceattrs -mergefunc -pgo-memop-opt -sccp -loop-unroll-and-jam -lower-expect -lowerinvoke -reassociate -loop-predication -gvn-hoist -loop-reroll -break-crit-edges -nary-reassociate -jump-threading -slsr -simplifycfg -globaldce -globalopt -loop-vectorize -forceattrs -loop-versioning -reassociate -loop-data-prefetch -loop-vectorize -prune-eh -lower-widenable-condition -coro-split -sancov -loop-versioning-licm -instsimplify -alignment-from-assumptions -lower-guard-intrinsic -constprop -sroa -elim-avail-extern -constmerge -elim-avail-extern -break-crit-edges -coro-cleanup -sroa -coro-early -sccp -load-store-vectorizer -add-discriminators -instcombine -name-anon-globals -scalarizer -loop-sink -bdce -insert-gcov-profiling -loop-vectorize -loop-deletion -post-inline-ee-instrument -loop-predication -infer-address-spaces -libcalls-shrinkwrap -prune-eh -dce -die -slp-vectorizer -loop-interchange -instcombine -always-inline -partial-inliner -loop-unroll -correlated-propagation -inject-tli-mappings -consthoist -lcssa -redundant-dbg-inst-elim -mergeicmps -insert-gcov-profiling -constprop -constprop -lower-widenable-condition -barrier -globalsplit -globalopt -canonicalize-aliases -float2int -loop-unroll -float2int -adce -dse -lowerinvoke -partial-inliner -inline -sink -redundant-dbg-inst-elim -die -loop-unswitch -div-rem-pairs -die -gvn-hoist -redundant-dbg-inst-elim -globaldce -lower-widenable-condition -newgvn -globaldce -lowerswitch -lower-expect -post-inline-ee-instrument -canonicalize-aliases -gvn-hoist -loop-idiom -lowerinvoke -div-rem-pairs -canonicalize-aliases -alignment-from-assumptions -elim-avail-extern -canonicalize-aliases -called-value-propagation -simplifycfg -rpo-functionattrs -lower-guard-intrinsic -loop-distribute -adce -nary-reassociate -loop-vectorize -separate-const-offset-from-gep -loop-versioning-licm -loop-simplifycfg -newgvn -name-anon-globals -strip-dead-prototypes -constprop -dse -cross-dso-cfi -lowerinvoke -deadargelim -loop-versioning -prune-eh -loop-guard-widening -separate-const-offset-from-gep -loop-predication -simple-loop-unswitch -rewrite-statepoints-for-gc -alignment-from-assumptions -sink -loop-versioning -loop-simplifycfg -licm -float2int -ee-instrument -inferattrs -elim-avail-extern -coro-elide -redundant-dbg-inst-elim -loop-reroll -instnamer -correlated-propagation -instcombine input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0055865921787712,61.928428411483765,opt -instsimplify -functionattrs -loop-unswitch -loop-simplifycfg -name-anon-globals -name-anon-globals -barrier -loop-distribute -sroa -loop-unswitch -insert-gcov-profiling -loop-unroll-and-jam -insert-gcov-profiling -callsite-splitting -rpo-functionattrs -called-value-propagation -instsimplify -memcpyopt -dce -globaldce -loop-deletion -loop-guard-widening -simple-loop-unswitch -die -instsimplify -alignment-from-assumptions -argpromotion -ipsccp -callsite-splitting -slsr -add-discriminators -lower-expect -loweratomic -memcpyopt -strip-nondebug -ee-instrument -newgvn -strip -constmerge -loop-load-elim -lower-guard-intrinsic -redundant-dbg-inst-elim -consthoist -partially-inline-libcalls -instnamer -reassociate -sancov -inline -alignment-from-assumptions -cross-dso-cfi -bdce -globalsplit -deadargelim -libcalls-shrinkwrap -strip-nondebug -speculative-execution -pgo-memop-opt -nary-reassociate -partial-inliner -loop-versioning-licm -memcpyopt -globalopt -loop-reroll -mem2reg -lcssa -instnamer -coro-elide -rpo-functionattrs -memcpyopt -alignment-from-assumptions -jump-threading -constprop -dce -sroa -lowerinvoke -always-inline -slp-vectorizer -strip -loop-sink -mergefunc -constmerge -consthoist -mergefunc -break-crit-edges -functionattrs -loop-guard-widening -loop-fusion -attributor -jump-threading -partially-inline-libcalls -mergeicmps -prune-eh -reassociate -loop-guard-widening -adce -simplifycfg -tailcallelim -flattencfg -called-value-propagation -forceattrs -memcpyopt -jump-threading -aggressive-instcombine -mldst-motion -hotcoldsplit -forceattrs -constmerge -libcalls-shrinkwrap -flattencfg -break-crit-edges -loop-unroll -sroa -loop-predication -ipsccp -loop-reroll -infer-address-spaces -slp-vectorizer -called-value-propagation -loop-simplifycfg -scalarizer -inline -loop-deletion -reg2mem -loop-instsimplify -sroa -redundant-dbg-inst-elim -early-cse-memssa -inline -prune-eh -scalarizer -simplifycfg -loop-versioning -bdce -correlated-propagation -alignment-from-assumptions -irce -elim-avail-extern -prune-eh -alignment-from-assumptions -nary-reassociate -inline -barrier -loop-instsimplify -strip-nondebug -loop-versioning-licm -rewrite-statepoints-for-gc -gvn -loop-deletion -lower-guard-intrinsic -early-cse-memssa -loop-interchange -loop-unswitch -elim-avail-extern -simplifycfg -loop-reroll -loop-reroll -loop-simplify -slsr -add-discriminators -loop-versioning-licm -instcombine -sink -ipsccp -mergeicmps -mergeicmps -barrier -always-inline -break-crit-edges -sink -lower-guard-intrinsic -prune-eh -loop-unroll -deadargelim -insert-gcov-profiling -globaldce -early-cse-memssa -tailcallelim -dce -loop-fusion -loop-simplify -reg2mem -globalsplit -loop-data-prefetch -loop-vectorize -jump-threading -rewrite-statepoints-for-gc -loop-idiom -prune-eh -loop-unroll -loop-simplifycfg -early-cse-memssa -gvn-hoist -loop-unroll-and-jam -loop-simplify -slp-vectorizer -lowerinvoke -partial-inliner -gvn-hoist -float2int -strip-debug-declare -load-store-vectorizer -sroa -break-crit-edges -rewrite-statepoints-for-gc -pgo-memop-opt -newgvn -memcpyopt -separate-const-offset-from-gep -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/adpcm,1.0055865921787712,61.9604275226593,opt -add-discriminators -indvars -speculative-execution -memcpyopt -coro-cleanup -licm -inject-tli-mappings -constmerge -slp-vectorizer -alignment-from-assumptions -barrier -deadargelim -loop-guard-widening -loop-unswitch -barrier -loop-fusion -strip -loop-unroll -loop-sink -simplifycfg -barrier -lowerinvoke -partial-inliner -loop-distribute -ee-instrument -pgo-memop-opt -coro-elide -inline -mergeicmps -strip-dead-prototypes -lcssa -globalopt -inferattrs -sroa -speculative-execution -memcpyopt -loop-unroll-and-jam -dce -ipsccp -loop-distribute -lowerinvoke -loop-interchange -correlated-propagation -inject-tli-mappings -inline -loop-data-prefetch -partial-inliner -loop-vectorize -ee-instrument -cross-dso-cfi -constprop -strip-dead-prototypes -separate-const-offset-from-gep -infer-address-spaces -div-rem-pairs -constmerge -load-store-vectorizer -called-value-propagation -rewrite-statepoints-for-gc -flattencfg -instcombine -libcalls-shrinkwrap -partially-inline-libcalls -slsr -always-inline -sancov -gvn-hoist -loop-vectorize -flattencfg -sccp -ee-instrument -callsite-splitting -licm -nary-reassociate -barrier -strip-debug-declare -deadargelim -irce -coro-cleanup -lower-matrix-intrinsics -alignment-from-assumptions -alignment-from-assumptions -loop-load-elim -dse -lowerswitch -inline -mldst-motion -coro-cleanup -always-inline -loop-reduce -loop-sink -globalopt -strip-dead-prototypes -bdce -functionattrs -jump-threading -correlated-propagation -barrier -sccp -load-store-vectorizer -loop-guard-widening -loop-reroll -lower-widenable-condition -insert-gcov-profiling -mem2reg -coro-split -loop-deletion -loop-guard-widening -coro-early -loop-reduce -speculative-execution -lower-matrix-intrinsics -correlated-propagation -reassociate -loweratomic -guard-widening -pgo-memop-opt -separate-const-offset-from-gep -argpromotion -slp-vectorizer -aggressive-instcombine -loop-interchange -attributor -speculative-execution -coro-split -tailcallelim -loop-simplifycfg -barrier -scalarizer -lower-constant-intrinsics -coro-cleanup -die -inferattrs -instsimplify -loop-simplifycfg -irce -loweratomic -slsr -gvn input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0044247787610618,61.726380825042725,opt -reassociate -lowerswitch -reg2mem -instnamer -guard-widening -loop-versioning -elim-avail-extern -indvars -rewrite-statepoints-for-gc -dse -reassociate -hotcoldsplit -dse -div-rem-pairs -loop-deletion -functionattrs -sccp -sccp -separate-const-offset-from-gep -lowerswitch -always-inline -dse -slsr -dse -name-anon-globals -strip -strip-debug-declare -indvars -post-inline-ee-instrument -sancov -load-store-vectorizer -cross-dso-cfi -correlated-propagation -post-inline-ee-instrument -newgvn -flattencfg -deadargelim -dse -flattencfg -instsimplify -sroa -adce -globaldce -constprop -indvars -nary-reassociate -lower-expect -instcombine -rpo-functionattrs -ipconstprop -dce -loop-simplifycfg -flattencfg -memcpyopt -tailcallelim -loop-distribute -loop-reduce -attributor -jump-threading -slp-vectorizer -lower-widenable-condition -early-cse-memssa -ee-instrument -loop-deletion -lcssa -add-discriminators -globalsplit -strip-dead-prototypes -die -mem2reg -simple-loop-unswitch -gvn-hoist -aggressive-instcombine -loop-instsimplify -guard-widening -inline -strip-dead-prototypes -loweratomic -partially-inline-libcalls -instsimplify -lower-expect -mem2reg -slsr -correlated-propagation -loop-versioning-licm -name-anon-globals -div-rem-pairs -mergefunc -gvn -loop-interchange -loop-unroll-and-jam -separate-const-offset-from-gep -loop-simplify -lower-guard-intrinsic -rewrite-statepoints-for-gc -libcalls-shrinkwrap -instcombine -forceattrs -newgvn -constprop -strip-nondebug -early-cse-memssa -loop-vectorize -dce -insert-gcov-profiling -always-inline -gvn -loop-guard-widening -loop-load-elim -loop-vectorize -instsimplify -ipsccp -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0066371681415929,61.671980142593384,opt -insert-gcov-profiling -gvn-hoist -callsite-splitting -partially-inline-libcalls -loop-idiom -ipconstprop -loop-load-elim -memcpyopt -partially-inline-libcalls -ee-instrument -argpromotion -reassociate -loop-unroll-and-jam -loop-instsimplify -loop-simplify -forceattrs -ipsccp -elim-avail-extern -dse -jump-threading -ipsccp -ipsccp -irce -lower-expect -argpromotion -irce -insert-gcov-profiling -die -sroa -newgvn -loop-versioning-licm -correlated-propagation -loop-deletion -early-cse-memssa -loop-data-prefetch -loop-unroll-and-jam -strip-nondebug -newgvn -lcssa -constprop -strip-dead-prototypes -lower-guard-intrinsic -always-inline -rpo-functionattrs -dse -loop-vectorize -name-anon-globals -slp-vectorizer -sink -globaldce -loop-versioning -flattencfg -sccp -nary-reassociate -loop-instsimplify -sccp -called-value-propagation -libcalls-shrinkwrap -gvn-hoist -nary-reassociate -loop-sink -dce -called-value-propagation -speculative-execution -globalopt -mergereturn -early-cse-memssa -pgo-memop-opt -hotcoldsplit -mldst-motion -constmerge -name-anon-globals -rewrite-statepoints-for-gc -loop-unroll -lowerinvoke -mldst-motion -rpo-functionattrs -correlated-propagation -irce -lower-expect -early-cse-memssa -rpo-functionattrs -instcombine -dce -argpromotion -sancov -attributor -ipconstprop -partial-inliner -mergefunc -add-discriminators -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0066371681415929,61.696775674819946,opt -lowerswitch -early-cse-memssa -lower-widenable-condition -lower-widenable-condition -aggressive-instcombine -div-rem-pairs -globalopt -loop-reduce -loop-idiom -bdce -float2int -elim-avail-extern -called-value-propagation -tailcallelim -inline -globalopt -bdce -loop-simplify -speculative-execution -redundant-dbg-inst-elim -lowerswitch -strip -loop-unroll-and-jam -globalopt -instcombine -constprop -strip-nondebug -argpromotion -indvars -ipconstprop -ipsccp -loop-reduce -globalsplit -libcalls-shrinkwrap -strip-dead-prototypes -loop-distribute -canonicalize-aliases -nary-reassociate -sroa -nary-reassociate -newgvn -sink -memcpyopt -loop-interchange -coro-elide -memcpyopt -attributor -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0088495575221237,61.81148862838745,opt -partially-inline-libcalls -rpo-functionattrs -mergereturn -rpo-functionattrs -globaldce -name-anon-globals -slp-vectorizer -partially-inline-libcalls -reassociate -lower-expect -dse -break-crit-edges -loop-simplify -inject-tli-mappings -loop-simplify -strip-nondebug -lower-widenable-condition -constprop -globalopt -indvars -lcssa -loop-versioning-licm -globalsplit -strip-nondebug -loop-fusion -strip-nondebug -rpo-functionattrs -loop-versioning -loop-simplify -reg2mem -break-crit-edges -dce -attributor -loop-versioning-licm -strip-debug-declare -instsimplify -rewrite-statepoints-for-gc -constmerge -slp-vectorizer -loop-distribute -aggressive-instcombine -strip-nondebug -strip-debug-declare -partial-inliner -mergeicmps -lower-expect -rewrite-statepoints-for-gc -simplifycfg -mergeicmps -flattencfg -redundant-dbg-inst-elim -adce -loop-guard-widening -early-cse-memssa -sroa -loop-deletion -loop-simplify -gvn-hoist -lower-guard-intrinsic -loop-reroll -loop-fusion -constmerge -coro-early -pgo-memop-opt -instcombine -coro-cleanup -coro-split -pgo-memop-opt -tailcallelim -prune-eh -lower-constant-intrinsics -instnamer -loop-reroll -jump-threading -tailcallelim -alignment-from-assumptions -partially-inline-libcalls -coro-split -lcssa -strip-nondebug -deadargelim -adce -alignment-from-assumptions -slp-vectorizer -globalopt -always-inline -elim-avail-extern -gvn -simplifycfg -name-anon-globals -jump-threading -loop-sink -lower-expect -loop-versioning -pgo-memop-opt -irce -flattencfg -argpromotion -post-inline-ee-instrument -loop-fusion -loop-simplify -simplifycfg -sink -die -nary-reassociate -lower-matrix-intrinsics -sroa -partially-inline-libcalls -functionattrs -newgvn input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.008849557522124,61.73530960083008,opt -sccp -licm -reg2mem -coro-split -simplifycfg -loop-unroll -dse -lowerswitch -elim-avail-extern -globalopt -post-inline-ee-instrument -simplifycfg -argpromotion -slsr -forceattrs -constmerge -guard-widening -loop-data-prefetch -loop-instsimplify -simplifycfg -nary-reassociate -speculative-execution -always-inline -speculative-execution -inject-tli-mappings -sancov -simplifycfg -consthoist -rpo-functionattrs -callsite-splitting -lower-guard-intrinsic -loop-sink -coro-split -constmerge -loop-interchange -guard-widening -lcssa -loop-interchange -simplifycfg -strip-nondebug -loop-predication -deadargelim -newgvn -add-discriminators -attributor -loop-guard-widening -coro-cleanup -inferattrs -globalopt -partial-inliner -coro-cleanup -alignment-from-assumptions -insert-gcov-profiling -strip -simplifycfg -loop-guard-widening -loop-instsimplify -name-anon-globals -deadargelim -lcssa -mergeicmps -hotcoldsplit -mem2reg -forceattrs -rewrite-statepoints-for-gc -indvars -infer-address-spaces -callsite-splitting -sccp -called-value-propagation -globaldce -coro-cleanup -dse -elim-avail-extern -name-anon-globals -lower-matrix-intrinsics -inject-tli-mappings -flattencfg -attributor -hotcoldsplit -guard-widening -strip-nondebug -coro-split -cross-dso-cfi -loop-versioning-licm -loop-simplifycfg -sink -float2int -loop-sink -loop-unroll-and-jam -insert-gcov-profiling -licm -reg2mem -loop-deletion -gvn-hoist -sancov -loop-vectorize -strip-dead-prototypes -post-inline-ee-instrument -simplifycfg -loop-unroll-and-jam -lower-guard-intrinsic -licm -callsite-splitting -partial-inliner -bdce -instsimplify -loop-deletion -correlated-propagation -lowerswitch -mem2reg -post-inline-ee-instrument -inject-tli-mappings -loop-idiom -loop-unroll-and-jam -reg2mem -lowerinvoke -barrier -break-crit-edges -scalarizer -slp-vectorizer -callsite-splitting -memcpyopt -loop-unroll-and-jam -forceattrs -guard-widening -globalsplit -globalsplit -loop-simplify -guard-widening -gvn-hoist -instsimplify -insert-gcov-profiling -loop-fusion -loop-data-prefetch -inject-tli-mappings -loop-fusion -loop-versioning -rewrite-statepoints-for-gc -loop-interchange -aggressive-instcombine -strip-nondebug -correlated-propagation -mem2reg -reassociate -name-anon-globals -sancov -add-discriminators -slp-vectorizer -libcalls-shrinkwrap -instcombine -prune-eh -loop-data-prefetch -consthoist -mergereturn -barrier -mergeicmps -name-anon-globals -jump-threading -sroa -instnamer -loop-predication -lowerswitch -mergefunc -separate-const-offset-from-gep -constprop -loop-guard-widening -barrier -gvn-hoist -loop-idiom -loop-data-prefetch -aggressive-instcombine -elim-avail-extern -insert-gcov-profiling -coro-split -slsr -name-anon-globals -constmerge -lower-matrix-intrinsics -instsimplify -slsr -sink -inferattrs -rpo-functionattrs -instcombine -post-inline-ee-instrument -loop-idiom -loop-reroll -mergeicmps -loop-vectorize -forceattrs -float2int -loop-data-prefetch -instcombine -speculative-execution -pgo-memop-opt -globaldce -always-inline -functionattrs -loop-fusion -partial-inliner -ipsccp -dce -called-value-propagation -deadargelim -slsr -jump-threading -lower-expect -instnamer -lowerswitch -loop-fusion -adce -forceattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.008849557522124,61.8548686504364,opt -lower-widenable-condition -flattencfg -strip-nondebug -loop-distribute -lowerswitch -rewrite-statepoints-for-gc -loop-load-elim -loop-predication -inject-tli-mappings -partial-inliner -div-rem-pairs -constmerge -coro-early -insert-gcov-profiling -name-anon-globals -callsite-splitting -gvn-hoist -lowerinvoke -early-cse-memssa -jump-threading -strip-dead-prototypes -mergereturn -adce -attributor -consthoist -coro-elide -coro-elide -loop-distribute -memcpyopt -strip-dead-prototypes -constmerge -name-anon-globals -callsite-splitting -always-inline -canonicalize-aliases -loop-sink -dse -adce -mergeicmps -loop-predication -lower-expect -loop-data-prefetch -break-crit-edges -barrier -libcalls-shrinkwrap -consthoist -loop-idiom -forceattrs -inline -adce -coro-elide -mergeicmps -aggressive-instcombine -lowerswitch -early-cse-memssa -inferattrs -simplifycfg -float2int -mergeicmps -early-cse-memssa -coro-early -constmerge -lower-constant-intrinsics -aggressive-instcombine -separate-const-offset-from-gep -strip-dead-prototypes -lower-constant-intrinsics -jump-threading -memcpyopt -strip-nondebug -loop-reduce -loop-deletion -mergeicmps -mldst-motion -sroa -strip-nondebug -pgo-memop-opt -indvars -lower-guard-intrinsic -canonicalize-aliases -constprop -rewrite-statepoints-for-gc -irce -indvars -licm -pgo-memop-opt -separate-const-offset-from-gep -rewrite-statepoints-for-gc -instcombine -coro-early -cross-dso-cfi -div-rem-pairs -loop-vectorize -instcombine -die -attributor -loop-unroll-and-jam -always-inline -jump-threading -licm -loop-simplify -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.008849557522124,61.99087977409363,opt -constmerge -die -licm -pgo-memop-opt -loop-distribute -scalarizer -infer-address-spaces -libcalls-shrinkwrap -alignment-from-assumptions -callsite-splitting -post-inline-ee-instrument -newgvn -globalsplit -barrier -reassociate -elim-avail-extern -ipconstprop -licm -prune-eh -globaldce -partial-inliner -deadargelim -constmerge -functionattrs -inferattrs -coro-early -loop-simplify -irce -indvars -strip-dead-prototypes -mldst-motion -float2int -aggressive-instcombine -called-value-propagation -argpromotion -loop-predication -coro-early -redundant-dbg-inst-elim -loop-unroll -loop-instsimplify -sink -hotcoldsplit -bdce -canonicalize-aliases -insert-gcov-profiling -coro-cleanup -globaldce -guard-widening -callsite-splitting -slsr -loop-unroll-and-jam -loop-predication -constprop -loop-predication -loop-versioning -deadargelim -slsr -loop-simplifycfg -guard-widening -guard-widening -jump-threading -loop-deletion -slp-vectorizer -ee-instrument -speculative-execution -loop-versioning -mergeicmps -coro-split -consthoist -coro-early -functionattrs -lower-expect -loop-simplifycfg -sroa -loop-load-elim -speculative-execution -instcombine -bdce -redundant-dbg-inst-elim -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0110619469026547,61.65555500984192,opt -early-cse-memssa -coro-early -elim-avail-extern -rpo-functionattrs -coro-early -separate-const-offset-from-gep -globalopt -loop-reroll -mergeicmps -globalopt -loop-predication -loop-interchange -mem2reg -strip-debug-declare -simple-loop-unswitch -mergeicmps -early-cse-memssa -ipsccp -jump-threading -nary-reassociate -canonicalize-aliases -insert-gcov-profiling -instsimplify -callsite-splitting -loop-idiom -strip -loop-deletion -strip-debug-declare -aggressive-instcombine -bdce -float2int -inject-tli-mappings -alignment-from-assumptions -redundant-dbg-inst-elim -pgo-memop-opt -separate-const-offset-from-gep -rewrite-statepoints-for-gc -guard-widening -indvars -insert-gcov-profiling -jump-threading -mergereturn -dse -globaldce -loop-unroll -canonicalize-aliases -gvn -rpo-functionattrs -loop-fusion -partially-inline-libcalls -partial-inliner -lower-guard-intrinsic -tailcallelim -loop-versioning -insert-gcov-profiling -attributor -coro-elide -name-anon-globals -mergefunc -pgo-memop-opt -adce -speculative-execution -instnamer -canonicalize-aliases -loop-deletion -instcombine -canonicalize-aliases -strip-dead-prototypes -lowerswitch -redundant-dbg-inst-elim -loop-fusion -dse -coro-split -tailcallelim -slsr -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.011061946902655,61.76593828201294,opt -inline -partial-inliner -memcpyopt -strip-dead-prototypes -lowerinvoke -correlated-propagation -lcssa -memcpyopt -globalopt -sink -simplifycfg -sancov -globalsplit -callsite-splitting -loop-reduce -deadargelim -sink -constmerge -break-crit-edges -lower-matrix-intrinsics -cross-dso-cfi -adce -sroa -deadargelim -consthoist -tailcallelim -mergeicmps -slp-vectorizer -loop-guard-widening -lower-guard-intrinsic -instcombine -loop-unroll -dse -coro-elide -globaldce -globalopt -correlated-propagation -memcpyopt -globaldce -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bitcount,1.0176991150442478,61.881062746047974,opt -loop-simplifycfg -strip-debug-declare -cross-dso-cfi -mem2reg -loop-guard-widening -canonicalize-aliases -loop-data-prefetch -loop-interchange -inferattrs -ipconstprop -loop-versioning-licm -loop-unswitch -lower-constant-intrinsics -simplifycfg -bdce -loop-reduce -partially-inline-libcalls -mem2reg -jump-threading -lcssa -loop-interchange -scalarizer -coro-split -alignment-from-assumptions -mergereturn -loop-unswitch -correlated-propagation -loop-vectorize -memcpyopt -mem2reg -post-inline-ee-instrument -coro-elide -mldst-motion -loop-unroll -prune-eh -tailcallelim -loop-simplify -argpromotion -indvars -scalarizer -sancov -partially-inline-libcalls -post-inline-ee-instrument -callsite-splitting -instcombine -deadargelim -ipsccp -loop-fusion -inline -bdce -libcalls-shrinkwrap -rewrite-statepoints-for-gc -partial-inliner -slsr -coro-early -barrier -jump-threading -mergefunc -partially-inline-libcalls -loop-idiom -adce -loop-predication -memcpyopt -correlated-propagation -early-cse-memssa -functionattrs -coro-elide -globaldce -rewrite-statepoints-for-gc -lower-constant-intrinsics -nary-reassociate -strip-debug-declare -callsite-splitting -instcombine -insert-gcov-profiling -globaldce -licm -loop-instsimplify -ipsccp -canonicalize-aliases -loop-reduce -instnamer -loop-simplify -instcombine -indvars -aggressive-instcombine -float2int -mem2reg -aggressive-instcombine -strip-debug-declare -attributor -irce -strip-debug-declare -loop-load-elim -loop-deletion -mldst-motion -lower-expect -strip-nondebug -simple-loop-unswitch -libcalls-shrinkwrap -loop-interchange -sancov -globalopt -sroa -lower-constant-intrinsics -globalopt -libcalls-shrinkwrap -globalopt -cross-dso-cfi -instcombine -sancov -instcombine -lower-matrix-intrinsics -loop-unroll -lowerinvoke -loop-simplify -aggressive-instcombine -nary-reassociate -ipsccp -loop-predication -partially-inline-libcalls -memcpyopt -loop-predication -post-inline-ee-instrument -loop-unswitch -consthoist -ipsccp -consthoist -coro-early -aggressive-instcombine -loop-deletion -licm -nary-reassociate -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0549618320610687,61.924893379211426,opt -loop-simplify -rewrite-statepoints-for-gc -coro-early -jump-threading -break-crit-edges -ipconstprop -globalopt -simple-loop-unswitch -prune-eh -mem2reg -barrier -loop-versioning-licm -rpo-functionattrs -loop-simplifycfg -newgvn -adce -mergeicmps -tailcallelim -redundant-dbg-inst-elim -post-inline-ee-instrument -constmerge -flattencfg -partially-inline-libcalls -attributor -lower-widenable-condition -loop-predication -nary-reassociate -loop-unroll -rpo-functionattrs -simple-loop-unswitch -callsite-splitting -constmerge -instcombine -newgvn -lower-constant-intrinsics -loop-sink -lower-guard-intrinsic -loop-sink -lower-expect -div-rem-pairs -loop-instsimplify -loop-reroll -post-inline-ee-instrument -flattencfg -loop-unroll-and-jam -break-crit-edges -consthoist -strip-dead-prototypes -name-anon-globals -sroa -elim-avail-extern -loop-data-prefetch -loop-vectorize -pgo-memop-opt -indvars -inline -insert-gcov-profiling -strip-nondebug -infer-address-spaces -loop-predication -partial-inliner -loop-predication -redundant-dbg-inst-elim -loop-reroll -coro-early -irce -strip -lower-expect -lower-constant-intrinsics -loop-interchange -speculative-execution -nary-reassociate -add-discriminators -load-store-vectorizer -loop-guard-widening -instnamer -callsite-splitting -name-anon-globals -loop-data-prefetch -coro-split -loop-load-elim -loop-reroll -post-inline-ee-instrument -attributor -always-inline -barrier -gvn-hoist -nary-reassociate -attributor -aggressive-instcombine -slp-vectorizer -mergefunc -libcalls-shrinkwrap -aggressive-instcombine -instcombine -lower-expect -add-discriminators -load-store-vectorizer -argpromotion -loop-unswitch -simple-loop-unswitch -loop-simplifycfg -canonicalize-aliases -gvn-hoist -lowerinvoke -loop-idiom -loop-predication -add-discriminators -loop-simplify -mergeicmps -indvars -coro-split -callsite-splitting -loop-simplify -libcalls-shrinkwrap -always-inline -argpromotion -div-rem-pairs -sancov -ee-instrument -loop-instsimplify -strip-nondebug -irce -load-store-vectorizer -deadargelim -reassociate -prune-eh -barrier -correlated-propagation -name-anon-globals -div-rem-pairs -redundant-dbg-inst-elim -load-store-vectorizer -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.055470737913486,61.863592863082886,opt -mldst-motion -argpromotion -libcalls-shrinkwrap -speculative-execution -lower-matrix-intrinsics -strip-dead-prototypes -redundant-dbg-inst-elim -loop-deletion -prune-eh -ipconstprop -pgo-memop-opt -simplifycfg -die -canonicalize-aliases -reassociate -scalarizer -mergeicmps -lower-guard-intrinsic -mem2reg -loop-fusion -rewrite-statepoints-for-gc -hotcoldsplit -loop-vectorize -strip-dead-prototypes -lowerinvoke -slp-vectorizer -lcssa -name-anon-globals -instnamer -guard-widening -reassociate -partial-inliner -rpo-functionattrs -barrier -inferattrs -strip -post-inline-ee-instrument -coro-early -ipconstprop -barrier -loop-reroll -instcombine -barrier -tailcallelim -ipconstprop -loop-data-prefetch -mem2reg -div-rem-pairs -lower-matrix-intrinsics -slp-vectorizer -mldst-motion -gvn-hoist -name-anon-globals -loop-fusion -dse -simple-loop-unswitch -lower-matrix-intrinsics -coro-elide -gvn -lower-widenable-condition -load-store-vectorizer -slp-vectorizer -tailcallelim -inferattrs -loop-unswitch -argpromotion -coro-early -loop-sink -reassociate -early-cse-memssa -loop-sink -add-discriminators -dse -ee-instrument -rewrite-statepoints-for-gc -strip -mergeicmps -early-cse-memssa -reassociate -loop-rotate -mergefunc -indvars -instnamer -elim-avail-extern -ipconstprop -tailcallelim -gvn-hoist -canonicalize-aliases -cross-dso-cfi -infer-address-spaces -constprop -nary-reassociate -aggressive-instcombine -mldst-motion -adce -instsimplify -sancov -loop-rotate -sancov -loop-vectorize -loop-unroll-and-jam -constmerge -partially-inline-libcalls -slsr -functionattrs -cross-dso-cfi -dse -loop-unswitch -loop-predication -separate-const-offset-from-gep -loop-rotate -coro-early -redundant-dbg-inst-elim -hotcoldsplit -simplifycfg -elim-avail-extern -lower-constant-intrinsics -lowerinvoke -argpromotion -slsr -loop-versioning-licm -redundant-dbg-inst-elim -nary-reassociate -loop-sink -lowerinvoke -ipconstprop -aggressive-instcombine -loop-reduce -post-inline-ee-instrument -indvars -add-discriminators -instcombine -indvars -instnamer -loop-interchange -loop-load-elim -globaldce -canonicalize-aliases -called-value-propagation -loop-unroll-and-jam -strip -div-rem-pairs -strip -jump-threading -hotcoldsplit -globalopt -inline -elim-avail-extern -cross-dso-cfi -early-cse-memssa -tailcallelim -coro-early -called-value-propagation -ee-instrument -instnamer -forceattrs -globaldce -adce -strip-debug-declare -mergefunc input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0569974554707382,62.10315656661987,opt -flattencfg -prune-eh -loweratomic -mem2reg -loop-distribute -instnamer -mergeicmps -argpromotion -loop-load-elim -lower-matrix-intrinsics -div-rem-pairs -loop-unroll-and-jam -instsimplify -constmerge -partial-inliner -coro-early -lower-expect -tailcallelim -globalopt -hotcoldsplit -instcombine -lower-expect -pgo-memop-opt -loop-sink -lowerswitch -guard-widening -indvars -inline -slp-vectorizer -licm -coro-elide -gvn-hoist -loop-interchange -lower-widenable-condition -loop-deletion -post-inline-ee-instrument -globalsplit -coro-elide -correlated-propagation -libcalls-shrinkwrap -coro-split -loop-deletion -load-store-vectorizer -nary-reassociate -mergereturn -float2int -float2int -dse -strip-debug-declare -loop-reroll -infer-address-spaces -die -loop-reduce -early-cse-memssa -constmerge -loop-versioning-licm -sink -div-rem-pairs -canonicalize-aliases -strip-nondebug -loop-versioning-licm -ee-instrument -loop-load-elim -forceattrs -irce -loop-idiom -lower-matrix-intrinsics -simplifycfg -cross-dso-cfi -scalarizer -lcssa -load-store-vectorizer -simplifycfg -forceattrs -lower-constant-intrinsics -loop-rotate -rewrite-statepoints-for-gc -loop-simplify -hotcoldsplit -deadargelim -guard-widening -lcssa -load-store-vectorizer -guard-widening -instnamer -licm -div-rem-pairs -slsr -newgvn -simple-loop-unswitch -gvn-hoist -elim-avail-extern -hotcoldsplit -slp-vectorizer -loop-vectorize -called-value-propagation -tailcallelim -partially-inline-libcalls -post-inline-ee-instrument -strip -post-inline-ee-instrument -aggressive-instcombine -dce -lowerinvoke -sink -loop-versioning-licm -loweratomic -ipsccp -attributor -lower-widenable-condition -lower-expect -dse -aggressive-instcombine -rewrite-statepoints-for-gc -lcssa -loop-fusion -loop-distribute -instsimplify -infer-address-spaces -lower-constant-intrinsics -canonicalize-aliases -instsimplify -flattencfg -hotcoldsplit -forceattrs -loop-data-prefetch -slp-vectorizer -dce -separate-const-offset-from-gep -globalopt -loop-versioning -reassociate -dce -elim-avail-extern -loweratomic -inferattrs -rewrite-statepoints-for-gc -lower-guard-intrinsic -lower-guard-intrinsic -constmerge -rewrite-statepoints-for-gc -pgo-memop-opt -coro-cleanup -lowerinvoke -memcpyopt -mergefunc -loop-predication -consthoist -libcalls-shrinkwrap -loop-simplify -early-cse-memssa -licm -sink -ipsccp -instcombine -rewrite-statepoints-for-gc -sink -forceattrs -loop-guard-widening -loop-sink -slsr -consthoist -partially-inline-libcalls -simple-loop-unswitch -separate-const-offset-from-gep -instnamer -loop-predication -libcalls-shrinkwrap -indvars -consthoist -nary-reassociate -ee-instrument -strip-nondebug -strip-dead-prototypes -add-discriminators -loop-sink -loop-load-elim -pgo-memop-opt -called-value-propagation -hotcoldsplit -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0620865139949112,62.0668671131134,opt -mem2reg -mergefunc -reassociate -dse -loop-sink -infer-address-spaces -libcalls-shrinkwrap -instsimplify -simple-loop-unswitch -infer-address-spaces -tailcallelim -loop-guard-widening -deadargelim -callsite-splitting -pgo-memop-opt -sink -break-crit-edges -canonicalize-aliases -loop-instsimplify -strip -loop-predication -sccp -mldst-motion -div-rem-pairs -coro-cleanup -loop-distribute -loop-idiom -gvn -globalopt -attributor -loop-unroll-and-jam -loop-interchange -early-cse-memssa -break-crit-edges -loop-deletion -loop-guard-widening -loop-unroll-and-jam -lower-guard-intrinsic -sroa -loop-instsimplify -instnamer -memcpyopt -scalarizer -simple-loop-unswitch -callsite-splitting -sancov -argpromotion -add-discriminators -bdce -attributor -loop-unroll -loop-unroll -inferattrs -coro-cleanup -strip-dead-prototypes -instsimplify -loop-idiom -loop-fusion -always-inline -loweratomic -globalopt -loweratomic -float2int -loop-idiom -insert-gcov-profiling -gvn -lower-constant-intrinsics -callsite-splitting -coro-cleanup -lower-matrix-intrinsics -attributor -globalopt -loop-reroll -name-anon-globals -loop-reduce -sroa -constmerge -loop-unswitch -redundant-dbg-inst-elim -gvn -loop-simplify -aggressive-instcombine -flattencfg -inject-tli-mappings -cross-dso-cfi -simple-loop-unswitch -instcombine -ipsccp -argpromotion -correlated-propagation -sccp -barrier -hotcoldsplit -deadargelim -lower-guard-intrinsic -flattencfg -dse -lower-constant-intrinsics -elim-avail-extern -globaldce -aggressive-instcombine -reassociate -mldst-motion -instnamer -slsr -simplifycfg -sroa -lower-expect -argpromotion -dse -insert-gcov-profiling -loop-simplify -redundant-dbg-inst-elim -canonicalize-aliases -constmerge -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -adce -pgo-memop-opt -strip -instcombine -ipconstprop -add-discriminators -aggressive-instcombine -partial-inliner -memcpyopt -canonicalize-aliases -constmerge -instnamer -loop-versioning -partially-inline-libcalls -sccp -inferattrs -gvn-hoist -loop-versioning-licm -sink -constprop -coro-elide -barrier -cross-dso-cfi -loop-idiom -speculative-execution -loop-deletion -lowerinvoke -loweratomic -gvn-hoist -coro-early -rewrite-statepoints-for-gc -loop-unswitch -loop-simplifycfg -loop-simplify -ipconstprop -mldst-motion -ipsccp -barrier -infer-address-spaces -ipsccp -sccp -alignment-from-assumptions -loop-load-elim -load-store-vectorizer -simplifycfg -loop-idiom -loop-idiom -irce -inferattrs -loop-vectorize -inject-tli-mappings -libcalls-shrinkwrap -instsimplify -loweratomic -simple-loop-unswitch -loop-reroll -separate-const-offset-from-gep -lower-guard-intrinsic -guard-widening -loop-sink -redundant-dbg-inst-elim -gvn -loop-instsimplify -mergefunc -deadargelim -hotcoldsplit -callsite-splitting -cross-dso-cfi -slp-vectorizer -licm -adce -slp-vectorizer -memcpyopt -sancov -ee-instrument -rewrite-statepoints-for-gc -rewrite-statepoints-for-gc -always-inline -loop-reroll -lcssa -jump-threading -called-value-propagation -loweratomic -lower-guard-intrinsic -lower-guard-intrinsic -lower-expect -libcalls-shrinkwrap -loop-reduce -slsr -argpromotion -loop-idiom -die -loop-reroll -dse -sancov -insert-gcov-profiling -jump-threading -loop-instsimplify -lowerinvoke -barrier -instcombine -loop-deletion -loop-unroll-and-jam -nary-reassociate -rpo-functionattrs -argpromotion -mldst-motion -partially-inline-libcalls -strip-dead-prototypes -strip-nondebug -hotcoldsplit -loop-reroll -loop-simplify -early-cse-memssa -lcssa -loop-reduce -always-inline -mergefunc -gvn -constprop -loop-distribute -gvn -coro-cleanup -loop-fusion -indvars -break-crit-edges -irce -separate-const-offset-from-gep -sccp -reg2mem -slsr -sroa -loop-deletion -barrier -die -newgvn -die -libcalls-shrinkwrap -partially-inline-libcalls -loop-simplify -loop-unroll-and-jam -called-value-propagation -newgvn -mldst-motion -jump-threading -redundant-dbg-inst-elim -newgvn -mergeicmps -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0641221374045802,62.110954999923706,opt -constmerge -name-anon-globals -cross-dso-cfi -elim-avail-extern -mergeicmps -lower-constant-intrinsics -mergeicmps -loop-versioning-licm -mem2reg -rpo-functionattrs -called-value-propagation -attributor -constmerge -instcombine -ipconstprop -loop-unroll-and-jam -coro-elide -coro-split -loop-unswitch -jump-threading -gvn -mldst-motion -loop-fusion -cross-dso-cfi -post-inline-ee-instrument -licm -indvars -early-cse-memssa -strip-debug-declare -strip -load-store-vectorizer -lower-guard-intrinsic -mergereturn -loop-deletion -slsr -indvars -ipsccp -loop-reroll -constprop -loop-predication -coro-early -bdce -loop-fusion -consthoist -globalopt -attributor -instcombine -name-anon-globals -scalarizer -newgvn -loop-data-prefetch -flattencfg -lcssa -rpo-functionattrs -instcombine -instcombine -strip-dead-prototypes -infer-address-spaces -indvars -sccp -coro-split -pgo-memop-opt -hotcoldsplit -coro-cleanup -argpromotion -simplifycfg -infer-address-spaces -irce -float2int -callsite-splitting -aggressive-instcombine -alignment-from-assumptions -mem2reg -consthoist -dse -loop-predication -load-store-vectorizer -always-inline -lower-constant-intrinsics -loop-guard-widening -mergereturn -mldst-motion -post-inline-ee-instrument -simplifycfg -inferattrs -strip -loop-sink -loop-predication -reg2mem -slsr -loop-data-prefetch -gvn-hoist -loop-deletion -gvn-hoist -coro-elide -indvars -loop-versioning-licm -flattencfg -name-anon-globals -flattencfg -simple-loop-unswitch -coro-early -float2int -coro-elide -aggressive-instcombine -reg2mem -prune-eh -ipsccp -flattencfg -loop-simplifycfg -loop-fusion -guard-widening -name-anon-globals -post-inline-ee-instrument -early-cse-memssa -break-crit-edges -globalsplit -dse -name-anon-globals -lower-matrix-intrinsics -loop-vectorize -prune-eh -nary-reassociate -lowerinvoke -loop-deletion -loop-load-elim -loop-predication -loweratomic -simplifycfg -strip-debug-declare -name-anon-globals -lowerinvoke -loweratomic -inline -loop-unswitch -slsr -newgvn -reg2mem -lower-constant-intrinsics -loop-versioning -licm -hotcoldsplit -alignment-from-assumptions -constprop -dse -functionattrs -loop-vectorize -slsr -called-value-propagation -loop-versioning -canonicalize-aliases -redundant-dbg-inst-elim -dce -consthoist -sink -add-discriminators -mergefunc -consthoist -rpo-functionattrs -always-inline -slsr -lower-widenable-condition -rpo-functionattrs -instnamer -loop-fusion -loop-idiom -barrier -bdce -loop-predication -elim-avail-extern -memcpyopt -gvn -strip -loop-versioning -separate-const-offset-from-gep -instsimplify -loop-data-prefetch -dse -loop-simplifycfg -separate-const-offset-from-gep -strip-debug-declare -reassociate -attributor -slp-vectorizer -gvn-hoist -instcombine -loop-reduce -loop-idiom -ee-instrument -inline -lower-guard-intrinsic -reassociate -instcombine -loop-vectorize -add-discriminators -elim-avail-extern -lowerinvoke -loop-rotate -sroa -reassociate -adce -coro-elide -consthoist -strip-nondebug -break-crit-edges -loop-load-elim -memcpyopt -strip -loop-fusion -loop-versioning -strip-debug-declare -adce -loop-simplify -name-anon-globals -loop-simplifycfg -newgvn -cross-dso-cfi -loop-versioning -globalopt -add-discriminators -deadargelim -load-store-vectorizer -forceattrs -cross-dso-cfi -lower-matrix-intrinsics -ipsccp -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0671755725190841,62.24016213417053,opt -constprop -lower-constant-intrinsics -lcssa -libcalls-shrinkwrap -deadargelim -always-inline -inferattrs -loop-unroll-and-jam -loop-fusion -prune-eh -loop-instsimplify -gvn -rewrite-statepoints-for-gc -strip-debug-declare -ee-instrument -loop-instsimplify -instcombine -mergefunc -name-anon-globals -reassociate -loop-unroll-and-jam -argpromotion -prune-eh -simple-loop-unswitch -instnamer -mem2reg -strip-dead-prototypes -coro-split -partially-inline-libcalls -reassociate -insert-gcov-profiling -loop-unswitch -break-crit-edges -flattencfg -aggressive-instcombine -barrier -slp-vectorizer -irce -libcalls-shrinkwrap -reassociate -name-anon-globals -inferattrs -canonicalize-aliases -simple-loop-unswitch -cross-dso-cfi -slp-vectorizer -loop-unroll-and-jam -add-discriminators -newgvn -loop-fusion -post-inline-ee-instrument -argpromotion -ipconstprop -slsr -mem2reg -irce -strip-dead-prototypes -globalsplit -loop-unroll -scalarizer -pgo-memop-opt -mem2reg -loop-simplifycfg -mergereturn -load-store-vectorizer -irce -libcalls-shrinkwrap -loop-instsimplify -simplifycfg -ipconstprop -partial-inliner -loop-guard-widening -canonicalize-aliases -aggressive-instcombine -inferattrs -mergefunc -gvn-hoist -consthoist -loop-reroll -sink -tailcallelim -float2int -loop-deletion -gvn -gvn -lcssa -post-inline-ee-instrument -load-store-vectorizer -loop-load-elim -loop-deletion -gvn-hoist -slsr -loop-simplify -aggressive-instcombine -memcpyopt -nary-reassociate -loop-unroll-and-jam -mergefunc -licm -alignment-from-assumptions -redundant-dbg-inst-elim -barrier -libcalls-shrinkwrap -sccp -mergeicmps -dce -prune-eh -callsite-splitting -ipconstprop -coro-split -partially-inline-libcalls -globalopt -div-rem-pairs -mergereturn -loop-unswitch -inferattrs -reassociate -barrier -licm -adce -infer-address-spaces -simplifycfg -ipsccp -libcalls-shrinkwrap -rewrite-statepoints-for-gc -loop-load-elim -loop-instsimplify -slsr -sccp -dce -ee-instrument -lower-widenable-condition -loop-load-elim -memcpyopt -loop-vectorize -alignment-from-assumptions -ipsccp -break-crit-edges -constprop -redundant-dbg-inst-elim -loop-unswitch -mldst-motion -slp-vectorizer -instsimplify -barrier -load-store-vectorizer -loop-sink -loop-instsimplify -strip-nondebug -loop-unroll-and-jam -loop-instsimplify -partial-inliner -strip -flattencfg -slsr -div-rem-pairs -partially-inline-libcalls -mergeicmps -loop-reroll -bdce -alignment-from-assumptions -simplifycfg -mem2reg -mem2reg -adce -cross-dso-cfi -tailcallelim -canonicalize-aliases -float2int -licm -globalsplit -mergeicmps -correlated-propagation -globaldce -lcssa -instcombine -globaldce -called-value-propagation -irce -strip-nondebug -instsimplify -early-cse-memssa -jump-threading input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0687022900763359,62.245200872421265,opt -loop-simplifycfg -simple-loop-unswitch -functionattrs -break-crit-edges -rpo-functionattrs -loop-fusion -dce -consthoist -die -loop-interchange -strip -licm -strip -lower-constant-intrinsics -functionattrs -lower-constant-intrinsics -speculative-execution -pgo-memop-opt -dce -strip -sroa -slp-vectorizer -early-cse-memssa -memcpyopt -instcombine -loop-interchange -loop-deletion -globalopt -loop-unroll -loop-versioning -instnamer -functionattrs -rewrite-statepoints-for-gc -loop-instsimplify -coro-split -sroa -loop-deletion -coro-early -instsimplify -simple-loop-unswitch -name-anon-globals -flattencfg -post-inline-ee-instrument -inline -bdce -load-store-vectorizer -load-store-vectorizer -loop-versioning -lower-constant-intrinsics -consthoist -load-store-vectorizer -instnamer -speculative-execution -loop-fusion -irce -irce -flattencfg -lower-guard-intrinsic -sroa -cross-dso-cfi -guard-widening -redundant-dbg-inst-elim -correlated-propagation -gvn-hoist -prune-eh -loop-data-prefetch -always-inline -irce -coro-early -newgvn -strip-dead-prototypes -coro-cleanup -infer-address-spaces -irce -adce -loop-simplify -globalsplit -dse -tailcallelim -loop-idiom -slp-vectorizer -tailcallelim -partial-inliner -mldst-motion -libcalls-shrinkwrap -load-store-vectorizer -strip-nondebug -gvn -loop-unswitch -always-inline -jump-threading -loweratomic -loop-sink -gvn-hoist -globalopt -flattencfg -simple-loop-unswitch -mldst-motion -mergefunc -globalsplit -deadargelim -loweratomic -loop-idiom -globaldce -separate-const-offset-from-gep -mergefunc -lcssa -add-discriminators -coro-cleanup -speculative-execution -infer-address-spaces -gvn -canonicalize-aliases -bdce -callsite-splitting -coro-elide -tailcallelim -lower-constant-intrinsics -loop-versioning -loop-sink -irce -argpromotion -loop-data-prefetch -attributor -simple-loop-unswitch -alignment-from-assumptions -barrier -early-cse-memssa -loop-idiom -simple-loop-unswitch -slp-vectorizer -loop-interchange -coro-early -loop-versioning -loop-simplify -rewrite-statepoints-for-gc -globalopt -alignment-from-assumptions -bdce -barrier -post-inline-ee-instrument -lowerinvoke -pgo-memop-opt -always-inline -newgvn -loweratomic -argpromotion -irce -sink -gvn -attributor -coro-cleanup -speculative-execution -lowerinvoke -aggressive-instcombine -loop-sink -early-cse-memssa -indvars -always-inline -add-discriminators -loop-unswitch -irce -attributor -early-cse-memssa -instcombine -bdce -die -loop-fusion -loop-distribute -ipsccp -lower-constant-intrinsics -slp-vectorizer input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.068702290076336,62.09459686279297,opt -strip-dead-prototypes -post-inline-ee-instrument -lowerinvoke -loop-deletion -lower-constant-intrinsics -ipconstprop -attributor -float2int -partially-inline-libcalls -elim-avail-extern -coro-cleanup -rewrite-statepoints-for-gc -prune-eh -lower-widenable-condition -div-rem-pairs -coro-elide -rpo-functionattrs -float2int -lower-guard-intrinsic -mergereturn -callsite-splitting -loop-predication -ipconstprop -globalsplit -lower-widenable-condition -barrier -partially-inline-libcalls -lower-expect -lower-expect -dce -ipsccp -lowerinvoke -inferattrs -bdce -loop-vectorize -add-discriminators -consthoist -argpromotion -lower-constant-intrinsics -mem2reg -dce -loop-instsimplify -constprop -lower-widenable-condition -reassociate -speculative-execution -rpo-functionattrs -libcalls-shrinkwrap -lower-guard-intrinsic -called-value-propagation -slsr -globalsplit -instcombine -mergeicmps -loop-reroll -loweratomic -hotcoldsplit -globalopt -globalsplit -loop-guard-widening -loop-versioning-licm -loop-sink -loop-versioning-licm -gvn -consthoist -canonicalize-aliases -lowerswitch -libcalls-shrinkwrap -irce -coro-cleanup -loop-versioning-licm -inline -inferattrs -irce -libcalls-shrinkwrap -coro-elide -loop-guard-widening -elim-avail-extern -alignment-from-assumptions -load-store-vectorizer -load-store-vectorizer -constprop -functionattrs -loop-idiom -loop-deletion -float2int -correlated-propagation -rpo-functionattrs -constprop -dce -coro-elide -load-store-vectorizer -lower-matrix-intrinsics -separate-const-offset-from-gep -aggressive-instcombine -tailcallelim -loweratomic -load-store-vectorizer -coro-early -argpromotion -alignment-from-assumptions -bdce -inferattrs -adce -sancov -globaldce -elim-avail-extern -loop-versioning-licm -adce -dce -reg2mem -name-anon-globals -load-store-vectorizer -loop-distribute -hotcoldsplit -always-inline -instsimplify -hotcoldsplit -loop-instsimplify -instsimplify -loop-interchange -loop-load-elim -newgvn -add-discriminators -jump-threading -loweratomic -prune-eh -tailcallelim -loop-load-elim -correlated-propagation -adce -tailcallelim -sccp -constprop -early-cse-memssa -prune-eh -alignment-from-assumptions -ipconstprop -loop-fusion -float2int -prune-eh -newgvn -gvn -early-cse-memssa -loop-versioning -loop-reroll -loop-vectorize -always-inline -redundant-dbg-inst-elim -newgvn -called-value-propagation -slp-vectorizer -alignment-from-assumptions -argpromotion -loop-data-prefetch -instcombine -redundant-dbg-inst-elim -break-crit-edges -jump-threading -loop-simplify -reassociate -sroa -simplifycfg -forceattrs -div-rem-pairs -loop-distribute -ee-instrument -gvn-hoist -prune-eh -tailcallelim -mergefunc -mergeicmps -instnamer -gvn input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0732824427480923,62.259055852890015,opt -forceattrs -jump-threading -forceattrs -dse -simple-loop-unswitch -consthoist -loop-interchange -alignment-from-assumptions -flattencfg -instsimplify -mergefunc -argpromotion -strip -flattencfg -lowerinvoke -simple-loop-unswitch -loop-simplifycfg -coro-elide -load-store-vectorizer -dse -loop-versioning-licm -pgo-memop-opt -cross-dso-cfi -slsr -nary-reassociate -coro-early -coro-elide -instsimplify -loop-vectorize -die -functionattrs -lower-constant-intrinsics -mldst-motion -consthoist -cross-dso-cfi -slsr -lcssa -float2int -globaldce -simplifycfg -licm -simple-loop-unswitch -post-inline-ee-instrument -loweratomic -alignment-from-assumptions -simplifycfg -strip-dead-prototypes -deadargelim -mldst-motion -coro-cleanup -instcombine -add-discriminators -ipsccp -loop-reroll -newgvn -canonicalize-aliases -ee-instrument -loop-versioning-licm -constprop -coro-cleanup -loop-reroll -always-inline -mem2reg -rpo-functionattrs -gvn -partial-inliner -strip -always-inline -sroa -prune-eh -loop-unswitch -slsr -lower-constant-intrinsics -sroa -irce -constprop -dse -slsr -lower-widenable-condition -loop-unroll-and-jam -lowerinvoke -speculative-execution -mldst-motion -loop-unroll -irce -early-cse-memssa -coro-split -argpromotion -loop-load-elim -mergeicmps -mem2reg -loop-interchange -separate-const-offset-from-gep -instcombine -forceattrs -globalopt -loop-idiom -globaldce -mem2reg -newgvn -called-value-propagation -strip-dead-prototypes -strip -name-anon-globals -newgvn -callsite-splitting -speculative-execution -ipsccp -coro-elide -barrier -slp-vectorizer -cross-dso-cfi -loop-sink -die -instcombine -hotcoldsplit -memcpyopt -inline -strip-nondebug -loop-versioning-licm -gvn-hoist -memcpyopt -inline -tailcallelim -loop-instsimplify -barrier -mergefunc -mergeicmps -loop-instsimplify -load-store-vectorizer -inferattrs -constmerge -div-rem-pairs -gvn-hoist -prune-eh -deadargelim -hotcoldsplit -memcpyopt -tailcallelim -loop-sink -loop-fusion -loop-deletion -name-anon-globals -coro-elide -newgvn -ipsccp -strip-dead-prototypes -die -redundant-dbg-inst-elim -ipconstprop -instcombine -called-value-propagation -coro-elide -slp-vectorizer -inferattrs -aggressive-instcombine -float2int -reassociate -newgvn -early-cse-memssa -loop-load-elim -slsr -dce -gvn-hoist -irce -jump-threading -rpo-functionattrs -nary-reassociate -loop-versioning -lowerinvoke -elim-avail-extern -loop-load-elim -bdce -memcpyopt -flattencfg -instcombine -coro-early -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/blowfish,1.0793893129770993,61.71475172042847,opt -slp-vectorizer -loop-reduce -post-inline-ee-instrument -cross-dso-cfi -elim-avail-extern -sroa -callsite-splitting -div-rem-pairs -constmerge -mergeicmps -lcssa -insert-gcov-profiling -mergefunc -tailcallelim -strip-debug-declare -loop-versioning-licm -add-discriminators -loop-distribute -strip -insert-gcov-profiling -prune-eh -coro-split -instcombine -coro-early -loop-interchange -jump-threading -lowerinvoke -prune-eh -loop-unswitch -attributor -called-value-propagation -lower-expect -mem2reg -speculative-execution -partially-inline-libcalls -dce -separate-const-offset-from-gep -jump-threading -ipsccp -sink -flattencfg -mergeicmps -ee-instrument -sink -consthoist -indvars -loop-vectorize -load-store-vectorizer -correlated-propagation -slp-vectorizer -loop-versioning-licm -guard-widening -simplifycfg -consthoist -aggressive-instcombine -called-value-propagation -barrier -loop-idiom -coro-early -ee-instrument -add-discriminators -mldst-motion -forceattrs -newgvn -always-inline -instsimplify -simplifycfg -adce -loop-unswitch -reassociate -strip-debug-declare -irce -div-rem-pairs -deadargelim -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1545071082643337,67.68773531913757,opt -loop-reduce -adce -coro-early -indvars -called-value-propagation -strip-debug-declare -pgo-memop-opt -licm -lcssa -bdce -loop-guard-widening -attributor -mergereturn -loop-idiom -loop-sink -forceattrs -instsimplify -strip -sancov -loop-vectorize -ipsccp -mergefunc -lower-matrix-intrinsics -sroa -loop-versioning-licm -lcssa -elim-avail-extern -lcssa -speculative-execution -bdce -hotcoldsplit -mldst-motion -called-value-propagation -globaldce -newgvn -load-store-vectorizer -break-crit-edges -sink -loop-vectorize -redundant-dbg-inst-elim -reg2mem -aggressive-instcombine -cross-dso-cfi -globalopt -strip-debug-declare -canonicalize-aliases -coro-elide -reassociate -loop-guard-widening -loop-predication -flattencfg -nary-reassociate -loop-fusion -memcpyopt -loop-instsimplify -coro-cleanup -mem2reg -ipsccp -simple-loop-unswitch -loop-data-prefetch -licm -globalopt -coro-early -slp-vectorizer -redundant-dbg-inst-elim -loop-predication -loop-unroll-and-jam -coro-cleanup -loop-fusion -pgo-memop-opt -simplifycfg -loop-unswitch -dce -aggressive-instcombine -simplifycfg -always-inline -loop-fusion -instcombine input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.160287455085143,322.17351841926575,opt -flattencfg -loweratomic -simplifycfg -constmerge -loop-versioning -reg2mem -globalsplit -mem2reg -loop-vectorize -canonicalize-aliases -mergeicmps -indvars -instnamer -correlated-propagation -loop-guard-widening -correlated-propagation -instcombine -alignment-from-assumptions -barrier -newgvn -strip-nondebug -reassociate -loop-fusion -simplifycfg -alignment-from-assumptions -ipsccp -instcombine input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.161927823777535,69.08962750434875,opt -loweratomic -lcssa -dce -called-value-propagation -loop-guard-widening -inferattrs -elim-avail-extern -consthoist -coro-early -globalsplit -add-discriminators -loop-unswitch -coro-cleanup -lowerinvoke -instnamer -aggressive-instcombine -simplifycfg -lower-matrix-intrinsics -called-value-propagation -globalopt -inject-tli-mappings -reg2mem -callsite-splitting -div-rem-pairs -irce -die -lower-guard-intrinsic -rewrite-statepoints-for-gc -nary-reassociate -functionattrs -ee-instrument -loop-data-prefetch -always-inline -elim-avail-extern -separate-const-offset-from-gep -globaldce -always-inline -called-value-propagation -prune-eh -licm -loop-unroll-and-jam -lcssa -mergeicmps -loop-reroll -mergeicmps -div-rem-pairs -elim-avail-extern -lcssa -dse -break-crit-edges -coro-cleanup -inject-tli-mappings -instsimplify -loop-simplifycfg -div-rem-pairs -functionattrs -strip -forceattrs -ipconstprop -loop-versioning-licm -mldst-motion -simple-loop-unswitch -loop-guard-widening -memcpyopt -sroa -functionattrs -insert-gcov-profiling -mldst-motion -loop-idiom -instnamer -add-discriminators -globalsplit -called-value-propagation -lower-constant-intrinsics -globaldce -slsr -redundant-dbg-inst-elim -coro-split -loop-load-elim -partially-inline-libcalls -globaldce -called-value-propagation -jump-threading -argpromotion -loop-fusion -mergereturn -nary-reassociate -constprop -early-cse-memssa -irce -sroa -canonicalize-aliases -loop-idiom -strip-nondebug -reassociate -inferattrs -instcombine -cross-dso-cfi -coro-split -partially-inline-libcalls -partially-inline-libcalls -licm -lowerswitch -aggressive-instcombine -loop-unroll-and-jam -lowerinvoke -bdce -lower-widenable-condition -lower-matrix-intrinsics -redundant-dbg-inst-elim -post-inline-ee-instrument -ee-instrument -coro-split -lower-matrix-intrinsics -functionattrs -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1643493204186848,67.1374294757843,opt -aggressive-instcombine -lowerinvoke -memcpyopt -loop-sink -always-inline -lower-matrix-intrinsics -gvn-hoist -slsr -separate-const-offset-from-gep -speculative-execution -sroa -newgvn -lcssa -forceattrs -coro-split -hotcoldsplit -dse -memcpyopt -lowerinvoke -dce -reassociate -functionattrs -forceattrs -loop-unroll-and-jam -loop-interchange -coro-split -lower-widenable-condition -loop-vectorize -always-inline -load-store-vectorizer -slsr -post-inline-ee-instrument -partially-inline-libcalls -irce -instcombine -memcpyopt -consthoist -loop-load-elim -pgo-memop-opt -barrier -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1674738322137166,69.87810277938843,opt -loop-versioning -loop-simplifycfg -loop-fusion -strip-debug-declare -ipsccp -simple-loop-unswitch -strip-dead-prototypes -gvn-hoist -simplifycfg -loop-sink -div-rem-pairs -prune-eh -post-inline-ee-instrument -loop-guard-widening -sink -speculative-execution -ee-instrument -lcssa -mldst-motion -lower-expect -sroa -dse -tailcallelim -loop-unroll-and-jam -flattencfg -loop-distribute -globalsplit -loop-reroll -loop-reroll -gvn -lower-constant-intrinsics -loop-predication -mergereturn -coro-split -loop-unswitch -simple-loop-unswitch -libcalls-shrinkwrap -sccp -loop-interchange -lowerinvoke -constprop -coro-elide -pgo-memop-opt -name-anon-globals -forceattrs -break-crit-edges -separate-const-offset-from-gep -lower-expect -prune-eh -bdce -attributor -scalarizer -loop-reroll -loweratomic -rewrite-statepoints-for-gc -cross-dso-cfi -scalarizer -nary-reassociate -jump-threading -insert-gcov-profiling -flattencfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1680206217778468,68.25625967979431,opt -flattencfg -mldst-motion -newgvn -attributor -canonicalize-aliases -coro-elide -canonicalize-aliases -ipconstprop -licm -loop-instsimplify -loop-load-elim -attributor -instsimplify -loop-distribute -lower-widenable-condition -strip-dead-prototypes -elim-avail-extern -loop-versioning-licm -mergefunc -loop-unroll -callsite-splitting -irce -flattencfg -lowerswitch -load-store-vectorizer -globalsplit -reassociate -lowerswitch -lcssa -lower-widenable-condition -strip -gvn-hoist -strip -guard-widening -tailcallelim -instnamer -partially-inline-libcalls -strip-debug-declare -cross-dso-cfi -jump-threading -irce -jump-threading -prune-eh -reassociate -load-store-vectorizer -loop-reroll -loop-distribute -loop-versioning -newgvn -loop-simplify -mem2reg -alignment-from-assumptions -mergeicmps -lower-guard-intrinsic -functionattrs -simplifycfg -barrier -coro-early -constprop -globalsplit -loop-versioning -loop-guard-widening -lowerinvoke -libcalls-shrinkwrap -inject-tli-mappings -consthoist -ee-instrument -slp-vectorizer -nary-reassociate -lower-guard-intrinsic -speculative-execution -name-anon-globals -adce -callsite-splitting -dse -instcombine -sancov -lower-widenable-condition -gvn -simplifycfg -memcpyopt input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1706764568036248,68.34867286682129,opt -mergeicmps -newgvn -loop-versioning-licm -dce -partial-inliner -load-store-vectorizer -mem2reg -functionattrs -sccp -functionattrs -strip-debug-declare -dce -mldst-motion -mergeicmps -float2int -infer-address-spaces -jump-threading -mem2reg -break-crit-edges -constprop -always-inline -div-rem-pairs -mergereturn -cross-dso-cfi -gvn -coro-elide -loop-interchange -float2int -loop-idiom -die -dce -instcombine -loop-vectorize -load-store-vectorizer -simplifycfg -attributor -sancov -nary-reassociate -guard-widening -loop-deletion -callsite-splitting -instnamer -coro-early -nary-reassociate -coro-cleanup -newgvn -loop-unroll-and-jam -simplifycfg -simplifycfg -strip -lcssa -jump-threading -lower-guard-intrinsic -slsr -redundant-dbg-inst-elim -correlated-propagation -slsr -load-store-vectorizer -loop-simplify -instnamer -globaldce -adce -redundant-dbg-inst-elim -early-cse-memssa -slp-vectorizer -slsr -irce -loop-data-prefetch -nary-reassociate -deadargelim -licm -separate-const-offset-from-gep -strip-nondebug -prune-eh -loop-deletion -mldst-motion -gvn -alignment-from-assumptions -ipsccp -jump-threading input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.172473051085768,70.48168897628784,opt -mergefunc -scalarizer -deadargelim -alignment-from-assumptions -loweratomic -loop-distribute -lower-matrix-intrinsics -nary-reassociate -loop-versioning -slp-vectorizer -name-anon-globals -constprop -scalarizer -deadargelim -gvn -strip-dead-prototypes -float2int -break-crit-edges -lower-constant-intrinsics -ee-instrument -add-discriminators -globalopt -slp-vectorizer -constmerge -lcssa -cross-dso-cfi -alignment-from-assumptions -early-cse-memssa -dce -loop-unroll-and-jam -cross-dso-cfi -simple-loop-unswitch -guard-widening -loop-sink -loop-fusion -coro-early -guard-widening -scalarizer -pgo-memop-opt -loop-interchange -mergereturn -mergefunc -break-crit-edges -aggressive-instcombine -strip-dead-prototypes -div-rem-pairs -mergereturn -name-anon-globals -always-inline -loweratomic -loop-data-prefetch -newgvn -coro-elide -strip-nondebug -globalopt -lower-matrix-intrinsics -pgo-memop-opt -die -slp-vectorizer -loop-sink -barrier -elim-avail-extern -attributor -loop-load-elim -slsr -ee-instrument -globaldce -early-cse-memssa -pgo-memop-opt -gvn-hoist -loweratomic -rewrite-statepoints-for-gc -canonicalize-aliases -partially-inline-libcalls -instnamer -simplifycfg -barrier -reassociate -insert-gcov-profiling -libcalls-shrinkwrap -loop-vectorize -add-discriminators -correlated-propagation -prune-eh -sroa -redundant-dbg-inst-elim -add-discriminators -simple-loop-unswitch -separate-const-offset-from-gep -strip-nondebug -nary-reassociate -globalsplit -name-anon-globals -strip-debug-declare -loop-deletion -loop-predication -loop-load-elim -called-value-propagation -lower-widenable-condition -loop-distribute -alignment-from-assumptions -coro-early -simplifycfg -div-rem-pairs -newgvn -simple-loop-unswitch -ee-instrument -loop-reroll -strip -aggressive-instcombine -flattencfg -called-value-propagation -inferattrs -tailcallelim -gvn -mergeicmps -strip-debug-declare -slp-vectorizer -loop-simplifycfg -lower-constant-intrinsics -functionattrs -instcombine -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1809092329323547,365.934752702713,opt -pgo-memop-opt -loop-versioning-licm -inferattrs -functionattrs -guard-widening -functionattrs -tailcallelim -lower-matrix-intrinsics -barrier -rewrite-statepoints-for-gc -lcssa -inject-tli-mappings -lower-widenable-condition -mem2reg -scalarizer -mergereturn -partially-inline-libcalls -globalopt -dse -break-crit-edges -alignment-from-assumptions -bdce -loop-sink -hotcoldsplit -alignment-from-assumptions -flattencfg -partial-inliner -adce -float2int -callsite-splitting -div-rem-pairs -gvn-hoist -forceattrs -elim-avail-extern -infer-address-spaces -loop-versioning -newgvn -strip-nondebug -flattencfg -mem2reg -loop-load-elim -instcombine -globaldce -inferattrs -loop-distribute -mergereturn -constmerge -consthoist -dse -prune-eh -rpo-functionattrs -scalarizer -load-store-vectorizer -flattencfg -loop-interchange -ipconstprop -canonicalize-aliases -attributor -lower-matrix-intrinsics -mldst-motion -inferattrs -always-inline -mem2reg -loop-instsimplify -sccp -memcpyopt -strip-nondebug -nary-reassociate -lower-constant-intrinsics -die -mergereturn -infer-address-spaces -loop-versioning-licm -called-value-propagation -early-cse-memssa -lower-guard-intrinsic -ipsccp -sink -early-cse-memssa -strip -loop-idiom -instcombine -loop-vectorize -lowerinvoke -callsite-splitting -ipconstprop -libcalls-shrinkwrap -die -loop-interchange -ipconstprop -add-discriminators -alignment-from-assumptions -indvars -lower-widenable-condition -dce -simplifycfg -guard-widening -argpromotion -dce -ipsccp -dse -early-cse-memssa -float2int -newgvn input.bc -o output.bc +benchmark://cbench-v1/bzip2,1.1948914232151224,68.35258197784424,opt -mem2reg -globaldce -loop-unroll-and-jam -correlated-propagation -scalarizer -rpo-functionattrs -licm -flattencfg -loweratomic -libcalls-shrinkwrap -irce -tailcallelim -loop-instsimplify -functionattrs -mergeicmps -coro-early -loop-instsimplify -strip-debug-declare -dce -loop-versioning-licm -loop-unswitch -prune-eh -rpo-functionattrs -loop-versioning-licm -constmerge -div-rem-pairs -loop-guard-widening -ipconstprop -prune-eh -libcalls-shrinkwrap -indvars -lower-matrix-intrinsics -globalopt -strip-nondebug -coro-split -loop-instsimplify -lower-matrix-intrinsics -libcalls-shrinkwrap -loop-idiom -loop-data-prefetch -loop-guard-widening -nary-reassociate -flattencfg -loop-sink -cross-dso-cfi -always-inline -indvars -dce -always-inline -guard-widening -memcpyopt -instnamer -lower-guard-intrinsic -loop-versioning-licm -nary-reassociate -deadargelim -irce -post-inline-ee-instrument -lowerinvoke -sroa -coro-cleanup -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.635990619659424,opt -add-discriminators -loop-unroll-and-jam -lower-constant-intrinsics -mldst-motion -globaldce -add-discriminators -slp-vectorizer -mem2reg -mergereturn -infer-address-spaces -die -nary-reassociate -coro-split -redundant-dbg-inst-elim -barrier -loop-distribute -scalarizer -indvars -instcombine -separate-const-offset-from-gep -lower-constant-intrinsics -inferattrs -guard-widening -lower-widenable-condition -mergefunc -die -lcssa -strip -scalarizer -ipsccp -loop-unroll -loop-guard-widening -loop-instsimplify -coro-early -reassociate -tailcallelim -slp-vectorizer -gvn-hoist -flattencfg -gvn-hoist -forceattrs -mergeicmps -correlated-propagation -called-value-propagation -correlated-propagation -strip-debug-declare -pgo-memop-opt -rewrite-statepoints-for-gc -reassociate -gvn -guard-widening -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.67673325538635,opt -mldst-motion -aggressive-instcombine -loop-interchange -loop-idiom -gvn-hoist -simplifycfg -coro-split -speculative-execution -loop-idiom -load-store-vectorizer -separate-const-offset-from-gep -loop-fusion -inject-tli-mappings -coro-early -coro-early -loop-distribute -loop-load-elim -load-store-vectorizer -prune-eh -rpo-functionattrs -partially-inline-libcalls -ipconstprop -reg2mem -loop-versioning-licm -scalarizer -globalopt -loop-fusion -loop-unroll-and-jam -globalopt -adce -memcpyopt -libcalls-shrinkwrap -strip -coro-split -loop-simplifycfg -infer-address-spaces -partial-inliner -partial-inliner -early-cse-memssa -loop-deletion -licm -redundant-dbg-inst-elim -mergeicmps -ee-instrument -inferattrs -functionattrs -instcombine -indvars -sroa -die -newgvn -loop-distribute -scalarizer -pgo-memop-opt -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.70763802528381,opt -alignment-from-assumptions -mem2reg -dse -irce -loop-simplifycfg -adce -canonicalize-aliases -constprop -dse -newgvn -loop-unroll-and-jam -globalsplit -slp-vectorizer -loop-unroll -globalopt -scalarizer -mergeicmps -indvars -slsr -coro-cleanup -ee-instrument -partial-inliner -forceattrs -mergeicmps -indvars -simple-loop-unswitch -insert-gcov-profiling -simple-loop-unswitch -slsr -jump-threading -loop-sink -argpromotion -irce -lower-constant-intrinsics -loop-versioning -aggressive-instcombine -newgvn -lower-guard-intrinsic -cross-dso-cfi -ee-instrument -post-inline-ee-instrument -coro-elide -loop-fusion -forceattrs -coro-elide -adce -mergereturn -strip -lower-matrix-intrinsics -gvn-hoist -loop-unroll -rpo-functionattrs -mldst-motion -loweratomic -insert-gcov-profiling -simplifycfg -dse -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.71832275390625,opt -prune-eh -partially-inline-libcalls -slp-vectorizer -redundant-dbg-inst-elim -simplifycfg -prune-eh -loop-unroll -lowerinvoke -coro-elide -licm -loweratomic -gvn-hoist -lowerswitch -dse -loop-idiom -callsite-splitting -name-anon-globals -slsr -gvn -loop-unroll-and-jam -memcpyopt -break-crit-edges -sroa -dce -lower-constant-intrinsics -loop-unroll -sccp -aggressive-instcombine -instcombine -slp-vectorizer -attributor -reassociate -scalarizer -lower-matrix-intrinsics -guard-widening -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.74629616737366,opt -simple-loop-unswitch -early-cse-memssa -insert-gcov-profiling -loop-simplifycfg -lowerswitch -speculative-execution -float2int -separate-const-offset-from-gep -loop-data-prefetch -argpromotion -rewrite-statepoints-for-gc -strip-debug-declare -coro-cleanup -instcombine -called-value-propagation -loop-interchange -dse -libcalls-shrinkwrap -instcombine -jump-threading -aggressive-instcombine -functionattrs -loop-predication -sink -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -always-inline -lowerswitch -gvn -simplifycfg -nary-reassociate -mergefunc -adce -cross-dso-cfi -separate-const-offset-from-gep -infer-address-spaces -loop-versioning-licm -partial-inliner -reassociate -loop-versioning-licm -dse -loop-sink -strip-debug-declare -gvn -float2int -loop-sink -attributor -lcssa -sroa -early-cse-memssa -gvn-hoist -jump-threading -redundant-dbg-inst-elim -simple-loop-unswitch -attributor -elim-avail-extern -guard-widening -loop-data-prefetch -aggressive-instcombine -constprop -lower-matrix-intrinsics -break-crit-edges -mem2reg -functionattrs -constprop -ipconstprop -loop-reroll -inject-tli-mappings -loop-data-prefetch -simple-loop-unswitch -loop-unroll-and-jam -rewrite-statepoints-for-gc -always-inline -inferattrs -lower-widenable-condition -licm -lower-matrix-intrinsics -strip -loop-fusion -callsite-splitting -sancov -strip-dead-prototypes -memcpyopt -globaldce -ipconstprop -adce -add-discriminators -instnamer -lower-widenable-condition -globaldce -loop-versioning-licm -pgo-memop-opt -loop-versioning -loop-versioning-licm -jump-threading -reassociate -memcpyopt -always-inline -insert-gcov-profiling -sink -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.75835990905762,opt -partial-inliner -mem2reg -argpromotion -die -newgvn -globaldce -instcombine -called-value-propagation -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.77911853790283,opt -loweratomic -bdce -hotcoldsplit -loop-simplify -constmerge -sccp -libcalls-shrinkwrap -lower-matrix-intrinsics -slp-vectorizer -post-inline-ee-instrument -mergefunc -adce -callsite-splitting -coro-elide -instcombine -instnamer -libcalls-shrinkwrap -coro-elide -loop-predication -constmerge -lcssa -loop-vectorize -coro-elide -speculative-execution -sroa -gvn -break-crit-edges -strip-debug-declare -memcpyopt -correlated-propagation -newgvn -loop-reroll -sroa -gvn -prune-eh -mergereturn -lower-guard-intrinsic -coro-cleanup -scalarizer -mergeicmps -loop-unroll -instsimplify -mem2reg -sancov -mergeicmps -bdce -lowerswitch -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.824644327163696,opt -correlated-propagation -lower-matrix-intrinsics -canonicalize-aliases -reassociate -lower-matrix-intrinsics -loop-reroll -simplifycfg -loop-versioning-licm -lower-expect -loop-vectorize -loop-distribute -loop-data-prefetch -instnamer -strip-dead-prototypes -globaldce -post-inline-ee-instrument -mergefunc -loop-idiom -instnamer -lower-expect -coro-elide -lowerswitch -canonicalize-aliases -lower-constant-intrinsics -newgvn -bdce -mergereturn -loop-interchange -globalsplit -pgo-memop-opt -load-store-vectorizer -sancov -instsimplify -globaldce -infer-address-spaces -aggressive-instcombine -mergereturn -flattencfg -sroa -dse -loop-unroll-and-jam -callsite-splitting -nary-reassociate -coro-early -sroa -strip-dead-prototypes -bdce -bdce -guard-widening -indvars -break-crit-edges -libcalls-shrinkwrap -simplifycfg -sccp -coro-early -deadargelim -sancov -instcombine input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.877750396728516,opt -globalsplit -bdce -adce -loop-unswitch -ee-instrument -coro-cleanup -strip -loop-instsimplify -add-discriminators -globaldce -attributor -argpromotion -lowerinvoke -loop-vectorize -coro-elide -gvn -adce -bdce -loop-unroll -libcalls-shrinkwrap -callsite-splitting -partial-inliner -constprop -break-crit-edges -jump-threading -consthoist -loop-idiom -loop-instsimplify -globaldce -break-crit-edges -cross-dso-cfi -inject-tli-mappings -lower-matrix-intrinsics -libcalls-shrinkwrap -argpromotion -loop-idiom -coro-early -loop-predication -loop-reduce -gvn-hoist -always-inline -lower-constant-intrinsics -dse -strip-dead-prototypes -ipconstprop -reassociate -flattencfg -inferattrs -simple-loop-unswitch -redundant-dbg-inst-elim -gvn-hoist -speculative-execution -guard-widening -simple-loop-unswitch -separate-const-offset-from-gep -loop-sink -cross-dso-cfi -add-discriminators -alignment-from-assumptions -reassociate -adce -sancov -licm -forceattrs -loop-reroll -sroa -loop-load-elim -lower-matrix-intrinsics -loop-deletion -inferattrs -loop-interchange -infer-address-spaces -adce -load-store-vectorizer -lcssa -constmerge -coro-cleanup -aggressive-instcombine -early-cse-memssa -instcombine -canonicalize-aliases -mergefunc -alignment-from-assumptions -irce -alignment-from-assumptions -loop-instsimplify -sink -div-rem-pairs -instsimplify -constmerge -die -mem2reg -callsite-splitting -add-discriminators -instsimplify -loop-distribute -loop-guard-widening -mldst-motion -globaldce -infer-address-spaces -dse -pgo-memop-opt -mergefunc -ee-instrument -loop-unroll -break-crit-edges -strip -inject-tli-mappings -nary-reassociate -lcssa -loop-instsimplify -die -gvn-hoist -loop-simplify -strip-nondebug -loop-simplifycfg -rewrite-statepoints-for-gc -callsite-splitting -gvn-hoist -elim-avail-extern -lower-constant-intrinsics -alignment-from-assumptions -loop-idiom -reg2mem -loop-distribute -early-cse-memssa -always-inline -div-rem-pairs -add-discriminators -lower-widenable-condition -mergereturn -loop-reduce -strip-dead-prototypes -mldst-motion -mem2reg -slp-vectorizer -sroa -dse -reg2mem -partially-inline-libcalls -loop-versioning-licm -loop-deletion -lower-guard-intrinsic -constmerge -float2int -adce -callsite-splitting -loop-reroll -constmerge -loop-simplifycfg -mergereturn -loop-simplifycfg -mergefunc -loop-versioning-licm -cross-dso-cfi -infer-address-spaces -tailcallelim -lowerinvoke -loop-simplify -redundant-dbg-inst-elim -pgo-memop-opt -guard-widening -loop-sink -loop-interchange -gvn-hoist -loop-simplify -jump-threading -sancov -gvn -globaldce -globaldce -jump-threading -globaldce -inline -inline -float2int -loop-interchange -constprop -inject-tli-mappings -barrier -always-inline -insert-gcov-profiling -infer-address-spaces -coro-elide -dce -called-value-propagation -loop-sink -name-anon-globals -globaldce -strip -instcombine -functionattrs -mergereturn -loop-load-elim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/crc32,1.0,61.91339898109436,opt -lower-expect -mem2reg -inferattrs -lower-guard-intrinsic -name-anon-globals -instsimplify -post-inline-ee-instrument -newgvn -loop-sink -hotcoldsplit -simplifycfg -add-discriminators -instcombine input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9795918367346942,61.754926919937134,opt -prune-eh -separate-const-offset-from-gep -rpo-functionattrs -dce -argpromotion -name-anon-globals -loop-versioning -correlated-propagation -mem2reg -loop-deletion -simplifycfg -canonicalize-aliases -loop-versioning -lower-widenable-condition -gvn -tailcallelim -elim-avail-extern -gvn-hoist -argpromotion -loop-unroll -globaldce -loop-reroll -bdce -loop-guard-widening -correlated-propagation -reg2mem -prune-eh -redundant-dbg-inst-elim -argpromotion -loop-predication -loop-guard-widening -name-anon-globals -loop-unswitch -always-inline -flattencfg -simplifycfg -nary-reassociate -ipconstprop -forceattrs -partially-inline-libcalls -rpo-functionattrs -indvars -elim-avail-extern -always-inline -functionattrs -mem2reg -flattencfg -reassociate -adce -argpromotion -early-cse-memssa -globalsplit -slsr -early-cse-memssa -break-crit-edges -globalsplit -loop-predication -memcpyopt -load-store-vectorizer -libcalls-shrinkwrap -tailcallelim -insert-gcov-profiling -slp-vectorizer -consthoist -ipconstprop -strip-dead-prototypes -partially-inline-libcalls -separate-const-offset-from-gep -early-cse-memssa -correlated-propagation -load-store-vectorizer -instcombine -loop-idiom -loop-guard-widening -loop-data-prefetch -strip-dead-prototypes -always-inline -mldst-motion -gvn-hoist -loop-unswitch -partially-inline-libcalls -tailcallelim -deadargelim -instsimplify -lcssa -mem2reg -flattencfg -div-rem-pairs -strip-dead-prototypes -globalsplit -memcpyopt -strip-dead-prototypes -loop-instsimplify -loop-instsimplify -deadargelim -mergereturn -lower-matrix-intrinsics -simplifycfg -deadargelim -dse -loop-versioning -loop-simplify -globaldce -tailcallelim -break-crit-edges -break-crit-edges -lower-guard-intrinsic -infer-address-spaces -lower-matrix-intrinsics -rpo-functionattrs -coro-elide -forceattrs -called-value-propagation -loop-load-elim -loop-reduce -correlated-propagation -coro-early -newgvn -callsite-splitting -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9795918367346942,61.764912128448486,opt -sancov -inferattrs -adce -loop-load-elim -argpromotion -redundant-dbg-inst-elim -constprop -rewrite-statepoints-for-gc -libcalls-shrinkwrap -always-inline -nary-reassociate -forceattrs -loop-simplifycfg -reassociate -lower-expect -coro-early -lowerswitch -jump-threading -globalsplit -reassociate -loop-load-elim -loop-versioning-licm -strip-debug-declare -coro-elide -sancov -barrier -loop-guard-widening -callsite-splitting -loop-data-prefetch -mem2reg -tailcallelim -float2int -insert-gcov-profiling -slsr -called-value-propagation -sccp -float2int -sroa -div-rem-pairs -mergefunc -loop-fusion -mergeicmps -libcalls-shrinkwrap -loop-load-elim -gvn-hoist -loop-sink -constmerge -instsimplify -pgo-memop-opt -mem2reg -loop-sink -flattencfg -lower-widenable-condition -flattencfg -load-store-vectorizer -memcpyopt -inferattrs -constmerge -loop-interchange -loop-reduce -rewrite-statepoints-for-gc -attributor -rpo-functionattrs -lower-expect -sancov -loop-distribute -strip -strip-nondebug -loop-interchange -gvn -scalarizer -insert-gcov-profiling -add-discriminators -add-discriminators -infer-address-spaces -break-crit-edges -bdce -loop-reroll -rpo-functionattrs -sroa -instnamer -constmerge -lower-widenable-condition -name-anon-globals -functionattrs -called-value-propagation -sccp -prune-eh -instcombine -lower-widenable-condition -canonicalize-aliases -mem2reg -globalsplit -slsr -partially-inline-libcalls -post-inline-ee-instrument -sroa -early-cse-memssa -add-discriminators -instsimplify -insert-gcov-profiling -mergereturn -always-inline -adce -lcssa -mergereturn -loop-idiom -indvars -libcalls-shrinkwrap -globaldce -coro-cleanup -coro-cleanup -mergefunc -canonicalize-aliases -sccp -inject-tli-mappings -lower-expect -loop-reroll -instnamer -simplifycfg -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9285714285714286,62.132272481918335,opt -loop-guard-widening -consthoist -lower-expect -indvars -loop-reduce -simplifycfg -callsite-splitting -lower-matrix-intrinsics -correlated-propagation -reassociate -mldst-motion -ipconstprop -irce -lower-matrix-intrinsics -mergeicmps -globalopt -lowerswitch -bdce -strip-nondebug -partially-inline-libcalls -div-rem-pairs -forceattrs -globalsplit -barrier -functionattrs -loop-predication -loop-versioning-licm -libcalls-shrinkwrap -strip-debug-declare -constmerge -ipsccp -alignment-from-assumptions -ee-instrument -sancov -jump-threading -coro-split -gvn-hoist -die -bdce -loweratomic -dse -instsimplify -name-anon-globals -dce -tailcallelim -mergeicmps -callsite-splitting -speculative-execution -callsite-splitting -consthoist -irce -coro-early -mergereturn -loop-versioning-licm -loop-idiom -add-discriminators -globalsplit -loop-deletion -guard-widening -lower-expect -rewrite-statepoints-for-gc -loop-guard-widening -irce -nary-reassociate -dse -lowerinvoke -gvn -lower-constant-intrinsics -load-store-vectorizer -loop-simplify -lower-guard-intrinsic -partially-inline-libcalls -deadargelim -functionattrs -lower-widenable-condition -always-inline -ipconstprop -loop-simplify -aggressive-instcombine -sroa -div-rem-pairs -lower-guard-intrinsic -coro-elide -forceattrs -mergereturn -called-value-propagation -consthoist -lower-expect -simple-loop-unswitch -break-crit-edges -scalarizer -instcombine -mergereturn -loop-instsimplify -lower-widenable-condition -constprop -strip-dead-prototypes -flattencfg -loop-rotate -elim-avail-extern -slsr -rpo-functionattrs -forceattrs -strip-nondebug -tailcallelim -attributor -barrier -argpromotion -loop-unroll -nary-reassociate -die -libcalls-shrinkwrap -loop-versioning-licm -break-crit-edges -early-cse-memssa -rpo-functionattrs -correlated-propagation -rewrite-statepoints-for-gc -guard-widening -infer-address-spaces -reassociate -loop-deletion -callsite-splitting -die -simplifycfg -cross-dso-cfi -ipconstprop -inject-tli-mappings -barrier -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9846938775510204,61.58521580696106,opt -hotcoldsplit -correlated-propagation -die -loop-versioning -mem2reg -early-cse-memssa -loop-load-elim -cross-dso-cfi -strip -tailcallelim -coro-cleanup -inferattrs -infer-address-spaces -functionattrs -loop-deletion -lower-expect -forceattrs -sroa -loop-simplifycfg -rpo-functionattrs -loop-simplifycfg -loop-distribute -mldst-motion -strip-debug-declare -div-rem-pairs -indvars -simple-loop-unswitch -lowerinvoke -lower-guard-intrinsic -globalopt -loop-data-prefetch -globaldce -always-inline -adce -lower-constant-intrinsics -newgvn -coro-cleanup -sccp -coro-cleanup -always-inline -ee-instrument -separate-const-offset-from-gep -tailcallelim -loop-idiom -adce -bdce -mergereturn -lower-matrix-intrinsics -redundant-dbg-inst-elim -loop-interchange -loop-simplifycfg -early-cse-memssa -nary-reassociate -alignment-from-assumptions -loop-deletion -loop-vectorize -strip -reassociate -break-crit-edges -load-store-vectorizer -elim-avail-extern -sccp -called-value-propagation -slsr -flattencfg -instcombine -cross-dso-cfi -name-anon-globals -simple-loop-unswitch -float2int -adce -correlated-propagation -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9846938775510204,61.78147768974304,opt -loop-unroll-and-jam -simplifycfg -lower-guard-intrinsic -consthoist -lower-matrix-intrinsics -div-rem-pairs -loop-sink -early-cse-memssa -attributor -loop-unroll-and-jam -instnamer -globalopt -div-rem-pairs -dse -coro-early -licm -lowerswitch -loop-interchange -irce -loop-unswitch -called-value-propagation -canonicalize-aliases -loop-distribute -globalsplit -strip-nondebug -mldst-motion -lower-matrix-intrinsics -licm -mldst-motion -attributor -prune-eh -ipconstprop -loop-predication -div-rem-pairs -argpromotion -tailcallelim -consthoist -prune-eh -licm -loop-simplifycfg -die -loop-guard-widening -reassociate -consthoist -die -tailcallelim -ee-instrument -strip-debug-declare -consthoist -nary-reassociate -forceattrs -simplifycfg -strip-debug-declare -jump-threading -dse -sancov -mem2reg -irce -loop-guard-widening -mldst-motion -loop-idiom -loop-sink -prune-eh -deadargelim -separate-const-offset-from-gep -lowerinvoke -newgvn -elim-avail-extern -aggressive-instcombine -load-store-vectorizer -sroa -mldst-motion -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9846938775510204,61.819502115249634,opt -elim-avail-extern -tailcallelim -indvars -loop-reduce -loop-reduce -loop-fusion -scalarizer -coro-elide -load-store-vectorizer -ipsccp -loop-simplifycfg -lower-expect -loop-interchange -argpromotion -memcpyopt -aggressive-instcombine -alignment-from-assumptions -aggressive-instcombine -loop-reduce -barrier -speculative-execution -speculative-execution -lower-guard-intrinsic -canonicalize-aliases -pgo-memop-opt -barrier -scalarizer -adce -ipsccp -loop-distribute -die -break-crit-edges -attributor -infer-address-spaces -loop-vectorize -mldst-motion -simple-loop-unswitch -mergefunc -break-crit-edges -simple-loop-unswitch -strip-nondebug -loop-simplifycfg -sroa -infer-address-spaces -sccp -bdce -globalsplit -loop-unroll -bdce -guard-widening -loop-simplify -rpo-functionattrs -redundant-dbg-inst-elim -argpromotion -lowerswitch -coro-split -forceattrs -lower-matrix-intrinsics -functionattrs -lower-constant-intrinsics -loop-idiom -post-inline-ee-instrument -mergefunc -loop-guard-widening -post-inline-ee-instrument -constmerge -deadargelim -pgo-memop-opt -loop-simplify -loop-sink -globalsplit -coro-cleanup -load-store-vectorizer -attributor -functionattrs -forceattrs -dse -forceattrs -constprop -correlated-propagation -gvn-hoist -licm -instsimplify -newgvn -mldst-motion -coro-cleanup -div-rem-pairs -separate-const-offset-from-gep -functionattrs -coro-split -name-anon-globals -mergereturn -strip-nondebug -canonicalize-aliases -cross-dso-cfi -instcombine -memcpyopt -coro-cleanup -globalopt -loop-predication -early-cse-memssa -pgo-memop-opt -sccp -sancov -early-cse-memssa -canonicalize-aliases -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9846938775510206,61.72368288040161,opt -redundant-dbg-inst-elim -strip-debug-declare -float2int -coro-elide -coro-early -ipsccp -memcpyopt -indvars -jump-threading -loop-instsimplify -loop-reduce -mergefunc -div-rem-pairs -sroa -speculative-execution -lower-expect -callsite-splitting -loop-simplifycfg -correlated-propagation -dse -lcssa -redundant-dbg-inst-elim -memcpyopt -libcalls-shrinkwrap -partially-inline-libcalls -memcpyopt -coro-elide -loop-idiom -constmerge -loop-load-elim -loop-instsimplify -constmerge -sink -loop-interchange -correlated-propagation -attributor -rpo-functionattrs -aggressive-instcombine -mldst-motion -sancov -break-crit-edges -loop-fusion -consthoist -redundant-dbg-inst-elim -sccp -lower-matrix-intrinsics -loop-versioning-licm -lowerinvoke -called-value-propagation -cross-dso-cfi -sink -correlated-propagation -loop-fusion -globalsplit -coro-split -globaldce -name-anon-globals -tailcallelim -lowerswitch -globaldce -lowerswitch -reassociate -slp-vectorizer -reg2mem -functionattrs -lowerinvoke -barrier -elim-avail-extern -dce -load-store-vectorizer -coro-early -infer-address-spaces -sroa -scalarizer -loop-reroll -lower-expect -loop-versioning-licm -slsr -loop-reduce -libcalls-shrinkwrap -consthoist -attributor -loop-simplifycfg -loop-deletion -adce -infer-address-spaces -loop-versioning -attributor -lower-constant-intrinsics -load-store-vectorizer -loop-unroll-and-jam -dse -instsimplify -lower-constant-intrinsics -loop-unroll-and-jam -irce -prune-eh -newgvn -simplifycfg -break-crit-edges -irce -dse -lower-constant-intrinsics -always-inline -die -sroa -instcombine -inferattrs -coro-early -loop-reroll -simplifycfg -constprop -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -bdce -float2int -canonicalize-aliases -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9948979591836733,61.600799798965454,opt -argpromotion -irce -post-inline-ee-instrument -canonicalize-aliases -pgo-memop-opt -rpo-functionattrs -lower-constant-intrinsics -deadargelim -slp-vectorizer -name-anon-globals -loop-simplify -loop-load-elim -canonicalize-aliases -lower-constant-intrinsics -attributor -loop-deletion -globaldce -coro-early -mem2reg -adce -redundant-dbg-inst-elim -loop-versioning-licm -loweratomic -loop-interchange -partially-inline-libcalls -simplifycfg -coro-elide -globalopt -jump-threading -lowerinvoke -post-inline-ee-instrument -callsite-splitting -partially-inline-libcalls -infer-address-spaces -loop-distribute -redundant-dbg-inst-elim -called-value-propagation -mldst-motion -div-rem-pairs -attributor -strip-debug-declare -loop-versioning-licm -sroa -barrier -early-cse-memssa -loop-deletion -guard-widening -gvn-hoist -loop-predication -post-inline-ee-instrument -loop-unroll-and-jam -break-crit-edges -strip-dead-prototypes -strip-debug-declare -ipsccp -loop-unroll-and-jam -loop-fusion -callsite-splitting -loop-reroll -sink -loop-fusion -loop-unroll -early-cse-memssa -strip-dead-prototypes -elim-avail-extern -instsimplify -globalopt -deadargelim -die -argpromotion -called-value-propagation -ipsccp -attributor -argpromotion -loop-versioning-licm -load-store-vectorizer -lowerinvoke -separate-const-offset-from-gep -libcalls-shrinkwrap -loop-unroll -partial-inliner -scalarizer -sccp -callsite-splitting -elim-avail-extern -sroa -die -memcpyopt -deadargelim -slp-vectorizer -ipconstprop -name-anon-globals -sroa -loop-vectorize -loop-versioning-licm -coro-early -loop-reduce -constmerge -sink -loop-versioning -memcpyopt -loop-versioning -elim-avail-extern -loop-data-prefetch -barrier -simple-loop-unswitch -name-anon-globals -ee-instrument -add-discriminators -guard-widening -loop-reroll -loop-instsimplify -forceattrs -guard-widening -mldst-motion -mergefunc -barrier -mem2reg -redundant-dbg-inst-elim -guard-widening -instnamer -loop-reroll -instcombine -irce -mergefunc -strip-debug-declare -partial-inliner -lower-constant-intrinsics -loop-vectorize -instsimplify -newgvn -strip -strip-dead-prototypes -reassociate -functionattrs -tailcallelim -rewrite-statepoints-for-gc -loop-distribute -add-discriminators -lower-constant-intrinsics -functionattrs -guard-widening -loop-versioning -loop-load-elim -mem2reg -lowerinvoke -div-rem-pairs -gvn-hoist -callsite-splitting -constmerge -argpromotion -pgo-memop-opt -tailcallelim -rpo-functionattrs -slp-vectorizer -break-crit-edges -lower-constant-intrinsics -guard-widening -lower-expect -deadargelim -libcalls-shrinkwrap -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9948979591836736,61.76611328125,opt -loop-idiom -pgo-memop-opt -flattencfg -attributor -flattencfg -strip -loop-deletion -elim-avail-extern -jump-threading -loop-data-prefetch -lower-expect -load-store-vectorizer -strip-debug-declare -partially-inline-libcalls -consthoist -mem2reg -loop-deletion -licm -lowerswitch -gvn-hoist -loop-simplify -mergereturn -alignment-from-assumptions -loop-simplify -mergefunc -loop-fusion -strip-debug-declare -deadargelim -constmerge -strip-debug-declare -consthoist -libcalls-shrinkwrap -partially-inline-libcalls -early-cse-memssa -loop-sink -newgvn -constmerge -strip-nondebug -speculative-execution -load-store-vectorizer -lowerinvoke -adce -always-inline -bdce -always-inline -lower-constant-intrinsics -dce -constprop -coro-early -strip-debug-declare -constprop -pgo-memop-opt -strip-nondebug -loop-sink -memcpyopt -forceattrs -rewrite-statepoints-for-gc -strip-nondebug -loop-vectorize -load-store-vectorizer -coro-elide -coro-cleanup -simple-loop-unswitch -pgo-memop-opt -always-inline -lower-expect -loop-unroll -indvars -loop-data-prefetch -loop-data-prefetch -post-inline-ee-instrument -dce -lower-matrix-intrinsics -canonicalize-aliases -instcombine -loop-instsimplify -irce -loop-guard-widening -mem2reg -correlated-propagation -instsimplify -loop-predication -barrier -callsite-splitting -coro-split -mem2reg -reassociate -reassociate -bdce -loop-data-prefetch -loop-reroll -rpo-functionattrs -correlated-propagation -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/dijkstra,0.9948979591836736,61.780680894851685,opt -tailcallelim -pgo-memop-opt -loop-simplifycfg -loop-instsimplify -coro-elide -hotcoldsplit -correlated-propagation -newgvn -coro-cleanup -nary-reassociate -constprop -coro-early -always-inline -strip-nondebug -functionattrs -lowerswitch -separate-const-offset-from-gep -mergeicmps -simplifycfg -loop-instsimplify -die -ee-instrument -loop-simplifycfg -redundant-dbg-inst-elim -ipsccp -loop-unroll-and-jam -load-store-vectorizer -simple-loop-unswitch -licm -adce -callsite-splitting -prune-eh -flattencfg -inferattrs -ee-instrument -lower-constant-intrinsics -add-discriminators -simplifycfg -loop-reduce -lowerswitch -sancov -loop-reduce -newgvn -alignment-from-assumptions -elim-avail-extern -coro-early -indvars -sroa -speculative-execution -indvars -reassociate -licm -reassociate -constprop -loop-instsimplify -add-discriminators -attributor -called-value-propagation -insert-gcov-profiling -loop-unroll -rewrite-statepoints-for-gc -strip-dead-prototypes -adce -dse -licm -post-inline-ee-instrument -instcombine -simple-loop-unswitch -canonicalize-aliases -lower-widenable-condition -constmerge -newgvn -coro-cleanup -infer-address-spaces -loop-interchange -instsimplify -canonicalize-aliases -loop-versioning -separate-const-offset-from-gep -forceattrs -adce -always-inline -reg2mem -constmerge -sancov -aggressive-instcombine -scalarizer -forceattrs -ipsccp -ee-instrument -scalarizer -reg2mem -redundant-dbg-inst-elim -sroa -inject-tli-mappings -barrier -bdce -flattencfg -nary-reassociate -instnamer -loop-load-elim -reassociate -loop-vectorize -sccp -nary-reassociate -separate-const-offset-from-gep -correlated-propagation -instnamer -strip-debug-declare -barrier -div-rem-pairs -aggressive-instcombine -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9683191859499436,742.1303203105927,opt -loweratomic -dse -add-discriminators -alignment-from-assumptions -attributor -memcpyopt -post-inline-ee-instrument -reg2mem -alignment-from-assumptions -guard-widening -coro-early -infer-address-spaces -elim-avail-extern -simplifycfg -globaldce -mergeicmps -loop-interchange -alignment-from-assumptions -ipsccp -rewrite-statepoints-for-gc -break-crit-edges -lower-matrix-intrinsics -reassociate -dse -loop-simplifycfg -infer-address-spaces -loop-unroll-and-jam -loop-versioning -loop-unswitch -indvars -barrier -flattencfg -newgvn -mergereturn -inject-tli-mappings -lower-matrix-intrinsics -loop-predication -slp-vectorizer -coro-split -gvn-hoist -dse -indvars -coro-split -called-value-propagation -newgvn -loop-unroll-and-jam -guard-widening -lower-expect -slp-vectorizer -sink -alignment-from-assumptions -lower-constant-intrinsics -lower-widenable-condition -loop-simplify -globaldce -attributor -mldst-motion -early-cse-memssa -inject-tli-mappings -strip-dead-prototypes -instnamer -dse -globalopt -ipsccp -float2int -coro-early -argpromotion -slp-vectorizer -correlated-propagation -licm -instnamer -coro-cleanup -mergereturn -irce -globaldce -mergeicmps -instsimplify -sancov -loop-reroll -lcssa -lowerswitch -jump-threading -constprop -die -dse -indvars -strip-dead-prototypes -always-inline -loop-distribute -slsr -mergereturn -lower-expect -loop-simplifycfg -mldst-motion -loop-simplify -strip-dead-prototypes -instsimplify -loop-reroll -separate-const-offset-from-gep -lowerinvoke -float2int -loop-data-prefetch -loop-versioning -mem2reg -gvn-hoist -sccp -functionattrs -loop-unswitch -loop-distribute -flattencfg -insert-gcov-profiling -prune-eh -tailcallelim -inferattrs -always-inline -indvars -dse -aggressive-instcombine -consthoist -post-inline-ee-instrument -ipsccp -lower-expect -globalsplit -globaldce -loop-vectorize -loop-reroll -loop-simplifycfg -loop-unroll -memcpyopt -instsimplify -coro-cleanup -coro-cleanup -loop-reroll -loweratomic -mldst-motion -lower-constant-intrinsics -add-discriminators -tailcallelim -strip -loop-data-prefetch -coro-cleanup -coro-cleanup -bdce -slp-vectorizer -newgvn -attributor -lower-expect -loop-versioning -callsite-splitting -libcalls-shrinkwrap -dse -irce -instcombine -ipconstprop -dse -strip-dead-prototypes -libcalls-shrinkwrap -coro-cleanup -guard-widening -inferattrs -barrier -early-cse-memssa -separate-const-offset-from-gep -lowerswitch -instsimplify -loop-distribute -lower-constant-intrinsics -prune-eh -partially-inline-libcalls -lower-matrix-intrinsics -insert-gcov-profiling -coro-elide -mem2reg -loop-versioning -scalarizer -alignment-from-assumptions -coro-cleanup -consthoist -elim-avail-extern -dce -loop-reduce -lowerswitch -strip-debug-declare -indvars -cross-dso-cfi -loop-instsimplify -globalsplit -loop-deletion -slp-vectorizer -sccp -break-crit-edges -add-discriminators -loop-reduce -indvars -coro-elide -loop-interchange -coro-split -strip-debug-declare -ipconstprop -loop-simplify -globalsplit -coro-elide -sroa -coro-cleanup -flattencfg -loop-data-prefetch -sccp -loweratomic -memcpyopt -loop-vectorize -functionattrs -loop-unroll -canonicalize-aliases -deadargelim -insert-gcov-profiling -irce -mergefunc -loop-interchange -lowerinvoke -ee-instrument -adce -constprop -lcssa -hotcoldsplit -aggressive-instcombine -mem2reg -called-value-propagation -lcssa -tailcallelim -inject-tli-mappings -bdce -sink -dse -inject-tli-mappings -constprop -forceattrs -functionattrs -hotcoldsplit -ipconstprop -consthoist -strip -lower-expect -infer-address-spaces -sroa -mergereturn -dse -newgvn -dse -slsr -loop-fusion -flattencfg -loop-versioning-licm -sancov -always-inline -partially-inline-libcalls -add-discriminators -elim-avail-extern -loop-interchange -sroa -slsr -lower-guard-intrinsic -dce -load-store-vectorizer -simplifycfg -rpo-functionattrs -name-anon-globals -elim-avail-extern -gvn-hoist -cross-dso-cfi -instsimplify -jump-threading input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9694556389925783,492.34522247314453,opt -tailcallelim -loop-rotate -adce -constprop -loop-rotate -rewrite-statepoints-for-gc -elim-avail-extern -post-inline-ee-instrument -strip-debug-declare -constprop -functionattrs -sccp -gvn -flattencfg -constprop -loop-instsimplify -separate-const-offset-from-gep -sccp -die -attributor -canonicalize-aliases -indvars -constprop -sink -loop-reroll -elim-avail-extern -loop-instsimplify -rewrite-statepoints-for-gc -tailcallelim -lower-widenable-condition -irce -hotcoldsplit -float2int -coro-early -sancov -ipsccp -loop-deletion -simplifycfg -loop-guard-widening -strip -callsite-splitting -constmerge -loweratomic -loop-deletion -loop-simplifycfg -loop-predication -mergeicmps -post-inline-ee-instrument -sroa -ee-instrument -coro-split -loop-simplify -lcssa -correlated-propagation -mergeicmps -lowerinvoke -instcombine -loop-guard-widening -separate-const-offset-from-gep -lowerswitch -newgvn -instcombine -simplifycfg -deadargelim -inject-tli-mappings -mergeicmps -float2int -lower-matrix-intrinsics -instsimplify input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9789275380056125,292.0016040802002,opt -forceattrs -separate-const-offset-from-gep -hotcoldsplit -attributor -indvars -loop-unroll -add-discriminators -licm -canonicalize-aliases -reg2mem -bdce -slp-vectorizer -lower-matrix-intrinsics -loop-reduce -loop-distribute -guard-widening -coro-early -early-cse-memssa -load-store-vectorizer -alignment-from-assumptions -name-anon-globals -argpromotion -loop-load-elim -always-inline -early-cse-memssa -licm -memcpyopt -gvn -name-anon-globals -callsite-splitting -gvn-hoist -loop-instsimplify -gvn-hoist -loop-versioning -mldst-motion -attributor -separate-const-offset-from-gep -loop-fusion -rewrite-statepoints-for-gc -dce -coro-early -forceattrs -loop-sink -dce -lower-expect -consthoist -newgvn -loop-unroll-and-jam -memcpyopt -reassociate -speculative-execution -nary-reassociate -mergefunc -loop-deletion -ipsccp -bdce -tailcallelim -rewrite-statepoints-for-gc -scalarizer -functionattrs -deadargelim -loop-simplify -irce -attributor -name-anon-globals -loop-versioning -loop-vectorize -flattencfg -globalopt -partially-inline-libcalls -coro-early -early-cse-memssa -coro-cleanup -strip-dead-prototypes -name-anon-globals -rpo-functionattrs -lower-constant-intrinsics -redundant-dbg-inst-elim -prune-eh -loop-reroll -separate-const-offset-from-gep -sroa -lowerinvoke -irce -loop-unroll-and-jam -rewrite-statepoints-for-gc -coro-split -inject-tli-mappings -name-anon-globals -cross-dso-cfi -mergeicmps -aggressive-instcombine -loop-vectorize -memcpyopt -globaldce -guard-widening -ipsccp -jump-threading -strip -loop-simplify -mergereturn -instcombine -gvn -loop-vectorize -bdce -nary-reassociate -barrier -dse input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9792815868381253,275.35339760780334,opt -rewrite-statepoints-for-gc -loop-unroll-and-jam -partially-inline-libcalls -coro-elide -globalopt -alignment-from-assumptions -div-rem-pairs -lowerinvoke -inferattrs -lower-constant-intrinsics -loop-load-elim -instnamer -loweratomic -constmerge -loop-vectorize -post-inline-ee-instrument -loop-vectorize -loop-reroll -instnamer -loop-simplify -coro-elide -loop-unroll -loop-versioning -partial-inliner -loop-deletion -rpo-functionattrs -simplifycfg -loweratomic -jump-threading -reg2mem -loop-unroll-and-jam -indvars -instsimplify -ipconstprop -inject-tli-mappings -callsite-splitting -called-value-propagation -float2int -break-crit-edges -correlated-propagation -coro-early -infer-address-spaces -strip-dead-prototypes -loop-idiom -loop-interchange -memcpyopt -dce -loop-unroll -consthoist -lower-expect -mergereturn -dce -loop-fusion -rewrite-statepoints-for-gc -loop-idiom -loop-unroll -instsimplify -aggressive-instcombine -called-value-propagation -sroa -loop-idiom -loop-predication -slp-vectorizer -libcalls-shrinkwrap -strip -loop-versioning-licm -rewrite-statepoints-for-gc -barrier -instcombine -loop-unroll -lower-constant-intrinsics -partial-inliner -simple-loop-unswitch -mergeicmps -mergeicmps -insert-gcov-profiling -loweratomic -mem2reg -hotcoldsplit -lower-matrix-intrinsics -loop-interchange -constprop -simplifycfg -die -alignment-from-assumptions -rpo-functionattrs -newgvn input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9801208137003785,266.2952723503113,opt -strip-debug-declare -simple-loop-unswitch -div-rem-pairs -rewrite-statepoints-for-gc -loop-sink -insert-gcov-profiling -simplifycfg -flattencfg -lower-widenable-condition -loop-simplifycfg -strip-nondebug -adce -partial-inliner -strip-dead-prototypes -add-discriminators -rewrite-statepoints-for-gc -lower-widenable-condition -loop-unroll-and-jam -coro-early -coro-split -reassociate -separate-const-offset-from-gep -hotcoldsplit -lowerinvoke -reassociate -strip-debug-declare -rpo-functionattrs -flattencfg -prune-eh -load-store-vectorizer -barrier -strip-debug-declare -sroa -coro-split -gvn -infer-address-spaces -aggressive-instcombine -sink -newgvn -bdce -loweratomic -dce -prune-eh -loop-vectorize -simple-loop-unswitch -redundant-dbg-inst-elim -strip -loop-interchange -rpo-functionattrs -nary-reassociate -ipsccp -rpo-functionattrs -loop-fusion -loop-vectorize -sancov -globaldce -instcombine -loop-unroll -partial-inliner -newgvn -instcombine -functionattrs -insert-gcov-profiling -coro-cleanup -loop-guard-widening -infer-address-spaces -loop-unroll-and-jam -jump-threading -called-value-propagation -loop-simplifycfg -aggressive-instcombine -constprop -loop-vectorize -strip-nondebug -lcssa -elim-avail-extern -alignment-from-assumptions -lower-guard-intrinsic -gvn -slsr -simple-loop-unswitch -redundant-dbg-inst-elim -scalarizer -lcssa -lowerinvoke -redundant-dbg-inst-elim -callsite-splitting -sink -constprop -tailcallelim -lower-guard-intrinsic -redundant-dbg-inst-elim -loop-load-elim -div-rem-pairs -libcalls-shrinkwrap -float2int -loop-vectorize -guard-widening -jump-threading -functionattrs -mldst-motion -gvn -mergereturn -constprop -dse -alignment-from-assumptions -infer-address-spaces -coro-early -simplifycfg -die input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9816987350403442,358.9749844074249,opt -mem2reg -lower-expect -sccp -reassociate -mergereturn -correlated-propagation -barrier -attributor -simplifycfg -rpo-functionattrs -rewrite-statepoints-for-gc -aggressive-instcombine -slsr -loop-load-elim -constprop -instsimplify -add-discriminators -lowerinvoke -scalarizer -instsimplify -insert-gcov-profiling -coro-early -loop-sink -deadargelim -aggressive-instcombine -forceattrs -loop-unroll-and-jam -constprop -globalsplit -bdce -mergereturn -speculative-execution -strip-dead-prototypes -lower-matrix-intrinsics -sancov -nary-reassociate -callsite-splitting -ipconstprop -globaldce -simplifycfg -partially-inline-libcalls -redundant-dbg-inst-elim -ipconstprop -separate-const-offset-from-gep -licm -elim-avail-extern -scalarizer -alignment-from-assumptions -ee-instrument -lower-constant-intrinsics -partially-inline-libcalls -hotcoldsplit -instcombine -strip-nondebug -forceattrs -jump-threading -loop-distribute -lcssa -strip-debug-declare -loop-unroll -constmerge -deadargelim -globalopt -constmerge -lower-constant-intrinsics -inject-tli-mappings -mem2reg -sancov -always-inline -constmerge -deadargelim -globaldce -loop-sink -name-anon-globals -loop-instsimplify -post-inline-ee-instrument -loop-simplify -instsimplify -die -strip -mergereturn -mem2reg -elim-avail-extern -lower-matrix-intrinsics -indvars -break-crit-edges -scalarizer -alignment-from-assumptions -tailcallelim -loop-vectorize -speculative-execution -inject-tli-mappings -lowerswitch -instnamer -attributor -gvn-hoist -instcombine -die -coro-split -lower-guard-intrinsic -ee-instrument -sink -loop-versioning -reassociate -loop-versioning -dce -mergereturn -slsr -attributor -mergereturn -name-anon-globals -speculative-execution -constprop -speculative-execution -rpo-functionattrs -loop-vectorize -ipconstprop -canonicalize-aliases -mergeicmps -canonicalize-aliases -loop-simplify -loop-instsimplify -separate-const-offset-from-gep -lower-widenable-condition -newgvn -strip-nondebug -speculative-execution -coro-cleanup -globaldce -loop-sink -bdce -globaldce -dce -instsimplify -globaldce -instcombine -globalopt -callsite-splitting -jump-threading -bdce input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.985794336967069,404.01260805130005,opt -coro-cleanup -reassociate -called-value-propagation -break-crit-edges -pgo-memop-opt -loop-vectorize -loop-versioning-licm -mem2reg -indvars -mem2reg -sroa -strip-dead-prototypes -mldst-motion -add-discriminators -loop-unswitch -loop-distribute -loop-unroll-and-jam -strip -rewrite-statepoints-for-gc -forceattrs -reassociate -newgvn -jump-threading -attributor -flattencfg -loop-instsimplify -slsr -loop-deletion -loop-reroll -lower-expect -slp-vectorizer -reg2mem -loop-versioning -ipsccp -indvars -newgvn -globalsplit -tailcallelim -speculative-execution -sancov -strip-nondebug -licm -lower-expect -coro-split -globaldce -loop-load-elim -consthoist -loop-reroll -loop-versioning -constmerge -loop-guard-widening -strip -infer-address-spaces -lcssa -loop-versioning -break-crit-edges -ipsccp -loop-sink -post-inline-ee-instrument -loop-deletion -lowerinvoke -forceattrs -ipsccp -add-discriminators -ipconstprop -globaldce -add-discriminators -aggressive-instcombine -inject-tli-mappings -float2int -deadargelim -separate-const-offset-from-gep -strip-debug-declare -mergereturn -licm -name-anon-globals -add-discriminators -sroa -instcombine -strip-nondebug -libcalls-shrinkwrap -consthoist -mergereturn -loop-reroll -separate-const-offset-from-gep -aggressive-instcombine -loop-idiom -sancov -slsr -sink -mergereturn -gvn -rewrite-statepoints-for-gc -partially-inline-libcalls -loop-unroll -canonicalize-aliases -constprop -inject-tli-mappings -loop-unroll-and-jam -flattencfg -prune-eh -dse -licm -adce -loop-deletion -instnamer -div-rem-pairs -add-discriminators -early-cse-memssa -canonicalize-aliases -guard-widening -loop-idiom -lcssa -lowerinvoke -lower-constant-intrinsics -redundant-dbg-inst-elim -reassociate -loop-versioning-licm -name-anon-globals -div-rem-pairs -loop-data-prefetch -mem2reg -loop-sink -instcombine -loop-deletion -lower-widenable-condition -strip -loop-reroll -functionattrs -ipsccp -loop-load-elim -redundant-dbg-inst-elim -flattencfg -deadargelim -jump-threading -bdce -consthoist -nary-reassociate -newgvn input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9872236452168439,293.0374753475189,opt -lowerswitch -name-anon-globals -constmerge -canonicalize-aliases -post-inline-ee-instrument -inject-tli-mappings -consthoist -sink -loop-versioning -strip-nondebug -alignment-from-assumptions -sancov -partially-inline-libcalls -correlated-propagation -globaldce -consthoist -aggressive-instcombine -dse -loop-vectorize -lower-expect -div-rem-pairs -loop-deletion -pgo-memop-opt -loop-simplify -memcpyopt -barrier -globalopt -flattencfg -sroa -memcpyopt -loop-deletion -mergereturn -prune-eh -div-rem-pairs -insert-gcov-profiling -break-crit-edges -lowerinvoke -float2int -elim-avail-extern -prune-eh -loop-reduce -loop-predication -tailcallelim -argpromotion -argpromotion -memcpyopt -guard-widening -partially-inline-libcalls -barrier -globaldce -indvars -strip-dead-prototypes -constprop -instcombine -jump-threading -redundant-dbg-inst-elim -float2int -memcpyopt -attributor -die -called-value-propagation -functionattrs -alignment-from-assumptions -speculative-execution -simplifycfg -gvn -lower-expect -add-discriminators -constmerge -loop-load-elim -break-crit-edges -ipsccp -globalsplit -jump-threading -strip -div-rem-pairs -functionattrs -pgo-memop-opt -dce -mem2reg -canonicalize-aliases -instsimplify -functionattrs -mem2reg -hotcoldsplit -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ghostscript,0.9906854560236381,478.18332958221436,opt -ee-instrument -aggressive-instcombine -lower-constant-intrinsics -post-inline-ee-instrument -simplifycfg -licm -scalarizer -slsr -simple-loop-unswitch -add-discriminators -constmerge -elim-avail-extern -tailcallelim -rewrite-statepoints-for-gc -scalarizer -instsimplify -consthoist -correlated-propagation -mergereturn -callsite-splitting -reassociate -load-store-vectorizer -sroa -inferattrs -div-rem-pairs -die -loop-versioning -strip-nondebug -scalarizer -reassociate -attributor -loop-simplifycfg -loop-unroll-and-jam -flattencfg -argpromotion -instcombine -loop-simplify -loweratomic -speculative-execution -always-inline -strip-nondebug -gvn-hoist -strip -loop-interchange -canonicalize-aliases -load-store-vectorizer -newgvn -lcssa -canonicalize-aliases -break-crit-edges -jump-threading -infer-address-spaces -libcalls-shrinkwrap -correlated-propagation -jump-threading -inject-tli-mappings -name-anon-globals -always-inline -memcpyopt -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/ghostscript,1.001337517811716,288.97663617134094,opt -loop-interchange -lowerswitch -loop-fusion -mergeicmps -constprop -reassociate -attributor -mem2reg -lower-guard-intrinsic -argpromotion -mergefunc -hotcoldsplit -coro-split -name-anon-globals -newgvn -post-inline-ee-instrument -instcombine -always-inline -speculative-execution -coro-elide -prune-eh -nary-reassociate -licm -prune-eh -canonicalize-aliases -jump-threading -canonicalize-aliases -instsimplify -sink -dce -strip-dead-prototypes -strip -name-anon-globals -memcpyopt -forceattrs -gvn-hoist -post-inline-ee-instrument -canonicalize-aliases -redundant-dbg-inst-elim -prune-eh -sroa -simplifycfg -functionattrs -infer-address-spaces -lower-guard-intrinsic -add-discriminators -loop-instsimplify -mem2reg -irce -simple-loop-unswitch -flattencfg -newgvn -newgvn input.bc -o output.bc +benchmark://cbench-v1/gsm,1.049551792828685,62.63266634941101,opt -called-value-propagation -dce -gvn-hoist -irce -sroa -argpromotion -lcssa -barrier -adce -nary-reassociate -ipconstprop -loop-unroll-and-jam -licm -adce -bdce -lower-widenable-condition -cross-dso-cfi -aggressive-instcombine -loop-reroll -memcpyopt -mldst-motion -loop-unroll -loop-simplifycfg -guard-widening -loop-reroll -loop-distribute -globalsplit -loop-fusion -slsr -newgvn -argpromotion -loop-interchange -coro-cleanup -div-rem-pairs -adce -sink -canonicalize-aliases -strip-dead-prototypes -slp-vectorizer -simplifycfg -gvn-hoist -coro-split -functionattrs -loop-vectorize -loop-reroll -globalopt -coro-cleanup -lower-constant-intrinsics -loop-reroll -load-store-vectorizer -inferattrs -reassociate -instsimplify -coro-elide -strip-nondebug -instcombine -loop-instsimplify -lower-expect -pgo-memop-opt -loop-interchange -early-cse-memssa -loop-vectorize -elim-avail-extern -consthoist -consthoist -slsr -loop-unswitch -loop-distribute -guard-widening -loop-fusion -coro-split -gvn-hoist -lower-guard-intrinsic -canonicalize-aliases -lower-guard-intrinsic -simplifycfg -jump-threading input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0515438247011952,64.79662609100342,opt -canonicalize-aliases -nary-reassociate -loop-load-elim -slp-vectorizer -globalsplit -loop-distribute -correlated-propagation -argpromotion -instcombine -sroa -ipsccp -loop-versioning -ipsccp -loop-unroll-and-jam -adce -always-inline -argpromotion -partially-inline-libcalls -dse -rpo-functionattrs -instcombine -sancov -loop-instsimplify -barrier -attributor -insert-gcov-profiling -div-rem-pairs -load-store-vectorizer -loop-versioning-licm -constmerge -coro-elide -loop-load-elim -consthoist -simplifycfg -separate-const-offset-from-gep -infer-address-spaces -lower-widenable-condition -loop-deletion -mergefunc -loop-instsimplify -load-store-vectorizer -consthoist -irce -post-inline-ee-instrument -callsite-splitting -cross-dso-cfi -pgo-memop-opt -strip -simplifycfg -guard-widening -strip-nondebug -load-store-vectorizer -loop-reduce -mergereturn -ipconstprop -mergereturn -loop-sink -flattencfg -float2int -lowerinvoke -infer-address-spaces -simple-loop-unswitch -gvn -constmerge -mem2reg -mergereturn -sccp -guard-widening -name-anon-globals -loop-reduce -slp-vectorizer -indvars -sancov -loop-unswitch -slsr -mldst-motion -loop-instsimplify -always-inline -attributor -instcombine input.bc -o output.bc +benchmark://cbench-v1/gsm,1.052290836653386,63.34988474845886,opt -coro-elide -speculative-execution -mergeicmps -globaldce -speculative-execution -gvn -slp-vectorizer -div-rem-pairs -ipsccp -coro-cleanup -constprop -attributor -strip-dead-prototypes -callsite-splitting -mergefunc -consthoist -dce -aggressive-instcombine -loop-sink -strip -mem2reg -inferattrs -loop-interchange -mem2reg -strip -consthoist -mergereturn -bdce -mem2reg -callsite-splitting -loop-deletion -inferattrs -constmerge -ee-instrument -separate-const-offset-from-gep -loop-simplifycfg -ee-instrument -irce -argpromotion -barrier -separate-const-offset-from-gep -jump-threading -mergeicmps -dce -adce -loop-data-prefetch -loweratomic -coro-split -rpo-functionattrs -ipconstprop -float2int -sroa -lower-matrix-intrinsics -loop-vectorize -dce -guard-widening -coro-elide -simplifycfg -loop-unroll-and-jam -mem2reg -lower-widenable-condition -jump-threading -inferattrs -mergereturn -functionattrs -loop-guard-widening -loop-fusion -insert-gcov-profiling -irce -loop-simplify -lowerinvoke -constmerge -loop-reroll -strip-dead-prototypes -sroa -mldst-motion -slsr -float2int -loop-simplify -functionattrs -loop-data-prefetch -lower-expect -infer-address-spaces -tailcallelim -instsimplify -cross-dso-cfi -dce -irce -instcombine -coro-split -newgvn -loop-versioning -always-inline -lower-matrix-intrinsics -mergeicmps -functionattrs -post-inline-ee-instrument -coro-early -mergeicmps -licm -instnamer -slp-vectorizer -speculative-execution -functionattrs -coro-early -loop-versioning -indvars -loop-idiom -globalopt -strip-dead-prototypes -called-value-propagation -name-anon-globals -nary-reassociate -loop-instsimplify -loop-reduce -mergefunc -loop-predication -mergereturn -rpo-functionattrs -libcalls-shrinkwrap -dse -memcpyopt -lower-expect -indvars -dce -instcombine -cross-dso-cfi -die -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0586404382470118,62.90404176712036,opt -always-inline -lower-matrix-intrinsics -lcssa -dse -deadargelim -pgo-memop-opt -coro-elide -guard-widening -separate-const-offset-from-gep -insert-gcov-profiling -libcalls-shrinkwrap -separate-const-offset-from-gep -loop-instsimplify -lower-constant-intrinsics -nary-reassociate -coro-early -prune-eh -indvars -loop-unswitch -barrier -sccp -deadargelim -constprop -loop-reroll -sink -loop-versioning-licm -loop-predication -ipsccp -ipconstprop -globalopt -sink -constprop -loop-instsimplify -lowerinvoke -pgo-memop-opt -early-cse-memssa -lowerinvoke -callsite-splitting -deadargelim -pgo-memop-opt -sancov -post-inline-ee-instrument -simple-loop-unswitch -sroa -loop-versioning-licm -loop-interchange -instsimplify -indvars -flattencfg -slp-vectorizer -always-inline -instcombine -infer-address-spaces -add-discriminators -break-crit-edges -ipconstprop -slsr -simplifycfg -correlated-propagation -load-store-vectorizer -instcombine -rewrite-statepoints-for-gc -lower-widenable-condition -instcombine -div-rem-pairs -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0632470119521908,65.17371106147766,opt -ipconstprop -mem2reg -reg2mem -ee-instrument -inferattrs -break-crit-edges -sancov -loop-vectorize -rpo-functionattrs -consthoist -loop-unroll-and-jam -coro-elide -always-inline -loop-fusion -bdce -loop-idiom -functionattrs -strip-nondebug -constprop -div-rem-pairs -loop-simplify -slp-vectorizer -loop-sink -name-anon-globals -loop-interchange -loop-load-elim -rpo-functionattrs -redundant-dbg-inst-elim -guard-widening -add-discriminators -correlated-propagation -instcombine -loop-predication -memcpyopt -early-cse-memssa -insert-gcov-profiling -rpo-functionattrs -gvn -redundant-dbg-inst-elim -loop-unroll-and-jam -div-rem-pairs -loop-reduce -ipconstprop -consthoist -functionattrs -mergereturn -loop-simplify -loop-guard-widening -sink -newgvn -lower-guard-intrinsic -loop-simplifycfg -separate-const-offset-from-gep -rewrite-statepoints-for-gc -guard-widening -scalarizer -die -strip-debug-declare -loop-rotate -partial-inliner -newgvn -bdce -gvn-hoist -sancov -loop-guard-widening -post-inline-ee-instrument -strip-nondebug -lower-widenable-condition -loop-interchange -indvars -dse -loop-load-elim -ipconstprop -always-inline -partially-inline-libcalls -loop-predication -loop-guard-widening -sroa -load-store-vectorizer -load-store-vectorizer -instcombine -rpo-functionattrs -simple-loop-unswitch -barrier -loop-guard-widening -simple-loop-unswitch -attributor -lcssa -sccp -name-anon-globals -attributor -guard-widening -early-cse-memssa -float2int -infer-address-spaces -simple-loop-unswitch -reassociate -globalsplit -loop-predication -lower-matrix-intrinsics -slp-vectorizer -constmerge -globalopt -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0634960159362552,65.4237732887268,opt -consthoist -loop-instsimplify -rpo-functionattrs -forceattrs -lowerswitch -constprop -loop-unswitch -gvn -argpromotion -div-rem-pairs -loop-unswitch -consthoist -loop-instsimplify -lower-widenable-condition -infer-address-spaces -simple-loop-unswitch -loop-reroll -loop-simplify -always-inline -constmerge -separate-const-offset-from-gep -globalsplit -loop-load-elim -lower-expect -irce -lower-matrix-intrinsics -name-anon-globals -loop-load-elim -early-cse-memssa -float2int -loop-simplify -lowerswitch -simple-loop-unswitch -always-inline -argpromotion -loop-predication -instsimplify -instnamer -globalopt -name-anon-globals -adce -gvn-hoist -reg2mem -redundant-dbg-inst-elim -loop-deletion -newgvn -sccp -called-value-propagation -mem2reg -loop-unswitch -inferattrs -loop-guard-widening -dce -globaldce -nary-reassociate -flattencfg -called-value-propagation -simplifycfg -correlated-propagation -coro-cleanup -sink -mldst-motion -slsr -strip-nondebug -inject-tli-mappings -loop-unroll-and-jam -loop-distribute -speculative-execution -libcalls-shrinkwrap -rewrite-statepoints-for-gc -coro-elide -early-cse-memssa -always-inline -mergeicmps -instsimplify -functionattrs -sroa -partially-inline-libcalls -nary-reassociate -instcombine -attributor -infer-address-spaces -loop-simplify -simple-loop-unswitch -sink -loop-versioning -canonicalize-aliases -redundant-dbg-inst-elim -deadargelim -lower-expect -inject-tli-mappings -lower-widenable-condition -load-store-vectorizer -strip-debug-declare -coro-split -bdce -memcpyopt -ee-instrument -loop-simplify -loop-interchange -strip-nondebug -load-store-vectorizer -loop-load-elim -irce -partially-inline-libcalls -prune-eh -consthoist -gvn-hoist -lcssa -loop-predication -cross-dso-cfi -newgvn -mem2reg -sroa -strip-nondebug -indvars -loop-rotate -flattencfg -globaldce -separate-const-offset-from-gep -ipsccp -redundant-dbg-inst-elim -simple-loop-unswitch -strip-nondebug -strip-dead-prototypes -aggressive-instcombine -barrier -dce -mergereturn -attributor -indvars -loop-unroll-and-jam -callsite-splitting -slp-vectorizer -irce -adce -consthoist -licm -sancov -early-cse-memssa -separate-const-offset-from-gep -gvn -called-value-propagation -dse -lower-widenable-condition -loop-interchange -simple-loop-unswitch -loop-rotate -rpo-functionattrs -sink -lower-widenable-condition -coro-split -mem2reg -loop-interchange -lowerinvoke -constmerge -aggressive-instcombine -libcalls-shrinkwrap -gvn -loop-unroll-and-jam -ipconstprop -ee-instrument -strip-nondebug -lower-constant-intrinsics -inferattrs -hotcoldsplit -canonicalize-aliases -speculative-execution -rpo-functionattrs -separate-const-offset-from-gep -cross-dso-cfi -die -infer-address-spaces -gvn -memcpyopt -instcombine input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0643675298804778,63.232433795928955,opt -indvars -mergereturn -pgo-memop-opt -ipsccp -redundant-dbg-inst-elim -add-discriminators -jump-threading -jump-threading -attributor -break-crit-edges -redundant-dbg-inst-elim -lowerswitch -early-cse-memssa -early-cse-memssa -loop-versioning -strip-nondebug -alignment-from-assumptions -ipsccp -sroa -redundant-dbg-inst-elim -dse -loop-simplifycfg -pgo-memop-opt -rewrite-statepoints-for-gc -name-anon-globals -simplifycfg -redundant-dbg-inst-elim -constmerge -consthoist -elim-avail-extern -die -coro-cleanup -globalopt -loop-deletion -slsr -add-discriminators -insert-gcov-profiling -infer-address-spaces -loop-fusion -consthoist -partially-inline-libcalls -callsite-splitting -consthoist -loop-load-elim -rewrite-statepoints-for-gc -loop-reroll -loweratomic -inferattrs -loop-unswitch -consthoist -lower-widenable-condition -loop-distribute -mergereturn -rpo-functionattrs -dse -instsimplify -loop-simplifycfg -loop-distribute -loop-unswitch -loop-simplify -callsite-splitting -rewrite-statepoints-for-gc -instcombine -insert-gcov-profiling -adce -instsimplify -loop-deletion -cross-dso-cfi -loweratomic -loop-distribute -insert-gcov-profiling -slp-vectorizer -lowerswitch -loop-guard-widening -loop-versioning -cross-dso-cfi -indvars -argpromotion -reassociate -simplifycfg -insert-gcov-profiling -lcssa -sancov -pgo-memop-opt -speculative-execution -sancov -post-inline-ee-instrument -sink -argpromotion -partially-inline-libcalls -ipsccp -lower-expect -dse -canonicalize-aliases -dce -sancov -prune-eh -loop-unswitch -functionattrs -globaldce -correlated-propagation -flattencfg -lower-matrix-intrinsics -strip -loop-instsimplify -simplifycfg -loop-fusion -loop-idiom -aggressive-instcombine -loop-idiom -coro-elide -called-value-propagation -loop-load-elim -coro-elide -lcssa -globalopt -slp-vectorizer -scalarizer -loop-simplifycfg -called-value-propagation -coro-early -mergeicmps -ee-instrument -loop-data-prefetch -pgo-memop-opt -gvn -bdce -loop-simplifycfg -partial-inliner -slp-vectorizer -globalsplit -dce -reassociate -loop-versioning-licm -barrier -coro-split -strip -loop-guard-widening -lcssa -partially-inline-libcalls -loop-data-prefetch -constprop -loop-vectorize -sroa -coro-elide -libcalls-shrinkwrap -loop-instsimplify -mergeicmps -loop-rotate -adce -strip-debug-declare -forceattrs -add-discriminators -instnamer -canonicalize-aliases -constmerge -lcssa -coro-early -simple-loop-unswitch -redundant-dbg-inst-elim -lower-expect -tailcallelim -forceattrs -lcssa -strip -loop-fusion -strip-dead-prototypes -mldst-motion -globalopt -ipsccp -nary-reassociate -separate-const-offset-from-gep -load-store-vectorizer -loop-simplify -loop-interchange -loop-unswitch -indvars -inject-tli-mappings -elim-avail-extern -newgvn -loop-simplify -jump-threading input.bc -o output.bc +benchmark://cbench-v1/gsm,1.065986055776892,65.38988256454468,opt -instcombine -rpo-functionattrs -infer-address-spaces -mergereturn -float2int -argpromotion -loop-unroll -simplifycfg -partially-inline-libcalls -argpromotion -loop-interchange -lcssa -strip-nondebug -strip -globalopt -redundant-dbg-inst-elim -dce -guard-widening -cross-dso-cfi -name-anon-globals -aggressive-instcombine -mergeicmps -redundant-dbg-inst-elim -rpo-functionattrs -loop-simplifycfg -coro-early -lower-matrix-intrinsics -ipsccp -loop-unroll -loop-simplify -speculative-execution -rpo-functionattrs -loop-data-prefetch -lowerinvoke -loop-sink -gvn -called-value-propagation -instcombine -sccp -reassociate -loop-unswitch -barrier -loop-reroll -simple-loop-unswitch -coro-early -loop-fusion -loop-unswitch -instnamer -flattencfg -dse -lower-expect -loop-fusion -reg2mem -mergereturn -coro-elide -coro-split -loop-distribute -tailcallelim -loop-unroll -coro-early -lcssa -slp-vectorizer -partially-inline-libcalls -rpo-functionattrs -cross-dso-cfi -dse -rpo-functionattrs -libcalls-shrinkwrap -lower-constant-intrinsics -guard-widening -inject-tli-mappings -slp-vectorizer -flattencfg -lower-expect -loop-predication -lcssa -rewrite-statepoints-for-gc -constprop -nary-reassociate -simplifycfg -early-cse-memssa -lowerinvoke -sroa -coro-split -rewrite-statepoints-for-gc -sink -loop-guard-widening -loop-unswitch -newgvn -callsite-splitting -elim-avail-extern -prune-eh -strip-nondebug -sink -elim-avail-extern -licm -lower-widenable-condition -dce -loop-load-elim -add-discriminators -dse -name-anon-globals -separate-const-offset-from-gep -early-cse-memssa -strip-debug-declare -globalsplit -sancov -name-anon-globals -rpo-functionattrs -irce -rpo-functionattrs -adce -newgvn -loop-guard-widening -loop-idiom -lcssa -post-inline-ee-instrument -loop-unroll-and-jam -lower-guard-intrinsic -functionattrs -jump-threading -rpo-functionattrs -globalsplit -loop-reroll -sancov -loop-load-elim -post-inline-ee-instrument -rewrite-statepoints-for-gc -lower-constant-intrinsics -name-anon-globals -dse -indvars -loweratomic -strip-dead-prototypes -loop-load-elim -canonicalize-aliases -strip-dead-prototypes -prune-eh -loop-versioning-licm -loop-fusion -sancov -guard-widening -loop-distribute -coro-early -strip-debug-declare -flattencfg -lcssa -separate-const-offset-from-gep -tailcallelim -slp-vectorizer -loop-sink -sancov -mldst-motion -strip-nondebug -dce -irce -simple-loop-unswitch -mem2reg -newgvn -irce -lower-widenable-condition -mem2reg -coro-cleanup -aggressive-instcombine -float2int -consthoist -add-discriminators -slsr -inject-tli-mappings -attributor -guard-widening -mergefunc -inferattrs -adce -aggressive-instcombine -instnamer -slp-vectorizer -redundant-dbg-inst-elim -sink -always-inline -inject-tli-mappings -lower-widenable-condition -loop-unroll-and-jam -ee-instrument -load-store-vectorizer -loop-simplify -gvn-hoist -loop-fusion -dse -loop-distribute -loop-fusion -loop-guard-widening -ipsccp -mem2reg -globalsplit -pgo-memop-opt -lower-widenable-condition -instcombine input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0709661354581672,63.0761559009552,opt -coro-early -loop-fusion -adce -infer-address-spaces -loop-guard-widening -simplifycfg -lower-guard-intrinsic -mergereturn -rpo-functionattrs -speculative-execution -div-rem-pairs -forceattrs -strip -instsimplify -called-value-propagation -loop-unroll-and-jam -globalopt -loop-load-elim -lowerinvoke -hotcoldsplit -gvn-hoist -early-cse-memssa -forceattrs -strip-nondebug -instsimplify -globaldce -sccp -mergereturn -inject-tli-mappings -loop-interchange -sink -speculative-execution -adce -adce -argpromotion -sccp -inferattrs -tailcallelim -loop-vectorize -div-rem-pairs -elim-avail-extern -loop-fusion -instsimplify -sroa -functionattrs -pgo-memop-opt -argpromotion -mergeicmps -constprop -ee-instrument -flattencfg -mldst-motion -loop-idiom -alignment-from-assumptions -adce -barrier -mergefunc -ee-instrument -separate-const-offset-from-gep -gvn-hoist -adce -prune-eh -lcssa -loop-idiom -loop-unswitch -always-inline -slp-vectorizer -instcombine -slp-vectorizer -prune-eh -memcpyopt -alignment-from-assumptions -sccp -partially-inline-libcalls -ee-instrument -inferattrs -rpo-functionattrs -inject-tli-mappings -loop-distribute -instcombine -redundant-dbg-inst-elim -aggressive-instcombine -canonicalize-aliases -rpo-functionattrs -loop-instsimplify -mem2reg -licm -loop-interchange -hotcoldsplit -loop-predication -strip-nondebug -globalopt -memcpyopt -lower-widenable-condition -ee-instrument -called-value-propagation -simple-loop-unswitch -constmerge -slp-vectorizer -loop-simplifycfg -partial-inliner -loop-load-elim -gvn -licm -early-cse-memssa -correlated-propagation -loop-interchange -ee-instrument -float2int -mergereturn -pgo-memop-opt -ipconstprop -mergeicmps -die -ee-instrument -load-store-vectorizer -ipsccp -infer-address-spaces -callsite-splitting -flattencfg -loop-versioning-licm -sink -infer-address-spaces -loop-reroll -coro-early -loop-instsimplify -float2int -gvn-hoist -elim-avail-extern -bdce -lower-guard-intrinsic -loop-fusion -aggressive-instcombine -flattencfg -gvn -coro-early -deadargelim -adce -sancov -rpo-functionattrs -pgo-memop-opt -adce -loweratomic -ipsccp -guard-widening -simple-loop-unswitch -jump-threading -adce -loop-sink -early-cse-memssa -simplifycfg -coro-early -loop-idiom -early-cse-memssa -coro-cleanup -indvars -infer-address-spaces -infer-address-spaces -lower-expect -mem2reg -sancov -loop-interchange -loop-versioning -mergefunc -post-inline-ee-instrument -loop-versioning -loop-reroll -ipsccp -ee-instrument -nary-reassociate -hotcoldsplit -slp-vectorizer -strip-debug-declare -gvn-hoist -strip-nondebug -sancov -loop-distribute -loop-idiom -strip-debug-declare -reassociate -adce -newgvn -loop-fusion -mem2reg -memcpyopt -strip-dead-prototypes -instnamer -guard-widening -sroa -loop-simplify -rpo-functionattrs -slp-vectorizer -post-inline-ee-instrument -lower-constant-intrinsics -constmerge -loop-load-elim -ipsccp -loop-versioning -hotcoldsplit -loop-simplifycfg -mergeicmps -loop-idiom -rpo-functionattrs -constmerge -die -attributor -lower-expect -instcombine input.bc -o output.bc +benchmark://cbench-v1/gsm,1.0743276892430278,63.134528160095215,opt -simple-loop-unswitch -constprop -gvn-hoist -name-anon-globals -indvars -always-inline -name-anon-globals -instcombine -always-inline -simplifycfg -pgo-memop-opt -rewrite-statepoints-for-gc -loop-distribute -nary-reassociate -name-anon-globals -mergefunc -callsite-splitting -loop-rotate -loop-predication -alignment-from-assumptions -forceattrs -reg2mem -redundant-dbg-inst-elim -reg2mem -barrier -slsr -lower-widenable-condition -loop-reduce -loop-idiom -constprop -strip -tailcallelim -simplifycfg -callsite-splitting -loop-simplifycfg -mergeicmps -loop-rotate -mem2reg -coro-early -alignment-from-assumptions -loop-simplify -simplifycfg -dse -loop-data-prefetch -simple-loop-unswitch -loop-simplify -constprop -loop-guard-widening -cross-dso-cfi -sink -globalsplit -strip -instcombine -adce -always-inline -inject-tli-mappings -speculative-execution -instnamer -barrier -loop-simplifycfg -newgvn -name-anon-globals -lowerinvoke -tailcallelim -gvn -loop-sink -hotcoldsplit -slp-vectorizer -loop-unswitch -coro-split -canonicalize-aliases -loop-unroll-and-jam -dse -lower-widenable-condition -lower-matrix-intrinsics -insert-gcov-profiling -loop-unroll-and-jam -loop-instsimplify -strip-debug-declare -flattencfg -correlated-propagation -guard-widening -coro-elide -functionattrs -argpromotion -flattencfg -newgvn -strip-debug-declare -loop-data-prefetch -loop-unroll-and-jam -div-rem-pairs -insert-gcov-profiling -sccp -float2int -canonicalize-aliases -ee-instrument -loop-fusion -sancov -loop-versioning-licm -globalsplit -loop-unswitch -partial-inliner -deadargelim -functionattrs -lowerinvoke -loop-deletion -coro-early -jump-threading -globalsplit -coro-elide -ipsccp -redundant-dbg-inst-elim -prune-eh -coro-early -ee-instrument -strip -libcalls-shrinkwrap -rpo-functionattrs -insert-gcov-profiling -mergeicmps -loop-interchange -adce -strip-nondebug -tailcallelim -nary-reassociate -loop-reroll -mldst-motion -coro-cleanup -reg2mem -coro-early -rpo-functionattrs -loop-fusion -loop-guard-widening -redundant-dbg-inst-elim -bdce -load-store-vectorizer -called-value-propagation -loweratomic -jump-threading -constprop -float2int -globalopt -speculative-execution -guard-widening -argpromotion -lower-constant-intrinsics -called-value-propagation -callsite-splitting -loop-load-elim -loop-sink -loop-distribute -mergereturn -load-store-vectorizer -div-rem-pairs -partial-inliner -alignment-from-assumptions -gvn-hoist -correlated-propagation -instnamer -scalarizer -loop-sink -mem2reg -libcalls-shrinkwrap -sroa -partially-inline-libcalls -coro-split -always-inline -globalsplit -separate-const-offset-from-gep -loop-guard-widening -forceattrs -loop-unroll-and-jam -loop-unswitch -licm -instcombine -slsr -callsite-splitting -pgo-memop-opt -coro-cleanup -cross-dso-cfi -rpo-functionattrs -loop-load-elim -loop-idiom -globalopt -dce -die -gvn-hoist -newgvn -reassociate -loop-simplifycfg -load-store-vectorizer -licm -loweratomic -aggressive-instcombine -loop-unswitch -mergeicmps -flattencfg -mldst-motion -globaldce -loop-reroll -loop-vectorize -lower-guard-intrinsic -loop-unswitch -early-cse-memssa -slp-vectorizer -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9643912737508797,63.807353258132935,opt -instnamer -lcssa -infer-address-spaces -lower-guard-intrinsic -loop-simplify -slp-vectorizer -deadargelim -adce -barrier -inferattrs -early-cse-memssa -separate-const-offset-from-gep -sccp -strip -mergereturn -sroa -sroa -instcombine -separate-const-offset-from-gep -float2int -simple-loop-unswitch -correlated-propagation -loop-reduce -pgo-memop-opt -alignment-from-assumptions -coro-early -loop-vectorize -constprop -sccp -mergereturn -argpromotion -instsimplify -jump-threading -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9748064743138635,64.32104349136353,opt -strip-nondebug -indvars -coro-elide -flattencfg -deadargelim -tailcallelim -tailcallelim -prune-eh -loweratomic -separate-const-offset-from-gep -lower-constant-intrinsics -loop-interchange -insert-gcov-profiling -lower-matrix-intrinsics -sroa -redundant-dbg-inst-elim -simplifycfg -inferattrs -loop-load-elim -gvn-hoist -slsr -libcalls-shrinkwrap -constprop -loop-unroll -instcombine -attributor -strip-debug-declare -loop-versioning-licm -loop-fusion -lcssa -strip -ee-instrument -sink -redundant-dbg-inst-elim -loop-interchange -consthoist -globalopt -loop-deletion -constmerge -sroa -prune-eh -sccp -globalsplit -mergeicmps -prune-eh -simplifycfg -coro-split -lowerinvoke -cross-dso-cfi -mergereturn -consthoist -slsr -simplifycfg -float2int -deadargelim -speculative-execution -loop-distribute -loop-fusion -loop-fusion -div-rem-pairs -loop-unroll-and-jam -gvn-hoist -loop-unroll -strip-debug-declare -loop-idiom -constmerge -ee-instrument -loop-sink -loweratomic -strip-debug-declare -mergereturn -inject-tli-mappings -canonicalize-aliases -loop-reroll -loop-unroll-and-jam -name-anon-globals -guard-widening -jump-threading -break-crit-edges -mergeicmps -canonicalize-aliases -elim-avail-extern -lower-expect -sccp -ipsccp -loop-simplifycfg -loop-unroll -scalarizer -strip-nondebug -loop-unroll -hotcoldsplit -mldst-motion -inferattrs -aggressive-instcombine -called-value-propagation -instcombine -coro-split -tailcallelim -sancov -newgvn -scalarizer -lower-widenable-condition -gvn -separate-const-offset-from-gep -lower-matrix-intrinsics -newgvn -add-discriminators -lower-matrix-intrinsics -pgo-memop-opt -callsite-splitting -loop-unroll-and-jam -sroa -lower-expect -functionattrs -sink -loop-guard-widening -coro-cleanup -functionattrs -lower-widenable-condition -irce -cross-dso-cfi -reassociate -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9791695988740322,64.13968276977539,opt -name-anon-globals -break-crit-edges -coro-early -loop-guard-widening -partial-inliner -slp-vectorizer -loweratomic -loop-reduce -partial-inliner -sroa -instcombine -correlated-propagation -sccp -strip-nondebug -simplifycfg -mergeicmps -inject-tli-mappings -slsr -loop-versioning-licm -alignment-from-assumptions -loop-unroll-and-jam -newgvn -instsimplify -sroa -scalarizer -instcombine -ee-instrument -scalarizer -irce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9847994370161856,66.86581897735596,opt -redundant-dbg-inst-elim -lower-widenable-condition -strip -nary-reassociate -loop-reduce -nary-reassociate -loop-load-elim -simple-loop-unswitch -loop-versioning-licm -redundant-dbg-inst-elim -scalarizer -nary-reassociate -instnamer -simplifycfg -break-crit-edges -loop-load-elim -indvars -load-store-vectorizer -dse -lower-matrix-intrinsics -lower-constant-intrinsics -pgo-memop-opt -slsr -instsimplify -sink -loop-predication -loweratomic -float2int -constmerge -speculative-execution -loop-reroll -callsite-splitting -always-inline -consthoist -redundant-dbg-inst-elim -cross-dso-cfi -inferattrs -globaldce -ipsccp -mergeicmps -instsimplify -constprop -redundant-dbg-inst-elim -sroa -globalopt -div-rem-pairs -coro-elide -early-cse-memssa -loop-versioning-licm -inferattrs -scalarizer -globalopt -loop-versioning -rpo-functionattrs -load-store-vectorizer -barrier -globalopt -irce -redundant-dbg-inst-elim -ipconstprop -guard-widening -post-inline-ee-instrument -globalopt -mem2reg -coro-cleanup -sroa -deadargelim -instsimplify -add-discriminators -constprop -alignment-from-assumptions -partially-inline-libcalls -aggressive-instcombine -reg2mem -early-cse-memssa -strip -mem2reg -newgvn -coro-split -always-inline -strip-nondebug -rewrite-statepoints-for-gc -licm -functionattrs -instsimplify -slsr -hotcoldsplit -dce -infer-address-spaces -coro-cleanup -float2int -post-inline-ee-instrument -loop-instsimplify -elim-avail-extern -globaldce -functionattrs -sink -guard-widening -loop-sink -add-discriminators -inject-tli-mappings -globalopt -indvars -instnamer -instcombine -ipconstprop -strip-debug-declare -functionattrs -jump-threading -gvn -always-inline -prune-eh -attributor -slp-vectorizer -newgvn input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9855031667839551,64.19602680206299,opt -functionattrs -barrier -globalsplit -speculative-execution -correlated-propagation -separate-const-offset-from-gep -loop-interchange -constmerge -memcpyopt -loop-distribute -redundant-dbg-inst-elim -loop-instsimplify -lower-expect -alignment-from-assumptions -early-cse-memssa -indvars -gvn-hoist -globalsplit -partially-inline-libcalls -constprop -loop-unswitch -strip -post-inline-ee-instrument -loop-versioning -sccp -argpromotion -instcombine -argpromotion -lowerinvoke -loop-deletion -elim-avail-extern -sroa -partially-inline-libcalls -reassociate -dse -scalarizer -strip-nondebug -loop-guard-widening -strip-dead-prototypes -gvn -loop-data-prefetch -sccp -name-anon-globals -coro-early -simplifycfg -called-value-propagation -instnamer -load-store-vectorizer -forceattrs -mergefunc -prune-eh -lower-constant-intrinsics -ipconstprop -newgvn -jump-threading -called-value-propagation -instcombine input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9874736101337088,64.0391092300415,opt -loop-idiom -float2int -aggressive-instcombine -nary-reassociate -simple-loop-unswitch -mldst-motion -loop-sink -correlated-propagation -insert-gcov-profiling -partially-inline-libcalls -lower-widenable-condition -scalarizer -load-store-vectorizer -guard-widening -hotcoldsplit -aggressive-instcombine -redundant-dbg-inst-elim -guard-widening -loop-guard-widening -indvars -inferattrs -sancov -dce -rpo-functionattrs -called-value-propagation -coro-split -callsite-splitting -newgvn -mem2reg -instnamer -instsimplify -partially-inline-libcalls -loop-versioning-licm -deadargelim -instcombine -newgvn -pgo-memop-opt -ipconstprop -pgo-memop-opt -loop-versioning -loweratomic -strip-dead-prototypes -callsite-splitting -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9894440534834623,65.27008605003357,opt -deadargelim -loop-vectorize -inferattrs -jump-threading -name-anon-globals -coro-cleanup -simplifycfg -jump-threading -gvn-hoist -div-rem-pairs -loop-idiom -reg2mem -loop-unswitch -loop-unswitch -loop-versioning -hotcoldsplit -slp-vectorizer -sink -loop-interchange -sancov -gvn -redundant-dbg-inst-elim -globalsplit -coro-elide -strip-nondebug -lower-constant-intrinsics -loop-versioning -indvars -loop-load-elim -lower-widenable-condition -loop-reroll -partial-inliner -gvn -cross-dso-cfi -always-inline -loop-versioning -argpromotion -loop-unroll-and-jam -strip-debug-declare -lower-guard-intrinsic -barrier -argpromotion -loop-simplifycfg -argpromotion -coro-cleanup -prune-eh -coro-cleanup -coro-early -loop-simplifycfg -break-crit-edges -sccp -ipconstprop -called-value-propagation -inject-tli-mappings -memcpyopt -tailcallelim -argpromotion -tailcallelim -gvn-hoist -dce -elim-avail-extern -post-inline-ee-instrument -slsr -always-inline -indvars -inferattrs -simplifycfg -speculative-execution -always-inline -alignment-from-assumptions -inject-tli-mappings -globalsplit -coro-cleanup -gvn -load-store-vectorizer -insert-gcov-profiling -lowerinvoke -partially-inline-libcalls -instcombine -name-anon-globals -globalsplit -separate-const-offset-from-gep -sccp -forceattrs -coro-elide -barrier -loop-reroll -nary-reassociate -reassociate -callsite-splitting -post-inline-ee-instrument -newgvn -inferattrs -loop-versioning -mergereturn -always-inline -post-inline-ee-instrument -strip -loop-idiom -mem2reg -newgvn -break-crit-edges -scalarizer -reassociate -loop-unroll -strip-nondebug -lower-matrix-intrinsics -rpo-functionattrs -cross-dso-cfi -instcombine -break-crit-edges -dce -inject-tli-mappings -sink -pgo-memop-opt -globalopt -consthoist -loop-idiom -rpo-functionattrs -functionattrs -always-inline -newgvn -float2int -argpromotion -instnamer -hotcoldsplit -simplifycfg -lower-expect -mergefunc input.bc -o output.bc +benchmark://cbench-v1/ispell,0.9952146375791695,65.40430235862732,opt -name-anon-globals -memcpyopt -aggressive-instcombine -float2int -ee-instrument -gvn-hoist -div-rem-pairs -instnamer -prune-eh -forceattrs -coro-cleanup -alignment-from-assumptions -lower-guard-intrinsic -coro-elide -newgvn -prune-eh -sancov -indvars -float2int -loop-guard-widening -loop-simplifycfg -loop-idiom -dse -prune-eh -loop-guard-widening -flattencfg -lower-guard-intrinsic -deadargelim -float2int -simplifycfg -load-store-vectorizer -coro-split -float2int -lowerinvoke -mergefunc -guard-widening -break-crit-edges -inferattrs -mem2reg -instcombine -cross-dso-cfi -insert-gcov-profiling -memcpyopt -gvn-hoist -reg2mem -separate-const-offset-from-gep -elim-avail-extern -sroa -ipconstprop -loop-unroll -pgo-memop-opt -memcpyopt -sancov -newgvn -functionattrs -slp-vectorizer -loop-unroll-and-jam -loop-deletion -rpo-functionattrs -lower-widenable-condition -attributor -loop-simplifycfg -simple-loop-unswitch -loop-idiom -loop-fusion -ipsccp -loop-guard-widening -loop-vectorize -alignment-from-assumptions -insert-gcov-profiling -consthoist -sancov -ee-instrument -loop-deletion -redundant-dbg-inst-elim -insert-gcov-profiling -barrier -consthoist -div-rem-pairs -partial-inliner -lcssa -correlated-propagation -partially-inline-libcalls -lower-constant-intrinsics -callsite-splitting -loop-predication -constmerge -sccp -jump-threading -instsimplify input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0014074595355382,64.54691743850708,opt -callsite-splitting -slp-vectorizer -name-anon-globals -argpromotion -insert-gcov-profiling -inject-tli-mappings -lowerinvoke -sancov -globalopt -strip-dead-prototypes -div-rem-pairs -always-inline -loop-idiom -instnamer -loop-versioning -cross-dso-cfi -sccp -bdce -mergeicmps -slp-vectorizer -pgo-memop-opt -reg2mem -prune-eh -constmerge -constmerge -speculative-execution -strip-nondebug -lower-matrix-intrinsics -early-cse-memssa -mem2reg -loweratomic -sroa -loop-reroll -globalsplit -globalsplit -loop-unroll -newgvn -strip-dead-prototypes -constprop -indvars -simplifycfg -argpromotion -post-inline-ee-instrument -loop-reroll -argpromotion -globalsplit -sancov -early-cse-memssa -loop-simplifycfg -gvn -instcombine -strip-nondebug -lowerinvoke -slp-vectorizer -mldst-motion -loweratomic -reassociate -loop-simplifycfg -rewrite-statepoints-for-gc -loop-sink -break-crit-edges -mergeicmps -jump-threading -loop-distribute -lcssa -canonicalize-aliases -attributor -bdce -lower-expect -coro-split -loop-fusion -guard-widening -instnamer -rpo-functionattrs -strip-dead-prototypes -early-cse-memssa -callsite-splitting -separate-const-offset-from-gep -newgvn -lower-matrix-intrinsics -gvn -mldst-motion -loop-data-prefetch -ipconstprop -dse -strip-nondebug -loop-versioning-licm -newgvn -libcalls-shrinkwrap -early-cse-memssa -dse -attributor -early-cse-memssa -called-value-propagation -lower-matrix-intrinsics -slp-vectorizer -coro-early -slsr -argpromotion -tailcallelim -slsr -jump-threading -coro-early -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/ispell,1.0014074595355382,64.55206608772278,opt -memcpyopt -inferattrs -speculative-execution -consthoist -callsite-splitting -flattencfg -loop-simplifycfg -scalarizer -reassociate -mergeicmps -always-inline -gvn-hoist -newgvn -dse -mem2reg -speculative-execution -loop-idiom -loop-simplify -simplifycfg -newgvn -infer-address-spaces -jump-threading -load-store-vectorizer -loop-data-prefetch -sink -insert-gcov-profiling -lower-constant-intrinsics -barrier -loop-idiom -mergefunc -add-discriminators -div-rem-pairs -functionattrs -float2int -deadargelim -licm -scalarizer -forceattrs -loop-predication -instcombine -simplifycfg -loop-vectorize -flattencfg -loop-unroll-and-jam -loop-reroll -guard-widening -loop-distribute -lcssa -div-rem-pairs -coro-cleanup -barrier -strip-dead-prototypes -prune-eh -jump-threading -loop-distribute -licm -argpromotion -forceattrs -guard-widening -lower-widenable-condition -simple-loop-unswitch -redundant-dbg-inst-elim -loop-reduce -forceattrs -dce -instsimplify -load-store-vectorizer -flattencfg -post-inline-ee-instrument -loop-distribute -loop-load-elim -ee-instrument -memcpyopt -loop-versioning-licm -barrier -coro-split -lower-constant-intrinsics -constprop -load-store-vectorizer -rewrite-statepoints-for-gc -loop-load-elim -irce -coro-elide -simple-loop-unswitch -loop-predication -lower-guard-intrinsic -deadargelim -lower-expect -functionattrs -globaldce -newgvn -dce -cross-dso-cfi -loop-simplifycfg -float2int -die -instnamer -memcpyopt -lower-widenable-condition -loop-distribute -strip-debug-declare -coro-elide -barrier -rpo-functionattrs -ee-instrument -instsimplify -bdce -dce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0063552097219208,76.24695205688477,opt -sccp -partially-inline-libcalls -barrier -slsr -hotcoldsplit -forceattrs -simple-loop-unswitch -dse -strip-dead-prototypes -rewrite-statepoints-for-gc -hotcoldsplit -die -cross-dso-cfi -sancov -lower-expect -mem2reg -loop-vectorize -newgvn -loop-vectorize -loop-reroll -loop-sink -licm -lowerswitch -bdce -mergeicmps -strip-dead-prototypes -pgo-memop-opt -lowerswitch -mldst-motion -loop-rotate -div-rem-pairs -loop-fusion -forceattrs -loop-unroll-and-jam -coro-split -canonicalize-aliases -scalarizer -dce -constmerge -dse -attributor -reassociate -loop-simplify -jump-threading -speculative-execution -sroa -loop-idiom -name-anon-globals -break-crit-edges -loop-interchange -coro-split -constprop -attributor -simple-loop-unswitch -coro-elide -constmerge -loop-deletion -attributor -licm -post-inline-ee-instrument -pgo-memop-opt -newgvn -loweratomic -loop-versioning-licm -strip-nondebug -load-store-vectorizer -forceattrs -coro-early -break-crit-edges -loop-rotate -slsr -simplifycfg -tailcallelim -sroa -lower-constant-intrinsics -libcalls-shrinkwrap -strip-debug-declare -instcombine input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.006696220975292,73.28315615653992,opt -slp-vectorizer -elim-avail-extern -libcalls-shrinkwrap -load-store-vectorizer -rpo-functionattrs -mem2reg -callsite-splitting -instcombine -constprop -licm -barrier -load-store-vectorizer -functionattrs -sink -redundant-dbg-inst-elim -attributor -jump-threading -coro-cleanup -strip-nondebug -loop-versioning -name-anon-globals -deadargelim -libcalls-shrinkwrap -mergereturn -scalarizer -strip-dead-prototypes -libcalls-shrinkwrap -flattencfg -indvars -loweratomic -loweratomic -infer-address-spaces -canonicalize-aliases -prune-eh -gvn-hoist -ipconstprop -insert-gcov-profiling -newgvn -loop-load-elim -bdce -cross-dso-cfi -infer-address-spaces -lower-expect -prune-eh -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0068822271134945,73.44375777244568,opt -instsimplify -early-cse-memssa -barrier -loop-unswitch -argpromotion -mergereturn -attributor -memcpyopt -float2int -coro-early -redundant-dbg-inst-elim -flattencfg -div-rem-pairs -scalarizer -die -loop-instsimplify -early-cse-memssa -argpromotion -globaldce -break-crit-edges -mergereturn -dse -loop-simplifycfg -inject-tli-mappings -mem2reg -lcssa -argpromotion -indvars -slp-vectorizer -scalarizer -coro-elide -sancov -adce -instnamer -sroa -alignment-from-assumptions -bdce -aggressive-instcombine -ipconstprop -ipsccp -attributor -early-cse-memssa -instcombine -mergefunc -ipconstprop -rpo-functionattrs -infer-address-spaces -jump-threading -instsimplify input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.012245404098335,77.20652055740356,opt -prune-eh -redundant-dbg-inst-elim -strip-nondebug -partially-inline-libcalls -mergeicmps -inferattrs -die -strip-dead-prototypes -newgvn -strip-nondebug -mergefunc -sroa -instsimplify -instnamer -mldst-motion -jump-threading -ee-instrument -die -ipconstprop -argpromotion -scalarizer -coro-early -memcpyopt -loop-instsimplify -barrier -die -loop-deletion -slsr -coro-cleanup -instsimplify -coro-cleanup -instcombine -reg2mem -redundant-dbg-inst-elim -guard-widening -slsr -deadargelim -dse -float2int -attributor -loop-instsimplify -sink -redundant-dbg-inst-elim -indvars -reg2mem -early-cse-memssa -loop-data-prefetch -coro-elide -tailcallelim -slp-vectorizer -consthoist -gvn-hoist -lower-constant-intrinsics -lower-expect -deadargelim -sink -mergefunc -coro-elide -coro-early -insert-gcov-profiling -float2int -inject-tli-mappings -loop-fusion -libcalls-shrinkwrap -loop-simplify -lower-widenable-condition -globaldce -loop-instsimplify -loop-sink -functionattrs -memcpyopt -callsite-splitting -early-cse-memssa -simplifycfg -globaldce -sroa -coro-split -licm -mergereturn -lower-matrix-intrinsics -loop-versioning-licm -name-anon-globals -inferattrs -instcombine -rpo-functionattrs -elim-avail-extern -loop-versioning-licm -consthoist -scalarizer -mergefunc -tailcallelim -barrier -loop-distribute -loop-reroll -irce -loop-interchange -deadargelim -memcpyopt -indvars -float2int -mem2reg -loop-sink -globalopt -pgo-memop-opt -ipconstprop -mldst-motion -reassociate -loop-unroll-and-jam -name-anon-globals -jump-threading input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0148184890101377,75.44664001464844,opt -lcssa -rewrite-statepoints-for-gc -dse -sancov -inferattrs -inject-tli-mappings -speculative-execution -sccp -flattencfg -dse -lower-widenable-condition -ipsccp -rpo-functionattrs -indvars -load-store-vectorizer -gvn-hoist -ipsccp -callsite-splitting -coro-early -partially-inline-libcalls -loop-versioning -dce -libcalls-shrinkwrap -loop-versioning -strip-debug-declare -coro-cleanup -loop-sink -lower-widenable-condition -load-store-vectorizer -flattencfg -mergefunc -early-cse-memssa -canonicalize-aliases -functionattrs -loop-interchange -loop-instsimplify -guard-widening -ee-instrument -bdce -loop-guard-widening -strip -scalarizer -instsimplify -ipsccp -loop-fusion -correlated-propagation -scalarizer -mergefunc -coro-split -loop-reroll -loop-versioning-licm -constmerge -loop-sink -dse -jump-threading -mldst-motion -separate-const-offset-from-gep -instnamer -post-inline-ee-instrument -tailcallelim -coro-elide -loop-distribute -called-value-propagation -loop-unswitch -speculative-execution -constprop -ipsccp -coro-cleanup -licm -gvn-hoist -loop-unroll-and-jam -mldst-motion -ipconstprop -flattencfg -loop-simplify -reg2mem -loweratomic -loop-interchange -loop-guard-widening -consthoist -cross-dso-cfi -loop-unroll -sroa -pgo-memop-opt -strip-debug-declare -loop-guard-widening -loop-instsimplify -nary-reassociate -forceattrs -loop-vectorize -loop-instsimplify -lcssa -instcombine -libcalls-shrinkwrap -post-inline-ee-instrument -loop-reroll -indvars -name-anon-globals -inferattrs -loop-load-elim -instsimplify -memcpyopt -ee-instrument -loop-unroll-and-jam -adce -constprop -lowerinvoke -ipsccp -consthoist -constmerge -loweratomic -gvn-hoist -slsr -infer-address-spaces -strip-nondebug -pgo-memop-opt -loop-unroll-and-jam -functionattrs -slp-vectorizer -ipsccp -float2int -loop-sink -simplifycfg -correlated-propagation -loop-unroll-and-jam -loop-interchange -loop-guard-widening -loop-sink -div-rem-pairs -called-value-propagation -instcombine -load-store-vectorizer -gvn -globaldce -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0154075084477787,74.82714986801147,opt -loop-unroll-and-jam -argpromotion -pgo-memop-opt -coro-cleanup -lowerinvoke -loop-reroll -sccp -strip-debug-declare -alignment-from-assumptions -loop-instsimplify -loop-distribute -strip-dead-prototypes -rewrite-statepoints-for-gc -canonicalize-aliases -mergeicmps -post-inline-ee-instrument -early-cse-memssa -bdce -functionattrs -break-crit-edges -loop-deletion -memcpyopt -loop-guard-widening -name-anon-globals -loop-reduce -loop-fusion -canonicalize-aliases -attributor -argpromotion -coro-cleanup -reg2mem -strip-dead-prototypes -add-discriminators -globaldce -loop-interchange -mem2reg -lower-widenable-condition -gvn -partially-inline-libcalls -lower-guard-intrinsic -loop-instsimplify -instsimplify -lower-guard-intrinsic -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0182906035899184,74.4551010131836,opt -attributor -loop-instsimplify -sroa -argpromotion -redundant-dbg-inst-elim -flattencfg -strip -jump-threading -mergeicmps -lower-matrix-intrinsics -scalarizer -nary-reassociate -lower-widenable-condition -barrier -adce -indvars -coro-cleanup -mergeicmps -redundant-dbg-inst-elim -elim-avail-extern -lower-widenable-condition -inferattrs -alignment-from-assumptions -coro-split -ipconstprop -loop-vectorize -forceattrs -loop-versioning-licm -mergeicmps -loop-distribute -inferattrs -instcombine -strip -inject-tli-mappings -lower-expect -indvars -constprop -tailcallelim -loop-fusion -licm -nary-reassociate -elim-avail-extern -ipconstprop -redundant-dbg-inst-elim -gvn-hoist -lower-widenable-condition -sancov -loop-instsimplify -indvars -mldst-motion -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0190346281427287,72.94964694976807,opt -hotcoldsplit -loop-load-elim -mem2reg -redundant-dbg-inst-elim -functionattrs -constprop -guard-widening -mergeicmps -sroa -coro-cleanup -gvn -load-store-vectorizer -called-value-propagation -loweratomic -loop-versioning-licm -ipsccp -inject-tli-mappings -mem2reg -loop-interchange -lowerinvoke -redundant-dbg-inst-elim -jump-threading -tailcallelim -sink -inject-tli-mappings -instcombine -add-discriminators -partially-inline-libcalls -coro-elide -lcssa -infer-address-spaces -jump-threading -break-crit-edges -aggressive-instcombine -infer-address-spaces -early-cse-memssa -elim-avail-extern -redundant-dbg-inst-elim -flattencfg -lowerinvoke -slp-vectorizer -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0216077130545307,374.86166167259216,opt -sccp -mergereturn -constmerge -reassociate -lowerinvoke -globalopt -coro-cleanup -strip-debug-declare -strip-debug-declare -lower-matrix-intrinsics -functionattrs -jump-threading -ipconstprop -alignment-from-assumptions -loop-versioning-licm -strip -alignment-from-assumptions -ee-instrument -lcssa -dce -rewrite-statepoints-for-gc -ipconstprop -mem2reg -strip -loop-guard-widening -mergereturn -correlated-propagation -instsimplify -name-anon-globals -lower-expect -div-rem-pairs -constprop -lower-matrix-intrinsics -always-inline -guard-widening -newgvn -coro-early -forceattrs -ipconstprop -argpromotion -aggressive-instcombine -correlated-propagation -break-crit-edges -called-value-propagation -strip-debug-declare -lower-matrix-intrinsics -gvn-hoist -gvn-hoist -callsite-splitting -lower-constant-intrinsics -lowerinvoke -tailcallelim -lower-expect -rewrite-statepoints-for-gc -hotcoldsplit -irce -mldst-motion -gvn-hoist -aggressive-instcombine -loop-idiom -globalsplit -instcombine -post-inline-ee-instrument -loop-versioning -aggressive-instcombine -globalsplit -memcpyopt -constprop -infer-address-spaces -early-cse-memssa -partially-inline-libcalls -guard-widening -die -scalarizer -mergefunc -licm -loop-data-prefetch -loop-data-prefetch -loop-deletion -hotcoldsplit -rewrite-statepoints-for-gc -gvn-hoist -scalarizer -lower-constant-intrinsics -constprop -reg2mem -rpo-functionattrs -loop-reduce -loop-unroll-and-jam -lower-widenable-condition -loop-guard-widening -insert-gcov-profiling -speculative-execution -instsimplify -sroa -mergefunc -licm -loop-sink -loop-simplify -globalsplit -lower-matrix-intrinsics -hotcoldsplit -canonicalize-aliases -indvars -die -coro-cleanup -cross-dso-cfi -hotcoldsplit -called-value-propagation -simple-loop-unswitch -simplifycfg -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/jpeg-c,1.0307220138264561,76.84722781181335,opt -coro-early -indvars -slp-vectorizer -callsite-splitting -attributor -loop-reroll -lower-constant-intrinsics -instsimplify -consthoist -lcssa -partially-inline-libcalls -alignment-from-assumptions -deadargelim -lower-widenable-condition -loop-versioning -adce -add-discriminators -speculative-execution -loop-predication -die -elim-avail-extern -loop-deletion -licm -loop-load-elim -break-crit-edges -sink -simplifycfg -div-rem-pairs -forceattrs -tailcallelim -strip-dead-prototypes -loweratomic -rpo-functionattrs -constprop -loop-simplifycfg -canonicalize-aliases -nary-reassociate -consthoist -loop-simplifycfg -reg2mem -lcssa -infer-address-spaces -lower-constant-intrinsics -loop-versioning-licm -insert-gcov-profiling -strip-dead-prototypes -loop-idiom -coro-split -strip-nondebug -barrier -ee-instrument -name-anon-globals -sancov -loop-instsimplify -loop-versioning -loop-simplify -loop-deletion -aggressive-instcombine -globalopt -gvn-hoist -sroa -instcombine -correlated-propagation -loop-sink -sccp -simple-loop-unswitch -argpromotion -rewrite-statepoints-for-gc -libcalls-shrinkwrap -gvn-hoist -elim-avail-extern -always-inline -mergereturn -newgvn -sancov -irce -strip -slp-vectorizer -inject-tli-mappings -lower-expect -always-inline -sancov -partially-inline-libcalls -indvars -mem2reg -correlated-propagation -coro-split -loop-load-elim -coro-early -sink -instsimplify -constprop -guard-widening -instsimplify -loop-guard-widening -constmerge -simplifycfg -inferattrs -loop-deletion -memcpyopt -loop-distribute -rewrite-statepoints-for-gc -irce -loop-data-prefetch -inject-tli-mappings -gvn-hoist -strip -slsr -irce -bdce -dse -loop-data-prefetch -loop-reroll -break-crit-edges -simplifycfg -tailcallelim -slp-vectorizer -loop-unroll-and-jam -ipsccp -licm -loweratomic -mldst-motion -always-inline -loop-versioning -sink -lower-guard-intrinsic -loop-sink -lcssa -reassociate -inferattrs -lowerinvoke -rpo-functionattrs -strip-debug-declare -reassociate -dse -globaldce -slsr -mergeicmps -coro-split -flattencfg -forceattrs -speculative-execution -elim-avail-extern -globalopt -memcpyopt -lower-constant-intrinsics -ee-instrument -correlated-propagation -simplifycfg -libcalls-shrinkwrap -libcalls-shrinkwrap -called-value-propagation -redundant-dbg-inst-elim -strip-debug-declare -div-rem-pairs -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.014874915483435,77.7471342086792,opt -loop-reroll -mergeicmps -called-value-propagation -loop-vectorize -adce -name-anon-globals -loop-reroll -canonicalize-aliases -tailcallelim -constprop -loop-versioning-licm -loop-deletion -mem2reg -loop-versioning-licm -insert-gcov-profiling -called-value-propagation -loop-deletion -sancov -loop-idiom -lower-guard-intrinsic -speculative-execution -tailcallelim -sink -loop-idiom -inferattrs -gvn -called-value-propagation -coro-split -constprop -barrier -cross-dso-cfi -scalarizer -coro-early -name-anon-globals -mem2reg -lowerinvoke -globalopt -licm -inferattrs -loop-load-elim -loop-unroll -lower-expect -attributor -gvn-hoist -mem2reg -die -mergereturn -rpo-functionattrs -lower-constant-intrinsics -irce -instsimplify -called-value-propagation -reassociate -loop-unroll-and-jam -prune-eh -elim-avail-extern -memcpyopt -instcombine -die -strip-debug-declare -post-inline-ee-instrument -argpromotion -insert-gcov-profiling -lower-matrix-intrinsics -strip-debug-declare -called-value-propagation -coro-cleanup -guard-widening -mergereturn -sancov -loweratomic -mldst-motion -instsimplify -slsr -globaldce -simplifycfg -lowerinvoke -bdce -break-crit-edges -infer-address-spaces -mergereturn -deadargelim -canonicalize-aliases -coro-elide -aggressive-instcombine -strip-debug-declare -ee-instrument -lower-expect -globaldce -loop-interchange -loop-idiom -lcssa -loop-predication -loweratomic -loop-simplifycfg -loop-load-elim -coro-early -ipsccp -die -separate-const-offset-from-gep -aggressive-instcombine -ipsccp -cross-dso-cfi -hotcoldsplit -constmerge -strip -ee-instrument -globaldce -loop-deletion -loop-versioning -mergefunc -lower-expect -aggressive-instcombine -elim-avail-extern -sroa -loop-distribute -irce -insert-gcov-profiling -infer-address-spaces -simplifycfg -loop-sink -loop-simplify -loop-deletion -loop-simplify -instcombine -attributor -nary-reassociate -memcpyopt -globalsplit -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0167423291155535,78.36895751953125,opt -loop-versioning-licm -loop-vectorize -gvn-hoist -rpo-functionattrs -loop-interchange -sccp -loop-simplifycfg -sancov -lower-matrix-intrinsics -gvn-hoist -callsite-splitting -loop-guard-widening -loop-unroll -ipsccp -strip-debug-declare -separate-const-offset-from-gep -simplifycfg -post-inline-ee-instrument -alignment-from-assumptions -mem2reg -libcalls-shrinkwrap -hotcoldsplit -loop-predication -partially-inline-libcalls -post-inline-ee-instrument -lower-widenable-condition -loop-reroll -bdce -loop-predication -loop-data-prefetch -indvars -loop-idiom -globaldce -strip-dead-prototypes -loop-simplifycfg -separate-const-offset-from-gep -loop-simplify -loop-predication -loop-unswitch -always-inline -loop-versioning-licm -mergefunc -rpo-functionattrs -reg2mem -elim-avail-extern -pgo-memop-opt -partial-inliner -ipsccp -die -globalsplit -add-discriminators -memcpyopt -div-rem-pairs -canonicalize-aliases -bdce -nary-reassociate -simple-loop-unswitch -insert-gcov-profiling -loop-simplify -partial-inliner -loop-unswitch -die -sancov -insert-gcov-profiling -break-crit-edges -functionattrs -break-crit-edges -loop-vectorize -ipconstprop -load-store-vectorizer -sroa -gvn -lower-matrix-intrinsics -loop-reroll -barrier -loop-simplify -rewrite-statepoints-for-gc -newgvn -sancov -coro-split -scalarizer -loop-versioning-licm -add-discriminators -mldst-motion -partial-inliner -consthoist -licm -rewrite-statepoints-for-gc -simplifycfg -jump-threading -sccp -lcssa -globaldce -deadargelim -hotcoldsplit -coro-cleanup -loop-data-prefetch -die -loop-vectorize -indvars -strip-debug-declare -jump-threading -coro-split -instcombine -float2int -instsimplify -insert-gcov-profiling -inject-tli-mappings -loop-simplify -loop-data-prefetch -lower-widenable-condition -strip-debug-declare -loop-simplifycfg -dse -indvars -loop-distribute -strip-nondebug -strip-dead-prototypes -functionattrs -ipsccp -gvn -indvars -lower-matrix-intrinsics -consthoist -alignment-from-assumptions -memcpyopt -loop-load-elim -sancov -loop-simplifycfg -barrier -strip-nondebug -infer-address-spaces -mergefunc -barrier -mem2reg -loop-guard-widening -mergereturn -loop-sink -rpo-functionattrs -sancov -add-discriminators -coro-elide -simplifycfg -rewrite-statepoints-for-gc -coro-early -name-anon-globals -loop-fusion -adce -lower-matrix-intrinsics -alignment-from-assumptions -tailcallelim -scalarizer -coro-early -loop-versioning-licm -cross-dso-cfi -coro-early -mergeicmps -strip-debug-declare -loop-simplifycfg -coro-cleanup -pgo-memop-opt -prune-eh -constprop -coro-split -div-rem-pairs -loop-fusion -jump-threading -functionattrs -lowerinvoke -functionattrs -elim-avail-extern -loop-idiom -lower-expect -argpromotion -loop-sink -rewrite-statepoints-for-gc -loop-unswitch -slp-vectorizer -lower-constant-intrinsics -lower-widenable-condition -lower-constant-intrinsics -lower-constant-intrinsics -argpromotion -argpromotion -ee-instrument -loop-load-elim -lower-guard-intrinsic -strip-dead-prototypes -correlated-propagation -forceattrs -libcalls-shrinkwrap -alignment-from-assumptions -always-inline -jump-threading -loop-fusion -canonicalize-aliases -coro-cleanup -mldst-motion -loop-interchange -rpo-functionattrs -loop-idiom -loop-simplify -rewrite-statepoints-for-gc -instcombine -loop-load-elim -irce -memcpyopt -loop-fusion -cross-dso-cfi -loop-predication -loweratomic -lower-widenable-condition -correlated-propagation -slsr -gvn-hoist -loop-instsimplify -mergefunc -mem2reg -sink -constmerge -loop-simplifycfg -forceattrs -lower-matrix-intrinsics -prune-eh -attributor -argpromotion -sccp -gvn -simple-loop-unswitch -dse -loop-simplifycfg -irce -reassociate -break-crit-edges -strip-debug-declare -mem2reg -loop-versioning-licm -attributor -globalopt -loop-deletion -loop-sink -rpo-functionattrs -loop-load-elim -tailcallelim -loop-reroll -jump-threading -lower-guard-intrinsic -globalopt -consthoist -callsite-splitting -loop-reroll -loop-unroll-and-jam -alignment-from-assumptions -nary-reassociate -loop-versioning-licm -simple-loop-unswitch -loop-deletion -mergeicmps -argpromotion -float2int -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.020702533887118,75.7045681476593,opt -newgvn -insert-gcov-profiling -bdce -indvars -deadargelim -dse -loop-guard-widening -always-inline -aggressive-instcombine -div-rem-pairs -load-store-vectorizer -constmerge -globalopt -ipconstprop -rewrite-statepoints-for-gc -gvn-hoist -lcssa -post-inline-ee-instrument -hotcoldsplit -lowerswitch -break-crit-edges -indvars -loop-guard-widening -loop-reroll -inject-tli-mappings -mem2reg -globalsplit -constmerge -insert-gcov-profiling -slp-vectorizer -lowerswitch -callsite-splitting -licm -loop-unroll-and-jam -separate-const-offset-from-gep -strip-debug-declare -loop-guard-widening -argpromotion -inject-tli-mappings -aggressive-instcombine -licm -add-discriminators -loop-load-elim -licm -lower-constant-intrinsics -hotcoldsplit -simple-loop-unswitch -infer-address-spaces -partially-inline-libcalls -strip-dead-prototypes -globaldce -argpromotion -loop-idiom -constmerge -rewrite-statepoints-for-gc -infer-address-spaces -nary-reassociate -loop-simplify -loop-predication -strip-dead-prototypes -loop-distribute -loop-guard-widening -called-value-propagation -loop-interchange -forceattrs -loop-guard-widening -ipsccp -strip -mem2reg -globalsplit -loop-simplifycfg -div-rem-pairs -guard-widening -load-store-vectorizer -early-cse-memssa -loop-versioning-licm -partial-inliner -elim-avail-extern -loop-sink -lower-guard-intrinsic -indvars -loop-sink -canonicalize-aliases -pgo-memop-opt -loop-load-elim -loop-data-prefetch -lower-constant-intrinsics -functionattrs -sroa -strip-nondebug -constprop -lower-matrix-intrinsics -flattencfg -loweratomic -alignment-from-assumptions -flattencfg -inferattrs -functionattrs -canonicalize-aliases -flattencfg -loop-distribute -simple-loop-unswitch -loop-guard-widening -prune-eh -lower-widenable-condition -strip-debug-declare -insert-gcov-profiling -deadargelim -cross-dso-cfi -ee-instrument -loop-versioning-licm -ipconstprop -sccp -mergeicmps -simplifycfg -float2int -loop-reroll -inferattrs -globaldce -lower-guard-intrinsic -instcombine -sccp -newgvn -newgvn -globaldce input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.020992304967964,74.4376745223999,opt -insert-gcov-profiling -sroa -load-store-vectorizer -reassociate -nary-reassociate -loop-guard-widening -die -sancov -aggressive-instcombine -ee-instrument -rpo-functionattrs -loop-versioning-licm -aggressive-instcombine -jump-threading -lower-matrix-intrinsics -cross-dso-cfi -post-inline-ee-instrument -tailcallelim -reassociate -strip -newgvn -always-inline -instnamer -sink -lcssa -strip-dead-prototypes -irce -mldst-motion -correlated-propagation -libcalls-shrinkwrap -nary-reassociate -loop-guard-widening -called-value-propagation -prune-eh -strip-nondebug -inject-tli-mappings -lower-widenable-condition -consthoist -simplifycfg -slsr -licm -scalarizer -sancov -constmerge -early-cse-memssa -callsite-splitting -separate-const-offset-from-gep -simple-loop-unswitch -sancov -cross-dso-cfi -instcombine -gvn-hoist -gvn -memcpyopt -mem2reg -inferattrs -loop-distribute -sroa -constprop -loop-instsimplify -cross-dso-cfi -gvn-hoist -partially-inline-libcalls -load-store-vectorizer -memcpyopt -ee-instrument -instcombine input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.022408963585434,71.32278347015381,opt -correlated-propagation -float2int -name-anon-globals -jump-threading -redundant-dbg-inst-elim -loop-data-prefetch -redundant-dbg-inst-elim -div-rem-pairs -sancov -correlated-propagation -slp-vectorizer -mem2reg -simplifycfg -coro-elide -libcalls-shrinkwrap -strip-dead-prototypes -float2int -slp-vectorizer -globaldce -slp-vectorizer -separate-const-offset-from-gep -early-cse-memssa -flattencfg -lower-constant-intrinsics -instnamer -libcalls-shrinkwrap -loop-vectorize -dce -inject-tli-mappings -functionattrs -instcombine -float2int -strip-dead-prototypes -bdce -gvn-hoist -loop-idiom -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0232460800412118,73.95274901390076,opt -sink -guard-widening -cross-dso-cfi -hotcoldsplit -mergereturn -break-crit-edges -licm -inject-tli-mappings -break-crit-edges -argpromotion -alignment-from-assumptions -rewrite-statepoints-for-gc -die -ipsccp -slsr -loop-predication -bdce -constprop -rewrite-statepoints-for-gc -coro-split -slsr -lower-expect -aggressive-instcombine -lcssa -div-rem-pairs -separate-const-offset-from-gep -sroa -partially-inline-libcalls -libcalls-shrinkwrap -sroa -guard-widening -loop-simplifycfg -instcombine -nary-reassociate -canonicalize-aliases -licm -newgvn -gvn -mergeicmps -loop-unroll-and-jam -attributor -ipconstprop -partial-inliner -elim-avail-extern -loop-guard-widening -pgo-memop-opt -lowerswitch -slp-vectorizer -guard-widening -inferattrs -slsr -instcombine -lower-guard-intrinsic -simplifycfg -mldst-motion -sancov -ee-instrument -memcpyopt -bdce input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.027367268746579,74.0155394077301,opt -elim-avail-extern -strip-nondebug -dse -lower-matrix-intrinsics -loop-reduce -globalopt -reg2mem -early-cse-memssa -separate-const-offset-from-gep -separate-const-offset-from-gep -argpromotion -instsimplify -dce -reassociate -jump-threading -globalopt -lcssa -bdce -simple-loop-unswitch -mem2reg -guard-widening -tailcallelim -instcombine -loop-predication -coro-elide -tailcallelim -licm -licm -lower-expect -simplifycfg -libcalls-shrinkwrap -mergereturn -newgvn input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0304903570623651,81.23560118675232,opt -newgvn -coro-early -hotcoldsplit -loop-idiom -canonicalize-aliases -loop-interchange -always-inline -lcssa -strip -rewrite-statepoints-for-gc -float2int -alignment-from-assumptions -sink -aggressive-instcombine -callsite-splitting -constmerge -insert-gcov-profiling -canonicalize-aliases -irce -lower-widenable-condition -callsite-splitting -lower-expect -gvn-hoist -loop-interchange -mem2reg -sancov -simplifycfg -instsimplify -canonicalize-aliases -speculative-execution -mergefunc -libcalls-shrinkwrap -instcombine -instsimplify -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.0318104253195528,73.58163642883301,opt -instsimplify -reassociate -loop-instsimplify -coro-elide -rpo-functionattrs -alignment-from-assumptions -alignment-from-assumptions -ee-instrument -loop-load-elim -sink -loop-instsimplify -loop-versioning-licm -called-value-propagation -pgo-memop-opt -loop-simplify -inferattrs -separate-const-offset-from-gep -globalsplit -flattencfg -rewrite-statepoints-for-gc -licm -loop-unroll-and-jam -newgvn -rpo-functionattrs -strip-dead-prototypes -loop-vectorize -sroa -load-store-vectorizer -mergereturn -ipsccp -attributor -insert-gcov-profiling -globalsplit -bdce -coro-elide -always-inline -loop-reroll -loop-sink -newgvn -add-discriminators -loop-fusion -adce -break-crit-edges -loop-reroll -pgo-memop-opt -forceattrs -simple-loop-unswitch -die -early-cse-memssa -mergefunc -partially-inline-libcalls -gvn -loop-vectorize -instcombine -globalopt -partially-inline-libcalls -sancov -loop-unroll-and-jam -loop-sink -globaldce -break-crit-edges -mldst-motion -jump-threading -sancov -dce -lower-widenable-condition -loop-data-prefetch -dce -memcpyopt -lower-widenable-condition -slsr -cross-dso-cfi -hotcoldsplit -inject-tli-mappings -bdce -lcssa -rpo-functionattrs -licm -constprop -lower-widenable-condition -partially-inline-libcalls -inferattrs -loop-vectorize -constprop -speculative-execution -lower-expect -always-inline -cross-dso-cfi -slp-vectorizer -load-store-vectorizer -mergereturn -early-cse-memssa -slp-vectorizer -loweratomic -attributor -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/jpeg-d,1.040793328825783,74.14569687843323,opt -prune-eh -loop-data-prefetch -partially-inline-libcalls -loop-fusion -strip -canonicalize-aliases -loop-interchange -coro-cleanup -jump-threading -early-cse-memssa -consthoist -loop-unroll -loop-data-prefetch -sink -loop-unroll -mem2reg -loop-instsimplify -pgo-memop-opt -simplifycfg -inferattrs -simple-loop-unswitch -loop-instsimplify -functionattrs -called-value-propagation -mergefunc -mldst-motion -jump-threading -insert-gcov-profiling -strip-dead-prototypes -loop-vectorize -loop-guard-widening -callsite-splitting -mem2reg -canonicalize-aliases -sroa -loop-load-elim -loop-predication -die -lcssa -irce -ipconstprop -loop-versioning-licm -indvars -sccp -mergefunc -mergereturn -memcpyopt -ipconstprop -always-inline -ipsccp -float2int -newgvn -reassociate -loop-instsimplify -strip-dead-prototypes -correlated-propagation -guard-widening -memcpyopt -alignment-from-assumptions -lower-guard-intrinsic -irce -loop-vectorize -attributor -loop-data-prefetch -licm -loop-predication -consthoist -barrier -dce -infer-address-spaces -mem2reg -mem2reg -prune-eh -gvn -inject-tli-mappings -adce -tailcallelim -gvn-hoist -globalsplit -loop-distribute -prune-eh -ipconstprop -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0177636073787293,82.4673900604248,opt -canonicalize-aliases -loweratomic -loop-unroll-and-jam -loop-vectorize -infer-address-spaces -loop-instsimplify -break-crit-edges -rewrite-statepoints-for-gc -nary-reassociate -mergefunc -post-inline-ee-instrument -name-anon-globals -flattencfg -functionattrs -strip-debug-declare -loop-vectorize -lowerinvoke -strip-nondebug -redundant-dbg-inst-elim -simple-loop-unswitch -memcpyopt -instnamer -lower-widenable-condition -sink -newgvn -loop-load-elim -pgo-memop-opt -scalarizer -loop-reroll -flattencfg -early-cse-memssa -early-cse-memssa -lowerswitch -sroa -loop-predication -mem2reg -reg2mem -mergeicmps -float2int -die -mergefunc -loop-unroll -lower-constant-intrinsics -instsimplify -bdce -simple-loop-unswitch -loop-guard-widening -globalsplit -loop-distribute -ee-instrument -loop-guard-widening -lower-matrix-intrinsics -bdce -loop-sink -instnamer -infer-address-spaces -strip-dead-prototypes -loop-guard-widening -libcalls-shrinkwrap -adce -gvn -loop-predication -tailcallelim -consthoist -attributor -inject-tli-mappings -correlated-propagation -loop-predication -elim-avail-extern -loop-unroll-and-jam -forceattrs -slsr -partial-inliner -loop-simplifycfg -early-cse-memssa -loweratomic -mldst-motion -loop-reroll -div-rem-pairs -lcssa -loop-versioning -instcombine -alignment-from-assumptions -loop-versioning-licm -coro-split -sccp -guard-widening -lowerinvoke -aggressive-instcombine -hotcoldsplit -adce -adce -loop-simplify -cross-dso-cfi -pgo-memop-opt -always-inline -gvn -add-discriminators -prune-eh -callsite-splitting -memcpyopt -loop-predication -barrier -sroa -strip-dead-prototypes -coro-early -lower-constant-intrinsics -instsimplify -mem2reg -ipsccp -dse -reassociate -loop-data-prefetch -reassociate -canonicalize-aliases -constprop -coro-elide -loop-versioning -float2int -coro-split -inferattrs -loop-vectorize -early-cse-memssa -slp-vectorizer -sancov -ipconstprop -irce -ee-instrument -strip-debug-declare -partially-inline-libcalls -jump-threading -argpromotion -coro-early -strip -bdce -loop-fusion -ipsccp -globaldce -div-rem-pairs -pgo-memop-opt -lowerswitch -insert-gcov-profiling -reassociate -deadargelim -mem2reg -break-crit-edges -partial-inliner -post-inline-ee-instrument -coro-cleanup -irce -lower-guard-intrinsic -correlated-propagation -aggressive-instcombine -add-discriminators -ipconstprop -loop-distribute -lower-constant-intrinsics -separate-const-offset-from-gep -bdce -loop-versioning -dse -coro-cleanup -inferattrs -early-cse-memssa -argpromotion -instcombine -loweratomic -licm -alignment-from-assumptions -mergefunc -deadargelim -strip-dead-prototypes -sink -loop-unswitch -load-store-vectorizer -adce -strip-dead-prototypes -early-cse-memssa -pgo-memop-opt -slp-vectorizer -elim-avail-extern -prune-eh -loop-distribute -coro-elide -gvn-hoist -deadargelim -loop-distribute -reg2mem -reg2mem -mem2reg -attributor -guard-widening -partial-inliner -sink -loop-simplifycfg -loop-idiom -instsimplify -break-crit-edges -loop-unswitch -hotcoldsplit -simplifycfg -float2int -loop-instsimplify -div-rem-pairs -strip-dead-prototypes -guard-widening -indvars -loop-versioning-licm -loop-instsimplify -prune-eh -loop-versioning-licm -globalopt -attributor -lowerswitch -coro-split -sink -mergeicmps -rewrite-statepoints-for-gc -lower-guard-intrinsic -loop-sink -hotcoldsplit -rewrite-statepoints-for-gc -loop-fusion -coro-early -loop-vectorize -mergereturn -div-rem-pairs -mldst-motion -gvn -pgo-memop-opt -forceattrs -speculative-execution -ipsccp -loop-unroll-and-jam -strip -correlated-propagation -lower-widenable-condition -lower-constant-intrinsics -float2int -constprop -strip-nondebug -scalarizer -slp-vectorizer -deadargelim -inject-tli-mappings -lower-widenable-condition -rewrite-statepoints-for-gc -memcpyopt -ipsccp -globaldce -instnamer -coro-early -insert-gcov-profiling -loop-data-prefetch -tailcallelim -instnamer -globalsplit -inferattrs -lower-guard-intrinsic -slsr -always-inline -float2int -globalopt -deadargelim -instcombine -sroa -float2int -lowerswitch -loop-simplifycfg -libcalls-shrinkwrap -die -sink -loop-simplify -loop-simplifycfg -mergefunc -infer-address-spaces -loop-versioning -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0220906399453424,80.74984622001648,opt -lower-guard-intrinsic -loop-predication -mem2reg -mergeicmps -correlated-propagation -mergereturn -coro-split -loop-predication -inject-tli-mappings -prune-eh -correlated-propagation -name-anon-globals -lower-constant-intrinsics -prune-eh -loop-instsimplify -simplifycfg -canonicalize-aliases -ee-instrument -loop-versioning -alignment-from-assumptions -mem2reg -cross-dso-cfi -canonicalize-aliases -die -simplifycfg -slp-vectorizer -globalopt -loop-fusion -callsite-splitting -loop-instsimplify -simple-loop-unswitch -instcombine -mergeicmps -tailcallelim -reassociate -attributor -insert-gcov-profiling -newgvn input.bc -o output.bc +benchmark://cbench-v1/lame,1.026000151825704,89.91641187667847,opt -ipsccp -coro-elide -strip-debug-declare -strip-dead-prototypes -sroa -consthoist -lowerswitch -loweratomic -loop-simplifycfg -coro-elide -alignment-from-assumptions -tailcallelim -lcssa -instnamer -pgo-memop-opt -irce -rewrite-statepoints-for-gc -forceattrs -cross-dso-cfi -mergereturn -loop-sink -gvn-hoist -rpo-functionattrs -float2int -infer-address-spaces -libcalls-shrinkwrap -deadargelim -functionattrs -consthoist -mldst-motion -globalsplit -die -aggressive-instcombine -bdce -aggressive-instcombine -licm -gvn-hoist -slsr -loop-deletion -slsr -loop-idiom -coro-early -licm -globalopt -nary-reassociate -early-cse-memssa -barrier -lowerinvoke -sroa -flattencfg -insert-gcov-profiling -adce -loop-versioning -loop-simplifycfg -partially-inline-libcalls -ee-instrument -simple-loop-unswitch -instnamer -post-inline-ee-instrument -simple-loop-unswitch -ipsccp -bdce -loop-interchange -break-crit-edges -jump-threading -redundant-dbg-inst-elim -lower-expect -always-inline -simplifycfg -speculative-execution -coro-elide -loop-guard-widening -mergefunc -strip-nondebug -mldst-motion -jump-threading -die -loop-guard-widening -instsimplify -prune-eh -ipsccp -instcombine input.bc -o output.bc +benchmark://cbench-v1/lame,1.0306687922265239,78.65229177474976,opt -callsite-splitting -simplifycfg -indvars -mem2reg -correlated-propagation -lower-widenable-condition -constprop -loop-instsimplify -partial-inliner -callsite-splitting -sccp -loop-vectorize -loop-data-prefetch -mergefunc -newgvn -coro-early -loop-idiom -simplifycfg -loop-predication -coro-early -gvn -loweratomic -consthoist -argpromotion -loop-interchange -mldst-motion -loop-deletion -loop-predication -partially-inline-libcalls -jump-threading -instcombine -deadargelim -constprop -name-anon-globals -functionattrs -tailcallelim -attributor -loop-unroll-and-jam -always-inline -memcpyopt -aggressive-instcombine -ee-instrument -loop-vectorize -loop-simplify -mldst-motion -loop-sink -instcombine -ipsccp -jump-threading -elim-avail-extern input.bc -o output.bc +benchmark://cbench-v1/lame,1.0326804828057392,102.16820931434631,opt -jump-threading -strip -inferattrs -gvn -loop-fusion -barrier -canonicalize-aliases -deadargelim -mergefunc -post-inline-ee-instrument -sroa -coro-split -redundant-dbg-inst-elim -loop-reroll -sccp -indvars -reassociate -irce -lower-constant-intrinsics -loop-simplify -post-inline-ee-instrument -mem2reg -slsr -loop-versioning-licm -separate-const-offset-from-gep -mergeicmps -dce -globalsplit -loop-instsimplify -flattencfg -simplifycfg -memcpyopt -rpo-functionattrs -loop-distribute -sroa -hotcoldsplit -float2int -deadargelim -globalsplit -load-store-vectorizer -float2int -rewrite-statepoints-for-gc -globalsplit -mergeicmps -add-discriminators -loop-sink -constprop -strip-dead-prototypes -argpromotion -loop-distribute -libcalls-shrinkwrap -die -loop-load-elim -instnamer -indvars -correlated-propagation -instnamer -instcombine -strip-debug-declare -early-cse-memssa -loop-idiom -ee-instrument -loop-guard-widening -coro-split -lower-guard-intrinsic -cross-dso-cfi -licm -alignment-from-assumptions -flattencfg -consthoist -bdce -add-discriminators -elim-avail-extern -loop-unroll-and-jam -loop-simplifycfg -memcpyopt -speculative-execution -globaldce -loop-interchange -rpo-functionattrs -loop-distribute -mergereturn -memcpyopt -separate-const-offset-from-gep -mergefunc -deadargelim -reassociate -libcalls-shrinkwrap -loop-versioning -mldst-motion -newgvn -nary-reassociate -instcombine input.bc -o output.bc +benchmark://cbench-v1/lame,1.0330600470659683,195.33090710639954,opt -separate-const-offset-from-gep -coro-early -bdce -pgo-memop-opt -nary-reassociate -loop-sink -loop-unswitch -loop-simplifycfg -globalopt -coro-elide -loop-vectorize -break-crit-edges -irce -sccp -coro-cleanup -speculative-execution -functionattrs -called-value-propagation -instnamer -loop-vectorize -argpromotion -mldst-motion -mergereturn -flattencfg -loop-unroll-and-jam -loop-distribute -globalopt -always-inline -instnamer -separate-const-offset-from-gep -load-store-vectorizer -coro-early -lower-guard-intrinsic -insert-gcov-profiling -insert-gcov-profiling -irce -loop-idiom -coro-elide -float2int -licm -loop-simplifycfg -sink -lower-matrix-intrinsics -inject-tli-mappings -lower-expect -inferattrs -simple-loop-unswitch -adce -ipconstprop -strip-nondebug -called-value-propagation -dce -loop-deletion -bdce -float2int -lower-expect -slp-vectorizer -post-inline-ee-instrument -guard-widening -sink -loop-reroll -argpromotion -break-crit-edges -coro-split -mem2reg -guard-widening -simplifycfg -hotcoldsplit -rpo-functionattrs -loop-instsimplify -dse -globaldce -loop-idiom -alignment-from-assumptions -loop-sink -redundant-dbg-inst-elim -gvn-hoist -loop-deletion -loop-simplifycfg -newgvn -rewrite-statepoints-for-gc -strip-nondebug -elim-avail-extern -strip-debug-declare -attributor -lower-expect -lowerinvoke -div-rem-pairs -libcalls-shrinkwrap -tailcallelim -always-inline -instcombine -lowerinvoke -indvars -nary-reassociate -mldst-motion -loop-guard-widening -aggressive-instcombine -mem2reg -deadargelim -attributor -attributor -infer-address-spaces -callsite-splitting -correlated-propagation -attributor -loop-versioning -float2int -hotcoldsplit -hotcoldsplit -inject-tli-mappings -argpromotion -break-crit-edges -instcombine -rewrite-statepoints-for-gc -loop-interchange -loop-data-prefetch -float2int -lower-constant-intrinsics -loop-guard-widening -globaldce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/lame,1.0341607834206334,72.04348230361938,opt -loop-unswitch -licm -lower-constant-intrinsics -dse -irce -strip-debug-declare -hotcoldsplit -sroa -strip-debug-declare -callsite-splitting -early-cse-memssa -lower-constant-intrinsics -die -div-rem-pairs -lower-expect -attributor -reassociate -insert-gcov-profiling -ee-instrument -deadargelim -correlated-propagation -dse -loop-load-elim -coro-split -strip -loop-versioning-licm -loop-predication -mem2reg -guard-widening -strip -float2int -loop-guard-widening -strip-dead-prototypes -loop-instsimplify -globalsplit -elim-avail-extern -loop-versioning -ipconstprop -irce -inject-tli-mappings -insert-gcov-profiling -gvn-hoist -die -lowerswitch -partially-inline-libcalls -gvn -die -instsimplify -post-inline-ee-instrument -loop-sink -loop-unroll-and-jam -loop-predication -loop-unroll-and-jam -ipconstprop -loop-versioning -sroa -cross-dso-cfi -instnamer -loop-vectorize -constmerge -loop-instsimplify -sccp -lower-constant-intrinsics -sink -mergefunc -reassociate -add-discriminators -sccp -instcombine -instcombine -loop-simplifycfg -loop-fusion -slsr -inject-tli-mappings -irce -alignment-from-assumptions -loop-versioning-licm -sccp -post-inline-ee-instrument -lowerinvoke -ipsccp -flattencfg -loop-instsimplify -ee-instrument -flattencfg -simplifycfg -infer-address-spaces -memcpyopt -loop-load-elim -coro-elide -loop-guard-widening -rpo-functionattrs -adce -loop-simplify -newgvn input.bc -o output.bc +benchmark://cbench-v1/lame,1.039892203750095,87.48616743087769,opt -insert-gcov-profiling -gvn-hoist -loop-deletion -strip-debug-declare -adce -strip-debug-declare -lower-expect -early-cse-memssa -loop-reroll -partially-inline-libcalls -simplifycfg -sroa -instcombine -gvn -infer-address-spaces -lowerinvoke -loop-predication -memcpyopt -nary-reassociate -reg2mem -coro-elide -loop-instsimplify -simple-loop-unswitch -sroa -called-value-propagation -lcssa -loop-fusion -rewrite-statepoints-for-gc -separate-const-offset-from-gep -lower-matrix-intrinsics -irce -loop-unswitch -loop-reroll -lower-guard-intrinsic -ipconstprop -simplifycfg -mergereturn -coro-early -argpromotion -instcombine -mergereturn -lower-guard-intrinsic -strip -elim-avail-extern -ipsccp input.bc -o output.bc +benchmark://cbench-v1/lame,1.0432703256661353,320.4585802555084,opt -separate-const-offset-from-gep -irce -jump-threading -constprop -loop-deletion -sroa -newgvn -licm -lowerinvoke -canonicalize-aliases -inferattrs -simple-loop-unswitch -speculative-execution -name-anon-globals -adce -sancov -die -instsimplify -separate-const-offset-from-gep -inject-tli-mappings -lower-guard-intrinsic -licm -lower-matrix-intrinsics -mergereturn -constprop -instcombine -mem2reg -loop-instsimplify -inferattrs -loop-data-prefetch -mergereturn -irce -speculative-execution -loop-versioning-licm -called-value-propagation -globaldce -loop-reroll -forceattrs -ee-instrument -sccp -inferattrs -loop-load-elim -barrier -simplifycfg -loop-fusion -loop-reroll -loop-distribute -insert-gcov-profiling -lower-widenable-condition -sink -div-rem-pairs -redundant-dbg-inst-elim -loop-instsimplify -deadargelim -nary-reassociate -correlated-propagation -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/lame,1.0480528353450238,136.65584301948547,opt -globalsplit -inject-tli-mappings -mergefunc -tailcallelim -libcalls-shrinkwrap -gvn-hoist -loop-fusion -loop-versioning -prune-eh -loop-interchange -strip-debug-declare -loop-sink -flattencfg -dce -elim-avail-extern -consthoist -barrier -float2int -globalopt -sroa -gvn-hoist -correlated-propagation -gvn -float2int -simple-loop-unswitch -functionattrs -globalsplit -newgvn -instsimplify -simplifycfg -simple-loop-unswitch -loop-versioning -functionattrs -newgvn -loweratomic -pgo-memop-opt -lcssa -adce -insert-gcov-profiling -loop-unroll-and-jam -infer-address-spaces -loop-data-prefetch -loop-deletion -correlated-propagation -rpo-functionattrs -lcssa -instcombine -loop-reroll -flattencfg -loop-predication -functionattrs -scalarizer -insert-gcov-profiling -tailcallelim -loop-fusion -mergefunc -sancov -loop-interchange -loop-unroll-and-jam -loop-sink -inject-tli-mappings -globalopt -loweratomic -sroa -separate-const-offset-from-gep -prune-eh -mergereturn -loop-distribute -deadargelim -loop-instsimplify -ipconstprop -simplifycfg -loop-data-prefetch -pgo-memop-opt -add-discriminators -coro-elide -pgo-memop-opt -partially-inline-libcalls -sccp -rpo-functionattrs -sccp -memcpyopt -constprop -rewrite-statepoints-for-gc -indvars -dce -ipconstprop -globalsplit -argpromotion -called-value-propagation -strip-debug-declare -redundant-dbg-inst-elim -lower-expect -globaldce -ee-instrument -newgvn -mldst-motion input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9955506117908788,61.57529139518738,opt -loop-sink -simplifycfg -lower-widenable-condition -strip -inject-tli-mappings -mldst-motion -lower-constant-intrinsics -adce -loop-distribute -loop-predication -lower-matrix-intrinsics -rpo-functionattrs -lowerinvoke -name-anon-globals -load-store-vectorizer -coro-cleanup -hotcoldsplit -ipsccp -consthoist -guard-widening -strip-debug-declare -bdce -coro-early -bdce -loop-interchange -simplifycfg -redundant-dbg-inst-elim -simplifycfg -loop-guard-widening -forceattrs -loop-versioning -ipconstprop -name-anon-globals -canonicalize-aliases -barrier -loop-data-prefetch -post-inline-ee-instrument -tailcallelim -mem2reg -simplifycfg -ipsccp -loop-interchange -scalarizer -prune-eh -nary-reassociate -post-inline-ee-instrument -nary-reassociate -loop-deletion -argpromotion -insert-gcov-profiling -loop-deletion -constmerge -add-discriminators -gvn -dse -instcombine -functionattrs -coro-elide -loop-load-elim -strip-nondebug -loop-load-elim -ee-instrument -gvn -attributor -die -globalopt -redundant-dbg-inst-elim -strip-dead-prototypes -sccp -float2int -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9955506117908788,61.80874562263489,opt -rpo-functionattrs -lowerswitch -rpo-functionattrs -loop-unroll -early-cse-memssa -deadargelim -hotcoldsplit -inferattrs -mldst-motion -flattencfg -argpromotion -load-store-vectorizer -forceattrs -newgvn -post-inline-ee-instrument -loop-simplifycfg -mldst-motion -globaldce -name-anon-globals -add-discriminators -ee-instrument -mergereturn -loweratomic -sink -argpromotion -jump-threading -consthoist -strip -break-crit-edges -coro-cleanup -lower-matrix-intrinsics -loop-interchange -guard-widening -loop-unroll-and-jam -loop-instsimplify -loop-data-prefetch -jump-threading -indvars -loop-simplifycfg -strip-debug-declare -instnamer -div-rem-pairs -ee-instrument -lower-guard-intrinsic -lower-constant-intrinsics -loop-load-elim -coro-split -lowerinvoke -loop-guard-widening -speculative-execution -loop-unroll-and-jam -loweratomic -gvn -dse -loop-predication -strip -correlated-propagation -die -loop-sink -mem2reg -functionattrs -coro-split -loop-instsimplify -always-inline -globaldce -sroa -loop-simplifycfg -irce -consthoist -attributor -flattencfg -separate-const-offset-from-gep -barrier -ee-instrument -guard-widening -mergereturn -partially-inline-libcalls -loop-simplifycfg -die -loop-deletion -reassociate -strip-dead-prototypes -ipsccp -irce -loop-load-elim -irce -bdce -insert-gcov-profiling -loop-reroll -loop-simplifycfg -strip -lower-guard-intrinsic -loop-reduce -instnamer -deadargelim -coro-split -licm -rpo-functionattrs -loop-deletion -add-discriminators -name-anon-globals -called-value-propagation -loop-versioning -loop-data-prefetch -gvn-hoist -guard-widening -loop-deletion -div-rem-pairs -instcombine -partial-inliner -name-anon-globals -indvars -insert-gcov-profiling -strip-nondebug -globalopt -newgvn -float2int -redundant-dbg-inst-elim -callsite-splitting -deadargelim -ipsccp -loop-predication -loop-simplifycfg -alignment-from-assumptions -barrier -cross-dso-cfi -redundant-dbg-inst-elim -early-cse-memssa -argpromotion -loop-versioning -callsite-splitting -called-value-propagation -loop-versioning-licm -instcombine -sccp -loop-unroll -simplifycfg -strip -loop-sink -consthoist -strip-nondebug -instsimplify -infer-address-spaces -globaldce -loop-guard-widening -die -instnamer -simplifycfg -rewrite-statepoints-for-gc -instcombine input.bc -o output.bc +benchmark://cbench-v1/patricia,0.995550611790879,61.725738286972046,opt -inferattrs -attributor -partially-inline-libcalls -correlated-propagation -speculative-execution -ipsccp -elim-avail-extern -coro-cleanup -loop-versioning-licm -forceattrs -nary-reassociate -constprop -coro-cleanup -loop-simplifycfg -attributor -simple-loop-unswitch -consthoist -constprop -correlated-propagation -partial-inliner -gvn -rewrite-statepoints-for-gc -slp-vectorizer -barrier -instnamer -loop-simplifycfg -instcombine -deadargelim -dce -scalarizer -newgvn -alignment-from-assumptions -loop-interchange -called-value-propagation -functionattrs -guard-widening -forceattrs -loop-interchange -loop-guard-widening -indvars -sccp -early-cse-memssa -dse -correlated-propagation -instnamer -mldst-motion -redundant-dbg-inst-elim -loop-distribute -slsr -loop-predication -lower-matrix-intrinsics -lower-matrix-intrinsics -coro-early -strip-dead-prototypes -hotcoldsplit -loop-simplifycfg -loop-interchange -pgo-memop-opt -memcpyopt -loop-simplifycfg -coro-cleanup -indvars -loop-load-elim -mem2reg -bdce -reassociate -loop-versioning-licm -callsite-splitting -rewrite-statepoints-for-gc -loop-data-prefetch -loop-load-elim -rpo-functionattrs -loweratomic -loop-load-elim -newgvn -gvn-hoist -inferattrs -dce -coro-early -dce -lower-widenable-condition -loweratomic -pgo-memop-opt -dse -die -mem2reg -loop-guard-widening -ipsccp -inferattrs -aggressive-instcombine -instnamer -gvn-hoist -lower-matrix-intrinsics -memcpyopt -libcalls-shrinkwrap -partial-inliner -loop-reduce -reassociate -lower-expect -loop-deletion -instnamer -mergefunc -loop-simplifycfg -lower-widenable-condition -pgo-memop-opt -strip -deadargelim -coro-elide -barrier -newgvn -gvn -sancov -float2int -inject-tli-mappings -barrier -coro-split -tailcallelim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9977753058954394,61.65921092033386,opt -loop-reroll -coro-early -libcalls-shrinkwrap -loop-guard-widening -loop-unswitch -callsite-splitting -post-inline-ee-instrument -early-cse-memssa -add-discriminators -mldst-motion -strip-nondebug -loop-unswitch -break-crit-edges -infer-address-spaces -sroa -instnamer -loop-fusion -loop-sink -flattencfg -lower-constant-intrinsics -reg2mem -indvars -indvars -mergefunc -insert-gcov-profiling -flattencfg -mldst-motion -elim-avail-extern -loop-vectorize -prune-eh -partial-inliner -functionattrs -speculative-execution -bdce -dce -canonicalize-aliases -coro-elide -pgo-memop-opt -prune-eh -mergefunc -simplifycfg -mergeicmps -loop-unroll-and-jam -lower-guard-intrinsic -mergereturn -bdce -libcalls-shrinkwrap -loop-simplifycfg -coro-split -dse -lowerinvoke -loop-deletion -loop-guard-widening -pgo-memop-opt -load-store-vectorizer -correlated-propagation -loop-sink -loop-guard-widening -mergeicmps -loop-distribute -strip -inject-tli-mappings -loop-reduce -strip-debug-declare -strip -coro-cleanup -irce -simple-loop-unswitch -scalarizer -gvn-hoist -sancov -called-value-propagation -simplifycfg -globalopt -always-inline -rewrite-statepoints-for-gc -ee-instrument -div-rem-pairs -add-discriminators -lower-expect -coro-elide -loop-versioning -ipconstprop -loop-deletion -coro-split -die -mem2reg -gvn -rewrite-statepoints-for-gc -strip-nondebug -attributor -adce -elim-avail-extern -loop-instsimplify -aggressive-instcombine -name-anon-globals -constprop -mergefunc -ee-instrument -lower-expect -separate-const-offset-from-gep -loop-guard-widening -adce -strip -loop-deletion -loop-instsimplify -add-discriminators -newgvn -constprop -instcombine -strip -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9977753058954394,62.400047063827515,opt -sancov -barrier -loop-data-prefetch -libcalls-shrinkwrap -loop-simplifycfg -mldst-motion -strip-dead-prototypes -coro-elide -loop-reduce -loop-idiom -globalopt -loop-sink -loop-unroll-and-jam -canonicalize-aliases -barrier -indvars -strip-nondebug -float2int -simplifycfg -forceattrs -infer-address-spaces -cross-dso-cfi -loop-unroll -coro-cleanup -bdce -nary-reassociate -globalsplit -licm -nary-reassociate -callsite-splitting -slsr -float2int -correlated-propagation -lower-widenable-condition -globalsplit -ee-instrument -callsite-splitting -add-discriminators -constmerge -loop-distribute -functionattrs -flattencfg -early-cse-memssa -lower-constant-intrinsics -correlated-propagation -lower-constant-intrinsics -rewrite-statepoints-for-gc -functionattrs -ipconstprop -rewrite-statepoints-for-gc -insert-gcov-profiling -constmerge -guard-widening -loop-sink -loop-guard-widening -partially-inline-libcalls -mergefunc -partial-inliner -loop-load-elim -loop-data-prefetch -mem2reg -flattencfg -alignment-from-assumptions -called-value-propagation -partially-inline-libcalls -rewrite-statepoints-for-gc -loop-reroll -loop-simplifycfg -instnamer -coro-split -loop-interchange -strip -instcombine -gvn -nary-reassociate -lowerinvoke -globaldce -aggressive-instcombine -globaldce -float2int -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9988876529477196,61.67392659187317,opt -strip -break-crit-edges -loop-unroll-and-jam -correlated-propagation -rpo-functionattrs -functionattrs -separate-const-offset-from-gep -forceattrs -mergereturn -lcssa -scalarizer -redundant-dbg-inst-elim -instnamer -libcalls-shrinkwrap -coro-early -lcssa -ipconstprop -loop-unroll -lower-constant-intrinsics -coro-early -gvn -mergefunc -instcombine -strip-dead-prototypes -sancov -globalsplit -slp-vectorizer -aggressive-instcombine -name-anon-globals -elim-avail-extern -sccp -loop-guard-widening -mergereturn -loop-guard-widening -simplifycfg -add-discriminators -loop-interchange -ipconstprop -callsite-splitting -loop-simplifycfg -lower-constant-intrinsics -jump-threading -scalarizer -coro-cleanup -loop-vectorize -mldst-motion -loop-versioning -correlated-propagation -called-value-propagation -sink -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/patricia,0.9999999999999999,61.583837270736694,opt -ipconstprop -attributor -hotcoldsplit -coro-split -newgvn -barrier -irce -lower-widenable-condition -mem2reg -mergeicmps -die -name-anon-globals -always-inline -loop-deletion -globalsplit -rpo-functionattrs -reassociate -loop-interchange -break-crit-edges -lower-constant-intrinsics -argpromotion -forceattrs -rpo-functionattrs -slsr -loop-unroll -globaldce -sancov -globalopt -loop-sink -mergeicmps -simplifycfg -lower-guard-intrinsic -reg2mem -div-rem-pairs -loop-idiom -lower-constant-intrinsics -mem2reg -mergefunc -pgo-memop-opt -partially-inline-libcalls -cross-dso-cfi -loop-load-elim -instnamer -hotcoldsplit -mergereturn -add-discriminators -irce -partially-inline-libcalls -flattencfg -alignment-from-assumptions -globaldce -mem2reg -loweratomic -functionattrs -insert-gcov-profiling -lower-constant-intrinsics -loop-predication -post-inline-ee-instrument -ipconstprop -loop-vectorize -die -mergeicmps -strip-dead-prototypes -loop-predication -nary-reassociate -strip -cross-dso-cfi -instcombine -loop-distribute -strip-nondebug -constprop -guard-widening -dse -instsimplify -licm -strip-dead-prototypes -loop-fusion -newgvn -mldst-motion -constprop -reassociate -float2int -loop-load-elim -speculative-execution -flattencfg -loop-load-elim -add-discriminators -rpo-functionattrs -scalarizer -rpo-functionattrs -functionattrs -inferattrs -simplifycfg -lowerinvoke -instnamer -lower-matrix-intrinsics -dse input.bc -o output.bc +benchmark://cbench-v1/patricia,1.0000000000000002,61.69987082481384,opt -forceattrs -sink -loop-simplify -loop-simplify -adce -ee-instrument -loop-vectorize -loop-fusion -partial-inliner -loweratomic -lower-widenable-condition -mergeicmps -post-inline-ee-instrument -prune-eh -aggressive-instcombine -scalarizer -insert-gcov-profiling -slsr -barrier -loop-simplify -lower-guard-intrinsic -insert-gcov-profiling -irce -correlated-propagation -coro-cleanup -licm -lower-guard-intrinsic -speculative-execution -forceattrs -sink -break-crit-edges -lcssa -mergereturn -barrier -ee-instrument -strip-debug-declare -memcpyopt -instnamer -constprop -ee-instrument -redundant-dbg-inst-elim -strip-nondebug -mergefunc -constmerge -gvn-hoist -mem2reg -prune-eh -globalsplit -loop-unroll-and-jam -functionattrs -slp-vectorizer -simplifycfg -strip-debug-declare -indvars -reassociate -coro-cleanup -loop-predication -float2int -loop-fusion -called-value-propagation -coro-elide -bdce -loop-simplifycfg -called-value-propagation -strip -cross-dso-cfi -tailcallelim -lower-guard-intrinsic -ipsccp -mem2reg -mldst-motion -simplifycfg -instcombine -loop-idiom -loop-vectorize -always-inline -strip-debug-declare -consthoist -attributor -nary-reassociate -constmerge -loop-interchange -newgvn -lower-matrix-intrinsics -coro-early -lowerinvoke -aggressive-instcombine -simple-loop-unswitch -float2int -bdce -loop-fusion -gvn -licm -consthoist -flattencfg -simplifycfg -loop-simplify -ee-instrument -float2int -partially-inline-libcalls -irce -redundant-dbg-inst-elim -barrier -add-discriminators -jump-threading -redundant-dbg-inst-elim -infer-address-spaces -mldst-motion -canonicalize-aliases -lowerswitch -sink -always-inline -strip-nondebug -lower-constant-intrinsics -mem2reg -name-anon-globals -instsimplify input.bc -o output.bc +benchmark://cbench-v1/patricia,1.0000000000000002,61.75343203544617,opt -globalopt -memcpyopt -mergereturn -infer-address-spaces -globaldce -lowerinvoke -insert-gcov-profiling -sroa -speculative-execution -rewrite-statepoints-for-gc -nary-reassociate -guard-widening -globalopt -bdce -scalarizer -simplifycfg -lower-guard-intrinsic -float2int -loop-idiom -mergereturn -constmerge -argpromotion -loop-instsimplify -name-anon-globals -loop-reroll -globalopt -lowerinvoke -mergeicmps -nary-reassociate -simplifycfg -consthoist -mergeicmps -instnamer -flattencfg -libcalls-shrinkwrap -loop-versioning-licm -lowerinvoke -inject-tli-mappings -indvars -sink -loop-simplifycfg -ipsccp -callsite-splitting -constmerge -loweratomic -licm -loop-unroll -dse -sancov -newgvn -globalopt -argpromotion -loop-simplify -redundant-dbg-inst-elim -libcalls-shrinkwrap -post-inline-ee-instrument -attributor -loop-versioning-licm -lower-expect -correlated-propagation -early-cse-memssa -libcalls-shrinkwrap -lower-constant-intrinsics -sroa -functionattrs -loop-sink -instcombine -reg2mem -loop-predication -loop-simplifycfg -rpo-functionattrs -globaldce -scalarizer -rewrite-statepoints-for-gc -mem2reg -coro-split -loop-vectorize -coro-elide -simplifycfg -simple-loop-unswitch -ipconstprop -name-anon-globals -infer-address-spaces -loop-unroll-and-jam -sroa -loop-idiom -loop-reroll -separate-const-offset-from-gep -inferattrs -simple-loop-unswitch -ee-instrument -loop-fusion -loop-guard-widening -always-inline -rpo-functionattrs -redundant-dbg-inst-elim -instsimplify -sink -loop-reduce -gvn-hoist -mergereturn -jump-threading -pgo-memop-opt -globalopt -gvn-hoist -barrier -loop-predication -rewrite-statepoints-for-gc -partially-inline-libcalls -insert-gcov-profiling -coro-early -newgvn -tailcallelim -forceattrs -loop-guard-widening -loop-interchange -nary-reassociate -coro-early -loop-versioning -flattencfg -rpo-functionattrs -post-inline-ee-instrument -gvn -infer-address-spaces -irce -consthoist -coro-elide -functionattrs -mergefunc -reg2mem -loop-versioning-licm -mem2reg -simplifycfg -always-inline -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/patricia,1.0011123470522802,61.89285445213318,opt -infer-address-spaces -redundant-dbg-inst-elim -coro-early -loop-predication -speculative-execution -loop-unroll-and-jam -mem2reg -hotcoldsplit -infer-address-spaces -memcpyopt -globalopt -elim-avail-extern -name-anon-globals -loop-versioning-licm -strip-nondebug -coro-early -dse -reg2mem -lowerinvoke -separate-const-offset-from-gep -globaldce -loop-deletion -bdce -dce -argpromotion -always-inline -loop-data-prefetch -inferattrs -coro-early -loop-guard-widening -lower-guard-intrinsic -gvn -pgo-memop-opt -rpo-functionattrs -coro-elide -nary-reassociate -dce -consthoist -scalarizer -lcssa -partially-inline-libcalls -coro-elide -gvn-hoist -adce -loop-instsimplify -licm -prune-eh -mergefunc -strip-debug-declare -newgvn -attributor -loop-unroll-and-jam -coro-early -scalarizer -scalarizer -mergereturn -cross-dso-cfi -loop-distribute -globalsplit -pgo-memop-opt -sink -indvars -globalsplit -cross-dso-cfi -inferattrs -mergereturn -loop-versioning -libcalls-shrinkwrap -called-value-propagation -loweratomic -callsite-splitting -mergeicmps -libcalls-shrinkwrap -ee-instrument -barrier -tailcallelim -ee-instrument -canonicalize-aliases -div-rem-pairs -tailcallelim -libcalls-shrinkwrap -ipconstprop -alignment-from-assumptions -redundant-dbg-inst-elim -flattencfg -loop-idiom -break-crit-edges -load-store-vectorizer -mldst-motion -globalsplit -lowerswitch -lower-matrix-intrinsics -loop-simplifycfg -nary-reassociate -ee-instrument -loop-fusion -infer-address-spaces -loop-unroll-and-jam -div-rem-pairs -libcalls-shrinkwrap -tailcallelim -elim-avail-extern -reassociate -attributor -cross-dso-cfi -loop-deletion -infer-address-spaces -loop-sink -ipsccp -canonicalize-aliases -callsite-splitting -barrier -sancov -called-value-propagation -lower-expect -loop-versioning -gvn-hoist -loop-versioning -consthoist -coro-cleanup -lcssa -name-anon-globals -simplifycfg -rewrite-statepoints-for-gc -always-inline -loop-simplify -mergefunc -loop-data-prefetch -sink -licm -argpromotion -hotcoldsplit -loop-idiom -slsr -nary-reassociate -mem2reg -insert-gcov-profiling -add-discriminators -memcpyopt -loop-sink -forceattrs -lower-guard-intrinsic -ee-instrument -pgo-memop-opt -name-anon-globals -instsimplify -loweratomic -lowerswitch -instcombine -simplifycfg -die -loop-simplifycfg -simple-loop-unswitch -adce -loop-versioning-licm -inferattrs -loop-load-elim -simple-loop-unswitch -lower-expect -attributor -strip-nondebug -loop-vectorize -attributor -slsr -strip-nondebug -cross-dso-cfi -functionattrs -newgvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1145510835913313,61.80645179748535,opt -inferattrs -add-discriminators -memcpyopt -lowerswitch -constmerge -memcpyopt -elim-avail-extern -loop-load-elim -loop-distribute -deadargelim -loop-reroll -reg2mem -instnamer -globaldce -sancov -simple-loop-unswitch -ipconstprop -strip -loweratomic -loop-distribute -sroa -called-value-propagation -loop-distribute -instcombine -cross-dso-cfi -loop-predication -div-rem-pairs -loop-fusion -loop-reroll -loop-idiom -newgvn -globalsplit -dce -bdce -coro-cleanup -coro-cleanup -ee-instrument -coro-elide -loop-distribute -always-inline -lcssa -speculative-execution -loop-distribute -slsr -lower-matrix-intrinsics -instnamer -guard-widening -deadargelim -forceattrs -loop-deletion -rewrite-statepoints-for-gc -coro-cleanup -tailcallelim -loop-predication -loop-versioning -break-crit-edges -cross-dso-cfi -load-store-vectorizer -sink -redundant-dbg-inst-elim -break-crit-edges -sccp -lowerinvoke -deadargelim -dse -functionattrs -constmerge -tailcallelim -gvn-hoist -attributor -inject-tli-mappings -separate-const-offset-from-gep -mergefunc -flattencfg -libcalls-shrinkwrap -scalarizer -name-anon-globals -scalarizer -guard-widening -loop-data-prefetch -loop-simplifycfg -slp-vectorizer -deadargelim -loop-unswitch -dce -loop-reroll -mem2reg -indvars -flattencfg -inject-tli-mappings -div-rem-pairs -strip-dead-prototypes -loop-idiom -loop-distribute -loop-guard-widening -globaldce -sink -attributor -slp-vectorizer -ee-instrument -loop-interchange -loweratomic -lowerinvoke -partially-inline-libcalls -lowerswitch -lower-constant-intrinsics -loop-simplify -rewrite-statepoints-for-gc -adce -jump-threading -loop-load-elim -alignment-from-assumptions -globaldce -inject-tli-mappings -loop-sink -scalarizer -pgo-memop-opt -argpromotion -adce -functionattrs -sink -irce -sroa -alignment-from-assumptions -loweratomic -ipconstprop -globalsplit -lcssa -newgvn -attributor -speculative-execution -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.117647058823529,61.690404653549194,opt -globaldce -mergefunc -gvn-hoist -ipconstprop -mergeicmps -tailcallelim -newgvn -loop-simplifycfg -mem2reg -lower-guard-intrinsic -constprop -constmerge -mldst-motion -barrier -tailcallelim -lowerinvoke -barrier -name-anon-globals -lower-matrix-intrinsics -lcssa -strip-dead-prototypes -globaldce -loop-predication -slp-vectorizer -guard-widening -always-inline -coro-cleanup -loop-unroll-and-jam -slp-vectorizer -elim-avail-extern -instcombine -inferattrs -slp-vectorizer -lowerswitch -insert-gcov-profiling -coro-early -instnamer -strip-debug-declare -globalopt -simplifycfg -loop-deletion -globalsplit -loop-guard-widening -gvn-hoist -simplifycfg -libcalls-shrinkwrap -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1207430340557274,61.65247201919556,opt -slsr -coro-cleanup -insert-gcov-profiling -lowerswitch -sink -lower-widenable-condition -post-inline-ee-instrument -coro-split -strip-debug-declare -deadargelim -lower-constant-intrinsics -loop-reroll -forceattrs -jump-threading -loop-reduce -canonicalize-aliases -loop-interchange -loop-idiom -globalsplit -loop-distribute -callsite-splitting -mergereturn -bdce -loop-vectorize -loop-unswitch -partially-inline-libcalls -ee-instrument -loop-load-elim -globaldce -coro-split -deadargelim -barrier -loweratomic -slsr -elim-avail-extern -loop-data-prefetch -sroa -alignment-from-assumptions -gvn -strip-nondebug -libcalls-shrinkwrap -indvars -loop-unroll-and-jam -guard-widening -loop-guard-widening -insert-gcov-profiling -loop-simplify -gvn -guard-widening -jump-threading -globalopt -coro-elide -early-cse-memssa -infer-address-spaces -loop-simplifycfg -float2int -sccp -dse -lower-guard-intrinsic -loop-deletion -lower-guard-intrinsic -lcssa -loop-vectorize -strip -ipsccp -die -prune-eh -dse -inject-tli-mappings -inferattrs -mergeicmps -alignment-from-assumptions -strip-debug-declare -strip-dead-prototypes -simple-loop-unswitch -coro-split -gvn -lowerinvoke -sink -inject-tli-mappings -loop-data-prefetch -break-crit-edges -libcalls-shrinkwrap -strip -speculative-execution -adce -loweratomic -hotcoldsplit -reassociate -redundant-dbg-inst-elim -strip -guard-widening -strip-debug-declare -inferattrs -newgvn -sancov -loop-distribute -adce -licm -add-discriminators -insert-gcov-profiling -ee-instrument -instcombine -attributor -loop-unswitch -loop-deletion -canonicalize-aliases -coro-cleanup -deadargelim -strip-nondebug -add-discriminators -libcalls-shrinkwrap -div-rem-pairs -lower-constant-intrinsics -barrier -sancov -instnamer -simplifycfg -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1207430340557276,61.6931471824646,opt -loop-load-elim -irce -loop-sink -loop-idiom -loop-deletion -early-cse-memssa -pgo-memop-opt -partially-inline-libcalls -break-crit-edges -mldst-motion -rpo-functionattrs -elim-avail-extern -canonicalize-aliases -libcalls-shrinkwrap -irce -loweratomic -constmerge -strip -loop-load-elim -licm -callsite-splitting -inject-tli-mappings -globalsplit -loop-versioning-licm -loop-reroll -float2int -loop-unswitch -separate-const-offset-from-gep -slp-vectorizer -sccp -aggressive-instcombine -gvn -loop-guard-widening -flattencfg -prune-eh -loop-unroll-and-jam -float2int -loop-fusion -instcombine -adce -load-store-vectorizer -die -pgo-memop-opt -ipsccp -rewrite-statepoints-for-gc -loop-simplifycfg -simplifycfg -reassociate -strip -globalsplit -coro-early -gvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1207430340557276,61.77819585800171,opt -loop-reduce -break-crit-edges -hotcoldsplit -loop-interchange -post-inline-ee-instrument -reassociate -loop-fusion -coro-elide -irce -loop-idiom -libcalls-shrinkwrap -gvn-hoist -called-value-propagation -loop-data-prefetch -coro-cleanup -lowerinvoke -name-anon-globals -load-store-vectorizer -canonicalize-aliases -constprop -forceattrs -slsr -rewrite-statepoints-for-gc -functionattrs -name-anon-globals -sroa -sancov -licm -strip-debug-declare -consthoist -ee-instrument -lower-expect -loop-deletion -gvn -instcombine -rewrite-statepoints-for-gc -pgo-memop-opt -newgvn -loop-fusion -lowerinvoke -lower-constant-intrinsics -instcombine -callsite-splitting -newgvn -float2int -loop-sink -canonicalize-aliases -div-rem-pairs -float2int -instcombine -rpo-functionattrs -forceattrs -mergefunc -separate-const-offset-from-gep -guard-widening -lower-guard-intrinsic -div-rem-pairs -scalarizer -die -ipconstprop -prune-eh -irce -mem2reg -coro-cleanup -simplifycfg -inject-tli-mappings -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1207430340557276,61.80295729637146,opt -mergefunc -separate-const-offset-from-gep -loop-unroll -called-value-propagation -loop-reroll -elim-avail-extern -sroa -name-anon-globals -loop-predication -add-discriminators -name-anon-globals -speculative-execution -loop-reroll -elim-avail-extern -inject-tli-mappings -globalopt -loop-unswitch -sancov -mergefunc -coro-cleanup -div-rem-pairs -loop-simplify -newgvn -barrier -instcombine -lcssa -early-cse-memssa -lower-matrix-intrinsics -break-crit-edges -loop-guard-widening -nary-reassociate -strip-dead-prototypes -slp-vectorizer -dse -loop-instsimplify -loweratomic -instnamer -functionattrs -globalopt -strip-nondebug -consthoist -slp-vectorizer -name-anon-globals -load-store-vectorizer -coro-split -slsr -sink -loop-interchange -float2int -argpromotion -simplifycfg -instsimplify -gvn input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1207430340557276,64.49103260040283,opt -coro-early -coro-early -loop-deletion -ee-instrument -sink -argpromotion -lcssa -partially-inline-libcalls -sancov -div-rem-pairs -separate-const-offset-from-gep -load-store-vectorizer -aggressive-instcombine -simple-loop-unswitch -bdce -newgvn -instsimplify -early-cse-memssa -sink -inferattrs -bdce -rpo-functionattrs -ipconstprop -consthoist -mergereturn -scalarizer -redundant-dbg-inst-elim -loop-idiom -mem2reg -globalopt -lowerswitch -elim-avail-extern -loop-reroll -deadargelim -elim-avail-extern -lowerinvoke -scalarizer -barrier -instcombine -loop-unswitch -lower-expect -lowerinvoke -separate-const-offset-from-gep -guard-widening -barrier -gvn -deadargelim -pgo-memop-opt -guard-widening -reassociate -mergeicmps -instnamer -flattencfg -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1207430340557278,61.58107852935791,opt -scalarizer -mergefunc -reassociate -loop-vectorize -loop-instsimplify -guard-widening -lower-constant-intrinsics -sancov -constprop -newgvn -guard-widening -mem2reg -instcombine -canonicalize-aliases -licm -alignment-from-assumptions -inject-tli-mappings -mergereturn -sancov -lcssa -sccp -loop-simplifycfg -sccp -ipsccp -constmerge -lower-constant-intrinsics -lower-constant-intrinsics -callsite-splitting -loop-versioning -die -break-crit-edges -coro-cleanup -strip -post-inline-ee-instrument -lower-constant-intrinsics -lower-widenable-condition -elim-avail-extern -strip-nondebug -newgvn -lower-matrix-intrinsics -dse -nary-reassociate -name-anon-globals -reassociate -gvn-hoist -globalsplit -insert-gcov-profiling -strip-debug-declare -die -sccp -newgvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.1238390092879258,61.713104486465454,opt -partially-inline-libcalls -consthoist -loop-versioning -instnamer -add-discriminators -name-anon-globals -lower-guard-intrinsic -mergereturn -newgvn -indvars -name-anon-globals -callsite-splitting -lowerinvoke -scalarizer -lowerswitch -constmerge -loop-sink -instcombine -consthoist -separate-const-offset-from-gep -loop-sink -inject-tli-mappings -loop-reduce -slsr -gvn -ipsccp -always-inline -sink -slsr -insert-gcov-profiling -post-inline-ee-instrument -sancov -loop-deletion -strip-nondebug -loop-interchange -indvars -sccp -globaldce -loop-predication -strip-dead-prototypes -dce -lower-constant-intrinsics -rpo-functionattrs -instcombine -lower-guard-intrinsic -nary-reassociate -memcpyopt -strip-dead-prototypes -simple-loop-unswitch -ee-instrument -sroa -mergeicmps -libcalls-shrinkwrap -lower-widenable-condition -strip-debug-declare -partially-inline-libcalls -gvn -div-rem-pairs -lower-constant-intrinsics -canonicalize-aliases -callsite-splitting -dce -die -dse -coro-cleanup -inject-tli-mappings -instsimplify -inject-tli-mappings -die -strip-debug-declare -coro-split -loop-unroll -nary-reassociate -sancov -guard-widening -correlated-propagation -strip-dead-prototypes -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/qsort,1.123839009287926,61.65643358230591,opt -instsimplify -globalopt -mergereturn -load-store-vectorizer -reg2mem -loop-simplify -ipsccp -slsr -load-store-vectorizer -loop-unswitch -indvars -loop-deletion -mergeicmps -memcpyopt -pgo-memop-opt -forceattrs -argpromotion -infer-address-spaces -flattencfg -loop-load-elim -simplifycfg -loop-vectorize -ipsccp -irce -load-store-vectorizer -div-rem-pairs -loop-unswitch -barrier -strip-debug-declare -slsr -licm -instnamer -loop-data-prefetch -sccp -deadargelim -lcssa -pgo-memop-opt -canonicalize-aliases -inferattrs -loop-reroll -speculative-execution -separate-const-offset-from-gep -globalopt -nary-reassociate -slsr -constprop -scalarizer -called-value-propagation -hotcoldsplit -loop-versioning -nary-reassociate -libcalls-shrinkwrap -lcssa -strip-nondebug -mldst-motion -coro-cleanup -gvn-hoist -mergefunc -strip-dead-prototypes -ee-instrument -mergefunc -strip-dead-prototypes -die -nary-reassociate -reassociate -loop-versioning -loop-vectorize -aggressive-instcombine -loop-unroll-and-jam -gvn -float2int -globaldce -globaldce -constmerge -consthoist -dse -sancov -add-discriminators -prune-eh -simplifycfg -loop-unroll -forceattrs -newgvn -canonicalize-aliases -loop-vectorize -float2int -mergereturn -loop-deletion -partial-inliner -bdce -instsimplify -loop-data-prefetch -reassociate -dse -post-inline-ee-instrument -scalarizer -called-value-propagation -strip -loop-instsimplify -aggressive-instcombine -nary-reassociate -loop-predication -loop-load-elim -lower-guard-intrinsic -name-anon-globals -lowerinvoke -strip -loop-simplify -loop-guard-widening -break-crit-edges -loop-unswitch -sancov -instsimplify -gvn-hoist -nary-reassociate -newgvn -newgvn -load-store-vectorizer -gvn-hoist -licm -ee-instrument -flattencfg -loop-predication -globalsplit -newgvn -canonicalize-aliases -instnamer -instcombine -coro-early -bdce -irce -loop-versioning -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.0969720199310078,63.5710289478302,opt -partially-inline-libcalls -simplifycfg -reassociate -called-value-propagation -loop-fusion -libcalls-shrinkwrap -loop-sink -ee-instrument -canonicalize-aliases -loop-distribute -gvn -mem2reg -sancov -float2int -loop-load-elim -slp-vectorizer -dse -licm -jump-threading -loop-fusion -instcombine -div-rem-pairs -rpo-functionattrs -slsr -gvn-hoist -constmerge -loweratomic -loop-versioning-licm -memcpyopt -nary-reassociate -constprop -infer-address-spaces -lower-guard-intrinsic -rpo-functionattrs -prune-eh -strip -bdce -mldst-motion -strip-debug-declare -rpo-functionattrs -loop-reroll -functionattrs -slp-vectorizer -loop-instsimplify -div-rem-pairs -mem2reg -mergereturn -ipconstprop -loop-distribute -callsite-splitting -newgvn -coro-split -ee-instrument -alignment-from-assumptions -mergeicmps -loop-simplify -instsimplify -mem2reg -sroa -loop-data-prefetch -tailcallelim -loop-interchange -gvn-hoist -called-value-propagation -float2int -jump-threading -loop-sink -loop-idiom -inject-tli-mappings -loop-guard-widening -instnamer -inferattrs -ee-instrument -newgvn input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.0981218857799924,62.43927502632141,opt -sroa -loop-vectorize -die -simplifycfg -slp-vectorizer -argpromotion -loop-unroll-and-jam -gvn-hoist -pgo-memop-opt -forceattrs -reassociate -called-value-propagation -instcombine -loop-load-elim -coro-elide -gvn-hoist -insert-gcov-profiling -reassociate -irce -ipconstprop -libcalls-shrinkwrap -loop-data-prefetch -instcombine -deadargelim -partially-inline-libcalls -canonicalize-aliases -speculative-execution -bdce -lower-expect -loop-interchange -coro-cleanup -newgvn input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.100038328861633,62.28735589981079,opt -strip-debug-declare -loweratomic -alignment-from-assumptions -ipsccp -loop-guard-widening -flattencfg -redundant-dbg-inst-elim -lower-expect -instnamer -prune-eh -early-cse-memssa -inject-tli-mappings -gvn -constprop -ee-instrument -inferattrs -loop-sink -prune-eh -loop-reduce -mergeicmps -dse -canonicalize-aliases -irce -mergeicmps -argpromotion -lower-widenable-condition -loop-reduce -inferattrs -jump-threading -tailcallelim -strip-debug-declare -always-inline -sccp -sancov -mergereturn -always-inline -inject-tli-mappings -loop-unroll-and-jam -mergeicmps -dce -consthoist -rewrite-statepoints-for-gc -loop-reduce -instcombine -die -loop-simplifycfg -pgo-memop-opt -coro-split -rewrite-statepoints-for-gc -break-crit-edges -argpromotion -canonicalize-aliases -reassociate -called-value-propagation -partial-inliner -rewrite-statepoints-for-gc -gvn -jump-threading -prune-eh -forceattrs -loop-fusion -sancov -newgvn -sroa -tailcallelim -libcalls-shrinkwrap -rewrite-statepoints-for-gc -argpromotion -instcombine -sancov -canonicalize-aliases -argpromotion -coro-elide -slsr -loop-guard-widening -coro-cleanup -dse -inject-tli-mappings -coro-early -libcalls-shrinkwrap -newgvn -loweratomic -inferattrs -strip-nondebug -coro-cleanup -lower-matrix-intrinsics -die -loop-fusion -jump-threading -loop-instsimplify -simplifycfg -lower-widenable-condition -sink -sancov -cross-dso-cfi -gvn input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1008049060942893,64.57522320747375,opt -mem2reg -loop-simplifycfg -die -strip-dead-prototypes -ee-instrument -name-anon-globals -reassociate -gvn-hoist -globalopt -loop-simplify -loweratomic -loweratomic -loop-reroll -inferattrs -coro-elide -separate-const-offset-from-gep -lcssa -newgvn -loop-sink -ipconstprop -early-cse-memssa -loop-fusion -hotcoldsplit -cross-dso-cfi -scalarizer -loop-distribute -globalopt -sink -newgvn -name-anon-globals -called-value-propagation -cross-dso-cfi -die -canonicalize-aliases -lower-guard-intrinsic -prune-eh -loop-fusion -libcalls-shrinkwrap -lcssa -slp-vectorizer -nary-reassociate -loop-versioning -infer-address-spaces -constmerge -loweratomic -partial-inliner -sroa -mldst-motion -coro-elide -constmerge -flattencfg -constmerge -lowerinvoke -attributor -bdce -lower-widenable-condition -argpromotion -ipsccp -globaldce -licm -loweratomic -div-rem-pairs -globalopt -speculative-execution -inferattrs -lcssa -deadargelim -lowerinvoke -partially-inline-libcalls -loop-simplify -separate-const-offset-from-gep -slp-vectorizer -strip-debug-declare -newgvn -sccp -break-crit-edges -forceattrs -irce -simplifycfg -lower-guard-intrinsic -instcombine -loop-versioning -mergereturn -bdce -lower-constant-intrinsics -guard-widening -bdce -flattencfg -lower-matrix-intrinsics -coro-elide -loop-fusion -lower-guard-intrinsic -ipconstprop -mergereturn -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1011881947106172,62.217052936553955,opt -correlated-propagation -forceattrs -lcssa -guard-widening -memcpyopt -instcombine -reassociate -loop-predication -hotcoldsplit -nary-reassociate -slsr -libcalls-shrinkwrap -infer-address-spaces -constmerge -aggressive-instcombine -flattencfg -sink -infer-address-spaces -lower-expect -constmerge -break-crit-edges -mergereturn -loop-simplifycfg -partially-inline-libcalls -instcombine -loop-guard-widening -sancov -forceattrs -loop-reroll -lcssa -strip -constmerge -instsimplify -loop-load-elim -coro-early -guard-widening -loweratomic -loop-vectorize -rpo-functionattrs -gvn -cross-dso-cfi -loop-fusion -ee-instrument -indvars -break-crit-edges -consthoist -argpromotion -loop-guard-widening -functionattrs -ipsccp -die -gvn-hoist -loop-guard-widening -coro-elide -sccp -constprop -sroa -slsr -consthoist -loop-data-prefetch -correlated-propagation -loop-versioning-licm -infer-address-spaces -loop-vectorize -nary-reassociate -loop-idiom -mem2reg -inject-tli-mappings -speculative-execution -break-crit-edges -loweratomic -loop-unswitch -coro-early -mem2reg -dce -partial-inliner -pgo-memop-opt -loop-guard-widening -gvn-hoist -pgo-memop-opt -mem2reg -strip-dead-prototypes -loweratomic -constprop -ee-instrument -mem2reg -always-inline -callsite-splitting -flattencfg -loop-deletion -globalopt -memcpyopt -instnamer -loweratomic -loweratomic -constmerge -lower-expect -nary-reassociate -attributor -globalopt -simplifycfg -globalopt -pgo-memop-opt -slsr -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1015714833269452,62.28260684013367,opt -globalsplit -speculative-execution -ee-instrument -cross-dso-cfi -lowerinvoke -dse -loop-unroll-and-jam -aggressive-instcombine -ee-instrument -strip-nondebug -elim-avail-extern -sink -loop-reroll -loweratomic -loop-distribute -instsimplify -irce -loop-deletion -add-discriminators -loop-interchange -loop-idiom -break-crit-edges -irce -sccp -sancov -loop-instsimplify -break-crit-edges -called-value-propagation -functionattrs -gvn-hoist -loop-unroll-and-jam -elim-avail-extern -ee-instrument -div-rem-pairs -coro-split -simple-loop-unswitch -loop-unswitch -ipconstprop -forceattrs -partially-inline-libcalls -sroa -instcombine -float2int -early-cse-memssa -simplifycfg -post-inline-ee-instrument -loweratomic -globalopt -lowerinvoke -lower-guard-intrinsic -slsr -gvn -loweratomic -newgvn -libcalls-shrinkwrap -inject-tli-mappings -callsite-splitting -aggressive-instcombine -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1023380605596014,61.92038822174072,opt -strip -loop-fusion -correlated-propagation -lower-matrix-intrinsics -consthoist -mldst-motion -inject-tli-mappings -nary-reassociate -partial-inliner -loop-load-elim -loop-simplify -strip-dead-prototypes -ipconstprop -loop-data-prefetch -functionattrs -reassociate -constmerge -indvars -lower-guard-intrinsic -loop-unswitch -indvars -coro-elide -sroa -add-discriminators -flattencfg -indvars -bdce -libcalls-shrinkwrap -elim-avail-extern -memcpyopt -loop-unroll -mergereturn -strip-debug-declare -always-inline -loop-simplify -loop-reroll -loop-simplifycfg -adce -constmerge -loop-versioning -coro-split -loop-simplify -bdce -jump-threading -libcalls-shrinkwrap -loop-simplifycfg -argpromotion -functionattrs -loop-interchange -called-value-propagation -instcombine -reg2mem -pgo-memop-opt -lower-constant-intrinsics -ipsccp -called-value-propagation -scalarizer -slp-vectorizer -instsimplify -mldst-motion -coro-elide -jump-threading -newgvn -ipsccp -infer-address-spaces -mergefunc -globaldce -insert-gcov-profiling -name-anon-globals -nary-reassociate -lower-matrix-intrinsics -mem2reg -loop-load-elim -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1027213491759291,62.01464819908142,opt -slsr -nary-reassociate -indvars -loop-vectorize -coro-elide -loop-versioning -elim-avail-extern -irce -loop-versioning-licm -instnamer -prune-eh -bdce -loop-simplify -sroa -early-cse-memssa -inferattrs -infer-address-spaces -constmerge -mem2reg -strip-nondebug -deadargelim -constmerge -instcombine -instsimplify -loop-instsimplify -coro-cleanup -functionattrs -globalsplit -simplifycfg -dse -mergereturn -redundant-dbg-inst-elim -slsr -forceattrs -loop-simplify -jump-threading -globalsplit -simplifycfg -called-value-propagation -adce -reassociate -lowerinvoke -gvn input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1038712150249135,62.3216187953949,opt -slsr -lower-expect -globalsplit -die -irce -slp-vectorizer -elim-avail-extern -partial-inliner -simplifycfg -sroa -forceattrs -lower-widenable-condition -sancov -cross-dso-cfi -consthoist -mergeicmps -ee-instrument -loop-simplifycfg -mem2reg -loop-load-elim -globalopt -mergereturn -strip-dead-prototypes -callsite-splitting -sink -attributor -gvn -loop-sink -loop-guard-widening -correlated-propagation -separate-const-offset-from-gep -simple-loop-unswitch -loop-distribute -lower-expect -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -loop-distribute -rewrite-statepoints-for-gc -loop-predication -break-crit-edges -strip-debug-declare -nary-reassociate -lowerinvoke -loop-guard-widening -jump-threading -correlated-propagation -sroa -post-inline-ee-instrument -rewrite-statepoints-for-gc -forceattrs -dse -loop-fusion -die -prune-eh -cross-dso-cfi -newgvn -separate-const-offset-from-gep -infer-address-spaces -alignment-from-assumptions -loop-sink -guard-widening -called-value-propagation -gvn-hoist -globalopt -simplifycfg -div-rem-pairs -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/rijndael,1.1046377922575703,62.29489493370056,opt -adce -pgo-memop-opt -speculative-execution -loop-unroll-and-jam -coro-cleanup -loop-sink -dce -newgvn -simple-loop-unswitch -irce -inferattrs -argpromotion -always-inline -simplifycfg -globaldce -simplifycfg -lower-widenable-condition -globalsplit -deadargelim -loop-guard-widening -deadargelim -flattencfg -functionattrs -constmerge -loop-distribute -lower-widenable-condition -coro-cleanup -simple-loop-unswitch -sroa -loop-vectorize -mergereturn -gvn-hoist -infer-address-spaces -loop-deletion -ee-instrument -pgo-memop-opt -prune-eh -rpo-functionattrs -loop-data-prefetch -loop-guard-widening -instsimplify -lower-matrix-intrinsics -instsimplify -dce -pgo-memop-opt -inferattrs -strip-dead-prototypes -alignment-from-assumptions -gvn -loop-deletion -simplifycfg -globalopt -reg2mem -insert-gcov-profiling -loop-simplify -indvars -newgvn -loop-distribute -simple-loop-unswitch -ipsccp -inline -loop-vectorize -constmerge -loop-deletion -loop-unroll -gvn-hoist -callsite-splitting -cross-dso-cfi -flattencfg -mergefunc -loop-data-prefetch -name-anon-globals -jump-threading -mldst-motion -coro-cleanup -consthoist -strip-nondebug -bdce -loop-interchange -loop-idiom -tailcallelim -gvn -reg2mem -sccp -dse -correlated-propagation -insert-gcov-profiling -alignment-from-assumptions -newgvn -insert-gcov-profiling -deadargelim -div-rem-pairs -tailcallelim -loop-idiom -lower-widenable-condition -jump-threading -partially-inline-libcalls -mergeicmps -newgvn -coro-elide -inline -rpo-functionattrs -lowerinvoke -early-cse-memssa -loop-sink -tailcallelim -globalopt -adce -coro-split -ipconstprop -dse -loop-instsimplify -canonicalize-aliases -instcombine -bdce -loop-unswitch -jump-threading -loop-distribute -coro-cleanup -prune-eh -attributor -reassociate -globaldce -loop-predication -callsite-splitting -prune-eh -indvars -instsimplify -loop-predication -early-cse-memssa -gvn -loop-versioning -instcombine -loop-load-elim -loop-fusion -loop-rotate -loop-reroll -lower-constant-intrinsics -newgvn -loop-reroll -loop-guard-widening -argpromotion -loop-distribute -forceattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.4816053511705685,61.649839878082275,opt -loop-guard-widening -tailcallelim -partially-inline-libcalls -loop-simplifycfg -attributor -dse -reg2mem -loop-load-elim -ipconstprop -reg2mem -strip-nondebug -load-store-vectorizer -lower-constant-intrinsics -infer-address-spaces -instsimplify -prune-eh -early-cse-memssa -slsr -post-inline-ee-instrument -newgvn -loop-idiom -simplifycfg -globalopt -loop-data-prefetch -rewrite-statepoints-for-gc -elim-avail-extern -slp-vectorizer -argpromotion -speculative-execution -instcombine -div-rem-pairs -prune-eh -sink -alignment-from-assumptions -float2int -loop-instsimplify -adce -tailcallelim -loop-interchange -functionattrs -bdce -sroa -loop-versioning-licm -jump-threading -loop-versioning-licm -mldst-motion -strip-debug-declare -loop-load-elim -lowerswitch -mergeicmps -strip-nondebug -loop-load-elim -indvars -mergeicmps -nary-reassociate -coro-early -speculative-execution -sancov -sccp -lowerinvoke -alignment-from-assumptions -lower-expect -sccp -loop-interchange -globalopt -prune-eh -slsr -strip-nondebug -slsr -loop-data-prefetch -nary-reassociate -mergeicmps -cross-dso-cfi -loop-unroll-and-jam -loop-reroll -flattencfg -strip-dead-prototypes -elim-avail-extern -mem2reg -sccp -separate-const-offset-from-gep -slp-vectorizer -callsite-splitting -barrier -globalsplit -div-rem-pairs -cross-dso-cfi -name-anon-globals -loop-predication -reassociate -dse -newgvn -rpo-functionattrs -div-rem-pairs -separate-const-offset-from-gep -mem2reg -loop-unroll-and-jam -libcalls-shrinkwrap -hotcoldsplit -functionattrs -infer-address-spaces -reassociate -mldst-motion -loop-data-prefetch -strip-debug-declare -lcssa -correlated-propagation -separate-const-offset-from-gep -coro-early -licm -rewrite-statepoints-for-gc -gvn -strip-debug-declare -mergereturn -lower-guard-intrinsic -guard-widening -reassociate -insert-gcov-profiling -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.4983277591973243,61.73563838005066,opt -lowerswitch -tailcallelim -slp-vectorizer -newgvn -globalsplit -always-inline -argpromotion -called-value-propagation -constprop -correlated-propagation -add-discriminators -sancov -lower-matrix-intrinsics -loweratomic -mergefunc -loop-reduce -die -guard-widening -loop-unroll-and-jam -slsr -indvars -partially-inline-libcalls -strip-dead-prototypes -instnamer -sroa -lower-widenable-condition -strip-debug-declare -partial-inliner -lower-expect -tailcallelim -float2int -redundant-dbg-inst-elim -alignment-from-assumptions -loop-distribute -instcombine -correlated-propagation -loop-unroll-and-jam -loop-fusion -correlated-propagation -coro-early -scalarizer -elim-avail-extern -ipconstprop -loop-data-prefetch -scalarizer -newgvn -mergeicmps -loop-versioning-licm -canonicalize-aliases -coro-elide -slp-vectorizer -float2int -loweratomic -separate-const-offset-from-gep -redundant-dbg-inst-elim -called-value-propagation -libcalls-shrinkwrap -loop-guard-widening -argpromotion -indvars -elim-avail-extern -reassociate -prune-eh -libcalls-shrinkwrap -ipconstprop -mergeicmps -globaldce -coro-cleanup -break-crit-edges -slsr -mem2reg -gvn-hoist -loop-deletion -dce -post-inline-ee-instrument -loop-simplify -simplifycfg -mergereturn -strip -functionattrs -inferattrs -instcombine -libcalls-shrinkwrap -div-rem-pairs -loweratomic -always-inline -called-value-propagation -loop-data-prefetch -argpromotion -functionattrs -instsimplify -flattencfg -loop-data-prefetch -strip-debug-declare -licm -strip -attributor -gvn -cross-dso-cfi -functionattrs -inferattrs -insert-gcov-profiling -flattencfg -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.501672240802675,61.79606604576111,opt -redundant-dbg-inst-elim -mergefunc -nary-reassociate -adce -licm -loop-data-prefetch -constprop -die -lowerswitch -scalarizer -lcssa -sancov -adce -ipconstprop -inject-tli-mappings -loop-interchange -pgo-memop-opt -break-crit-edges -deadargelim -ipconstprop -post-inline-ee-instrument -loop-sink -sancov -sroa -instcombine -early-cse-memssa -loop-deletion -loop-versioning-licm -slsr -ee-instrument -reg2mem -mergeicmps -loop-deletion -lower-constant-intrinsics -div-rem-pairs -coro-early -indvars -forceattrs -early-cse-memssa -gvn -early-cse-memssa -loop-sink -loop-instsimplify -mem2reg -coro-split -name-anon-globals -loop-interchange -irce -indvars -libcalls-shrinkwrap -load-store-vectorizer -simplifycfg -redundant-dbg-inst-elim -gvn -nary-reassociate -simplifycfg -sroa -argpromotion -post-inline-ee-instrument -bdce -ee-instrument -lower-expect -loop-interchange -speculative-execution -loop-distribute -lower-guard-intrinsic -lowerswitch -sancov -inject-tli-mappings -mldst-motion -inferattrs -loop-simplify -mergeicmps -globaldce -licm -simplifycfg -strip-nondebug -mergereturn -strip-dead-prototypes -scalarizer -adce -rewrite-statepoints-for-gc -float2int -deadargelim -globaldce -coro-early -called-value-propagation -coro-early -gvn-hoist -mergefunc -memcpyopt -mergefunc -flattencfg -loop-interchange -jump-threading -reassociate -alignment-from-assumptions -globalopt -constmerge -gvn -instcombine input.bc -o output.bc +benchmark://cbench-v1/sha,1.5050167224080266,61.69275736808777,opt -lower-matrix-intrinsics -barrier -slsr -partially-inline-libcalls -instsimplify -loop-unroll-and-jam -speculative-execution -loop-unroll -loop-distribute -functionattrs -hotcoldsplit -forceattrs -mem2reg -partial-inliner -sroa -functionattrs -loop-idiom -scalarizer -attributor -add-discriminators -add-discriminators -newgvn -loop-sink -add-discriminators -coro-early -callsite-splitting -strip -indvars -libcalls-shrinkwrap -loop-deletion -add-discriminators -pgo-memop-opt -constprop -loop-unroll-and-jam -rpo-functionattrs -add-discriminators -globalsplit -dse -mldst-motion -instcombine -loop-idiom -globalsplit -globaldce -memcpyopt -loop-versioning -correlated-propagation -flattencfg -adce -gvn-hoist -adce -nary-reassociate -instnamer -simplifycfg -lowerinvoke -speculative-execution -gvn -tailcallelim -sancov -inferattrs -deadargelim -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/sha,1.5083612040133778,61.7785108089447,opt -lower-widenable-condition -break-crit-edges -early-cse-memssa -loop-predication -ipsccp -float2int -indvars -post-inline-ee-instrument -ipconstprop -instnamer -loop-predication -loop-idiom -libcalls-shrinkwrap -strip-dead-prototypes -die -lower-guard-intrinsic -mldst-motion -loop-interchange -flattencfg -reassociate -loop-data-prefetch -flattencfg -gvn -functionattrs -dce -lower-widenable-condition -float2int -name-anon-globals -simplifycfg -speculative-execution -mldst-motion -libcalls-shrinkwrap -strip-nondebug -forceattrs -strip-debug-declare -post-inline-ee-instrument -prune-eh -sancov -loop-unroll-and-jam -sccp -loop-versioning-licm -coro-early -lower-widenable-condition -speculative-execution -mem2reg -globalopt -strip -coro-split -loop-idiom -loop-simplify -callsite-splitting -instcombine -dse -adce -sink -nary-reassociate -gvn -sroa -mergereturn -coro-early -rpo-functionattrs -newgvn -add-discriminators -called-value-propagation -loop-load-elim -loop-data-prefetch -loop-deletion -barrier -loop-vectorize -callsite-splitting -indvars -deadargelim -guard-widening -die -early-cse-memssa -inferattrs -gvn -instnamer -canonicalize-aliases -argpromotion -loweratomic -inject-tli-mappings -mem2reg -loop-simplifycfg -loop-reroll -adce -ipconstprop -lowerswitch -alignment-from-assumptions -always-inline -scalarizer -guard-widening -loop-versioning-licm -inject-tli-mappings -globaldce -div-rem-pairs -insert-gcov-profiling -strip-nondebug -slp-vectorizer -loop-simplify -attributor -indvars -ipconstprop -elim-avail-extern -bdce -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.5117056856187288,61.70262050628662,opt -loop-reduce -flattencfg -loop-versioning -loweratomic -sroa -strip-debug-declare -alignment-from-assumptions -insert-gcov-profiling -forceattrs -coro-elide -redundant-dbg-inst-elim -early-cse-memssa -lower-constant-intrinsics -load-store-vectorizer -gvn -loop-reroll -post-inline-ee-instrument -loop-guard-widening -speculative-execution -sroa -tailcallelim -scalarizer -dce -pgo-memop-opt -loop-distribute -mldst-motion -post-inline-ee-instrument -instnamer -speculative-execution -float2int -mergereturn -called-value-propagation -div-rem-pairs -cross-dso-cfi -cross-dso-cfi -lower-expect -redundant-dbg-inst-elim -loop-versioning-licm -speculative-execution -ipconstprop -callsite-splitting -sccp -loop-simplifycfg -simple-loop-unswitch -scalarizer -mem2reg -lower-constant-intrinsics -loop-simplify -licm -prune-eh -partially-inline-libcalls -partially-inline-libcalls -loop-data-prefetch -lcssa -dce -memcpyopt -loop-sink -redundant-dbg-inst-elim -prune-eh -strip-dead-prototypes -pgo-memop-opt -load-store-vectorizer -gvn -instcombine -loweratomic -adce -speculative-execution -loop-unroll-and-jam -mldst-motion -loop-reroll -mergereturn -post-inline-ee-instrument -strip-nondebug -forceattrs -coro-early -rewrite-statepoints-for-gc -partial-inliner -loop-distribute -strip-debug-declare -strip -mergefunc -functionattrs -infer-address-spaces -lowerswitch -tailcallelim -sccp -sink -newgvn -indvars -loop-unroll-and-jam -loop-simplify -loop-simplify -callsite-splitting -deadargelim -simplifycfg -argpromotion -coro-split -newgvn input.bc -o output.bc +benchmark://cbench-v1/sha,1.511705685618729,61.58654522895813,opt -early-cse-memssa -inferattrs -coro-elide -sccp -load-store-vectorizer -lower-guard-intrinsic -coro-elide -loop-simplifycfg -load-store-vectorizer -nary-reassociate -die -libcalls-shrinkwrap -mergeicmps -loop-versioning-licm -tailcallelim -strip -name-anon-globals -redundant-dbg-inst-elim -mldst-motion -called-value-propagation -alignment-from-assumptions -strip-debug-declare -ipconstprop -bdce -mergeicmps -elim-avail-extern -always-inline -gvn -licm -post-inline-ee-instrument -ee-instrument -cross-dso-cfi -loop-simplify -loop-reroll -jump-threading -ee-instrument -lowerinvoke -float2int -loop-versioning -hotcoldsplit -instcombine -loop-data-prefetch -reassociate -simple-loop-unswitch -coro-split -loop-simplifycfg -gvn-hoist -sancov -load-store-vectorizer -lower-expect -lowerswitch -load-store-vectorizer -loop-rotate -barrier -simple-loop-unswitch -newgvn -called-value-propagation -load-store-vectorizer -loop-predication -memcpyopt -mergeicmps -float2int -div-rem-pairs -instsimplify -loop-instsimplify -speculative-execution -coro-cleanup -inferattrs -callsite-splitting -cross-dso-cfi -correlated-propagation -consthoist -mergeicmps -loop-vectorize -constmerge -mem2reg -instsimplify -ee-instrument -coro-early -loop-data-prefetch -argpromotion -irce -indvars -scalarizer -callsite-splitting -loop-guard-widening -instcombine -sancov -loop-unroll-and-jam -loop-deletion -loop-idiom -lower-matrix-intrinsics -loop-sink -simple-loop-unswitch -sccp -memcpyopt -cross-dso-cfi -mldst-motion -gvn -slsr -inject-tli-mappings -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/sha,1.5150501672240804,62.05151176452637,opt -elim-avail-extern -early-cse-memssa -jump-threading -tailcallelim -gvn-hoist -lower-widenable-condition -partially-inline-libcalls -lower-expect -speculative-execution -loop-guard-widening -insert-gcov-profiling -globalsplit -loop-distribute -lcssa -pgo-memop-opt -reassociate -pgo-memop-opt -loop-deletion -functionattrs -instsimplify -mldst-motion -scalarizer -canonicalize-aliases -speculative-execution -loop-idiom -add-discriminators -inferattrs -barrier -globaldce -consthoist -loop-reduce -mem2reg -partially-inline-libcalls -globalsplit -partial-inliner -jump-threading -functionattrs -sancov -globaldce -float2int -div-rem-pairs -simplifycfg -speculative-execution -lower-expect -coro-split -newgvn -rpo-functionattrs -indvars -rewrite-statepoints-for-gc -simplifycfg -ipsccp -instsimplify -barrier -ipsccp -ipconstprop -ee-instrument -indvars -ee-instrument -coro-early -float2int -attributor -ipconstprop -licm -lower-expect -slsr -globaldce -rpo-functionattrs -correlated-propagation -ipsccp -mldst-motion -infer-address-spaces -load-store-vectorizer -newgvn -sccp -indvars -newgvn -simple-loop-unswitch -simplifycfg -gvn -always-inline -partially-inline-libcalls -nary-reassociate -insert-gcov-profiling -coro-early -mergeicmps -irce -instcombine -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.5183946488294315,61.559239864349365,opt -ipconstprop -reg2mem -ipconstprop -prune-eh -pgo-memop-opt -rewrite-statepoints-for-gc -rpo-functionattrs -always-inline -constprop -globaldce -libcalls-shrinkwrap -loop-unroll -loop-reroll -consthoist -coro-split -lower-constant-intrinsics -functionattrs -pgo-memop-opt -coro-elide -slsr -inject-tli-mappings -memcpyopt -loop-vectorize -barrier -libcalls-shrinkwrap -adce -div-rem-pairs -ipsccp -memcpyopt -gvn-hoist -partially-inline-libcalls -prune-eh -lowerinvoke -always-inline -loop-reroll -lowerswitch -coro-split -break-crit-edges -nary-reassociate -partially-inline-libcalls -gvn-hoist -attributor -instnamer -rpo-functionattrs -gvn -loop-fusion -bdce -sink -add-discriminators -simplifycfg -infer-address-spaces -lcssa -strip-dead-prototypes -loop-versioning -simplifycfg -partially-inline-libcalls -loop-deletion -simple-loop-unswitch -loop-distribute -licm -loop-vectorize -aggressive-instcombine -globalsplit -lower-guard-intrinsic -constmerge -constmerge -always-inline -loop-simplify -insert-gcov-profiling -indvars -elim-avail-extern -mergeicmps -loop-interchange -mem2reg -loop-reroll -load-store-vectorizer -alignment-from-assumptions -bdce -partial-inliner -loop-distribute -gvn-hoist -memcpyopt -mergefunc -coro-split -coro-split -mldst-motion -loop-idiom -loop-deletion -rpo-functionattrs -attributor -attributor -slsr -slp-vectorizer -loop-distribute -irce -lower-guard-intrinsic -gvn -loop-versioning-licm -loop-interchange -die -add-discriminators -deadargelim -instcombine -irce -lowerinvoke -separate-const-offset-from-gep -partially-inline-libcalls -jump-threading -consthoist -constprop -libcalls-shrinkwrap -aggressive-instcombine -flattencfg -constmerge -slsr -partial-inliner -sroa -correlated-propagation -deadargelim -correlated-propagation -indvars -mergefunc -indvars -load-store-vectorizer -loop-interchange -loop-interchange -jump-threading -inject-tli-mappings -attributor -forceattrs -loop-predication -loweratomic -sroa -loop-predication -correlated-propagation -loop-distribute -simple-loop-unswitch -loop-predication -loop-interchange -slp-vectorizer -loop-predication -jump-threading -loop-simplify -sink -loop-sink -sroa -coro-early -loop-distribute -insert-gcov-profiling -post-inline-ee-instrument -memcpyopt -coro-cleanup -name-anon-globals -loop-sink -sancov -slsr -lower-matrix-intrinsics -licm -simplifycfg -dse -early-cse-memssa -attributor -strip-debug-declare -nary-reassociate -div-rem-pairs -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/sha,1.5250836120401334,61.66695785522461,opt -partial-inliner -coro-elide -sancov -irce -nary-reassociate -alignment-from-assumptions -mergereturn -insert-gcov-profiling -ipconstprop -instsimplify -correlated-propagation -barrier -attributor -loop-deletion -load-store-vectorizer -dce -licm -globaldce -loop-vectorize -div-rem-pairs -strip-debug-declare -load-store-vectorizer -always-inline -inferattrs -mergeicmps -sink -loop-unroll-and-jam -flattencfg -sccp -load-store-vectorizer -loop-rotate -deadargelim -lcssa -attributor -indvars -globalopt -scalarizer -coro-cleanup -prune-eh -post-inline-ee-instrument -gvn -loop-idiom -loop-load-elim -attributor -simplifycfg -strip -constmerge -indvars -sroa -dce -instcombine -separate-const-offset-from-gep -mergefunc -loop-simplify -barrier -tailcallelim -lower-expect -globalopt -libcalls-shrinkwrap -lower-widenable-condition -jump-threading -deadargelim -pgo-memop-opt -rewrite-statepoints-for-gc -callsite-splitting -mergefunc -globalsplit -mergeicmps -gvn -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,0.9959016393442623,61.68849325180054,opt -nary-reassociate -lower-matrix-intrinsics -cross-dso-cfi -lower-expect -canonicalize-aliases -load-store-vectorizer -forceattrs -loop-idiom -barrier -slp-vectorizer -loop-versioning-licm -insert-gcov-profiling -dse -strip-nondebug -early-cse-memssa -instnamer -globaldce -hotcoldsplit -mergeicmps -lowerinvoke -sink -coro-early -lower-constant-intrinsics -ipconstprop -pgo-memop-opt -scalarizer -sancov -loop-fusion -barrier -pgo-memop-opt -coro-split -reg2mem -globalopt -lower-expect -infer-address-spaces -constprop -loop-sink -slp-vectorizer -gvn -nary-reassociate -speculative-execution -loop-interchange -lowerinvoke -libcalls-shrinkwrap -float2int -add-discriminators -sink -elim-avail-extern -reassociate -memcpyopt -loop-sink -elim-avail-extern -redundant-dbg-inst-elim -lowerswitch -mergefunc -add-discriminators -loop-fusion -simple-loop-unswitch -lower-matrix-intrinsics -globaldce -add-discriminators -load-store-vectorizer -infer-address-spaces -callsite-splitting -loop-simplifycfg -instnamer -adce -sroa -attributor -adce -name-anon-globals -globaldce -redundant-dbg-inst-elim -forceattrs -loop-simplify -elim-avail-extern -loop-distribute -aggressive-instcombine -lowerswitch -die -strip-dead-prototypes -forceattrs -infer-address-spaces -rpo-functionattrs -loop-simplify -globalsplit -loop-load-elim -licm -lower-widenable-condition -ee-instrument -lower-constant-intrinsics -insert-gcov-profiling -float2int -globalopt -attributor -redundant-dbg-inst-elim -lower-guard-intrinsic -sccp -strip -aggressive-instcombine -strip-nondebug -ipconstprop -loop-fusion -coro-elide -strip-dead-prototypes -loop-reroll -mergeicmps -float2int -loop-data-prefetch -reassociate -hotcoldsplit -newgvn -instcombine -mldst-motion -redundant-dbg-inst-elim -jump-threading -gvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0013661202185793,61.93865656852722,opt -loop-fusion -coro-elide -coro-cleanup -guard-widening -simplifycfg -mergefunc -hotcoldsplit -inferattrs -guard-widening -guard-widening -globalopt -lower-matrix-intrinsics -loop-versioning-licm -lower-widenable-condition -loop-fusion -loop-instsimplify -irce -loop-vectorize -float2int -loop-reduce -partially-inline-libcalls -sccp -lower-expect -loop-distribute -lowerswitch -loop-predication -newgvn -early-cse-memssa -lowerswitch -libcalls-shrinkwrap -loop-deletion -loweratomic -attributor -coro-cleanup -loop-guard-widening -insert-gcov-profiling -lower-constant-intrinsics -sccp -loop-idiom -gvn-hoist -slsr -barrier -gvn -mem2reg -slsr -bdce -simple-loop-unswitch -newgvn -insert-gcov-profiling -globalopt -nary-reassociate -loop-idiom -gvn-hoist -partial-inliner -lcssa -die -aggressive-instcombine -canonicalize-aliases -loop-idiom -loop-idiom -libcalls-shrinkwrap -dse -globaldce -strip -coro-cleanup -adce -instcombine -loop-data-prefetch -instnamer -newgvn -deadargelim -loop-distribute -coro-split -sancov -correlated-propagation -mergereturn -insert-gcov-profiling -mergefunc -reassociate -insert-gcov-profiling -coro-elide -post-inline-ee-instrument -callsite-splitting -libcalls-shrinkwrap -loop-predication -loop-data-prefetch -lower-matrix-intrinsics -lower-expect -instsimplify -lowerinvoke -pgo-memop-opt -ipsccp -hotcoldsplit -sroa -coro-elide -gvn -loop-unroll -globalopt -redundant-dbg-inst-elim -ipsccp -dse -loop-guard-widening -ipconstprop -loop-deletion -memcpyopt -loop-sink -loop-instsimplify -partial-inliner -die -insert-gcov-profiling -loop-sink -constmerge -mergefunc -partially-inline-libcalls -inferattrs -loweratomic -sroa -constprop -dse -libcalls-shrinkwrap -callsite-splitting -barrier -name-anon-globals -name-anon-globals -loop-predication -correlated-propagation -loop-unroll-and-jam -deadargelim -loop-idiom -loop-deletion -loop-idiom -post-inline-ee-instrument -speculative-execution -loop-sink -lowerinvoke -speculative-execution -consthoist -die -canonicalize-aliases -canonicalize-aliases -memcpyopt -scalarizer -elim-avail-extern -tailcallelim -callsite-splitting -irce -speculative-execution -post-inline-ee-instrument -barrier -loop-interchange -pgo-memop-opt -lcssa -reg2mem -functionattrs -name-anon-globals -loop-reduce -loop-fusion -indvars -loop-unroll-and-jam -correlated-propagation -lower-constant-intrinsics -float2int -loop-interchange -functionattrs -ipsccp -loop-distribute -mergefunc -mergereturn -reg2mem -irce -strip-debug-declare -irce -reg2mem -loop-versioning-licm -functionattrs -slp-vectorizer -scalarizer -sancov -barrier -coro-cleanup -loop-unroll-and-jam -pgo-memop-opt -mem2reg -instnamer -newgvn -lcssa -cross-dso-cfi -globalsplit -loop-simplify -hotcoldsplit -called-value-propagation -sroa -jump-threading -mem2reg -mergeicmps -called-value-propagation -ipsccp -loop-unroll-and-jam -simplifycfg -loop-versioning -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0013661202185793,62.70221829414368,opt -loop-fusion -loop-simplifycfg -loop-reduce -loop-load-elim -loop-unswitch -partially-inline-libcalls -coro-split -insert-gcov-profiling -ipsccp -always-inline -post-inline-ee-instrument -coro-elide -loop-fusion -functionattrs -gvn -prune-eh -instsimplify -die -slp-vectorizer -inferattrs -coro-split -globaldce -callsite-splitting -sccp -loop-interchange -inject-tli-mappings -loop-versioning-licm -tailcallelim -partially-inline-libcalls -insert-gcov-profiling -nary-reassociate -jump-threading -float2int -tailcallelim -sroa -loop-versioning -loop-sink -called-value-propagation -loop-unroll -sccp -barrier -loop-instsimplify -coro-elide -constmerge -strip-nondebug -nary-reassociate -coro-early -cross-dso-cfi -attributor -mergeicmps -deadargelim -speculative-execution -constmerge -alignment-from-assumptions -ipsccp -div-rem-pairs -redundant-dbg-inst-elim -speculative-execution -prune-eh -newgvn -mldst-motion -sroa -lower-widenable-condition -attributor -simplifycfg -memcpyopt -indvars -lowerswitch -newgvn -name-anon-globals -strip-debug-declare -inject-tli-mappings -prune-eh -name-anon-globals -instcombine -coro-cleanup -functionattrs -globalsplit -functionattrs -aggressive-instcombine -sancov -bdce -rewrite-statepoints-for-gc -cross-dso-cfi -indvars -ipconstprop -nary-reassociate -separate-const-offset-from-gep -callsite-splitting -canonicalize-aliases -licm -sccp -redundant-dbg-inst-elim -loop-guard-widening -loop-reroll -consthoist -float2int -gvn-hoist -loop-data-prefetch -globaldce -elim-avail-extern -loop-sink -strip-dead-prototypes -argpromotion -correlated-propagation -indvars -lower-widenable-condition -rpo-functionattrs -loop-unswitch -lower-constant-intrinsics -lower-expect -jump-threading -globaldce -globaldce -simplifycfg -lower-constant-intrinsics -infer-address-spaces -early-cse-memssa -jump-threading -elim-avail-extern -rpo-functionattrs -dse -correlated-propagation -memcpyopt -strip -alignment-from-assumptions -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0027322404371586,61.595093727111816,opt -canonicalize-aliases -gvn-hoist -float2int -coro-early -reg2mem -ipconstprop -loop-versioning -strip-debug-declare -strip-nondebug -constprop -speculative-execution -redundant-dbg-inst-elim -licm -simplifycfg -constmerge -inferattrs -lower-widenable-condition -globalopt -loop-vectorize -deadargelim -sancov -loop-distribute -post-inline-ee-instrument -partially-inline-libcalls -lower-constant-intrinsics -dce -dse -slp-vectorizer -die -ipconstprop -loop-vectorize -slp-vectorizer -prune-eh -strip -post-inline-ee-instrument -pgo-memop-opt -partial-inliner -deadargelim -gvn -forceattrs -load-store-vectorizer -globalsplit -separate-const-offset-from-gep -loop-interchange -pgo-memop-opt -lowerswitch -reassociate -rewrite-statepoints-for-gc -mergefunc -lcssa -inferattrs -infer-address-spaces -float2int -mldst-motion -libcalls-shrinkwrap -simplifycfg -ipconstprop -deadargelim -functionattrs -loop-simplify -lower-matrix-intrinsics -strip -mergereturn -elim-avail-extern -functionattrs -rpo-functionattrs -inject-tli-mappings -loop-simplify -loop-deletion -instcombine -lowerswitch -post-inline-ee-instrument -sroa -speculative-execution -infer-address-spaces -dce -lower-widenable-condition -jump-threading -loop-load-elim -sink -partial-inliner -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.005464480874317,61.7589898109436,opt -lower-constant-intrinsics -loop-predication -rewrite-statepoints-for-gc -loop-idiom -rpo-functionattrs -hotcoldsplit -infer-address-spaces -coro-cleanup -coro-elide -jump-threading -instsimplify -loop-reroll -coro-split -sink -coro-elide -lcssa -libcalls-shrinkwrap -correlated-propagation -infer-address-spaces -sroa -newgvn -elim-avail-extern -guard-widening -always-inline -simplifycfg -ipsccp -mergeicmps -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0054644808743174,61.90070199966431,opt -always-inline -float2int -loop-interchange -globalsplit -constmerge -nary-reassociate -flattencfg -loop-interchange -slsr -newgvn -lower-guard-intrinsic -loweratomic -lcssa -guard-widening -prune-eh -loop-interchange -float2int -flattencfg -libcalls-shrinkwrap -loop-idiom -loop-distribute -sccp -simple-loop-unswitch -mergereturn -functionattrs -slsr -always-inline -canonicalize-aliases -redundant-dbg-inst-elim -barrier -lower-widenable-condition -coro-elide -coro-split -loop-versioning -partially-inline-libcalls -dce -attributor -canonicalize-aliases -canonicalize-aliases -canonicalize-aliases -aggressive-instcombine -infer-address-spaces -mem2reg -deadargelim -libcalls-shrinkwrap -globalsplit -lower-widenable-condition -lower-matrix-intrinsics -lcssa -guard-widening -argpromotion -coro-split -strip -dse -loop-simplifycfg -rpo-functionattrs -slsr -loop-deletion -break-crit-edges -loop-reroll -coro-cleanup -simplifycfg -strip-debug-declare -scalarizer -lowerswitch -loop-load-elim -add-discriminators -partial-inliner -coro-split -globalsplit -loop-vectorize -lower-matrix-intrinsics -lower-widenable-condition -sancov -reassociate -coro-cleanup -alignment-from-assumptions -elim-avail-extern -strip-dead-prototypes -early-cse-memssa -reassociate -reg2mem -called-value-propagation -flattencfg -loop-unswitch -coro-cleanup -constprop -canonicalize-aliases -loop-reduce -irce -elim-avail-extern -sink -argpromotion -loop-data-prefetch -inject-tli-mappings -loop-data-prefetch -redundant-dbg-inst-elim -load-store-vectorizer -lower-constant-intrinsics -simplifycfg -inline -globaldce -sccp -elim-avail-extern -strip-dead-prototypes -functionattrs -coro-split -lower-expect -cross-dso-cfi -mergeicmps -globaldce -rpo-functionattrs -dse -loop-fusion -loop-reroll -constprop -lowerswitch -correlated-propagation -speculative-execution -inferattrs -deadargelim -simplifycfg -dce -post-inline-ee-instrument -globalopt -gvn -reassociate -loop-versioning -constmerge -coro-split -always-inline -gvn -loop-sink -newgvn -loop-idiom -guard-widening -reg2mem -indvars -aggressive-instcombine -strip -deadargelim -irce -loop-unroll-and-jam -reg2mem -sroa -loop-guard-widening -loop-sink -strip -break-crit-edges -instsimplify -slsr -break-crit-edges -inferattrs -always-inline -simple-loop-unswitch -instcombine -called-value-propagation -mergeicmps -slp-vectorizer -strip-debug-declare -lower-matrix-intrinsics -break-crit-edges -loop-sink -always-inline -lcssa -loop-versioning-licm -guard-widening -consthoist -loop-load-elim -argpromotion -mergefunc -reassociate -sink -simple-loop-unswitch -aggressive-instcombine -lcssa -reg2mem -strip-nondebug -lower-widenable-condition -mergereturn -simplifycfg -load-store-vectorizer -forceattrs -constprop -instsimplify -loop-reduce -ee-instrument -loop-simplify -globalsplit -mergereturn -adce -sroa -lower-matrix-intrinsics -ee-instrument -bdce -nary-reassociate -coro-early -rpo-functionattrs -called-value-propagation -cross-dso-cfi -jump-threading -name-anon-globals -rewrite-statepoints-for-gc -loop-reroll -pgo-memop-opt -alignment-from-assumptions -bdce -memcpyopt -forceattrs -deadargelim -sccp -argpromotion -speculative-execution -strip-nondebug -die -infer-address-spaces -sccp -mergefunc -strip-nondebug -sancov -sccp -always-inline -scalarizer -forceattrs -insert-gcov-profiling -mldst-motion -barrier -loop-versioning -lcssa -infer-address-spaces -coro-split -consthoist -loop-deletion -libcalls-shrinkwrap -loop-vectorize -reassociate -loop-simplify -simplifycfg -called-value-propagation -mergeicmps -lower-widenable-condition -rpo-functionattrs -memcpyopt -newgvn -insert-gcov-profiling -newgvn -insert-gcov-profiling -always-inline -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0068306010928962,61.69719099998474,opt -loop-reroll -sancov -pgo-memop-opt -coro-early -loop-unroll-and-jam -strip-nondebug -instsimplify -loop-simplify -strip -break-crit-edges -die -globalsplit -lower-widenable-condition -add-discriminators -mergefunc -reassociate -lower-expect -div-rem-pairs -licm -argpromotion -gvn -post-inline-ee-instrument -gvn-hoist -scalarizer -loop-interchange -sink -rpo-functionattrs -reg2mem -inject-tli-mappings -ee-instrument -float2int -reg2mem -inferattrs -newgvn -div-rem-pairs -tailcallelim -coro-cleanup -instsimplify -deadargelim -name-anon-globals -pgo-memop-opt -partial-inliner -globalsplit -loop-versioning-licm -sancov -loop-simplify -indvars -slsr -correlated-propagation -libcalls-shrinkwrap -break-crit-edges -dse -nary-reassociate -slp-vectorizer -instnamer -float2int -infer-address-spaces -guard-widening -float2int -inline -lowerinvoke -sccp -loop-simplify -loop-distribute -alignment-from-assumptions -loop-simplifycfg -jump-threading -sink -scalarizer -die -inline -loop-unroll-and-jam -elim-avail-extern -gvn -die -mldst-motion -infer-address-spaces -consthoist -lower-expect -loop-instsimplify -barrier -simplifycfg -strip-dead-prototypes -name-anon-globals -called-value-propagation -sancov -barrier -tailcallelim -tailcallelim -loop-data-prefetch -loop-vectorize -name-anon-globals -lower-expect -reassociate -lcssa -loweratomic -globaldce -gvn-hoist -libcalls-shrinkwrap -nary-reassociate -adce -dse -adce -loop-versioning-licm -dse -libcalls-shrinkwrap -canonicalize-aliases -sroa -ipsccp -mergefunc -constmerge -inferattrs -name-anon-globals -mldst-motion -pgo-memop-opt -loop-versioning -die -add-discriminators -strip-nondebug -licm -libcalls-shrinkwrap -loop-unswitch -simplifycfg -constprop -cross-dso-cfi -forceattrs -sancov -coro-early -newgvn -nary-reassociate -instcombine -mem2reg -loop-predication -cross-dso-cfi -mem2reg -loop-data-prefetch -dse -loop-vectorize -irce -strip -cross-dso-cfi -loop-versioning-licm -loweratomic -loop-simplifycfg -partial-inliner -loop-instsimplify -loop-deletion -partially-inline-libcalls -loop-unroll -loop-predication -attributor -sink -correlated-propagation -lower-constant-intrinsics -reassociate -lower-expect -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0068306010928965,61.84607648849487,opt -constmerge -memcpyopt -libcalls-shrinkwrap -consthoist -lower-constant-intrinsics -mem2reg -loop-data-prefetch -rewrite-statepoints-for-gc -called-value-propagation -separate-const-offset-from-gep -forceattrs -gvn -loop-simplify -rpo-functionattrs -constmerge -irce -dce -loop-load-elim -coro-early -constmerge -lower-matrix-intrinsics -slp-vectorizer -slp-vectorizer -add-discriminators -gvn -scalarizer -jump-threading -die -cross-dso-cfi -strip -loop-vectorize -inferattrs -adce -loweratomic -rewrite-statepoints-for-gc -lowerswitch -post-inline-ee-instrument -float2int -argpromotion -coro-split -ipconstprop -slp-vectorizer -lowerswitch -alignment-from-assumptions -add-discriminators -consthoist -mergeicmps -argpromotion -sink -loop-load-elim -loop-versioning-licm -mem2reg -inferattrs -indvars -instcombine -coro-early -ee-instrument -instcombine -alignment-from-assumptions -loop-instsimplify -consthoist -canonicalize-aliases -coro-split -load-store-vectorizer -aggressive-instcombine -gvn -slsr -loop-reroll -lower-constant-intrinsics -instnamer -sroa -infer-address-spaces -elim-avail-extern -correlated-propagation -scalarizer -lowerinvoke -inject-tli-mappings -constmerge -strip-debug-declare -loop-unswitch -elim-avail-extern -scalarizer -functionattrs -partial-inliner -early-cse-memssa -div-rem-pairs -inferattrs -mem2reg -mergefunc -separate-const-offset-from-gep -inferattrs -globalsplit -consthoist -mergeicmps -loop-sink -lower-guard-intrinsic -nary-reassociate -rewrite-statepoints-for-gc -partial-inliner -post-inline-ee-instrument -load-store-vectorizer -mldst-motion -deadargelim -barrier -dce -simplifycfg -loop-unroll -simple-loop-unswitch -break-crit-edges -loop-sink -globalsplit -loop-deletion -strip -deadargelim -loop-sink -loop-unswitch -loop-idiom -strip-nondebug -gvn-hoist -nary-reassociate -loop-vectorize -infer-address-spaces -early-cse-memssa -dse -always-inline -coro-split -globalsplit -loop-distribute -callsite-splitting -mldst-motion -loop-simplifycfg -speculative-execution -early-cse-memssa -die -instcombine -canonicalize-aliases -coro-early -die -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.0081967213114753,61.87919545173645,opt -called-value-propagation -jump-threading -break-crit-edges -globaldce -break-crit-edges -adce -gvn-hoist -name-anon-globals -mldst-motion -coro-split -attributor -correlated-propagation -jump-threading -simple-loop-unswitch -loop-unswitch -mergefunc -loop-unroll -pgo-memop-opt -partial-inliner -tailcallelim -add-discriminators -strip-nondebug -prune-eh -strip -load-store-vectorizer -strip -loop-deletion -callsite-splitting -slp-vectorizer -licm -lower-matrix-intrinsics -aggressive-instcombine -lower-widenable-condition -lowerinvoke -sroa -attributor -instnamer -attributor -loweratomic -load-store-vectorizer -insert-gcov-profiling -globaldce -sroa -simplifycfg -loop-interchange -simple-loop-unswitch -jump-threading -guard-widening -nary-reassociate -memcpyopt -gvn -ipconstprop -functionattrs -loop-load-elim -licm -irce -pgo-memop-opt -infer-address-spaces -elim-avail-extern -sccp -elim-avail-extern -correlated-propagation -coro-split -rpo-functionattrs -prune-eh -constprop -break-crit-edges -correlated-propagation -coro-cleanup -redundant-dbg-inst-elim -globalsplit -barrier -called-value-propagation -constmerge -hotcoldsplit -simplifycfg -scalarizer -insert-gcov-profiling -globalopt -loop-simplify -float2int -redundant-dbg-inst-elim -dce -slp-vectorizer -jump-threading -post-inline-ee-instrument -sancov -guard-widening -tailcallelim -coro-split -gvn -loop-versioning-licm -strip -licm -mem2reg -loop-unroll -dce -partial-inliner -reassociate -slsr -memcpyopt -instcombine -guard-widening -die -loop-predication -loweratomic -infer-address-spaces -libcalls-shrinkwrap -loop-unroll -redundant-dbg-inst-elim -instcombine -strip-dead-prototypes -instnamer -lower-constant-intrinsics -globaldce -sroa -callsite-splitting -licm -lower-expect -globalsplit -loop-predication -libcalls-shrinkwrap -globaldce -flattencfg -name-anon-globals -inferattrs -loweratomic -lower-matrix-intrinsics -mergefunc -elim-avail-extern -strip-nondebug -sink -loop-unswitch -simplifycfg -die -newgvn input.bc -o output.bc +benchmark://cbench-v1/stringsearch,1.012295081967213,61.989551305770874,opt -slsr -alignment-from-assumptions -ipsccp -canonicalize-aliases -slp-vectorizer -gvn-hoist -rewrite-statepoints-for-gc -lower-expect -constmerge -canonicalize-aliases -ee-instrument -nary-reassociate -licm -flattencfg -loop-unroll-and-jam -load-store-vectorizer -newgvn -loop-reroll -loop-distribute -licm -gvn -lcssa -globalopt -instnamer -mergereturn -loop-simplify -loop-interchange -globaldce -irce -flattencfg -mldst-motion -bdce -instcombine -jump-threading -loop-unswitch -callsite-splitting -licm -load-store-vectorizer -slsr -lower-constant-intrinsics -correlated-propagation -callsite-splitting -instnamer -infer-address-spaces -dse -loop-unswitch -dse -mergereturn -strip -loweratomic -instsimplify -loop-deletion -functionattrs -gvn-hoist -lower-expect -barrier -consthoist -inject-tli-mappings -prune-eh -lcssa -dse -strip-debug-declare -loop-reroll -called-value-propagation -deadargelim -mergereturn -loop-simplify -loop-unswitch -strip-dead-prototypes -coro-elide -attributor -tailcallelim -partially-inline-libcalls -loop-distribute -dce -licm -loop-versioning -inferattrs -loop-predication -loop-deletion -post-inline-ee-instrument -slp-vectorizer -coro-early -add-discriminators -name-anon-globals -strip -adce -consthoist -ipconstprop -loop-predication -lower-matrix-intrinsics -loop-sink -bdce -loop-reroll -simplifycfg -loop-versioning-licm -barrier -irce -dce -loop-load-elim -newgvn -always-inline -always-inline -callsite-splitting -loop-unroll -callsite-splitting -loweratomic -ee-instrument -lower-widenable-condition -break-crit-edges -instnamer -deadargelim -lowerswitch -ipconstprop -mem2reg -loop-load-elim -callsite-splitting -pgo-memop-opt -instcombine -lower-constant-intrinsics -strip -gvn -add-discriminators -loop-versioning -canonicalize-aliases -strip-nondebug -barrier -loop-fusion -inferattrs -mem2reg -lower-matrix-intrinsics -functionattrs -irce -correlated-propagation -deadargelim -sroa -strip-dead-prototypes -loop-predication -flattencfg -cross-dso-cfi -constmerge -strip-debug-declare -dce -reg2mem -lower-matrix-intrinsics -loop-predication -loop-predication -lower-constant-intrinsics -instnamer -attributor -dce -ipconstprop -instnamer -alignment-from-assumptions -strip-dead-prototypes -loop-simplifycfg -elim-avail-extern -argpromotion -early-cse-memssa -dse -loop-instsimplify -reg2mem -lowerswitch -partial-inliner -insert-gcov-profiling -loop-simplify -post-inline-ee-instrument -partial-inliner -float2int -loop-fusion -prune-eh -lcssa -float2int -div-rem-pairs -strip-debug-declare -loop-sink -loop-reduce -strip -alignment-from-assumptions -loop-simplify -canonicalize-aliases -reg2mem -gvn -insert-gcov-profiling -barrier -newgvn -mem2reg -strip-dead-prototypes -loop-simplify -loop-data-prefetch -loop-versioning-licm -simplifycfg -slsr -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9850746268656715,61.64527368545532,opt -memcpyopt -sroa -elim-avail-extern -lower-widenable-condition -div-rem-pairs -div-rem-pairs -loop-load-elim -cross-dso-cfi -gvn -loop-versioning -insert-gcov-profiling -early-cse-memssa -instcombine -redundant-dbg-inst-elim -inferattrs -nary-reassociate -coro-cleanup -inferattrs -partial-inliner -loop-fusion -consthoist -adce -name-anon-globals -loop-versioning -aggressive-instcombine -correlated-propagation -loweratomic -early-cse-memssa -loop-unroll -jump-threading -sroa -name-anon-globals -speculative-execution -barrier -constprop -loop-data-prefetch -lower-expect -load-store-vectorizer -coro-split -lower-widenable-condition -early-cse-memssa -speculative-execution -elim-avail-extern -loop-guard-widening -loop-sink -coro-early -globalsplit -forceattrs -slsr -coro-elide -pgo-memop-opt -canonicalize-aliases -deadargelim -instcombine -deadargelim -sancov -guard-widening -elim-avail-extern -always-inline -libcalls-shrinkwrap -coro-cleanup -load-store-vectorizer -redundant-dbg-inst-elim -speculative-execution -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9850746268656717,62.151060581207275,opt -loop-simplifycfg -mem2reg -loop-interchange -tailcallelim -coro-cleanup -sroa -sink -insert-gcov-profiling -adce -die -loop-vectorize -rpo-functionattrs -post-inline-ee-instrument -slsr -loop-versioning -mergeicmps -load-store-vectorizer -loop-sink -loop-unroll -barrier -loweratomic -insert-gcov-profiling -mergereturn -div-rem-pairs -slp-vectorizer -mergefunc -strip-dead-prototypes -loop-sink -bdce -redundant-dbg-inst-elim -flattencfg -mergereturn -infer-address-spaces -flattencfg -newgvn -attributor -instcombine -bdce -mergereturn -loop-load-elim -redundant-dbg-inst-elim -add-discriminators -cross-dso-cfi -strip-debug-declare -inferattrs -mergereturn -loop-simplify -lower-widenable-condition -coro-early -barrier -loop-instsimplify -jump-threading -div-rem-pairs -loop-unroll-and-jam -loop-vectorize -loop-data-prefetch -scalarizer -functionattrs -loop-interchange -inject-tli-mappings -loop-sink -dce -newgvn -constprop -post-inline-ee-instrument -elim-avail-extern -coro-cleanup -correlated-propagation -mem2reg -guard-widening -lower-widenable-condition -globaldce -loop-distribute -instcombine -die -loop-load-elim -slsr -libcalls-shrinkwrap -mergefunc -ee-instrument -prune-eh -ee-instrument -coro-split -rewrite-statepoints-for-gc -tailcallelim -rpo-functionattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9888059701492538,61.676395654678345,opt -loop-vectorize -slp-vectorizer -ee-instrument -float2int -called-value-propagation -loop-reroll -coro-elide -canonicalize-aliases -prune-eh -alignment-from-assumptions -inferattrs -indvars -indvars -globalsplit -partially-inline-libcalls -loop-unroll-and-jam -adce -indvars -inject-tli-mappings -name-anon-globals -globaldce -constprop -mldst-motion -sroa -loop-vectorize -rewrite-statepoints-for-gc -gvn -loop-sink -prune-eh -always-inline -mergereturn -mldst-motion -cross-dso-cfi -ipsccp -coro-elide -sink -separate-const-offset-from-gep -mergefunc -cross-dso-cfi -infer-address-spaces -always-inline -forceattrs -aggressive-instcombine -strip-debug-declare -partially-inline-libcalls -lower-matrix-intrinsics -instsimplify -break-crit-edges -lcssa -early-cse-memssa -loop-unroll -infer-address-spaces -strip-nondebug -jump-threading -alignment-from-assumptions -loop-vectorize -gvn -partially-inline-libcalls -constmerge -flattencfg -globaldce -mergeicmps -constmerge -loop-unroll-and-jam -partially-inline-libcalls -partial-inliner -inject-tli-mappings -globaldce -simplifycfg -mergereturn -inject-tli-mappings -speculative-execution -loop-distribute -rpo-functionattrs -indvars -lowerswitch -coro-elide -callsite-splitting -load-store-vectorizer -aggressive-instcombine -loop-predication -argpromotion -loop-guard-widening -insert-gcov-profiling -argpromotion -argpromotion -dse -partially-inline-libcalls -newgvn -lcssa -mldst-motion -lower-guard-intrinsic -simplifycfg -hotcoldsplit -load-store-vectorizer -dse -consthoist -dce -instcombine input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9888059701492538,64.41505336761475,opt -barrier -nary-reassociate -strip-debug-declare -strip-nondebug -loop-reduce -constmerge -deadargelim -ipsccp -float2int -instsimplify -coro-cleanup -break-crit-edges -speculative-execution -loop-deletion -loop-versioning -coro-split -coro-cleanup -globalsplit -callsite-splitting -strip-dead-prototypes -loop-guard-widening -prune-eh -loop-distribute -sroa -newgvn -always-inline -coro-elide -newgvn -correlated-propagation -dce -scalarizer -partially-inline-libcalls -loop-data-prefetch -strip-debug-declare -called-value-propagation -loop-deletion -loop-guard-widening -sink -lower-widenable-condition -constprop -barrier -reg2mem -instsimplify -reg2mem -loop-interchange -simple-loop-unswitch -ipconstprop -loop-sink -early-cse-memssa -rpo-functionattrs -lower-constant-intrinsics -sink -prune-eh -mergefunc -name-anon-globals -coro-early -loop-deletion -sink -loop-guard-widening -loop-versioning -strip -loop-unswitch -instnamer -lowerinvoke -guard-widening -nary-reassociate -ee-instrument -ipsccp -elim-avail-extern -correlated-propagation -canonicalize-aliases -strip-dead-prototypes -lower-guard-intrinsic -separate-const-offset-from-gep -loop-idiom -lower-constant-intrinsics -dce -globaldce -loop-instsimplify -prune-eh -forceattrs -scalarizer -strip-nondebug -rewrite-statepoints-for-gc -loop-interchange -lower-constant-intrinsics -lower-guard-intrinsic -sancov -partially-inline-libcalls -insert-gcov-profiling -constprop -libcalls-shrinkwrap -loop-guard-widening -inferattrs -loop-unroll-and-jam -memcpyopt -sroa -slp-vectorizer -coro-elide -strip-nondebug -strip-dead-prototypes -loop-versioning -deadargelim -globalopt -lcssa -slp-vectorizer -ee-instrument -loop-unswitch -loop-unroll-and-jam -loop-idiom -sroa -coro-elide -dce -load-store-vectorizer -lower-widenable-condition -redundant-dbg-inst-elim -redundant-dbg-inst-elim -canonicalize-aliases -redundant-dbg-inst-elim -early-cse-memssa -indvars -post-inline-ee-instrument -lower-constant-intrinsics -rpo-functionattrs -loop-predication -sancov -ee-instrument -callsite-splitting -loop-reroll -strip -partial-inliner -irce -strip-debug-declare -mem2reg -instcombine -loop-guard-widening -inferattrs -callsite-splitting -memcpyopt -early-cse-memssa -reassociate -strip-nondebug -functionattrs -reassociate -nary-reassociate -bdce -licm -partially-inline-libcalls -ipconstprop -globaldce -strip -coro-elide -simplifycfg -guard-widening -correlated-propagation input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9888059701492539,61.77658653259277,opt -always-inline -ipconstprop -libcalls-shrinkwrap -newgvn -inferattrs -elim-avail-extern -mem2reg -bdce -reassociate -gvn -strip -attributor -loop-guard-widening -guard-widening -reassociate -loop-idiom -forceattrs -die -aggressive-instcombine -memcpyopt -consthoist -mldst-motion -loop-vectorize -strip -rewrite-statepoints-for-gc -loop-idiom -name-anon-globals -strip -infer-address-spaces -instnamer -argpromotion -strip-nondebug -strip -lower-widenable-condition -ipsccp -callsite-splitting -slsr -memcpyopt -coro-elide -mergeicmps -aggressive-instcombine -indvars -always-inline -strip-debug-declare -functionattrs -insert-gcov-profiling -mem2reg -constmerge -mldst-motion -separate-const-offset-from-gep -memcpyopt -gvn -insert-gcov-profiling -elim-avail-extern -bdce -loop-distribute -sroa -coro-split -div-rem-pairs -slp-vectorizer -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.988805970149254,61.721890687942505,opt -mldst-motion -canonicalize-aliases -irce -infer-address-spaces -functionattrs -scalarizer -attributor -mldst-motion -licm -barrier -coro-split -rpo-functionattrs -nary-reassociate -separate-const-offset-from-gep -coro-elide -consthoist -loop-fusion -coro-elide -sroa -constmerge -inferattrs -instsimplify -coro-early -prune-eh -sink -sccp -instsimplify -lower-matrix-intrinsics -newgvn -coro-early -loop-guard-widening -sccp -barrier -mergereturn -loop-vectorize -tailcallelim -sancov -add-discriminators -loop-predication -coro-elide -instcombine -separate-const-offset-from-gep -indvars -libcalls-shrinkwrap -bdce -name-anon-globals -loop-deletion -lower-guard-intrinsic -tailcallelim -loop-guard-widening -cross-dso-cfi -strip-dead-prototypes -partially-inline-libcalls -simplifycfg -loop-distribute -pgo-memop-opt -globalsplit -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9925373134328358,61.8615505695343,opt -lower-constant-intrinsics -functionattrs -loop-reduce -instnamer -forceattrs -loop-guard-widening -die -strip-nondebug -lowerswitch -constprop -redundant-dbg-inst-elim -sancov -loop-unswitch -callsite-splitting -constmerge -lower-matrix-intrinsics -loop-simplify -lower-expect -mergeicmps -instsimplify -bdce -loop-predication -dse -reg2mem -called-value-propagation -guard-widening -loop-vectorize -speculative-execution -ipconstprop -mergefunc -globalopt -constprop -bdce -ipconstprop -tailcallelim -attributor -nary-reassociate -libcalls-shrinkwrap -loop-versioning-licm -cross-dso-cfi -sroa -speculative-execution -jump-threading -partial-inliner -prune-eh -loop-simplify -functionattrs -sink -loop-vectorize -loop-unswitch -mldst-motion -loop-reroll -consthoist -attributor -barrier -sink -tailcallelim -ipsccp -redundant-dbg-inst-elim -called-value-propagation -deadargelim -loop-idiom -canonicalize-aliases -lowerinvoke -loop-unswitch -adce -loop-data-prefetch -loop-data-prefetch -float2int -alignment-from-assumptions -mergeicmps -globaldce -simple-loop-unswitch -called-value-propagation -constmerge -partial-inliner -sancov -loop-versioning -inferattrs -reassociate -rpo-functionattrs -loop-interchange -globaldce -ipconstprop -instcombine -lower-guard-intrinsic -rpo-functionattrs -ipconstprop -lower-expect -insert-gcov-profiling -strip-debug-declare -functionattrs -loweratomic -strip-dead-prototypes -loop-versioning -lower-constant-intrinsics -mergefunc -gvn-hoist -loop-simplifycfg -instcombine -lower-constant-intrinsics -correlated-propagation -lowerswitch -coro-early -mergeicmps -nary-reassociate -slp-vectorizer -load-store-vectorizer -load-store-vectorizer -early-cse-memssa -mergefunc -coro-cleanup -simple-loop-unswitch -flattencfg -bdce -flattencfg -gvn -separate-const-offset-from-gep -loweratomic -aggressive-instcombine -flattencfg -add-discriminators -mem2reg -strip-nondebug -lower-widenable-condition -loweratomic -instnamer -forceattrs -gvn-hoist -bdce -div-rem-pairs -simplifycfg -callsite-splitting -dse -lower-constant-intrinsics -load-store-vectorizer -coro-early -break-crit-edges -partial-inliner -lower-constant-intrinsics -consthoist -inject-tli-mappings -instcombine -div-rem-pairs -mem2reg -argpromotion -loop-predication -sccp -globaldce -elim-avail-extern -inject-tli-mappings -simplifycfg -globaldce -mergereturn -loweratomic -die -die -loweratomic -memcpyopt -scalarizer -sink -alignment-from-assumptions -irce -indvars -ipconstprop -aggressive-instcombine -jump-threading -aggressive-instcombine -globalsplit -mergefunc -globalsplit -gvn-hoist -loop-versioning-licm -guard-widening -coro-early -newgvn -sroa -constprop -inject-tli-mappings -alignment-from-assumptions -add-discriminators -instnamer -globalopt -speculative-execution -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.9962686567164178,61.62188148498535,opt -load-store-vectorizer -loop-interchange -loop-simplify -constmerge -loop-unroll-and-jam -ipsccp -sroa -dce -loop-sink -constprop -rpo-functionattrs -slp-vectorizer -loop-load-elim -die -barrier -slp-vectorizer -loop-sink -div-rem-pairs -gvn-hoist -dce -loop-distribute -loop-fusion -name-anon-globals -licm -rpo-functionattrs -scalarizer -sink -barrier -sroa -loop-sink -irce -correlated-propagation -strip-debug-declare -mergereturn -canonicalize-aliases -early-cse-memssa -sroa -inferattrs -loop-distribute -instcombine -deadargelim -early-cse-memssa -strip-dead-prototypes -strip-dead-prototypes -sink -irce -always-inline -early-cse-memssa -functionattrs -loop-idiom -slp-vectorizer -lower-guard-intrinsic -indvars -loop-sink -lcssa -dce -add-discriminators -sancov -lowerswitch -mldst-motion -deadargelim -jump-threading -gvn -ee-instrument -loop-deletion -coro-split -correlated-propagation -name-anon-globals -lower-expect -globalopt -attributor -loop-instsimplify -elim-avail-extern -coro-early -loop-interchange -loop-guard-widening -tailcallelim -simplifycfg -strip-nondebug -guard-widening -globalopt -barrier -lower-matrix-intrinsics -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.996268656716418,61.765552043914795,opt -cross-dso-cfi -loop-interchange -elim-avail-extern -insert-gcov-profiling -partially-inline-libcalls -mldst-motion -slp-vectorizer -loop-idiom -deadargelim -lower-constant-intrinsics -speculative-execution -sccp -coro-early -correlated-propagation -adce -loop-unroll-and-jam -nary-reassociate -insert-gcov-profiling -separate-const-offset-from-gep -newgvn -correlated-propagation -loop-simplifycfg -strip-nondebug -dse -attributor -gvn -functionattrs -called-value-propagation -newgvn -ee-instrument -instcombine -div-rem-pairs -pgo-memop-opt -partially-inline-libcalls -mergereturn -dce -newgvn -gvn-hoist -mergereturn -loop-simplify -insert-gcov-profiling -inferattrs -loop-deletion -strip-debug-declare -indvars -globalopt -simple-loop-unswitch -newgvn -loop-interchange -add-discriminators -irce -newgvn -nary-reassociate -ipsccp -canonicalize-aliases -mem2reg -correlated-propagation -break-crit-edges -partially-inline-libcalls -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/stringsearch2,0.996268656716418,61.78978753089905,opt -simplifycfg -newgvn -mem2reg -indvars -mergeicmps -inferattrs -aggressive-instcombine -rpo-functionattrs -constprop -loop-versioning -slp-vectorizer -inject-tli-mappings -loop-simplifycfg -insert-gcov-profiling -rpo-functionattrs -indvars -coro-elide -tailcallelim -attributor -coro-cleanup -instcombine -ipconstprop -div-rem-pairs -lower-expect -strip-dead-prototypes -insert-gcov-profiling -coro-early -rpo-functionattrs -argpromotion -loop-versioning-licm -constprop -reassociate -loop-simplifycfg -mergereturn -partial-inliner -partially-inline-libcalls -ipconstprop -float2int -instsimplify -partially-inline-libcalls -slp-vectorizer -redundant-dbg-inst-elim -mem2reg -gvn -sink -loweratomic -coro-split -loop-interchange -gvn -elim-avail-extern -gvn -dce -mergeicmps -rewrite-statepoints-for-gc -aggressive-instcombine -lower-matrix-intrinsics -scalarizer -memcpyopt -loop-unswitch -tailcallelim -loop-vectorize -inject-tli-mappings -libcalls-shrinkwrap -loop-deletion -inject-tli-mappings -instcombine -mldst-motion -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0008958280010236,63.07995295524597,opt -loop-sink -mem2reg -nary-reassociate -indvars -loop-load-elim -loop-simplify -insert-gcov-profiling -loop-simplifycfg -irce -loop-deletion -div-rem-pairs -loop-unroll-and-jam -add-discriminators -rewrite-statepoints-for-gc -simplifycfg -coro-early -lower-expect -loop-interchange -partial-inliner -gvn -loop-data-prefetch -functionattrs -simple-loop-unswitch -guard-widening -mergeicmps -gvn -dse -mldst-motion -lower-guard-intrinsic -loop-simplify -lower-constant-intrinsics -loop-fusion -newgvn -rpo-functionattrs -simplifycfg -inferattrs -partially-inline-libcalls -separate-const-offset-from-gep -loop-load-elim -separate-const-offset-from-gep -loop-guard-widening -loop-predication -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/susan,1.0012797542871767,66.32646870613098,opt -instcombine -sroa -partial-inliner -licm -early-cse-memssa -lower-constant-intrinsics -load-store-vectorizer -loop-vectorize -loop-guard-widening -flattencfg -guard-widening -partial-inliner -dse -gvn-hoist -sink -lower-widenable-condition -strip-nondebug -loop-versioning -forceattrs -loop-idiom -loop-versioning-licm -licm -libcalls-shrinkwrap -memcpyopt -loop-simplify -sroa -die -irce -simplifycfg -simple-loop-unswitch -strip-dead-prototypes -instcombine -functionattrs -speculative-execution -mergefunc -jump-threading -consthoist -tailcallelim -alignment-from-assumptions -lcssa -sccp -lower-guard-intrinsic -mldst-motion -loop-unroll-and-jam -jump-threading -partial-inliner -pgo-memop-opt -slsr -simple-loop-unswitch -sroa -loop-simplify -mergereturn -sroa -loop-deletion -coro-cleanup -sancov -jump-threading -mem2reg -slsr -add-discriminators -early-cse-memssa -infer-address-spaces -loop-guard-widening -mergereturn -partially-inline-libcalls -mldst-motion -dce -flattencfg -sroa -newgvn -lower-constant-intrinsics -loop-sink -loop-vectorize -loweratomic -libcalls-shrinkwrap -jump-threading -guard-widening -nary-reassociate -constprop -instnamer -correlated-propagation -loop-versioning-licm -coro-early -simple-loop-unswitch -libcalls-shrinkwrap -loop-versioning-licm -licm -div-rem-pairs -coro-cleanup -coro-split -instsimplify -always-inline -mergefunc -globaldce -rpo-functionattrs -elim-avail-extern -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/susan,1.0051190171487074,63.4972939491272,opt -simplifycfg -ipconstprop -sroa -mem2reg -nary-reassociate -loop-data-prefetch -globalopt -loop-instsimplify -flattencfg -canonicalize-aliases -gvn -pgo-memop-opt -memcpyopt -inferattrs -flattencfg -redundant-dbg-inst-elim -coro-early -deadargelim -loop-unroll -rpo-functionattrs -mergeicmps -dce -post-inline-ee-instrument -strip-dead-prototypes -inject-tli-mappings -loop-instsimplify -lowerswitch -lcssa -alignment-from-assumptions -callsite-splitting -simplifycfg -memcpyopt -reassociate -jump-threading -sroa -strip-debug-declare -guard-widening -lower-guard-intrinsic -loop-idiom -coro-early -strip -sroa -globalopt -mergereturn -libcalls-shrinkwrap -nary-reassociate -separate-const-offset-from-gep -partial-inliner -attributor -slsr -slsr -newgvn -loop-reroll -licm -forceattrs -ipsccp -ipconstprop -loop-reroll -lowerinvoke -instcombine -post-inline-ee-instrument -newgvn -loop-load-elim -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -barrier -strip-nondebug -rpo-functionattrs -loop-simplify -loop-data-prefetch -scalarizer -cross-dso-cfi -libcalls-shrinkwrap -memcpyopt -loop-deletion -nary-reassociate -mergefunc -loop-idiom -instnamer -correlated-propagation -loop-fusion -alignment-from-assumptions -correlated-propagation -cross-dso-cfi -strip-debug-declare -rpo-functionattrs -functionattrs -sancov -called-value-propagation -canonicalize-aliases -indvars -insert-gcov-profiling -separate-const-offset-from-gep -loop-data-prefetch -indvars -gvn-hoist -sancov -guard-widening -add-discriminators -insert-gcov-profiling -nary-reassociate -loop-unroll-and-jam -dce -correlated-propagation -loop-instsimplify -partially-inline-libcalls -mem2reg -loop-interchange -elim-avail-extern -slp-vectorizer -loop-reroll -argpromotion -elim-avail-extern -partial-inliner -instcombine -constmerge -instcombine -canonicalize-aliases -sccp -redundant-dbg-inst-elim -sink -guard-widening -simplifycfg -redundant-dbg-inst-elim -canonicalize-aliases -speculative-execution -alignment-from-assumptions -sroa -inferattrs -add-discriminators -partially-inline-libcalls -speculative-execution -gvn-hoist -div-rem-pairs -loop-versioning -mergefunc -slp-vectorizer -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/susan,1.0051190171487077,63.2826771736145,opt -sancov -libcalls-shrinkwrap -loweratomic -sroa -guard-widening -insert-gcov-profiling -loop-instsimplify -guard-widening -mergereturn -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -nary-reassociate -always-inline -coro-split -cross-dso-cfi -functionattrs -gvn -loop-reroll -mergefunc -mergeicmps -instsimplify -memcpyopt -loop-interchange -loop-predication -alignment-from-assumptions -loop-vectorize -loop-simplify -mem2reg -libcalls-shrinkwrap -strip-debug-declare -mldst-motion -attributor -loop-sink -loop-fusion -called-value-propagation -mldst-motion -mergeicmps -strip-dead-prototypes -loop-deletion -coro-early -gvn -canonicalize-aliases -sink -barrier -inferattrs -loop-deletion -load-store-vectorizer -loop-deletion -nary-reassociate -reassociate -loop-versioning -ee-instrument -attributor -prune-eh -lower-widenable-condition -called-value-propagation -post-inline-ee-instrument -dce -lowerinvoke -slp-vectorizer -elim-avail-extern -load-store-vectorizer -strip -ee-instrument -canonicalize-aliases -strip-dead-prototypes -loop-load-elim -early-cse-memssa -sccp -argpromotion -infer-address-spaces -loop-data-prefetch -dce -loop-load-elim -constmerge -called-value-propagation -loop-vectorize -flattencfg -instnamer -loop-unroll -loweratomic -gvn-hoist -prune-eh -memcpyopt -mldst-motion -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/susan,1.005758894292296,310.464004278183,opt -tailcallelim -break-crit-edges -strip-dead-prototypes -die -loop-vectorize -slp-vectorizer -prune-eh -speculative-execution -newgvn -hotcoldsplit -called-value-propagation -lcssa -strip-dead-prototypes -tailcallelim -dce -redundant-dbg-inst-elim -sroa -jump-threading -loop-versioning-licm -loop-deletion -infer-address-spaces -elim-avail-extern -functionattrs -alignment-from-assumptions -infer-address-spaces -slp-vectorizer -mergefunc -sancov -scalarizer -separate-const-offset-from-gep -functionattrs -sancov -reassociate -loop-unroll -constprop -mergeicmps -globalopt -rewrite-statepoints-for-gc -float2int -barrier -partial-inliner -mldst-motion -deadargelim -memcpyopt -loop-guard-widening -mergefunc -irce -loop-versioning -deadargelim -inferattrs -loop-interchange -loop-simplify -loop-predication -lcssa -functionattrs -coro-elide -load-store-vectorizer -strip-debug-declare -always-inline -insert-gcov-profiling -newgvn -add-discriminators -consthoist -licm -consthoist -prune-eh -elim-avail-extern -indvars -prune-eh -reassociate -functionattrs -rewrite-statepoints-for-gc -simplifycfg -libcalls-shrinkwrap -lower-widenable-condition -newgvn -lower-guard-intrinsic -lower-constant-intrinsics -elim-avail-extern -flattencfg -irce -hotcoldsplit -strip -insert-gcov-profiling -sroa -reassociate -instcombine -sink -lower-matrix-intrinsics -insert-gcov-profiling -sccp -libcalls-shrinkwrap -licm -name-anon-globals -correlated-propagation -lower-matrix-intrinsics -loop-load-elim -coro-elide -adce -loweratomic -cross-dso-cfi -mem2reg -insert-gcov-profiling -lower-constant-intrinsics -strip-debug-declare -strip-nondebug -instnamer -lower-widenable-condition -lower-guard-intrinsic -mergefunc -canonicalize-aliases -dse -loop-simplifycfg -loop-unroll-and-jam -alignment-from-assumptions -libcalls-shrinkwrap -loop-data-prefetch -globalsplit -newgvn input.bc -o output.bc +benchmark://cbench-v1/susan,1.0112618377271563,66.1175889968872,opt -callsite-splitting -deadargelim -simple-loop-unswitch -tailcallelim -simple-loop-unswitch -adce -globalopt -aggressive-instcombine -sroa -inject-tli-mappings -add-discriminators -dce -elim-avail-extern -float2int -strip-dead-prototypes -loop-load-elim -mergereturn -lower-guard-intrinsic -loop-vectorize -libcalls-shrinkwrap -instcombine -licm -correlated-propagation -indvars -strip-debug-declare -strip-debug-declare -instsimplify -infer-address-spaces -float2int -always-inline -flattencfg -dce -newgvn -partial-inliner -jump-threading -lower-matrix-intrinsics -rpo-functionattrs -speculative-execution -loop-sink -globalsplit -lowerinvoke -gvn-hoist -elim-avail-extern -name-anon-globals -lower-guard-intrinsic -lowerinvoke -early-cse-memssa -always-inline -lower-guard-intrinsic -mergeicmps -loop-instsimplify -consthoist -jump-threading -argpromotion -newgvn -loop-distribute -loop-guard-widening -prune-eh -separate-const-offset-from-gep -sancov -inferattrs -lowerinvoke -early-cse-memssa -loweratomic -loop-load-elim -lower-guard-intrinsic -loop-unroll -loop-instsimplify -loop-versioning -div-rem-pairs -ipsccp -strip-debug-declare -prune-eh -mldst-motion -licm -bdce -loop-simplify -loweratomic -add-discriminators -lower-widenable-condition -loop-versioning -simplifycfg -functionattrs -loop-versioning-licm -loop-distribute -mem2reg -adce -strip -float2int -break-crit-edges -loop-data-prefetch -memcpyopt -ee-instrument -sccp -post-inline-ee-instrument -attributor -libcalls-shrinkwrap -cross-dso-cfi -loop-idiom -loop-guard-widening -die -attributor -coro-split -gvn -break-crit-edges -float2int -loop-versioning-licm -always-inline -coro-split -break-crit-edges -argpromotion -attributor -simplifycfg -constmerge -newgvn -instcombine -lowerswitch -canonicalize-aliases -float2int -pgo-memop-opt -infer-address-spaces -die -strip -nary-reassociate -reassociate -forceattrs -partial-inliner -add-discriminators -lowerinvoke -mem2reg -lower-constant-intrinsics -libcalls-shrinkwrap -loop-unroll -loop-deletion -callsite-splitting -loop-simplify -flattencfg -mldst-motion -adce -mergereturn -lowerinvoke -canonicalize-aliases -simplifycfg -strip-nondebug -constprop -coro-early -bdce -reassociate -newgvn -attributor -loop-data-prefetch -slsr -instcombine -lower-matrix-intrinsics -slsr -coro-cleanup -always-inline -loop-guard-widening -lower-matrix-intrinsics -sroa -div-rem-pairs -partially-inline-libcalls -indvars -forceattrs -ipsccp -loweratomic -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/susan,1.013437420015357,141.09184956550598,opt -sancov -loop-idiom -flattencfg -partially-inline-libcalls -guard-widening -loop-instsimplify -partial-inliner -ipconstprop -sink -strip -partial-inliner -early-cse-memssa -mergereturn -loop-distribute -inferattrs -loop-versioning -jump-threading -globaldce -inferattrs -loop-simplifycfg -licm -mergereturn -slp-vectorizer -strip -post-inline-ee-instrument -coro-early -adce -strip-debug-declare -sccp -correlated-propagation -canonicalize-aliases -rpo-functionattrs -rewrite-statepoints-for-gc -functionattrs -float2int -sroa -reg2mem -loop-sink -loop-unroll-and-jam -pgo-memop-opt -partial-inliner -constprop -loop-deletion -alignment-from-assumptions -strip -loop-sink -called-value-propagation -callsite-splitting -argpromotion -loop-versioning -instcombine -instcombine -instsimplify -coro-split -partial-inliner -consthoist -globalsplit -inject-tli-mappings -loop-unroll -lower-constant-intrinsics -break-crit-edges -rewrite-statepoints-for-gc -loop-versioning-licm -bdce -globalsplit -slp-vectorizer -newgvn -loop-guard-widening -simplifycfg -argpromotion -loop-simplifycfg -gvn -jump-threading -newgvn -inferattrs -loop-idiom -canonicalize-aliases -bdce -forceattrs -bdce -instnamer -reassociate -sroa -instsimplify -lower-constant-intrinsics -lower-widenable-condition -globalsplit -loop-simplify -gvn -instnamer -tailcallelim -instcombine -called-value-propagation -lower-expect -loop-predication -libcalls-shrinkwrap -licm -tailcallelim -dce -break-crit-edges -loop-idiom -tailcallelim -libcalls-shrinkwrap -coro-cleanup -separate-const-offset-from-gep -irce -loop-simplifycfg -lowerinvoke -slp-vectorizer -add-discriminators -cross-dso-cfi -alignment-from-assumptions -loop-idiom -coro-cleanup -guard-widening -globalopt -speculative-execution -loop-instsimplify -loop-simplify -reg2mem -lowerinvoke -loop-vectorize -instcombine -simple-loop-unswitch -elim-avail-extern -inject-tli-mappings -elim-avail-extern -sroa -newgvn input.bc -o output.bc +benchmark://cbench-v1/susan,1.0167647811620169,63.417919397354126,opt -mergefunc -flattencfg -aggressive-instcombine -always-inline -jump-threading -loop-unroll-and-jam -lower-guard-intrinsic -mem2reg -globalsplit -always-inline -strip-debug-declare -mergereturn -instnamer -always-inline -jump-threading -mergeicmps -scalarizer -coro-early -post-inline-ee-instrument -argpromotion -loop-deletion -strip -loop-versioning -mergereturn -constmerge -mergeicmps -loop-unroll -speculative-execution -infer-address-spaces -coro-early -forceattrs -loop-load-elim -lower-expect -scalarizer -libcalls-shrinkwrap -instnamer -post-inline-ee-instrument -loop-guard-widening -loop-instsimplify -loop-unroll-and-jam -ipconstprop -die -globalsplit -slsr -prune-eh -coro-split -gvn -lcssa -called-value-propagation -loop-interchange -barrier -inline -inferattrs -adce -insert-gcov-profiling -always-inline -globalopt -inferattrs -mergefunc -loop-reroll -barrier -functionattrs -callsite-splitting -simple-loop-unswitch -insert-gcov-profiling -hotcoldsplit -instnamer -constmerge -slsr -lower-widenable-condition -loop-instsimplify -callsite-splitting -loop-unroll -die -scalarizer -globaldce -loop-simplify -always-inline -called-value-propagation -rpo-functionattrs -div-rem-pairs -infer-address-spaces -name-anon-globals -div-rem-pairs -loop-load-elim -loop-interchange -forceattrs -functionattrs -post-inline-ee-instrument -deadargelim -load-store-vectorizer -constmerge -inferattrs -loop-distribute -canonicalize-aliases -loop-predication -lowerinvoke -elim-avail-extern -slsr -lower-constant-intrinsics -jump-threading -loop-deletion -instcombine -slsr -loop-reroll -newgvn -loop-versioning-licm -sink -loop-unswitch -sccp -simplifycfg -loweratomic -add-discriminators -reg2mem -instsimplify -coro-cleanup -bdce -loop-sink -simplifycfg -loop-vectorize -gvn -loop-deletion -strip -aggressive-instcombine -loop-sink -speculative-execution -name-anon-globals -loop-unswitch -loop-instsimplify -separate-const-offset-from-gep -lower-matrix-intrinsics -loop-instsimplify -constmerge -instcombine -redundant-dbg-inst-elim -tailcallelim -lower-guard-intrinsic -newgvn -coro-cleanup -coro-elide -loop-fusion -lower-widenable-condition -simplifycfg -loop-simplify -cross-dso-cfi -inject-tli-mappings -strip-debug-declare -bdce -loop-predication -lowerinvoke -load-store-vectorizer -partially-inline-libcalls -speculative-execution -forceattrs -loop-idiom -inject-tli-mappings -guard-widening -loop-predication -partially-inline-libcalls -lower-matrix-intrinsics -loop-unroll -memcpyopt -loweratomic -ipsccp -hotcoldsplit -dce -lower-widenable-condition -lower-matrix-intrinsics -guard-widening -infer-address-spaces -callsite-splitting -lower-matrix-intrinsics -div-rem-pairs -indvars -loop-distribute -loop-idiom -reassociate -lower-constant-intrinsics -loop-instsimplify -instcombine input.bc -o output.bc +benchmark://cbench-v1/susan,1.023931405170207,63.62526869773865,opt -rewrite-statepoints-for-gc -dce -reassociate -infer-address-spaces -loop-unswitch -called-value-propagation -strip-debug-declare -lower-matrix-intrinsics -constprop -strip-dead-prototypes -mldst-motion -mergereturn -functionattrs -loop-unroll-and-jam -globaldce -insert-gcov-profiling -partial-inliner -inject-tli-mappings -loop-reduce -ee-instrument -partial-inliner -loop-data-prefetch -redundant-dbg-inst-elim -loweratomic -loop-versioning-licm -loweratomic -separate-const-offset-from-gep -mergefunc -strip-debug-declare -mergeicmps -slp-vectorizer -indvars -loop-sink -alignment-from-assumptions -rpo-functionattrs -callsite-splitting -post-inline-ee-instrument -loop-distribute -always-inline -mem2reg -redundant-dbg-inst-elim -loop-versioning -loop-fusion -redundant-dbg-inst-elim -coro-early -gvn -loop-versioning-licm -loop-distribute -coro-early -loop-data-prefetch -instnamer -forceattrs -callsite-splitting -loop-guard-widening -load-store-vectorizer -sccp -libcalls-shrinkwrap -loop-unswitch -lower-expect -slsr -float2int -add-discriminators -slp-vectorizer -coro-split -functionattrs -name-anon-globals -separate-const-offset-from-gep -inferattrs -insert-gcov-profiling -prune-eh -lower-guard-intrinsic -inject-tli-mappings -redundant-dbg-inst-elim -newgvn -slsr -name-anon-globals -instsimplify -loop-guard-widening -loop-simplify -lowerswitch -constprop -consthoist -reg2mem -libcalls-shrinkwrap -sccp -inferattrs -simplifycfg -loop-predication -memcpyopt -flattencfg -loop-predication -adce -speculative-execution -consthoist -reg2mem -instsimplify -ipsccp -loop-simplify -div-rem-pairs -globalsplit -flattencfg -nary-reassociate -loop-data-prefetch -loop-fusion -guard-widening -loop-guard-widening -simplifycfg -simple-loop-unswitch -strip-dead-prototypes -gvn-hoist -coro-cleanup -loop-simplify -loop-load-elim -name-anon-globals -argpromotion -deadargelim -rewrite-statepoints-for-gc -correlated-propagation -ipsccp -instcombine -loop-data-prefetch -gvn -newgvn -strip-dead-prototypes -reassociate -simplifycfg -guard-widening -ee-instrument -globaldce -rpo-functionattrs -flattencfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/susan,1.0476068594829784,63.81288194656372,opt -adce -coro-split -mergereturn -loop-idiom -always-inline -strip-debug-declare -memcpyopt -guard-widening -barrier -cross-dso-cfi -loop-instsimplify -loop-versioning -hotcoldsplit -die -loop-simplifycfg -loop-fusion -loop-instsimplify -flattencfg -functionattrs -die -instsimplify -alignment-from-assumptions -loop-unswitch -irce -alignment-from-assumptions -load-store-vectorizer -scalarizer -loop-fusion -flattencfg -argpromotion -partially-inline-libcalls -pgo-memop-opt -consthoist -constmerge -dce -lower-expect -coro-split -callsite-splitting -ipconstprop -inject-tli-mappings -mem2reg -adce -guard-widening -elim-avail-extern -aggressive-instcombine -elim-avail-extern -pgo-memop-opt -loop-sink -adce -canonicalize-aliases -sancov -instsimplify -sroa -sccp -loop-sink -loop-distribute -strip-debug-declare -loop-reroll -dse -always-inline -sccp -strip-dead-prototypes -slp-vectorizer -argpromotion -instsimplify -redundant-dbg-inst-elim -mldst-motion -strip -loop-fusion -aggressive-instcombine -globaldce -sroa -simple-loop-unswitch -loop-simplify -lower-expect -constprop -infer-address-spaces -nary-reassociate -memcpyopt -scalarizer -jump-threading -sccp -coro-elide -early-cse-memssa -strip-debug-declare -bdce -globalopt -attributor -separate-const-offset-from-gep -globaldce -ipconstprop -lower-widenable-condition -loop-instsimplify -callsite-splitting -consthoist -add-discriminators -globalopt -guard-widening -slsr -jump-threading -loop-instsimplify -rewrite-statepoints-for-gc -early-cse-memssa -indvars -gvn-hoist -instcombine -instsimplify -inferattrs -separate-const-offset-from-gep -dse -redundant-dbg-inst-elim -globalsplit -slp-vectorizer -loop-versioning -ipsccp -partially-inline-libcalls -simple-loop-unswitch -load-store-vectorizer -reg2mem -speculative-execution -functionattrs -gvn -newgvn -globaldce -instcombine -partial-inliner -callsite-splitting -ee-instrument -loop-rotate -name-anon-globals -constprop -name-anon-globals -canonicalize-aliases -guard-widening -strip-debug-declare -scalarizer -simple-loop-unswitch -strip-nondebug -strip-nondebug -libcalls-shrinkwrap -loop-interchange -barrier -prune-eh -break-crit-edges -loop-rotate -forceattrs -loop-sink -lower-constant-intrinsics -gvn -attributor -slsr -loop-data-prefetch -loweratomic -rpo-functionattrs -globaldce -div-rem-pairs -mldst-motion -gvn -sink -callsite-splitting -reassociate -globalsplit -instcombine -partial-inliner -coro-cleanup -cross-dso-cfi -sroa -guard-widening -deadargelim -jump-threading -dse -loop-reroll -div-rem-pairs -lower-constant-intrinsics -always-inline -loop-vectorize -nary-reassociate -loop-versioning-licm -libcalls-shrinkwrap -barrier -scalarizer -mergereturn -reassociate -adce -gvn -loop-predication -forceattrs -mergereturn -strip-dead-prototypes -post-inline-ee-instrument -ipsccp -loop-idiom -rpo-functionattrs -deadargelim -indvars -ipsccp -speculative-execution -mldst-motion -globaldce -libcalls-shrinkwrap -consthoist -simple-loop-unswitch -infer-address-spaces -loop-sink -gvn -loop-interchange -dce -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.014864429241735,74.9220666885376,opt -loop-sink -strip -loop-interchange -canonicalize-aliases -instsimplify -licm -correlated-propagation -speculative-execution -loop-load-elim -nary-reassociate -guard-widening -ipconstprop -coro-split -loop-deletion -inferattrs -correlated-propagation -licm -newgvn -strip-nondebug -globalsplit -inject-tli-mappings -elim-avail-extern -barrier -licm -instsimplify -lower-widenable-condition -loweratomic -prune-eh -coro-early -lower-matrix-intrinsics -lower-guard-intrinsic -coro-elide -ipconstprop -gvn-hoist -loop-fusion -die -strip -loop-instsimplify -coro-cleanup -canonicalize-aliases -loop-data-prefetch -loop-versioning -name-anon-globals -sroa -globaldce -lowerinvoke -indvars -loop-distribute -gvn-hoist -sancov -gvn-hoist -scalarizer -sroa -sccp -adce -flattencfg -indvars -separate-const-offset-from-gep -instcombine -coro-early -instnamer -div-rem-pairs -coro-cleanup -loop-unroll -reassociate -simple-loop-unswitch -float2int -redundant-dbg-inst-elim -mergereturn -partially-inline-libcalls -pgo-memop-opt -dce -correlated-propagation -early-cse-memssa -gvn-hoist -loop-unroll -add-discriminators -pgo-memop-opt -forceattrs -gvn-hoist -lower-widenable-condition -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0191625774562125,74.73441576957703,opt -instsimplify -elim-avail-extern -flattencfg -indvars -strip-debug-declare -loop-rotate -loop-instsimplify -reg2mem -partially-inline-libcalls -cross-dso-cfi -instsimplify -simple-loop-unswitch -alignment-from-assumptions -lower-matrix-intrinsics -coro-elide -simple-loop-unswitch -loop-guard-widening -loop-unroll-and-jam -functionattrs -globalsplit -hotcoldsplit -scalarizer -loop-versioning-licm -float2int -infer-address-spaces -post-inline-ee-instrument -strip -argpromotion -die -loop-simplifycfg -redundant-dbg-inst-elim -jump-threading -tailcallelim -mergeicmps -globalsplit -globalopt -lower-widenable-condition -infer-address-spaces -sink -rpo-functionattrs -break-crit-edges -rpo-functionattrs -simple-loop-unswitch -ipconstprop -sroa -loop-instsimplify -inject-tli-mappings -loop-versioning-licm -mergefunc -licm -instcombine -newgvn -loop-simplify -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0203445682151937,75.50654411315918,opt -argpromotion -lcssa -newgvn -lower-matrix-intrinsics -rewrite-statepoints-for-gc -alignment-from-assumptions -loop-reroll -lower-guard-intrinsic -lower-guard-intrinsic -functionattrs -strip-dead-prototypes -inject-tli-mappings -consthoist -correlated-propagation -bdce -pgo-memop-opt -jump-threading -loop-sink -mldst-motion -loop-vectorize -callsite-splitting -partially-inline-libcalls -div-rem-pairs -flattencfg -loop-simplify -ee-instrument -sink -libcalls-shrinkwrap -mem2reg -speculative-execution -constprop -loop-fusion -prune-eh -constmerge -loop-simplifycfg -sink -strip-dead-prototypes -constprop -sink -instnamer -barrier -callsite-splitting -loop-load-elim -loop-reroll -insert-gcov-profiling -loweratomic -irce -instcombine -infer-address-spaces -irce -bdce -jump-threading -newgvn -elim-avail-extern -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0219921916974106,139.76473093032837,opt -lcssa -reg2mem -loop-reroll -globalopt -coro-cleanup -adce -inferattrs -coro-cleanup -always-inline -loop-unroll -loweratomic -slsr -correlated-propagation -coro-elide -loop-fusion -insert-gcov-profiling -name-anon-globals -loop-data-prefetch -ee-instrument -forceattrs -coro-split -rewrite-statepoints-for-gc -partial-inliner -strip-nondebug -cross-dso-cfi -reassociate -elim-avail-extern -inferattrs -loop-deletion -deadargelim -instsimplify -lower-widenable-condition -slsr -loop-unroll-and-jam -memcpyopt -strip -adce -jump-threading -lower-widenable-condition -callsite-splitting -rpo-functionattrs -mem2reg -callsite-splitting -guard-widening -slsr -instnamer -jump-threading -hotcoldsplit -coro-cleanup -strip -separate-const-offset-from-gep -rpo-functionattrs -constprop -always-inline -name-anon-globals -instsimplify -irce -inject-tli-mappings -ipconstprop -loop-vectorize -gvn -mergereturn -div-rem-pairs -loop-vectorize -loop-idiom -loop-vectorize -ee-instrument -simple-loop-unswitch -strip-nondebug -lcssa -simplifycfg -loweratomic -rewrite-statepoints-for-gc -rpo-functionattrs -instnamer -lower-widenable-condition -mergereturn -slsr -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.022171281206347,73.88120555877686,opt -inferattrs -prune-eh -sroa -ipconstprop -redundant-dbg-inst-elim -post-inline-ee-instrument -mergereturn -licm -simplifycfg -correlated-propagation -mergereturn -always-inline -inferattrs -instnamer -newgvn -sroa -die -coro-split -alignment-from-assumptions -infer-address-spaces -tailcallelim -coro-elide -strip -mldst-motion -callsite-splitting -newgvn -constprop -rpo-functionattrs -loop-instsimplify -inferattrs -reassociate -loop-reroll -indvars -constprop -barrier -always-inline -redundant-dbg-inst-elim -coro-elide -instcombine -slp-vectorizer input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0225652781260075,74.9262228012085,opt -alignment-from-assumptions -pgo-memop-opt -loop-deletion -loop-fusion -constmerge -tailcallelim -nary-reassociate -loop-instsimplify -prune-eh -loop-predication -die -break-crit-edges -sancov -instnamer -loop-simplifycfg -lower-constant-intrinsics -strip-nondebug -lcssa -lower-expect -sancov -dce -loop-instsimplify -sroa -indvars -early-cse-memssa -barrier -loop-guard-widening -mem2reg -mergefunc -hotcoldsplit -slp-vectorizer -rpo-functionattrs -die -newgvn -loop-unroll-and-jam -called-value-propagation -mergereturn -mergereturn -instsimplify -tailcallelim -instcombine -loop-idiom -strip -lower-guard-intrinsic -memcpyopt -hotcoldsplit -ipconstprop -strip -lcssa -forceattrs -simplifycfg -lower-constant-intrinsics -loop-vectorize -inject-tli-mappings -strip-debug-declare -loop-vectorize -coro-early -loop-data-prefetch -simple-loop-unswitch -lcssa -simplifycfg -coro-cleanup -sink -simplifycfg -reassociate -lower-widenable-condition -slsr -loop-deletion -instcombine -name-anon-globals -loop-unroll -consthoist -adce -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.024033812099287,77.53979635238647,opt -lowerinvoke -float2int -mem2reg -lower-guard-intrinsic -break-crit-edges -sroa -partial-inliner -instcombine -loop-guard-widening -div-rem-pairs -inject-tli-mappings -rpo-functionattrs -coro-split -loop-load-elim -sroa -prune-eh -loop-deletion -coro-elide -loop-simplify -correlated-propagation -inferattrs -div-rem-pairs -jump-threading -instsimplify -adce -instsimplify -slp-vectorizer -dse -globalsplit -guard-widening -add-discriminators -jump-threading -lower-widenable-condition -attributor -ipconstprop -coro-split -loop-simplify -prune-eh -reg2mem -loop-unroll-and-jam -alignment-from-assumptions -argpromotion -lowerinvoke -called-value-propagation -early-cse-memssa -called-value-propagation -sroa -prune-eh -pgo-memop-opt -dse -sroa -attributor -loop-predication -sink -bdce -mergefunc -instsimplify -mergeicmps -loop-simplifycfg -name-anon-globals -loop-unroll-and-jam -indvars -barrier -die -licm -float2int -loop-load-elim -inferattrs -canonicalize-aliases -alignment-from-assumptions -coro-split -reassociate -constmerge -cross-dso-cfi -ee-instrument -lower-expect -strip-nondebug -libcalls-shrinkwrap -loop-guard-widening -nary-reassociate -dce -always-inline -load-store-vectorizer -instcombine -loop-guard-widening -hotcoldsplit -name-anon-globals -die -ipsccp -prune-eh -barrier -instnamer -gvn -coro-elide -loop-instsimplify -name-anon-globals -loop-load-elim -coro-split -loop-guard-widening -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0244994448225224,74.15848064422607,opt -sroa -loop-versioning -strip-debug-declare -hotcoldsplit -name-anon-globals -slsr -name-anon-globals -instsimplify -loop-unswitch -rpo-functionattrs -deadargelim -rewrite-statepoints-for-gc -indvars -loop-guard-widening -early-cse-memssa -inject-tli-mappings -simplifycfg -loop-guard-widening -loop-interchange -ipconstprop -indvars -coro-cleanup -correlated-propagation -mem2reg -coro-early -loop-data-prefetch -sink -coro-cleanup -argpromotion -inferattrs -lower-widenable-condition -functionattrs -flattencfg -newgvn -ipsccp -mergereturn -barrier -constprop -newgvn -cross-dso-cfi -gvn-hoist -globalopt -nary-reassociate -forceattrs -insert-gcov-profiling -instcombine -globaldce -bdce -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.0286901393316379,74.36752319335938,opt -break-crit-edges -instsimplify -instsimplify -mldst-motion -ee-instrument -simplifycfg -hotcoldsplit -rpo-functionattrs -strip-nondebug -early-cse-memssa -mem2reg -gvn-hoist -dce -instcombine -loop-unroll -ipconstprop -load-store-vectorizer -callsite-splitting -nary-reassociate -float2int -mem2reg -instsimplify -memcpyopt -ipconstprop -loop-idiom -instsimplify -newgvn -loop-simplifycfg -lower-widenable-condition -reassociate -sroa -functionattrs -guard-widening -sroa -globalsplit -loop-distribute -loop-simplifycfg -dse -reassociate -instcombine -attributor -canonicalize-aliases -loop-fusion -instnamer -ipsccp -always-inline -lcssa -rewrite-statepoints-for-gc -slsr -mergefunc -loweratomic -simplifycfg -lower-matrix-intrinsics -add-discriminators -loop-unroll -redundant-dbg-inst-elim -argpromotion -loop-deletion -guard-widening -simple-loop-unswitch -gvn-hoist -loop-unroll-and-jam -loop-idiom -flattencfg -dse -loop-reroll -slp-vectorizer -hotcoldsplit -instsimplify -loop-vectorize -speculative-execution -load-store-vectorizer -loop-idiom -loop-distribute -loop-guard-widening -loop-idiom -coro-elide -globaldce -loop-unroll -loweratomic -loop-simplifycfg -scalarizer -nary-reassociate -alignment-from-assumptions -partially-inline-libcalls -elim-avail-extern -pgo-memop-opt -gvn-hoist -jump-threading -nary-reassociate -jump-threading -jump-threading -strip-nondebug -correlated-propagation -float2int -partially-inline-libcalls -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2bw,1.031555571474623,75.60634303092957,opt -libcalls-shrinkwrap -loop-interchange -loop-distribute -rpo-functionattrs -flattencfg -jump-threading -loop-versioning -strip -rewrite-statepoints-for-gc -sink -loop-versioning-licm -strip-nondebug -coro-elide -loop-instsimplify -deadargelim -strip-dead-prototypes -indvars -reassociate -loop-reduce -loop-distribute -memcpyopt -lower-widenable-condition -elim-avail-extern -loop-versioning-licm -nary-reassociate -post-inline-ee-instrument -consthoist -lower-matrix-intrinsics -coro-early -sancov -irce -lowerinvoke -loop-guard-widening -lower-guard-intrinsic -attributor -loop-unroll -loop-sink -instnamer -instnamer -loop-versioning-licm -loop-vectorize -reg2mem -irce -post-inline-ee-instrument -ipconstprop -instsimplify -inject-tli-mappings -callsite-splitting -name-anon-globals -strip-debug-declare -hotcoldsplit -loop-sink -loop-data-prefetch -globalopt -strip-debug-declare -lower-constant-intrinsics -flattencfg -mem2reg -pgo-memop-opt -sccp -rpo-functionattrs -prune-eh -separate-const-offset-from-gep -strip-dead-prototypes -deadargelim -flattencfg -gvn-hoist -ipconstprop -infer-address-spaces -early-cse-memssa -lower-expect -sroa -post-inline-ee-instrument -libcalls-shrinkwrap -gvn-hoist -consthoist -die -libcalls-shrinkwrap -lower-widenable-condition -ipsccp -loop-instsimplify -loop-versioning -break-crit-edges -loop-deletion -constmerge -canonicalize-aliases -slp-vectorizer -post-inline-ee-instrument -inferattrs -lower-widenable-condition -prune-eh -argpromotion -dce -lowerinvoke -called-value-propagation -loop-reroll -rewrite-statepoints-for-gc -loop-interchange -loop-load-elim -cross-dso-cfi -simplifycfg -float2int -correlated-propagation -loweratomic -sancov -functionattrs -instcombine -deadargelim -bdce -lowerinvoke -memcpyopt -argpromotion -hotcoldsplit -coro-elide -strip-debug-declare -argpromotion -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.000753985351142,77.92356705665588,opt -ee-instrument -loop-load-elim -functionattrs -early-cse-memssa -sccp -attributor -canonicalize-aliases -libcalls-shrinkwrap -loop-guard-widening -irce -sroa -loop-reroll -ee-instrument -irce -nary-reassociate -add-discriminators -loop-sink -post-inline-ee-instrument -globalopt -early-cse-memssa -globalopt -loop-data-prefetch -loop-guard-widening -float2int -lower-widenable-condition -indvars -strip-dead-prototypes -scalarizer -redundant-dbg-inst-elim -load-store-vectorizer -globalopt -redundant-dbg-inst-elim -name-anon-globals -break-crit-edges -div-rem-pairs -inject-tli-mappings -loop-distribute -attributor -mergereturn -coro-split -rewrite-statepoints-for-gc -coro-cleanup -loop-deletion -speculative-execution -loop-reduce -loop-instsimplify -scalarizer -instsimplify -attributor -elim-avail-extern -bdce -scalarizer -strip-dead-prototypes -gvn -consthoist -loop-versioning -aggressive-instcombine -newgvn -cross-dso-cfi -memcpyopt -lcssa -lower-guard-intrinsic -mergeicmps -loop-distribute -loop-deletion -tailcallelim -loop-data-prefetch -separate-const-offset-from-gep -ee-instrument -insert-gcov-profiling -indvars -lower-guard-intrinsic -memcpyopt -loop-idiom -slp-vectorizer -elim-avail-extern -jump-threading -alignment-from-assumptions -loop-unroll-and-jam -loop-load-elim -rpo-functionattrs -strip-dead-prototypes -guard-widening -loop-idiom -mergefunc -gvn -rewrite-statepoints-for-gc -break-crit-edges -coro-early -pgo-memop-opt -cross-dso-cfi -mldst-motion -loop-sink -jump-threading -lcssa -jump-threading -guard-widening -bdce -instnamer -lower-guard-intrinsic -reg2mem -insert-gcov-profiling -loop-interchange -mem2reg -simple-loop-unswitch -hotcoldsplit -loop-unswitch -gvn-hoist -loop-unswitch -constmerge -add-discriminators -instcombine -slsr -loop-predication -loop-data-prefetch -barrier -simplifycfg -barrier -globaldce -instsimplify input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0105557949159845,74.41571712493896,opt -partially-inline-libcalls -sccp -loop-idiom -flattencfg -div-rem-pairs -globalopt -coro-cleanup -elim-avail-extern -called-value-propagation -loop-unswitch -loop-vectorize -attributor -always-inline -loop-simplifycfg -prune-eh -mergeicmps -loop-fusion -elim-avail-extern -adce -post-inline-ee-instrument -div-rem-pairs -argpromotion -simplifycfg -loop-simplifycfg -loop-data-prefetch -lower-matrix-intrinsics -loop-idiom -gvn-hoist -alignment-from-assumptions -deadargelim -mldst-motion -correlated-propagation -lower-matrix-intrinsics -memcpyopt -functionattrs -die -loop-instsimplify -loop-versioning-licm -die -sccp -coro-cleanup -sink -loop-fusion -memcpyopt -nary-reassociate -cross-dso-cfi -reassociate -coro-early -infer-address-spaces -float2int -guard-widening -rpo-functionattrs -aggressive-instcombine -float2int -simple-loop-unswitch -loop-unroll -indvars -lowerinvoke -scalarizer -prune-eh -ipsccp -inferattrs -strip-debug-declare -sroa -bdce -loop-deletion -lowerinvoke -forceattrs -rpo-functionattrs -load-store-vectorizer -rewrite-statepoints-for-gc -coro-elide -libcalls-shrinkwrap -strip -loop-deletion -die -speculative-execution -aggressive-instcombine -loop-fusion -sink -loop-vectorize -loop-versioning-licm -slp-vectorizer -prune-eh -separate-const-offset-from-gep -loop-versioning-licm -instsimplify -simplifycfg -mergefunc -canonicalize-aliases -correlated-propagation -float2int -coro-early -globaldce -gvn-hoist -loop-vectorize -simple-loop-unswitch -loop-predication -prune-eh -loop-simplifycfg -memcpyopt -inferattrs -always-inline -functionattrs -simple-loop-unswitch -loop-guard-widening -consthoist -indvars -instsimplify -slp-vectorizer -aggressive-instcombine -instcombine -aggressive-instcombine -gvn input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0111661640097658,76.2009334564209,opt -slp-vectorizer -correlated-propagation -adce -partially-inline-libcalls -loop-versioning-licm -loweratomic -speculative-execution -ee-instrument -jump-threading -inferattrs -elim-avail-extern -simplifycfg -loop-data-prefetch -break-crit-edges -newgvn -div-rem-pairs -loop-reduce -prune-eh -bdce -die -loop-predication -reassociate -break-crit-edges -lower-matrix-intrinsics -rewrite-statepoints-for-gc -coro-cleanup -loop-idiom -bdce -mergereturn -indvars -always-inline -constprop -prune-eh -mergeicmps -separate-const-offset-from-gep -adce -lower-matrix-intrinsics -partial-inliner -slp-vectorizer -loop-fusion -coro-early -insert-gcov-profiling -strip -post-inline-ee-instrument -globalopt -loop-simplify -guard-widening -post-inline-ee-instrument -canonicalize-aliases -tailcallelim -lcssa -name-anon-globals -adce -coro-cleanup -break-crit-edges -loop-simplifycfg -reg2mem -loop-unroll -nary-reassociate -simple-loop-unswitch -strip -mem2reg -lower-constant-intrinsics -memcpyopt -div-rem-pairs -correlated-propagation -prune-eh -forceattrs -pgo-memop-opt -loop-unswitch -lcssa -constprop -loop-deletion -deadargelim -ipsccp -loop-simplifycfg -loop-sink -separate-const-offset-from-gep -slp-vectorizer -coro-cleanup -called-value-propagation -strip-dead-prototypes -simple-loop-unswitch -ipconstprop -div-rem-pairs -strip-debug-declare -speculative-execution -scalarizer -loop-versioning-licm -coro-cleanup -partial-inliner -loop-versioning-licm -called-value-propagation -functionattrs -slp-vectorizer -float2int -ipsccp -scalarizer -coro-early -adce -callsite-splitting -slsr -elim-avail-extern -tailcallelim -name-anon-globals -memcpyopt -coro-elide -forceattrs -lowerinvoke -libcalls-shrinkwrap -sink -lower-guard-intrinsic -prune-eh -nary-reassociate -forceattrs -rpo-functionattrs -cross-dso-cfi -bdce -correlated-propagation -loop-data-prefetch -loop-distribute -always-inline -sroa -loop-unroll -loop-versioning -loop-versioning-licm -globaldce -coro-cleanup -slsr -loweratomic -coro-split -loop-simplify -insert-gcov-profiling -die -instsimplify -loop-distribute -called-value-propagation -slp-vectorizer -sccp -libcalls-shrinkwrap -loop-unroll -slp-vectorizer -early-cse-memssa -loop-interchange -lower-widenable-condition -strip -strip-dead-prototypes -dse -coro-elide -constprop -pgo-memop-opt -coro-elide -add-discriminators -loop-distribute -simplifycfg -guard-widening -loop-versioning-licm -slp-vectorizer -lcssa -coro-early -loop-guard-widening -gvn -instcombine -correlated-propagation -lower-expect -functionattrs -lcssa -adce -instcombine -sccp -ipsccp -tailcallelim -ipconstprop -strip-dead-prototypes -rpo-functionattrs -forceattrs -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0149360907654748,74.06858968734741,opt -dce -constprop -attributor -loop-reroll -slsr -always-inline -instsimplify -inject-tli-mappings -inject-tli-mappings -sroa -loop-versioning-licm -float2int -lower-widenable-condition -loop-sink -coro-elide -speculative-execution -loweratomic -strip-dead-prototypes -flattencfg -simplifycfg -loop-reroll -slsr -loop-deletion -div-rem-pairs -reassociate -mergefunc -scalarizer -callsite-splitting -simple-loop-unswitch -prune-eh -loop-instsimplify -guard-widening -loop-idiom -bdce -constprop -loop-predication -die -mem2reg -newgvn -mem2reg -mergeicmps -deadargelim -early-cse-memssa -correlated-propagation -called-value-propagation -reassociate -mergefunc -div-rem-pairs -loop-versioning -post-inline-ee-instrument -mem2reg -loop-versioning -gvn-hoist -early-cse-memssa -rewrite-statepoints-for-gc -strip-dead-prototypes -simple-loop-unswitch -coro-split -sink -strip-dead-prototypes -jump-threading -sccp -break-crit-edges -scalarizer -loop-load-elim -loop-guard-widening -memcpyopt -ipconstprop -coro-elide -mergereturn -globalopt -mldst-motion -div-rem-pairs -speculative-execution -simple-loop-unswitch -callsite-splitting -infer-address-spaces -licm -simplifycfg -cross-dso-cfi -strip-debug-declare -early-cse-memssa -mldst-motion -lcssa -slsr -functionattrs -sancov -rpo-functionattrs -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0156541720522767,76.2298526763916,opt -loop-load-elim -mem2reg -rpo-functionattrs -ee-instrument -ipsccp -strip-debug-declare -licm -sccp -dce -loop-simplifycfg -post-inline-ee-instrument -globaldce -reassociate -coro-cleanup -slsr -simplifycfg -constmerge -loop-predication -constprop -sroa -mergefunc -coro-elide -forceattrs -constprop -sroa -loop-unswitch -called-value-propagation -simple-loop-unswitch -memcpyopt -strip-dead-prototypes -loop-simplify -pgo-memop-opt -die -globaldce -guard-widening -instcombine -cross-dso-cfi -infer-address-spaces -div-rem-pairs -simple-loop-unswitch -loop-instsimplify -instcombine -coro-elide -loop-fusion -mergefunc -consthoist -callsite-splitting -called-value-propagation -globalopt -memcpyopt -lower-expect -sancov -instcombine -strip-debug-declare -elim-avail-extern -scalarizer -coro-early -loop-fusion -loop-idiom -inject-tli-mappings -loop-instsimplify -newgvn -break-crit-edges -barrier -loop-unroll-and-jam -loop-simplifycfg -gvn-hoist -strip-debug-declare -licm -canonicalize-aliases -inject-tli-mappings -sancov -reassociate -rewrite-statepoints-for-gc -simple-loop-unswitch -loop-instsimplify -loop-deletion -speculative-execution -mem2reg -correlated-propagation -mergereturn -rewrite-statepoints-for-gc -loop-predication -jump-threading -gvn-hoist -licm -ipconstprop -loop-unroll -flattencfg -functionattrs -loop-simplifycfg -lower-constant-intrinsics -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0159414045669974,77.51045274734497,opt -strip-debug-declare -sroa -jump-threading -partially-inline-libcalls -sink -dse -globaldce -mem2reg -argpromotion -consthoist -loop-reduce -tailcallelim -libcalls-shrinkwrap -lower-matrix-intrinsics -loop-load-elim -simple-loop-unswitch -mergeicmps -sancov -gvn-hoist -break-crit-edges -break-crit-edges -early-cse-memssa -argpromotion -scalarizer -always-inline -add-discriminators -guard-widening -callsite-splitting -loop-simplify -globaldce -loop-unroll-and-jam -insert-gcov-profiling -float2int -indvars -separate-const-offset-from-gep -loop-interchange -jump-threading -inferattrs -loop-unroll-and-jam -strip-dead-prototypes -div-rem-pairs -attributor -mergereturn -sancov -loop-versioning-licm -simple-loop-unswitch -tailcallelim -inferattrs -float2int -forceattrs -float2int -instcombine -loop-versioning -inferattrs -callsite-splitting -loop-guard-widening -speculative-execution -correlated-propagation -simplifycfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0213270142180093,75.81489181518555,opt -loop-idiom -div-rem-pairs -mem2reg -simple-loop-unswitch -mem2reg -mergefunc -loop-idiom -loop-instsimplify -irce -sroa -loop-distribute -libcalls-shrinkwrap -newgvn -memcpyopt -coro-elide -simplifycfg -ipconstprop -loop-unroll-and-jam -forceattrs -loweratomic -loop-reroll -barrier -lcssa -libcalls-shrinkwrap -mergereturn -name-anon-globals -flattencfg -instsimplify -loop-fusion -loop-versioning -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0244506678155967,76.34029912948608,opt -ee-instrument -globaldce -mem2reg -rpo-functionattrs -loop-vectorize -instcombine -strip -callsite-splitting -infer-address-spaces -alignment-from-assumptions -mldst-motion -redundant-dbg-inst-elim -strip-dead-prototypes -loop-data-prefetch -pgo-memop-opt -die -bdce -early-cse-memssa -loop-predication -reassociate -lowerinvoke -instnamer -indvars -sroa -cross-dso-cfi -mergefunc -deadargelim -gvn-hoist -instcombine -post-inline-ee-instrument -loop-data-prefetch -nary-reassociate -irce -lowerinvoke -sancov -elim-avail-extern -nary-reassociate -loop-distribute -aggressive-instcombine -tailcallelim -correlated-propagation -early-cse-memssa -loop-idiom -loop-predication -slsr -mldst-motion -loop-reroll -newgvn -coro-elide -reassociate -loop-distribute -simplifycfg -inject-tli-mappings -memcpyopt input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0263535832256214,76.55784583091736,opt -loop-distribute -speculative-execution -inferattrs -die -instnamer -loop-versioning -name-anon-globals -rewrite-statepoints-for-gc -loop-instsimplify -correlated-propagation -indvars -loop-idiom -libcalls-shrinkwrap -strip-nondebug -load-store-vectorizer -canonicalize-aliases -indvars -scalarizer -coro-elide -globalsplit -sroa -ipconstprop -lower-guard-intrinsic -nary-reassociate -mem2reg -loop-versioning -newgvn -instnamer -instsimplify -tailcallelim -memcpyopt -mergefunc -die -partially-inline-libcalls -loop-predication -loop-distribute -aggressive-instcombine -sccp -reg2mem -scalarizer -forceattrs -die -guard-widening -libcalls-shrinkwrap -libcalls-shrinkwrap -gvn-hoist -coro-cleanup -mem2reg -memcpyopt -loop-predication -scalarizer -inferattrs -loop-simplify -flattencfg -scalarizer -loop-distribute -mldst-motion -coro-early -scalarizer -infer-address-spaces -instnamer -reassociate -break-crit-edges -lowerinvoke -early-cse-memssa -ee-instrument -globalopt -called-value-propagation -guard-widening -correlated-propagation -guard-widening -loop-unroll-and-jam -partial-inliner -partial-inliner -loop-predication -loop-idiom -loop-reduce -loop-deletion -correlated-propagation -functionattrs -loop-versioning-licm -deadargelim -die -gvn-hoist -globalopt -argpromotion -strip-dead-prototypes -irce -strip-nondebug -globalopt -lower-constant-intrinsics -rpo-functionattrs -sccp -div-rem-pairs -globalopt -loop-unswitch -lower-guard-intrinsic -ipsccp -loop-predication -scalarizer -loop-reroll -licm -mergereturn -elim-avail-extern -loop-fusion -simple-loop-unswitch -loop-interchange -simplifycfg -ipsccp -dce -lcssa -sccp -strip-debug-declare -loop-versioning-licm -hotcoldsplit -coro-cleanup -add-discriminators -break-crit-edges -ee-instrument -loop-data-prefetch -functionattrs -reassociate -inject-tli-mappings -load-store-vectorizer -loop-load-elim -simple-loop-unswitch -loop-unroll -strip -pgo-memop-opt -instcombine -dce -newgvn -lower-matrix-intrinsics -hotcoldsplit -argpromotion -prune-eh -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiff2rgba,1.0282564986356453,76.88841128349304,opt -aggressive-instcombine -float2int -inject-tli-mappings -post-inline-ee-instrument -coro-elide -called-value-propagation -reg2mem -constprop -functionattrs -adce -dce -add-discriminators -pgo-memop-opt -prune-eh -attributor -mem2reg -argpromotion -coro-early -adce -mergefunc -strip -indvars -rpo-functionattrs -deadargelim -post-inline-ee-instrument -mergeicmps -coro-early -functionattrs -loop-versioning-licm -irce -mergefunc -loop-predication -lower-matrix-intrinsics -adce -strip-nondebug -gvn -dse -gvn-hoist -sancov -lower-widenable-condition -ee-instrument -rewrite-statepoints-for-gc -strip-debug-declare -barrier -insert-gcov-profiling -load-store-vectorizer -rewrite-statepoints-for-gc -hotcoldsplit -strip-debug-declare -called-value-propagation -instnamer -lower-widenable-condition -mergereturn -loop-unroll -slsr -speculative-execution -partially-inline-libcalls -jump-threading -lower-constant-intrinsics -constmerge -barrier -gvn -loop-reroll -attributor -reassociate -lower-guard-intrinsic -licm -redundant-dbg-inst-elim -guard-widening -tailcallelim -lcssa -dse -mem2reg -sroa -break-crit-edges -loop-interchange -mergeicmps -indvars -loweratomic -mergefunc -gvn-hoist -aggressive-instcombine -tailcallelim -loop-interchange -rpo-functionattrs -libcalls-shrinkwrap -lower-matrix-intrinsics -consthoist -loop-unroll-and-jam -alignment-from-assumptions -globalsplit -pgo-memop-opt -ee-instrument -coro-early -attributor -constprop -loweratomic -instnamer -prune-eh -loop-simplify -nary-reassociate -mem2reg -called-value-propagation -partial-inliner -loop-fusion -indvars -coro-elide -elim-avail-extern -strip -loop-distribute -rpo-functionattrs -loop-sink -float2int -globalopt -sink -dce -float2int -loop-reroll -forceattrs -slp-vectorizer -loop-instsimplify -mergeicmps -globaldce -load-store-vectorizer -loop-unroll-and-jam -lcssa -loop-simplify -coro-cleanup -lower-matrix-intrinsics -lower-matrix-intrinsics -loop-reroll -sroa -sink -hotcoldsplit -break-crit-edges -tailcallelim -mldst-motion -tailcallelim -globalsplit -deadargelim -lower-matrix-intrinsics -barrier -loop-distribute -name-anon-globals -instcombine -lower-guard-intrinsic -coro-elide -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0113177623990772,77.15600180625916,opt -loop-load-elim -div-rem-pairs -prune-eh -gvn -argpromotion -div-rem-pairs -mem2reg -strip-debug-declare -add-discriminators -coro-early -attributor -dce -guard-widening -inject-tli-mappings -loop-predication -ee-instrument -simplifycfg -lower-widenable-condition -strip -cross-dso-cfi -loop-unswitch -loop-unroll -lower-widenable-condition -redundant-dbg-inst-elim -load-store-vectorizer -strip -correlated-propagation -consthoist -memcpyopt -lowerinvoke -instnamer -licm -sink -lower-matrix-intrinsics -lower-matrix-intrinsics -lower-widenable-condition -loop-unswitch -lower-guard-intrinsic -flattencfg -indvars -dce -lcssa -loop-unroll-and-jam -dce -hotcoldsplit -gvn-hoist -alignment-from-assumptions -callsite-splitting -libcalls-shrinkwrap -load-store-vectorizer -strip -break-crit-edges -lower-widenable-condition -sink -coro-early -ipsccp -lcssa -licm -load-store-vectorizer -strip-dead-prototypes -called-value-propagation -gvn -early-cse-memssa -lowerinvoke -inject-tli-mappings -early-cse-memssa -insert-gcov-profiling -aggressive-instcombine -loop-interchange -consthoist -loop-load-elim -coro-elide -prune-eh -bdce -lcssa -scalarizer -correlated-propagation -flattencfg -coro-split -licm -early-cse-memssa -ipconstprop -licm -lowerinvoke -lower-constant-intrinsics -callsite-splitting -constprop -prune-eh -guard-widening -simple-loop-unswitch -insert-gcov-profiling -break-crit-edges -strip -newgvn -correlated-propagation -loop-simplify -barrier -ipsccp -ipconstprop -loop-idiom -ipconstprop -loop-vectorize -partial-inliner -lower-expect -ipsccp -ipconstprop -simplifycfg -loop-versioning -mergeicmps -called-value-propagation -flattencfg -sink -early-cse-memssa -libcalls-shrinkwrap -loop-simplifycfg -loop-guard-widening -loop-predication -always-inline -loop-instsimplify -load-store-vectorizer -mergeicmps -instsimplify -gvn -instsimplify -mem2reg -loop-interchange -forceattrs -mem2reg -libcalls-shrinkwrap -instsimplify -lcssa -loop-sink -callsite-splitting -load-store-vectorizer -ipconstprop -die -inferattrs -loop-guard-widening -div-rem-pairs -insert-gcov-profiling -scalarizer -called-value-propagation -loop-versioning -div-rem-pairs -loop-reduce -pgo-memop-opt -ipsccp -correlated-propagation -sink -loop-versioning-licm -functionattrs -newgvn -ipconstprop -aggressive-instcombine -loop-simplify -name-anon-globals -lcssa -licm -cross-dso-cfi -loop-interchange -lower-matrix-intrinsics -mem2reg -reassociate -hotcoldsplit -add-discriminators -tailcallelim -always-inline -slsr -loweratomic -lower-matrix-intrinsics -instcombine -tailcallelim -strip -post-inline-ee-instrument -lowerinvoke -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0122909457900806,381.1352982521057,opt -name-anon-globals -libcalls-shrinkwrap -loop-data-prefetch -float2int -lcssa -gvn -coro-elide -loop-interchange -separate-const-offset-from-gep -sroa -rewrite-statepoints-for-gc -ipconstprop -cross-dso-cfi -argpromotion -aggressive-instcombine -separate-const-offset-from-gep -functionattrs -instnamer -mldst-motion -rewrite-statepoints-for-gc -loop-predication -globaldce -gvn-hoist -loop-data-prefetch -ipsccp -hotcoldsplit -mergereturn -rewrite-statepoints-for-gc -libcalls-shrinkwrap -add-discriminators -mldst-motion -globalopt -indvars -constmerge -prune-eh -partially-inline-libcalls -loop-reroll -loop-instsimplify -adce -tailcallelim -aggressive-instcombine -mergereturn -libcalls-shrinkwrap -mergefunc -simple-loop-unswitch -post-inline-ee-instrument -name-anon-globals -barrier -coro-early -partially-inline-libcalls -licm -loop-interchange -lowerinvoke -sink -sink -simple-loop-unswitch -lower-constant-intrinsics -consthoist -loop-data-prefetch -loop-unroll -instcombine -nary-reassociate -forceattrs -scalarizer -float2int -dse -early-cse-memssa -memcpyopt -loop-interchange -div-rem-pairs -lower-matrix-intrinsics -memcpyopt -scalarizer -instcombine -simple-loop-unswitch -post-inline-ee-instrument -instsimplify -instnamer -mergeicmps -globalsplit -callsite-splitting -ipsccp -globalopt -rpo-functionattrs -ipconstprop -callsite-splitting -insert-gcov-profiling -loop-reduce -loop-simplifycfg -strip-nondebug -barrier -inject-tli-mappings -loop-distribute -licm -libcalls-shrinkwrap -coro-cleanup -name-anon-globals -post-inline-ee-instrument -strip-debug-declare -sink -lcssa -ee-instrument -loop-instsimplify -simple-loop-unswitch -simplifycfg -canonicalize-aliases -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0167243367935412,88.61051821708679,opt -correlated-propagation -instnamer -redundant-dbg-inst-elim -loop-idiom -loop-simplify -globalsplit -div-rem-pairs -break-crit-edges -constmerge -ipconstprop -loop-instsimplify -alignment-from-assumptions -canonicalize-aliases -coro-split -consthoist -sroa -irce -loop-versioning -lower-matrix-intrinsics -gvn -mldst-motion -coro-cleanup -loop-guard-widening -insert-gcov-profiling -load-store-vectorizer -elim-avail-extern -constprop -instcombine -gvn-hoist -die -called-value-propagation -lower-widenable-condition -newgvn -pgo-memop-opt -called-value-propagation -functionattrs -forceattrs -instcombine -guard-widening -callsite-splitting -coro-early -loop-load-elim -aggressive-instcombine -lcssa -constprop -reassociate -mem2reg -always-inline -newgvn -scalarizer -consthoist -constmerge -loop-load-elim -consthoist -coro-elide -barrier -guard-widening -loop-versioning -lower-widenable-condition -scalarizer -mldst-motion -argpromotion -adce -scalarizer -scalarizer -correlated-propagation -forceattrs -correlated-propagation -gvn -coro-elide -hotcoldsplit -jump-threading -lowerinvoke -slsr -loop-distribute -constprop -loop-sink -correlated-propagation -coro-split -break-crit-edges -loweratomic -barrier -elim-avail-extern -elim-avail-extern -dce -mem2reg -strip-dead-prototypes -lower-expect -break-crit-edges -lcssa -consthoist -adce -loop-vectorize -div-rem-pairs -correlated-propagation -lower-widenable-condition -constprop -sancov -loop-unroll-and-jam -loop-reduce -lower-constant-intrinsics -deadargelim -infer-address-spaces -coro-cleanup -deadargelim -loop-idiom -coro-early -lower-matrix-intrinsics -globalsplit -globaldce -loop-deletion -mldst-motion -nary-reassociate -coro-split -die -simplifycfg -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0197159746251443,78.524822473526,opt -pgo-memop-opt -consthoist -simplifycfg -gvn-hoist -nary-reassociate -instnamer -gvn-hoist -redundant-dbg-inst-elim -post-inline-ee-instrument -loop-guard-widening -lower-matrix-intrinsics -hotcoldsplit -canonicalize-aliases -simplifycfg -nary-reassociate -cross-dso-cfi -loop-versioning -instsimplify -constmerge -lowerinvoke -adce -scalarizer -pgo-memop-opt -argpromotion -hotcoldsplit -correlated-propagation -loop-idiom -loop-deletion -barrier -dse -partially-inline-libcalls -loop-simplifycfg -coro-split -lower-expect -redundant-dbg-inst-elim -loop-interchange -reg2mem -separate-const-offset-from-gep -newgvn -globaldce -elim-avail-extern -loop-sink -lcssa -coro-cleanup -strip-debug-declare -mem2reg -gvn-hoist -loop-versioning-licm -forceattrs -mldst-motion -strip-dead-prototypes -strip-dead-prototypes -instcombine -sroa -jump-threading -tailcallelim -speculative-execution -loop-unroll-and-jam -adce -mergefunc -loop-versioning -dse -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0200043252595157,76.91719341278076,opt -loop-simplify -strip -gvn -lcssa -functionattrs -argpromotion -strip -correlated-propagation -lower-expect -prune-eh -cross-dso-cfi -tailcallelim -lower-matrix-intrinsics -simple-loop-unswitch -instcombine -instsimplify -guard-widening -inject-tli-mappings -speculative-execution -strip-debug-declare -loop-instsimplify -sink -strip-nondebug -lcssa -sccp -strip -instnamer -gvn -gvn-hoist -loop-unroll-and-jam -strip-dead-prototypes -always-inline -lower-guard-intrinsic -elim-avail-extern -lcssa -tailcallelim -constmerge -strip -rpo-functionattrs -reassociate -loop-data-prefetch -loop-reduce -elim-avail-extern -simplifycfg -lowerinvoke -coro-cleanup -break-crit-edges -cross-dso-cfi -globalopt -coro-elide -sroa -gvn-hoist -argpromotion -loweratomic -speculative-execution -guard-widening -insert-gcov-profiling -bdce -lower-widenable-condition -mergefunc -slsr -simple-loop-unswitch -called-value-propagation -partial-inliner -div-rem-pairs -instcombine -dce -add-discriminators -coro-early -canonicalize-aliases -newgvn -globaldce -name-anon-globals -simple-loop-unswitch -dce -correlated-propagation -loop-unroll -rewrite-statepoints-for-gc -loop-instsimplify -nary-reassociate -loweratomic -loop-predication -licm -constprop -instsimplify -inject-tli-mappings -tailcallelim -pgo-memop-opt -prune-eh -name-anon-globals -lower-widenable-condition -globalopt -slsr -loop-instsimplify -early-cse-memssa -deadargelim -insert-gcov-profiling -guard-widening -sroa -deadargelim -mldst-motion -alignment-from-assumptions -alignment-from-assumptions -strip-dead-prototypes -lower-expect -coro-elide -flattencfg -globalsplit -lower-widenable-condition -always-inline -forceattrs -flattencfg -always-inline -sancov -lower-constant-intrinsics -instcombine -attributor -jump-threading input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0214821222606691,74.76235461235046,opt -inferattrs -gvn-hoist -globaldce -loop-deletion -sccp -loop-guard-widening -ipconstprop -canonicalize-aliases -coro-split -mergeicmps -insert-gcov-profiling -lower-guard-intrinsic -lower-matrix-intrinsics -adce -argpromotion -loweratomic -newgvn -strip-dead-prototypes -flattencfg -lowerinvoke -name-anon-globals -functionattrs -strip-dead-prototypes -nary-reassociate -ee-instrument -rpo-functionattrs -loop-unroll -break-crit-edges -loop-predication -dse -reassociate -sroa -instcombine -lower-widenable-condition -loop-fusion -indvars -newgvn -lower-guard-intrinsic -float2int -nary-reassociate -memcpyopt -canonicalize-aliases -inject-tli-mappings -loop-vectorize -callsite-splitting -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.021914648212226,76.11744666099548,opt -constmerge -mergereturn -early-cse-memssa -instsimplify -always-inline -libcalls-shrinkwrap -float2int -adce -simplifycfg -mldst-motion -adce -constmerge -gvn -constprop -callsite-splitting -loop-deletion -loop-simplify -coro-cleanup -infer-address-spaces -libcalls-shrinkwrap -deadargelim -memcpyopt -globalopt -speculative-execution -name-anon-globals -break-crit-edges -memcpyopt -nary-reassociate -canonicalize-aliases -loop-interchange -post-inline-ee-instrument -add-discriminators -argpromotion -indvars -gvn -dce -loop-instsimplify -libcalls-shrinkwrap -lowerinvoke -loop-reroll -lower-matrix-intrinsics -loop-deletion -aggressive-instcombine -gvn -redundant-dbg-inst-elim -globaldce -lower-widenable-condition -loop-load-elim -aggressive-instcombine -deadargelim -loop-versioning-licm -lcssa -post-inline-ee-instrument -globalsplit -sink -loop-fusion -mem2reg -irce -simple-loop-unswitch -ipsccp -coro-early -pgo-memop-opt -memcpyopt -separate-const-offset-from-gep -libcalls-shrinkwrap -nary-reassociate -rewrite-statepoints-for-gc -functionattrs -strip-debug-declare -lower-matrix-intrinsics -coro-split -instsimplify -loop-versioning -strip-nondebug -instcombine -bdce -nary-reassociate -loweratomic -loop-simplifycfg -lower-widenable-condition -hotcoldsplit -loop-unroll-and-jam -coro-elide -constprop -loop-unroll -instcombine -simplifycfg -separate-const-offset-from-gep -jump-threading -canonicalize-aliases -loop-simplifycfg -loop-sink -early-cse-memssa -prune-eh -div-rem-pairs -strip-debug-declare -memcpyopt -mergereturn -simple-loop-unswitch -lower-constant-intrinsics -die -indvars -strip-dead-prototypes -strip -lowerinvoke -loop-simplify -lower-expect -scalarizer -loweratomic -mldst-motion -lowerinvoke -loop-guard-widening -flattencfg -div-rem-pairs -forceattrs -mergefunc -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.024617935409458,75.6703040599823,opt -reg2mem -callsite-splitting -sroa -constmerge -lower-guard-intrinsic -constprop -loop-predication -strip-nondebug -loop-unroll -adce -coro-early -scalarizer -globalopt -indvars -loweratomic -loop-simplify -mldst-motion -constprop -div-rem-pairs -loop-instsimplify -dce -partial-inliner -loop-simplify -barrier -functionattrs -gvn -speculative-execution -loop-distribute -loop-versioning-licm -lower-widenable-condition -infer-address-spaces -simple-loop-unswitch -coro-elide -speculative-execution -lower-guard-intrinsic -dce -loop-data-prefetch -instcombine -inferattrs -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0302768166089966,115.1228277683258,opt -instnamer -loop-idiom -rewrite-statepoints-for-gc -post-inline-ee-instrument -loop-interchange -ipsccp -elim-avail-extern -ipsccp -cross-dso-cfi -name-anon-globals -tailcallelim -loop-deletion -argpromotion -reassociate -loop-simplify -lcssa -rpo-functionattrs -aggressive-instcombine -instnamer -float2int -correlated-propagation -strip-debug-declare -correlated-propagation -consthoist -prune-eh -canonicalize-aliases -loop-simplifycfg -irce -loop-data-prefetch -lower-matrix-intrinsics -called-value-propagation -add-discriminators -partially-inline-libcalls -loop-versioning-licm -strip-nondebug -jump-threading -argpromotion -inject-tli-mappings -correlated-propagation -dce -inject-tli-mappings -coro-cleanup -simplifycfg -inject-tli-mappings -mergeicmps -insert-gcov-profiling -strip-dead-prototypes -lowerinvoke -coro-elide -break-crit-edges -loop-unroll-and-jam -sccp -functionattrs -partially-inline-libcalls -mem2reg -constprop -prune-eh -loop-idiom -slsr -callsite-splitting -strip-debug-declare -redundant-dbg-inst-elim -loop-fusion -lower-matrix-intrinsics -gvn -scalarizer -rpo-functionattrs -coro-elide -loop-simplifycfg -elim-avail-extern -instcombine -add-discriminators -lower-widenable-condition -loop-reroll -break-crit-edges -loop-data-prefetch -ipsccp -load-store-vectorizer -newgvn -flattencfg -reg2mem -mem2reg -coro-cleanup -gvn-hoist -coro-elide -partial-inliner -loop-unroll -constprop -loop-distribute -gvn-hoist -sancov -instnamer -nary-reassociate -ee-instrument -loop-fusion -loop-vectorize -lower-widenable-condition -ee-instrument -correlated-propagation -gvn -loop-guard-widening -constprop -add-discriminators -barrier -infer-address-spaces -loop-reroll -sink -globalopt -ee-instrument -callsite-splitting -mergefunc -rewrite-statepoints-for-gc -loop-predication -loop-interchange -cross-dso-cfi -loop-simplifycfg -reassociate -correlated-propagation -bdce -loop-reroll -loweratomic -loop-unroll -sink -pgo-memop-opt -speculative-execution -deadargelim -irce -instnamer -instnamer -add-discriminators -lowerinvoke -sancov -guard-widening -sancov -instcombine -add-discriminators -prune-eh -cross-dso-cfi -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffdither,1.0309616493656286,74.79893708229065,opt -alignment-from-assumptions -callsite-splitting -correlated-propagation -simplifycfg -sccp -callsite-splitting -scalarizer -loop-vectorize -adce -sccp -lower-constant-intrinsics -loop-idiom -loop-unswitch -simplifycfg -partially-inline-libcalls -slsr -loop-instsimplify -pgo-memop-opt -loop-simplify -strip-dead-prototypes -instnamer -reassociate -guard-widening -rewrite-statepoints-for-gc -correlated-propagation -canonicalize-aliases -mergefunc -loweratomic -reassociate -instsimplify -pgo-memop-opt -loop-idiom -reg2mem -loop-load-elim -reg2mem -loop-deletion -post-inline-ee-instrument -scalarizer -strip-dead-prototypes -mergeicmps -loop-predication -flattencfg -loop-simplify -mldst-motion -loop-deletion -indvars -loop-load-elim -ipsccp -loop-unswitch -add-discriminators -break-crit-edges -sink -hotcoldsplit -mem2reg -globalsplit -loop-guard-widening -attributor -memcpyopt -callsite-splitting -inject-tli-mappings -loweratomic -loop-distribute -ipsccp -partially-inline-libcalls -early-cse-memssa -rewrite-statepoints-for-gc -consthoist -forceattrs -partial-inliner -coro-early -irce -float2int -libcalls-shrinkwrap -flattencfg -loop-data-prefetch -constprop -irce -instcombine -instsimplify -rewrite-statepoints-for-gc -loop-distribute -slsr -cross-dso-cfi -canonicalize-aliases -simplifycfg -inject-tli-mappings -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0072743417233017,77.22859692573547,opt -rpo-functionattrs -coro-split -loop-unroll-and-jam -mem2reg -loop-fusion -correlated-propagation -deadargelim -loop-load-elim -speculative-execution -instsimplify -mldst-motion -mergeicmps -loop-instsimplify -scalarizer -correlated-propagation -instnamer -simplifycfg -name-anon-globals -slsr -strip -strip-nondebug -post-inline-ee-instrument -inferattrs -separate-const-offset-from-gep -pgo-memop-opt -strip-dead-prototypes -argpromotion -simple-loop-unswitch -barrier -deadargelim -constprop -instcombine -loop-interchange -tailcallelim -bdce -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0072743417233019,73.91927719116211,opt -irce -elim-avail-extern -irce -called-value-propagation -slsr -inject-tli-mappings -redundant-dbg-inst-elim -scalarizer -coro-split -instsimplify -sroa -dse -rewrite-statepoints-for-gc -loop-vectorize -gvn-hoist -add-discriminators -load-store-vectorizer -sancov -irce -loop-simplify -instcombine -memcpyopt -lower-matrix-intrinsics -simple-loop-unswitch -constprop -partially-inline-libcalls -lcssa -loop-reroll -loop-load-elim -pgo-memop-opt -licm -prune-eh -rpo-functionattrs -redundant-dbg-inst-elim -attributor -nary-reassociate -lower-expect -simplifycfg -loop-sink -loop-instsimplify -instcombine -reassociate -loop-interchange -alignment-from-assumptions -loop-deletion -mem2reg -globaldce -rpo-functionattrs -loop-instsimplify -instnamer -add-discriminators -early-cse-memssa input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0106895256309552,74.7277250289917,opt -newgvn -sroa -mergefunc -strip -nary-reassociate -cross-dso-cfi -always-inline -name-anon-globals -loop-reroll -inject-tli-mappings -strip-debug-declare -coro-early -lower-guard-intrinsic -argpromotion -argpromotion -barrier -tailcallelim -callsite-splitting -div-rem-pairs -strip-nondebug -ipsccp -dce -reassociate -simplifycfg -loop-fusion -globaldce -partially-inline-libcalls -strip-debug-declare -lower-widenable-condition -elim-avail-extern -early-cse-memssa -loop-unroll-and-jam -name-anon-globals -dse -coro-cleanup -post-inline-ee-instrument -instsimplify -lower-matrix-intrinsics -cross-dso-cfi -newgvn -lower-guard-intrinsic -inject-tli-mappings -gvn -lower-matrix-intrinsics -loop-simplifycfg -loop-simplifycfg -die -coro-cleanup -name-anon-globals -tailcallelim -sink -loop-predication -hotcoldsplit -tailcallelim -ipsccp -gvn -called-value-propagation -float2int -lower-matrix-intrinsics -sink -partially-inline-libcalls -simple-loop-unswitch -loop-simplifycfg -rewrite-statepoints-for-gc -instcombine input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0140364058604556,77.69796371459961,opt -loop-unroll-and-jam -deadargelim -sancov -partially-inline-libcalls -inject-tli-mappings -loweratomic -loop-reduce -barrier -slsr -name-anon-globals -flattencfg -libcalls-shrinkwrap -pgo-memop-opt -coro-early -lower-expect -div-rem-pairs -loop-sink -loop-distribute -inject-tli-mappings -alignment-from-assumptions -globalsplit -jump-threading -instsimplify -partially-inline-libcalls -speculative-execution -loop-reduce -dse -early-cse-memssa -loop-predication -name-anon-globals -lower-expect -break-crit-edges -loop-predication -infer-address-spaces -loop-deletion -globaldce -constmerge -rewrite-statepoints-for-gc -separate-const-offset-from-gep -loweratomic -bdce -loop-distribute -alignment-from-assumptions -barrier -instsimplify -insert-gcov-profiling -strip-dead-prototypes -loop-distribute -correlated-propagation -strip-dead-prototypes -ipconstprop -attributor -post-inline-ee-instrument -sroa -flattencfg -sink -jump-threading -inject-tli-mappings -scalarizer -constprop -partially-inline-libcalls -always-inline -lower-matrix-intrinsics -slsr -attributor -indvars -loop-distribute -constmerge -gvn-hoist -slp-vectorizer -instcombine -mergereturn -insert-gcov-profiling -sink -mldst-motion -strip-dead-prototypes -ipconstprop -coro-elide -rewrite-statepoints-for-gc -redundant-dbg-inst-elim -nary-reassociate -float2int -barrier -sancov -consthoist -slp-vectorizer -correlated-propagation -lower-constant-intrinsics -lcssa -loop-data-prefetch -ipconstprop -loop-reroll -lower-expect -globalsplit -mergereturn -functionattrs -die -loop-fusion -newgvn -lower-widenable-condition -flattencfg -newgvn input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0168027048256547,74.16467475891113,opt -sroa -gvn-hoist -sroa -globaldce -hotcoldsplit -float2int -mem2reg -strip-dead-prototypes -name-anon-globals -name-anon-globals -barrier -callsite-splitting -mldst-motion -libcalls-shrinkwrap -instcombine -loop-distribute -correlated-propagation -reg2mem -lcssa -constmerge -nary-reassociate -callsite-splitting -partial-inliner -called-value-propagation -die -slsr -alignment-from-assumptions -cross-dso-cfi -dse -die -early-cse-memssa -loop-load-elim -indvars -indvars -loop-load-elim -instsimplify -loop-predication -loop-interchange -deadargelim -coro-elide -sroa -loop-vectorize -mergereturn -licm -callsite-splitting -guard-widening -infer-address-spaces -deadargelim -strip-debug-declare -globalopt -lower-matrix-intrinsics -inject-tli-mappings -jump-threading -nary-reassociate -partially-inline-libcalls -gvn input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.018066322871487,358.7716484069824,opt -loop-deletion -add-discriminators -loop-unswitch -die -callsite-splitting -strip-debug-declare -libcalls-shrinkwrap -float2int -lower-widenable-condition -argpromotion -mem2reg -newgvn -early-cse-memssa -dce -lower-matrix-intrinsics -nary-reassociate -early-cse-memssa -loop-simplifycfg -loop-deletion -instcombine -speculative-execution -pgo-memop-opt -inject-tli-mappings -loop-sink -loop-deletion -jump-threading -hotcoldsplit -globalopt -libcalls-shrinkwrap -deadargelim -callsite-splitting -lower-expect -always-inline -float2int -sroa -sccp -elim-avail-extern -early-cse-memssa -nary-reassociate input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0195007001127012,76.38189339637756,opt -lower-widenable-condition -barrier -loop-distribute -constmerge -lower-constant-intrinsics -newgvn -inferattrs -inject-tli-mappings -mldst-motion -speculative-execution -libcalls-shrinkwrap -guard-widening -hotcoldsplit -loweratomic -coro-elide -partially-inline-libcalls -break-crit-edges -attributor -mldst-motion -guard-widening -jump-threading -infer-address-spaces -hotcoldsplit -bdce -sancov -strip-dead-prototypes -coro-early -loop-idiom -name-anon-globals -lower-constant-intrinsics -loop-predication -mergefunc -irce -strip-dead-prototypes -loop-data-prefetch -reg2mem -float2int -irce -sroa -loop-data-prefetch -load-store-vectorizer -called-value-propagation -loop-versioning-licm -ipconstprop -memcpyopt -instcombine -libcalls-shrinkwrap -loop-simplify -sancov -always-inline -coro-split -lower-constant-intrinsics -strip -loop-reroll -strip -loop-interchange -loop-interchange -die -lower-constant-intrinsics -callsite-splitting -cross-dso-cfi -separate-const-offset-from-gep -redundant-dbg-inst-elim -strip-nondebug -sink -inject-tli-mappings -simplifycfg -inferattrs -loop-vectorize -mergereturn -loop-fusion -mergereturn -load-store-vectorizer -speculative-execution -early-cse-memssa -hotcoldsplit -always-inline -mergefunc -coro-early -mldst-motion -loop-unroll -sroa -loop-simplifycfg -sroa -slp-vectorizer -loop-distribute -lower-guard-intrinsic -strip-debug-declare -loop-vectorize -rewrite-statepoints-for-gc -loop-reroll -strip-dead-prototypes -hotcoldsplit -lcssa -alignment-from-assumptions -loweratomic -loop-reroll -correlated-propagation -loop-deletion -loop-load-elim -prune-eh -rewrite-statepoints-for-gc -guard-widening -loop-unroll -loop-idiom -bdce -called-value-propagation -consthoist -simplifycfg -deadargelim -instsimplify input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0216864178135994,76.33752155303955,opt -elim-avail-extern -bdce -speculative-execution -bdce -consthoist -elim-avail-extern -loop-predication -coro-cleanup -globalsplit -inject-tli-mappings -loop-versioning-licm -mergeicmps -callsite-splitting -rewrite-statepoints-for-gc -jump-threading -loweratomic -sancov -dse -loop-sink -mem2reg -instcombine -hotcoldsplit -gvn -forceattrs -post-inline-ee-instrument -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.025579727468324,74.7141592502594,opt -lower-guard-intrinsic -lower-guard-intrinsic -sancov -sink -callsite-splitting -loop-simplifycfg -guard-widening -libcalls-shrinkwrap -loop-reroll -ee-instrument -prune-eh -argpromotion -loop-reduce -argpromotion -loop-simplifycfg -loop-unroll-and-jam -loop-versioning-licm -float2int -scalarizer -infer-address-spaces -simple-loop-unswitch -deadargelim -loop-idiom -loop-reroll -lower-expect -lower-expect -mergeicmps -mergefunc -coro-cleanup -canonicalize-aliases -scalarizer -gvn-hoist -redundant-dbg-inst-elim -add-discriminators -deadargelim -post-inline-ee-instrument -indvars -name-anon-globals -mem2reg -loop-simplifycfg -speculative-execution -separate-const-offset-from-gep -lowerinvoke -float2int -load-store-vectorizer -consthoist -strip -always-inline -slp-vectorizer -correlated-propagation -slsr -coro-early -callsite-splitting -lower-guard-intrinsic -lower-widenable-condition -redundant-dbg-inst-elim -globalsplit -loop-distribute -loop-deletion -rewrite-statepoints-for-gc -instnamer -licm -loop-distribute -instcombine -simplifycfg -mldst-motion -guard-widening -loop-instsimplify -simplifycfg -newgvn -reassociate input.bc -o output.bc +benchmark://cbench-v1/tiffmedian,1.0331955875823913,76.41833972930908,opt -separate-const-offset-from-gep -coro-cleanup -die -coro-cleanup -called-value-propagation -adce -cross-dso-cfi -inject-tli-mappings -rpo-functionattrs -add-discriminators -lower-matrix-intrinsics -simplifycfg -simple-loop-unswitch -memcpyopt -instnamer -attributor -scalarizer -adce -loop-unroll-and-jam -post-inline-ee-instrument -reg2mem -flattencfg -lower-expect -loop-load-elim -strip-dead-prototypes -mergefunc -tailcallelim -barrier -inject-tli-mappings -loop-unroll -canonicalize-aliases -loop-distribute -loop-unswitch -slsr -partial-inliner -name-anon-globals -loop-interchange -lcssa -slsr -nary-reassociate -lower-constant-intrinsics -sink -loop-versioning-licm -coro-early -loop-instsimplify -pgo-memop-opt -post-inline-ee-instrument -tailcallelim -loop-distribute -loop-fusion -loop-reduce -loop-versioning -sancov -partially-inline-libcalls -instsimplify -early-cse-memssa -early-cse-memssa -coro-early -hotcoldsplit -early-cse-memssa -loop-simplify -memcpyopt -irce -mem2reg -guard-widening -canonicalize-aliases -attributor -cross-dso-cfi -attributor -globalsplit -functionattrs -strip-nondebug -instsimplify -loop-interchange -loop-predication -instcombine -gvn-hoist -globaldce -slsr -always-inline -lcssa -dce -mldst-motion -instsimplify -simple-loop-unswitch -mergefunc -lower-constant-intrinsics -newgvn -prune-eh -mergefunc -lcssa -cross-dso-cfi -loop-unroll -hotcoldsplit -loop-vectorize -loop-guard-widening -insert-gcov-profiling -name-anon-globals -early-cse-memssa -strip -loweratomic -simplifycfg -jump-threading input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/tabular_q/BUILD b/leaderboard/llvm_instcount/tabular_q/BUILD new file mode 100644 index 000000000..b72a25a42 --- /dev/null +++ b/leaderboard/llvm_instcount/tabular_q/BUILD @@ -0,0 +1,26 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +load("@rules_python//python:defs.bzl", "py_binary") + +py_binary( + name = "tabular_q_eval", + srcs = ["tabular_q_eval.py"], + deps = [ + "//compiler_gym/leaderboard:llvm_instcount", + "//examples:tabular_q", + ], +) + +py_test( + name = "tabular_q_test", + timeout = "moderate", + srcs = ["tabular_q_test.py"], + deps = [ + ":tabular_q_eval", + "//compiler_gym/leaderboard:llvm_instcount", + "//tests:test_main", + "//tests/pytest_plugins:llvm", + ], +) diff --git a/leaderboard/llvm_instcount/tabular_q/README.md b/leaderboard/llvm_instcount/tabular_q/README.md new file mode 100644 index 000000000..dc947cce6 --- /dev/null +++ b/leaderboard/llvm_instcount/tabular_q/README.md @@ -0,0 +1,68 @@ +# Tabular Q + +**tldr;** + +A tabular, online Q-learning algorithm that is trained on each program in the test set. + +**Authors:** +JD + +**Results:** +1. [Episode length 5, 2000 training episodes](results-H5-N2000.csv). +2. [Episode length 10, 5000 training episodes](results-H10-N5000.csv) + + +**Publication:** + + +**CompilerGym version:** +0.1.7 + +**Open source?** +Yes, MIT licensed. [Source Code](tabular_q_eval.py). + +**Did you modify the CompilerGym source code?** +No. + +**What parameters does the approach have?** +* Episode length during the Q-table creation *H*. +* Learning rate. *λ* +* Discount fatcor. *γ* +* Actions that are considered by the algorithm. *a* +* Features that are used from the Autophase feature set. *f* +* Number of episodes used during Q-table learning. *N* + +**What range of values were considered for the above parameters?** +* H=5, λ=0.1, γ=1.0, 15 selected actions, 3 selected features, N=2000 (short). +* H=10, λ=0.1, γ=1.0, 15 selected actions, 3 selected features, N=5000 (long). + +**Is the policy deterministic?** +The policy itself is deterministic after its trained. However the training +process is non-deterministic, so the behavior is different when trained again. + +## Description + +Tabular Q learning is a standard reinforcement learning technique that computes the +expected accumulated reward from any state action pair, and store them in a table. +Through interaction with the environment, the algorithm improves the estimation by +using step-wise reward and existing entries of the q table. + +The implementation is online, thus for every step taken in the environment, the reward +is immediately used to improve the current Q-table. + +### Experimental Setup + +| | Hardware Specification | +| ------ | --------------------------------------------- | +| OS | Ubuntu 20.04 | +| CPU | Intel Xeon Gold 6230 CPU @ 2.10GHz (80× core) | +| Memory | 754.5 GiB | + +### Experimental Methodology + +```sh +# short +$ python tabular_q_eval.py --episodes=2000 --episode_length=5 --learning_rate=0.1 --discount=1 --log_every=0 +# long +$ python tabular_q_eval.py --episodes=5000 --episode_length=10 --learning_rate=0.1 --discount=1 --log_every=0 +``` diff --git a/leaderboard/llvm_instcount/tabular_q/results-H10-N5000.csv b/leaderboard/llvm_instcount/tabular_q/results-H10-N5000.csv new file mode 100644 index 000000000..762fe996f --- /dev/null +++ b/leaderboard/llvm_instcount/tabular_q/results-H10-N5000.csv @@ -0,0 +1,231 @@ +benchmark,reward,walltime,commandline +benchmark://cBench-v1/adpcm,0.9860335195530725,91.97182703018188,opt -gvn -instcombine -newgvn -mem2reg -simplifycfg -loop-versioning -sroa -jump-threading -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9916201117318436,84.45344400405884,opt -mem2reg -early-cse-memssa -newgvn -simplifycfg -instcombine -gvn -gvn -mem2reg -simplifycfg -loop-versioning input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9916201117318437,86.55073308944702,opt -loop-reduce -sroa -early-cse-memssa -gvn -simplifycfg -gvn -mem2reg -instcombine -mem2reg -gvn input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9972067039106144,84.29144549369812,opt -sroa -instsimplify -jump-threading -instcombine -early-cse-memssa -instcombine -gvn-hoist -instcombine -simplifycfg -sroa input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9972067039106146,82.8824474811554,opt -instsimplify -mem2reg -mem2reg -simplifycfg -gvn -loop-versioning -jump-threading -instcombine -newgvn -mem2reg input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9972067039106146,90.50861811637878,opt -newgvn -newgvn -instcombine -jump-threading -sroa -simplifycfg -instcombine -simplifycfg -gvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/adpcm,1.0,86.30793905258179,opt -mem2reg -instcombine -gvn-hoist -gvn-hoist -mem2reg -simplifycfg -loop-versioning -newgvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/adpcm,1.0000000000000002,87.10538744926453,opt -early-cse-memssa -sroa -loop-versioning -gvn -simplifycfg -early-cse-memssa -instcombine -mem2reg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/adpcm,1.005586592178771,84.52623152732849,opt -mem2reg -jump-threading -simplifycfg -instcombine -loop-versioning -gvn -sroa -early-cse-memssa -loop-versioning -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/adpcm,1.0083798882681565,85.43948245048523,opt -sroa -simplifycfg -instcombine -jump-threading -early-cse-memssa -sroa -instsimplify -gvn-hoist -gvn -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9955752212389379,112.84533286094666,opt -gvn -mem2reg -instcombine -jump-threading -mem2reg -instcombine -gvn-hoist -gvn -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.995575221238938,109.70729875564575,opt -gvn -mem2reg -newgvn -gvn-hoist -simplifycfg -loop-versioning -mem2reg -instcombine -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9977876106194689,109.60479307174683,opt -simplifycfg -gvn -loop-versioning -mem2reg -instcombine -simplifycfg -gvn -jump-threading -early-cse-memssa -sroa input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.997787610619469,109.33702445030212,opt -mem2reg -gvn -instcombine -newgvn -gvn-hoist -mem2reg -jump-threading -newgvn -simplifycfg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.997787610619469,111.2763295173645,opt -newgvn -loop-versioning -mem2reg -early-cse-memssa -instcombine -gvn -instcombine -instcombine -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9977876106194691,106.48508906364441,opt -simplifycfg -loop-reduce -loop-versioning -sroa -simplifycfg -instcombine -gvn -simplifycfg -newgvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/bitcount,1.0022123893805308,112.64315414428711,opt -instcombine -sroa -gvn-hoist -early-cse-memssa -mem2reg -instcombine -jump-threading -jump-threading -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bitcount,1.002212389380531,101.81922960281372,opt -simplifycfg -sroa -instcombine -early-cse-memssa -simplifycfg -loop-versioning -jump-threading -loop-versioning -early-cse-memssa -loop-versioning input.bc -o output.bc +benchmark://cBench-v1/bitcount,1.002212389380531,102.55236792564392,opt -mem2reg -newgvn -jump-threading -loop-versioning -instcombine -simplifycfg -instsimplify -sroa -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/bitcount,1.002212389380531,111.14657974243164,opt -instcombine -jump-threading -sroa -simplifycfg -early-cse-memssa -loop-versioning -instcombine -newgvn -simplifycfg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9394402035623409,274.2872977256775,opt -instcombine -mem2reg -instcombine -newgvn -loop-versioning -instsimplify -jump-threading -sroa -loop-versioning -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9735368956743001,257.81663489341736,opt -newgvn -jump-threading -mem2reg -early-cse-memssa -instsimplify -simplifycfg -newgvn -newgvn -mem2reg -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9811704834605597,279.0676498413086,opt -newgvn -newgvn -mem2reg -simplifycfg -gvn-hoist -break-crit-edges -instcombine -simplifycfg -gvn -instsimplify input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.983206106870229,262.2409739494324,opt -newgvn -sroa -sroa -jump-threading -early-cse-memssa -instsimplify -simplifycfg -mem2reg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9913486005089057,279.6364629268646,opt -early-cse-memssa -instsimplify -newgvn -gvn -sroa -simplifycfg -mem2reg -instcombine -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9928753180661578,334.88650822639465,opt -sroa -mem2reg -jump-threading -newgvn -instcombine -jump-threading -newgvn -newgvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9933842239185751,275.44550132751465,opt -newgvn -jump-threading -instsimplify -sroa -instcombine -gvn-hoist -loop-versioning -early-cse-memssa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9959287531806614,277.0932228565216,opt -sroa -gvn-hoist -instcombine -newgvn -jump-threading -newgvn -instcombine -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9979643765903308,286.9892988204956,opt -mem2reg -instcombine -newgvn -early-cse-memssa -mem2reg -newgvn -simplifycfg -jump-threading -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9994910941475827,274.74771213531494,opt -newgvn -sroa -instsimplify -instcombine -early-cse-memssa -gvn-hoist -newgvn -simplifycfg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1489610998281519,3352.769928216934,opt -gvn -instcombine -mem2reg -early-cse-memssa -instcombine -simplifycfg -instsimplify -newgvn -mem2reg -instcombine input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1511482580846744,2484.9806559085846,opt -instcombine -sroa -gvn -newgvn -early-cse-memssa -newgvn -simplifycfg -newgvn -instsimplify -instcombine input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1572410560849866,2546.4524807929993,opt -jump-threading -instcombine -sroa -instcombine -newgvn -instcombine -gvn-hoist -instcombine -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1574753944696141,3206.4281198978424,opt -gvn -jump-threading -mem2reg -gvn -jump-threading -jump-threading -gvn-hoist -instcombine -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1616153725980316,2250.5105123519897,opt -newgvn -loop-reduce -sroa -gvn -simplifycfg -simplifycfg -instsimplify -instcombine -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1622402749570382,2603.1056797504425,opt -gvn -mem2reg -sroa -gvn -simplifycfg -jump-threading -instcombine -mem2reg -mem2reg -newgvn input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1662240274957039,2057.2154517173767,opt -simplifycfg -loop-versioning -mem2reg -gvn -sroa -gvn-hoist -instcombine -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1663802530854557,2031.112601518631,opt -mem2reg -gvn -sroa -mem2reg -jump-threading -newgvn -instsimplify -simplifycfg -loop-versioning -instcombine input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1702858928292454,2275.195060491562,opt -sroa -gvn -early-cse-memssa -gvn-hoist -simplifycfg -instcombine -gvn -jump-threading -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1753632244961727,2217.3474543094635,opt -instsimplify -newgvn -simplifycfg -newgvn -sroa -early-cse-memssa -instcombine -jump-threading -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,119.99614810943604,opt -newgvn -instcombine -mem2reg -instsimplify -instsimplify -gvn -simplifycfg -simplifycfg -early-cse-memssa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,49.29745006561279,opt -instcombine -simplifycfg -mem2reg -loop-versioning -newgvn -newgvn -loop-versioning -instsimplify -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,51.990561962127686,opt -newgvn -loop-versioning -sroa -newgvn -gvn -gvn -gvn -simplifycfg -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,61.0009241104126,opt -loop-versioning -newgvn -loop-versioning -instcombine -sroa -instsimplify -mem2reg -instsimplify -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,61.48502278327942,opt -mem2reg -early-cse-memssa -gvn -newgvn -gvn-hoist -instcombine -mem2reg -simplifycfg -gvn -sroa input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,61.844305753707886,opt -sroa -early-cse-memssa -early-cse-memssa -gvn -mem2reg -simplifycfg -sroa -early-cse-memssa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,62.73630118370056,opt -instcombine -mem2reg -simplifycfg -early-cse-memssa -loop-versioning -loop-versioning -gvn-hoist -early-cse-memssa -early-cse-memssa -mem2reg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,63.55244326591492,opt -gvn -gvn -sroa -simplifycfg -gvn-hoist -instcombine -loop-versioning -instsimplify -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,63.81081581115723,opt -instcombine -simplifycfg -mem2reg -newgvn -newgvn -mem2reg -gvn -instsimplify -newgvn -newgvn input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,83.3938398361206,opt -early-cse-memssa -gvn -sroa -jump-threading -simplifycfg -gvn -instcombine -instcombine -instcombine -mem2reg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9642857142857142,84.89269423484802,opt -gvn -instcombine -gvn-hoist -simplifycfg -instsimplify -loop-versioning -gvn-hoist -gvn-hoist -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9642857142857143,84.95226836204529,opt -gvn -instsimplify -sroa -jump-threading -newgvn -gvn-hoist -simplifycfg -instcombine -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9744897959183674,91.39646458625793,opt -sroa -jump-threading -instcombine -newgvn -instcombine -gvn-hoist -mem2reg -instcombine -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9795918367346937,68.83072209358215,opt -sroa -jump-threading -jump-threading -early-cse-memssa -newgvn -simplifycfg -simplifycfg -instcombine -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9795918367346939,63.65230846405029,opt -early-cse-memssa -sroa -early-cse-memssa -loop-versioning -instsimplify -simplifycfg -early-cse-memssa -instcombine -newgvn -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9795918367346939,79.46162056922913,opt -loop-reduce -sroa -newgvn -simplifycfg -gvn-hoist -instcombine -loop-versioning -gvn-hoist -instsimplify -mem2reg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9795918367346939,85.39845514297485,opt -mem2reg -newgvn -newgvn -instcombine -gvn-hoist -simplifycfg -instsimplify -early-cse-memssa -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.979591836734694,165.49865579605103,opt -reg2mem -mem2reg -early-cse-memssa -newgvn -instcombine -newgvn -jump-threading -simplifycfg -mem2reg -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.979591836734694,78.92414808273315,opt -mem2reg -early-cse-memssa -jump-threading -instsimplify -newgvn -instcombine -gvn-hoist -simplifycfg -mem2reg -loop-versioning input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.979591836734694,85.80421590805054,opt -newgvn -sroa -simplifycfg -instsimplify -jump-threading -instcombine -early-cse-memssa -gvn-hoist -newgvn -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9757848082454039,28641.093064546585,opt -instcombine -sroa -newgvn -gvn -newgvn -gvn -gvn-hoist -instcombine -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9879011460691838,23796.255378246307,opt -loop-versioning -instcombine -sroa -simplifycfg -sroa -gvn -instcombine -jump-threading -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9933604916470702,27085.388712882996,opt -instcombine -mem2reg -jump-threading -gvn-hoist -sroa -gvn -instcombine -gvn-hoist -simplifycfg -gvn input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9976440454231539,26779.980276823044,opt -newgvn -newgvn -loop-versioning -sroa -sroa -jump-threading -loop-reduce -simplifycfg -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9988329501446793,31713.485026836395,opt -gvn-hoist -early-cse-memssa -instcombine -loop-versioning -sroa -newgvn -jump-threading -simplifycfg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9998601288562912,37553.263009786606,opt -gvn -gvn-hoist -mem2reg -simplifycfg -newgvn -gvn -instcombine -instsimplify -jump-threading -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/ghostscript,1.0047643608325831,25536.759793043137,opt -sroa -instcombine -sroa -gvn -simplifycfg -gvn -early-cse-memssa -instcombine -simplifycfg -jump-threading input.bc -o output.bc +benchmark://cBench-v1/ghostscript,1.0058396202498447,21979.465646743774,opt -break-crit-edges -sroa -instcombine -early-cse-memssa -simplifycfg -early-cse-memssa -jump-threading -loop-versioning -instsimplify -newgvn input.bc -o output.bc +benchmark://cBench-v1/ghostscript,1.0102105934907468,25858.50022339821,opt -sroa -gvn -instcombine -gvn -simplifycfg -instcombine -early-cse-memssa -mem2reg -jump-threading -newgvn input.bc -o output.bc +benchmark://cBench-v1/ghostscript,1.013440742715773,25359.796591997147,opt -sroa -instcombine -newgvn -gvn-hoist -jump-threading -simplifycfg -gvn -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.980453187250996,956.741213798523,opt -instcombine -instsimplify -newgvn -mem2reg -simplifycfg -early-cse-memssa -newgvn -early-cse-memssa -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/gsm,0.9952689243027889,894.8636138439178,opt -early-cse-memssa -instcombine -jump-threading -mem2reg -early-cse-memssa -sroa -instcombine -instcombine -simplifycfg -gvn input.bc -o output.bc +benchmark://cBench-v1/gsm,0.9965139442231076,783.0775320529938,opt -instcombine -mem2reg -newgvn -early-cse-memssa -newgvn -simplifycfg -jump-threading -sroa -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.9972609561752986,931.1694090366364,opt -gvn-hoist -mem2reg -gvn -simplifycfg -sroa -instcombine -loop-versioning -loop-versioning -simplifycfg -gvn input.bc -o output.bc +benchmark://cBench-v1/gsm,1.0024900398406373,831.6039507389069,opt -newgvn -mem2reg -jump-threading -instcombine -instsimplify -simplifycfg -jump-threading -sroa -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,1.0032370517928288,831.4304916858673,opt -jump-threading -loop-versioning -sroa -simplifycfg -instcombine -simplifycfg -instcombine -break-crit-edges -gvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/gsm,1.0042330677290836,912.3787298202515,opt -gvn-hoist -newgvn -mem2reg -jump-threading -instcombine -simplifycfg -mem2reg -newgvn -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,1.0043575697211156,652.9828066825867,opt -mem2reg -mem2reg -newgvn -instsimplify -sroa -simplifycfg -instcombine -jump-threading -gvn -newgvn input.bc -o output.bc +benchmark://cBench-v1/gsm,1.0053535856573708,828.6454699039459,opt -loop-reduce -jump-threading -sroa -early-cse-memssa -loop-reduce -simplifycfg -instcombine -gvn -newgvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/gsm,1.0059760956175299,1009.6422271728516,opt -simplifycfg -instcombine -jump-threading -sroa -newgvn -newgvn -sroa -simplifycfg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9611541168191414,982.0354073047638,opt -loop-rotate -mem2reg -jump-threading -mem2reg -gvn -simplifycfg -early-cse-memssa -simplifycfg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9663617171006332,1289.5264930725098,opt -jump-threading -gvn -loop-reduce -instcombine -mem2reg -jump-threading -newgvn -simplifycfg -mem2reg -sroa input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9800140745953554,1166.6190717220306,opt -instsimplify -gvn -instcombine -simplifycfg -gvn-hoist -newgvn -jump-threading -sroa -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9870513722730473,1037.2042796611786,opt -loop-reduce -jump-threading -gvn -sroa -instcombine -simplifycfg -newgvn -instsimplify -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9912737508796623,1108.6332042217255,opt -mem2reg -gvn -gvn-hoist -sroa -simplifycfg -instcombine -simplifycfg -instsimplify -early-cse-memssa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/ispell,1.0011259676284305,1021.9368417263031,opt -newgvn -mem2reg -instcombine -sroa -simplifycfg -instcombine -early-cse-memssa -simplifycfg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/ispell,1.0012667135819846,1077.8353836536407,opt -mem2reg -early-cse-memssa -jump-threading -simplifycfg -loop-versioning -instcombine -newgvn -jump-threading -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/ispell,1.0019704433497534,1146.8326671123505,opt -mem2reg -jump-threading -instcombine -early-cse-memssa -newgvn -simplifycfg -simplifycfg -instcombine -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ispell,1.0023926812104154,1186.6769261360168,opt -simplifycfg -sroa -newgvn -mem2reg -simplifycfg -newgvn -instcombine -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/ispell,1.0056298381421536,1292.5408957004547,opt -sroa -newgvn -newgvn -jump-threading -instcombine -simplifycfg -newgvn -instcombine -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0163995411848592,3907.786417245865,opt -instcombine -gvn -sroa -instcombine -instsimplify -gvn-hoist -simplifycfg -early-cse-memssa -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0183216046129524,3974.91957116127,opt -simplifycfg -loop-versioning -gvn -sroa -loop-versioning -early-cse-memssa -newgvn -sroa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0202126670180116,3907.164360523224,opt -early-cse-memssa -instcombine -sroa -simplifycfg -early-cse-memssa -gvn-hoist -newgvn -instcombine -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0250488266112785,4268.414875268936,opt -sroa -gvn -jump-threading -early-cse-memssa -simplifycfg -instcombine -loop-versioning -newgvn -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.02588585423319,3982.0975198745728,opt -sroa -gvn -simplifycfg -instcombine -jump-threading -mem2reg -instcombine -early-cse-memssa -newgvn -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.028675946306228,4111.072576284409,opt -simplifycfg -gvn-hoist -gvn-hoist -mem2reg -instsimplify -gvn-hoist -newgvn -early-cse-memssa -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0294819729051057,3143.8682115077972,opt -sroa -instcombine -sroa -jump-threading -gvn -simplifycfg -gvn-hoist -jump-threading -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0309080199646588,2946.301032066345,opt -sroa -jump-threading -early-cse-memssa -newgvn -gvn-hoist -simplifycfg -jump-threading -mem2reg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0310630250798276,3622.3017299175262,opt -loop-versioning -sroa -gvn-hoist -early-cse-memssa -loop-versioning -simplifycfg -jump-threading -instcombine -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0320860588399419,2730.836662054062,opt -mem2reg -early-cse-memssa -simplifycfg -instsimplify -loop-versioning -jump-threading -instcombine -gvn-hoist -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0103673653369394,2953.112625360489,opt -simplifycfg -instcombine -sroa -newgvn -mem2reg -simplifycfg -instsimplify -instsimplify -instsimplify -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0171608873434432,4118.139434099197,opt -instcombine -gvn -gvn -sroa -jump-threading -instsimplify -newgvn -instcombine -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0286229434302456,4079.925307750702,opt -mem2reg -jump-threading -early-cse-memssa -gvn-hoist -sroa -instcombine -loop-versioning -gvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0292346823786986,2953.440379858017,opt -loop-versioning -sroa -gvn-hoist -jump-threading -instsimplify -gvn -simplifycfg -instcombine -instsimplify -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0292668791654593,2922.3251719474792,opt -early-cse-memssa -mem2reg -gvn -gvn -gvn-hoist -instsimplify -instcombine -jump-threading -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0293634695257414,2833.115102291107,opt -jump-threading -mem2reg -gvn -newgvn -simplifycfg -early-cse-memssa -gvn-hoist -jump-threading -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0305225538491258,3256.7616760730743,opt -newgvn -jump-threading -mem2reg -early-cse-memssa -instcombine -gvn-hoist -newgvn -instsimplify -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0324543610547667,2871.496262073517,opt -sroa -instcombine -simplifycfg -early-cse-memssa -early-cse-memssa -loop-versioning -simplifycfg -gvn-hoist -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0326797385620914,3408.99152469635,opt -gvn-hoist -reg2mem -sroa -instcombine -gvn-hoist -newgvn -jump-threading -simplifycfg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0336456421649118,2820.295057296753,opt -mem2reg -instcombine -early-cse-memssa -loop-versioning -jump-threading -instsimplify -simplifycfg -gvn-hoist -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/lame,1.0160555682076975,3208.234923839569,opt -simplifycfg -instcombine -gvn -sroa -gvn -jump-threading -gvn-hoist -early-cse-memssa -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/lame,1.022546117057618,3081.2568502426147,opt -instcombine -simplifycfg -newgvn -simplifycfg -newgvn -gvn-hoist -instsimplify -sroa -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/lame,1.024026417672512,3663.529244184494,opt -instcombine -newgvn -newgvn -gvn-hoist -gvn -instcombine -simplifycfg -gvn -mem2reg -newgvn input.bc -o output.bc +benchmark://cBench-v1/lame,1.0380702953009944,3482.595934867859,opt -gvn -mem2reg -instcombine -simplifycfg -gvn -loop-versioning -newgvn -simplifycfg -instcombine -jump-threading input.bc -o output.bc +benchmark://cBench-v1/lame,1.0404615501404388,3260.752034187317,opt -jump-threading -gvn-hoist -instcombine -sroa -gvn -gvn-hoist -newgvn -simplifycfg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,1.0411447658088515,3035.002494573593,opt -early-cse-memssa -newgvn -newgvn -early-cse-memssa -early-cse-memssa -sroa -mem2reg -instcombine -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,1.0420177636073786,2607.248829603195,opt -reg2mem -loop-versioning -mem2reg -early-cse-memssa -jump-threading -loop-versioning -newgvn -simplifycfg -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/lame,1.0473696196766111,2639.7318506240845,opt -sroa -instcombine -sroa -simplifycfg -newgvn -mem2reg -jump-threading -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/lame,1.0487740074394598,2695.0552740097046,opt -mem2reg -newgvn -gvn -jump-threading -instcombine -instcombine -newgvn -gvn-hoist -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/lame,1.0520762165034538,2630.8039429187775,opt -simplifycfg -mem2reg -instcombine -early-cse-memssa -newgvn -simplifycfg -instcombine -gvn-hoist -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9365962180200222,126.3586974143982,opt -loop-versioning -instcombine -gvn -sroa -break-crit-edges -newgvn -instcombine -simplifycfg -instsimplify -instcombine input.bc -o output.bc +benchmark://cBench-v1/patricia,0.949944382647386,107.48044085502625,opt -jump-threading -mem2reg -mem2reg -instcombine -loop-versioning -newgvn -instsimplify -newgvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9721913236929922,125.59870314598083,opt -mem2reg -gvn -gvn -newgvn -sroa -loop-versioning -simplifycfg -instsimplify -instcombine -jump-threading input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9766407119021134,105.29496049880981,opt -jump-threading -sroa -newgvn -gvn-hoist -mem2reg -simplifycfg -newgvn -jump-threading -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9833147942157953,108.11625814437866,opt -jump-threading -loop-reduce -newgvn -jump-threading -sroa -early-cse-memssa -simplifycfg -newgvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9866518353726361,105.9025809764862,opt -mem2reg -sroa -newgvn -simplifycfg -newgvn -gvn-hoist -instcombine -jump-threading -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/patricia,0.988876529477197,104.23832082748413,opt -simplifycfg -sroa -gvn -simplifycfg -instsimplify -simplifycfg -instcombine -simplifycfg -gvn-hoist -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/patricia,0.988876529477197,109.82332849502563,opt -sroa -gvn -early-cse-memssa -gvn-hoist -simplifycfg -loop-versioning -instcombine -simplifycfg -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cBench-v1/patricia,0.988876529477197,113.45991277694702,opt -early-cse-memssa -early-cse-memssa -gvn -simplifycfg -instcombine -gvn -gvn-hoist -simplifycfg -newgvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/patricia,0.988876529477197,122.11330318450928,opt -gvn -simplifycfg -gvn -simplifycfg -instsimplify -instcombine -simplifycfg -early-cse-memssa -gvn-hoist -mem2reg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1238390092879256,80.08359289169312,opt -jump-threading -gvn -newgvn -early-cse-memssa -sroa -sroa -simplifycfg -sroa -instcombine -gvn input.bc -o output.bc +benchmark://cBench-v1/qsort,1.123839009287926,93.2924792766571,opt -gvn-hoist -gvn -instcombine -newgvn -mem2reg -jump-threading -newgvn -sroa -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1269349845201238,84.43627429008484,opt -gvn -newgvn -sroa -simplifycfg -gvn-hoist -jump-threading -instsimplify -instcombine -newgvn -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1269349845201242,80.53538870811462,opt -reg2mem -gvn -instcombine -simplifycfg -gvn -mem2reg -jump-threading -newgvn -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1269349845201242,82.70187640190125,opt -gvn -instcombine -newgvn -loop-versioning -jump-threading -mem2reg -simplifycfg -gvn -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/qsort,1.130030959752322,75.60492300987244,opt -mem2reg -simplifycfg -early-cse-memssa -loop-versioning -gvn-hoist -sroa -instcombine -loop-versioning -gvn -mem2reg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.13312693498452,81.30386662483215,opt -sroa -jump-threading -early-cse-memssa -instsimplify -instsimplify -simplifycfg -newgvn -early-cse-memssa -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1362229102167183,78.4861946105957,opt -sroa -gvn -instcombine -gvn-hoist -jump-threading -newgvn -jump-threading -simplifycfg -instcombine -jump-threading input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1362229102167183,81.40549969673157,opt -newgvn -sroa -simplifycfg -instcombine -jump-threading -gvn-hoist -instsimplify -gvn -mem2reg -gvn input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1362229102167183,81.45297241210938,opt -newgvn -jump-threading -simplifycfg -sroa -simplifycfg -instcombine -newgvn -mem2reg -gvn-hoist -jump-threading input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0958221540820239,390.3515467643738,opt -early-cse-memssa -instsimplify -instcombine -loop-reduce -instsimplify -sroa -gvn-hoist -newgvn -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0965887313146798,412.6612138748169,opt -early-cse-memssa -early-cse-memssa -gvn-hoist -newgvn -mem2reg -instcombine -instsimplify -sroa -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.09658873131468,466.66981077194214,opt -instcombine -newgvn -instcombine -sroa -gvn -mem2reg -instcombine -jump-threading -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.1000383288616329,458.8715591430664,opt -loop-versioning -loop-rotate -gvn -instcombine -newgvn -simplifycfg -sroa -instsimplify -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.100038328861633,539.4876976013184,opt -gvn -instcombine -newgvn -loop-rotate -instcombine -jump-threading -sroa -newgvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.1008049060942888,492.0484733581543,opt -instcombine -instcombine -early-cse-memssa -gvn -instcombine -sroa -early-cse-memssa -newgvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.1019547719432734,490.0012001991272,opt -loop-rotate -newgvn -instcombine -gvn -simplifycfg -mem2reg -instcombine -simplifycfg -early-cse-memssa -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.1027213491759298,377.43806433677673,opt -simplifycfg -instsimplify -mem2reg -instcombine -early-cse-memssa -sroa -simplifycfg -loop-versioning -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.104254503641242,396.1617786884308,opt -simplifycfg -newgvn -sroa -newgvn -newgvn -instcombine -instcombine -newgvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.1061709467228822,461.7222125530243,opt -mem2reg -newgvn -gvn -simplifycfg -instsimplify -instcombine -loop-versioning -jump-threading -newgvn -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/sha,1.4648829431438124,85.02385306358337,opt -simplifycfg -mem2reg -loop-versioning -instcombine -jump-threading -gvn -instcombine -simplifycfg -newgvn -newgvn input.bc -o output.bc +benchmark://cBench-v1/sha,1.4648829431438126,89.43071842193604,opt -jump-threading -newgvn -instcombine -sroa -simplifycfg -early-cse-memssa -newgvn -simplifycfg -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/sha,1.4682274247491638,84.3970627784729,opt -newgvn -sroa -loop-versioning -instcombine -simplifycfg -gvn -gvn-hoist -instsimplify -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/sha,1.4715719063545147,86.17816185951233,opt -simplifycfg -newgvn -mem2reg -sroa -gvn -simplifycfg -early-cse-memssa -instcombine -newgvn -mem2reg input.bc -o output.bc +benchmark://cBench-v1/sha,1.471571906354515,78.49454045295715,opt -mem2reg -break-crit-edges -simplifycfg -break-crit-edges -gvn -simplifycfg -mem2reg -sroa -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/sha,1.471571906354515,83.51931381225586,opt -sroa -newgvn -instcombine -gvn -instcombine -simplifycfg -gvn -loop-versioning -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/sha,1.471571906354515,85.78966975212097,opt -gvn -simplifycfg -break-crit-edges -mem2reg -sroa -instcombine -simplifycfg -jump-threading -newgvn -sroa input.bc -o output.bc +benchmark://cBench-v1/sha,1.471571906354515,86.78127336502075,opt -gvn -sroa -sroa -instsimplify -instcombine -gvn -loop-versioning -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/sha,1.471571906354515,89.89318203926086,opt -sroa -sroa -gvn -simplifycfg -gvn-hoist -early-cse-memssa -sroa -instcombine -newgvn -sroa input.bc -o output.bc +benchmark://cBench-v1/sha,1.471571906354515,90.49741506576538,opt -gvn -mem2reg -sroa -gvn-hoist -instcombine -jump-threading -gvn -newgvn -simplifycfg -mem2reg input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9699453551912568,122.74706077575684,opt -gvn -sroa -simplifycfg -simplifycfg -sroa -gvn-hoist -early-cse-memssa -jump-threading -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9740437158469946,118.31914043426514,opt -simplifycfg -sroa -gvn -instcombine -mem2reg -sroa -simplifycfg -simplifycfg -jump-threading -gvn input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9767759562841528,120.8527307510376,opt -mem2reg -sroa -gvn -instsimplify -jump-threading -jump-threading -instcombine -simplifycfg -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9767759562841529,133.49759244918823,opt -early-cse-memssa -simplifycfg -instcombine -gvn -instcombine -jump-threading -mem2reg -gvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9808743169398906,123.43013072013855,opt -simplifycfg -sroa -gvn-hoist -early-cse-memssa -jump-threading -newgvn -newgvn -simplifycfg -instcombine -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9808743169398907,127.720205783844,opt -gvn-hoist -mem2reg -early-cse-memssa -newgvn -jump-threading -instcombine -loop-versioning -simplifycfg -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9822404371584699,123.8990490436554,opt -instsimplify -sroa -instsimplify -newgvn -instcombine -jump-threading -simplifycfg -gvn -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9822404371584699,125.47866463661194,opt -newgvn -instsimplify -instcombine -mem2reg -jump-threading -early-cse-memssa -mem2reg -simplifycfg -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.983606557377049,122.23200368881226,opt -newgvn -jump-threading -sroa -gvn -newgvn -instcombine -simplifycfg -simplifycfg -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9849726775956283,128.48105645179749,opt -newgvn -break-crit-edges -sroa -simplifycfg -gvn-hoist -gvn -jump-threading -instcombine -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9664179104477613,74.80681371688843,opt -gvn -sroa -simplifycfg -early-cse-memssa -instcombine -gvn-hoist -newgvn -jump-threading -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149252,64.71736693382263,opt -sroa -simplifycfg -early-cse-memssa -gvn -jump-threading -simplifycfg -instcombine -gvn-hoist -sroa -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149252,68.1199905872345,opt -sroa -early-cse-memssa -sroa -jump-threading -instcombine -early-cse-memssa -mem2reg -instsimplify -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149252,71.20147347450256,opt -sroa -simplifycfg -gvn -instcombine -jump-threading -gvn -gvn -sroa -sroa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149254,66.77502107620239,opt -sroa -early-cse-memssa -instcombine -simplifycfg -gvn -simplifycfg -instsimplify -simplifycfg -loop-versioning -newgvn input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149254,67.37322449684143,opt -mem2reg -sroa -jump-threading -jump-threading -early-cse-memssa -mem2reg -instcombine -simplifycfg -gvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149254,67.71713638305664,opt -jump-threading -sroa -jump-threading -newgvn -simplifycfg -gvn -loop-versioning -simplifycfg -instcombine -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149254,68.65023708343506,opt -simplifycfg -instsimplify -newgvn -mem2reg -simplifycfg -instcombine -simplifycfg -gvn -loop-versioning -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149255,70.60110306739807,opt -newgvn -gvn -mem2reg -loop-versioning -break-crit-edges -simplifycfg -instcombine -early-cse-memssa -gvn-hoist -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149256,70.64553189277649,opt -loop-reduce -newgvn -instcombine -simplifycfg -newgvn -instsimplify -sroa -instsimplify -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/susan,0.9856667519836191,961.8385396003723,opt -simplifycfg -simplifycfg -loop-reduce -sroa -gvn -simplifycfg -gvn -early-cse-memssa -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9861786536984899,941.5433819293976,opt -jump-threading -break-crit-edges -gvn -instcombine -gvn-hoist -jump-threading -simplifycfg -mem2reg -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9883542359866905,937.3725821971893,opt -loop-reduce -gvn -mem2reg -simplifycfg -early-cse-memssa -loop-versioning -instcombine -newgvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/susan,0.9887381622728435,975.2963137626648,opt -gvn -instcombine -jump-threading -loop-versioning -simplifycfg -sroa -gvn-hoist -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9887381622728437,832.9838500022888,opt -newgvn -sroa -early-cse-memssa -instcombine -simplifycfg -gvn-hoist -sroa -instcombine -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/susan,0.9897619657025851,975.0349853038788,opt -sroa -instcombine -simplifycfg -instcombine -loop-versioning -gvn -early-cse-memssa -simplifycfg -gvn-hoist -instsimplify input.bc -o output.bc +benchmark://cBench-v1/susan,0.9911696954184798,779.3270103931427,opt -sroa -early-cse-memssa -sroa -newgvn -instcombine -jump-threading -simplifycfg -instsimplify -gvn-hoist -newgvn input.bc -o output.bc +benchmark://cBench-v1/susan,0.9914256462759151,1003.4344532489777,opt -mem2reg -gvn -newgvn -jump-threading -instcombine -gvn-hoist -simplifycfg -instsimplify -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/susan,0.9914256462759151,967.0993828773499,opt -loop-reduce -sroa -newgvn -jump-threading -instcombine -gvn-hoist -simplifycfg -gvn -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9921934988482211,987.1292922496796,opt -sroa -instcombine -instcombine -jump-threading -gvn -instsimplify -early-cse-memssa -gvn-hoist -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,0.9823775923206418,3749.499545097351,opt -instcombine -sroa -gvn -jump-threading -gvn-hoist -early-cse-memssa -simplifycfg -gvn-hoist -gvn -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0063397686163544,3430.954901456833,opt -instcombine -mem2reg -jump-threading -newgvn -instsimplify -sroa -newgvn -early-cse-memssa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.010315555714746,3525.198902130127,opt -instcombine -instcombine -sroa -newgvn -newgvn -simplifycfg -instcombine -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.032343565313944,3193.025505542755,opt -sroa -early-cse-memssa -instsimplify -gvn -instcombine -gvn-hoist -gvn -mem2reg -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0326301085282426,3331.962285041809,opt -mem2reg -gvn -early-cse-memssa -gvn-hoist -gvn -instcombine -break-crit-edges -simplifycfg -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0345642752247572,3127.59548330307,opt -early-cse-memssa -sroa -mem2reg -jump-threading -instcombine -early-cse-memssa -jump-threading -early-cse-memssa -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.036570077724847,3175.264906644821,opt -mem2reg -mem2reg -newgvn -gvn -gvn-hoist -jump-threading -instcombine -gvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0388266055374478,3790.175055742264,opt -gvn-hoist -simplifycfg -instsimplify -sroa -newgvn -early-cse-memssa -instcombine -sroa -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0400085962964287,3050.349385023117,opt -sroa -early-cse-memssa -instsimplify -loop-versioning -simplifycfg -instcombine -early-cse-memssa -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0429098463412012,2966.839874982834,opt -mem2reg -sroa -newgvn -early-cse-memssa -mem2reg -simplifycfg -instcombine -gvn-hoist -early-cse-memssa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0269998563837428,3602.4380342960358,opt -jump-threading -gvn -jump-threading -instcombine -sroa -sroa -newgvn -simplifycfg -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.027502513284504,4195.25777888298,opt -gvn-hoist -gvn -instsimplify -jump-threading -instsimplify -newgvn -sroa -instcombine -simplifycfg -gvn input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0306979750107712,4006.820843935013,opt -gvn -sroa -simplifycfg -gvn -sroa -instcombine -instcombine -jump-threading -loop-versioning -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.030985207525492,3831.5241193771362,opt -gvn -instsimplify -mem2reg -mem2reg -simplifycfg -newgvn -instcombine -gvn -instsimplify -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.033139451385897,3442.1031107902527,opt -loop-reduce -early-cse-memssa -newgvn -sroa -gvn -simplifycfg -instcombine -newgvn -jump-threading -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0356527358897027,3166.1234831809998,opt -mem2reg -early-cse-memssa -instcombine -jump-threading -gvn-hoist -gvn -sroa -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0359040643400832,4034.3007423877716,opt -gvn -gvn -mem2reg -jump-threading -newgvn -instcombine -newgvn -simplifycfg -instcombine -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.037986500071808,3539.360670566559,opt -break-crit-edges -mem2reg -gvn -simplifycfg -newgvn -gvn-hoist -instcombine -gvn-hoist -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0426899325003591,3072.1950228214264,opt -sroa -jump-threading -instsimplify -newgvn -instsimplify -instcombine -simplifycfg -gvn-hoist -sroa -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.042725836564699,3639.898898601532,opt -newgvn -gvn-hoist -mem2reg -sroa -simplifycfg -sroa -instcombine -newgvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,0.9823024798154556,3990.1464223861694,opt -gvn-hoist -early-cse-memssa -loop-reduce -loop-reduce -newgvn -instcombine -newgvn -loop-reduce -sroa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.026996828143022,3382.62527179718,opt -loop-rotate -newgvn -break-crit-edges -mem2reg -mem2reg -simplifycfg -instcombine -sroa -newgvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0357194348327567,3842.586850166321,opt -gvn-hoist -instsimplify -jump-threading -instsimplify -newgvn -sroa -mem2reg -instcombine -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0374855824682814,3292.8163368701935,opt -sroa -gvn -jump-threading -simplifycfg -gvn-hoist -instsimplify -newgvn -jump-threading -instcombine -gvn input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0375576701268743,3415.0277378559113,opt -jump-threading -break-crit-edges -newgvn -newgvn -mem2reg -instcombine -instcombine -gvn-hoist -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0380622837370244,2991.644868373871,opt -mem2reg -jump-threading -gvn-hoist -loop-versioning -instcombine -early-cse-memssa -newgvn -jump-threading -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0430723760092275,3279.29589676857,opt -sroa -gvn-hoist -early-cse-memssa -simplifycfg -instcombine -newgvn -early-cse-memssa -jump-threading -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0431084198385236,3081.4465894699097,opt -sroa -gvn-hoist -simplifycfg -early-cse-memssa -jump-threading -newgvn -loop-versioning -instcombine -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.043468858131488,3159.4142520427704,opt -simplifycfg -newgvn -mem2reg -simplifycfg -newgvn -jump-threading -gvn-hoist -instcombine -mem2reg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0450187427912343,3618.663288831711,opt -gvn-hoist -sroa -simplifycfg -newgvn -early-cse-memssa -gvn-hoist -instcombine -jump-threading -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,0.9996584816092348,2966.7228016853333,opt -instsimplify -early-cse-memssa -simplifycfg -simplifycfg -instsimplify -jump-threading -simplifycfg -mem2reg -instcombine -gvn input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.024418564939722,4315.853096246719,opt -gvn -break-crit-edges -simplifycfg -newgvn -instcombine -sroa -newgvn -gvn -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0271165602267682,4476.110491991043,opt -gvn -newgvn -newgvn -sroa -instsimplify -gvn -instsimplify -simplifycfg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.028516785628906,3370.1096284389496,opt -early-cse-memssa -sroa -gvn-hoist -gvn -jump-threading -instsimplify -gvn-hoist -instcombine -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0287558485024417,4025.7619664669037,opt -gvn -early-cse-memssa -sroa -early-cse-memssa -gvn-hoist -instcombine -newgvn -gvn-hoist -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0350397868925243,3819.811809539795,opt -newgvn -simplifycfg -sroa -gvn -gvn -newgvn -instcombine -gvn-hoist -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.036542467811892,3530.0417647361755,opt -sroa -simplifycfg -gvn -instcombine -newgvn -gvn-hoist -simplifycfg -early-cse-memssa -instcombine -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0379426932140297,2751.070923089981,opt -mem2reg -simplifycfg -gvn-hoist -instcombine -newgvn -instcombine -simplifycfg -loop-versioning -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.03872818551279,3190.8309218883514,opt -sroa -sroa -early-cse-memssa -simplifycfg -newgvn -instcombine -gvn-hoist -gvn-hoist -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0408455995355352,3218.099961042404,opt -simplifycfg -mem2reg -newgvn -simplifycfg -instcombine -gvn-hoist -sroa -simplifycfg -simplifycfg -early-cse-memssa input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/tabular_q/results-H5-N2000.csv b/leaderboard/llvm_instcount/tabular_q/results-H5-N2000.csv new file mode 100644 index 000000000..62917db52 --- /dev/null +++ b/leaderboard/llvm_instcount/tabular_q/results-H5-N2000.csv @@ -0,0 +1,231 @@ +benchmark,reward,walltime,commandline +benchmark://cBench-v1/adpcm,0.9162011173184358,20.7006676197052,opt -early-cse-memssa -gvn -newgvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9581005586592178,17.297852993011475,opt -sroa -newgvn -early-cse-memssa -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9581005586592178,18.335320711135864,opt -sroa -newgvn -jump-threading -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.958100558659218,18.65507435798645,opt -newgvn -simplifycfg -gvn-hoist -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.963687150837989,15.923527479171753,opt -sroa -jump-threading -mem2reg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9664804469273743,15.886942863464355,opt -sroa -loop-reduce -simplifycfg -instsimplify -gvn input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9692737430167598,16.275184392929077,opt -newgvn -simplifycfg -mem2reg -simplifycfg -jump-threading input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9720670391061452,17.349804639816284,opt -gvn -instcombine -simplifycfg -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9720670391061453,15.02190613746643,opt -sroa -early-cse-memssa -mem2reg -simplifycfg -jump-threading input.bc -o output.bc +benchmark://cBench-v1/adpcm,0.9720670391061453,15.394291400909424,opt -mem2reg -simplifycfg -mem2reg -early-cse-memssa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9048672566371682,21.443850994110107,opt -instcombine -break-crit-edges -early-cse-memssa -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9115044247787609,21.218472719192505,opt -break-crit-edges -newgvn -instcombine -jump-threading -mem2reg input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.920353982300885,23.495495319366455,opt -reg2mem -newgvn -mem2reg -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9491150442477876,24.241315841674805,opt -newgvn -sroa -newgvn -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9756637168141594,20.606653451919556,opt -loop-reduce -simplifycfg -gvn -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.9933628318584069,21.50115156173706,opt -gvn -sroa -instcombine -loop-versioning -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bitcount,0.993362831858407,21.865561723709106,opt -instsimplify -gvn -mem2reg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bitcount,1.0,21.536291122436523,opt -sroa -simplifycfg -early-cse-memssa -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bitcount,1.0,22.720306634902954,opt -sroa -newgvn -instcombine -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bitcount,1.0,22.913798570632935,opt -sroa -early-cse-memssa -instcombine -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9211195928753181,66.96333575248718,opt -early-cse-memssa -gvn -jump-threading -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9221374045801527,58.51204967498779,opt -newgvn -loop-reduce -sroa -instsimplify -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9277353689567429,45.78695487976074,opt -early-cse-memssa -mem2reg -jump-threading -instsimplify -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9389312977099237,60.381531715393066,opt -newgvn -mem2reg -jump-threading -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9424936386768447,52.77226138114929,opt -mem2reg -newgvn -jump-threading -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9465648854961833,53.35361289978027,opt -early-cse-memssa -sroa -jump-threading -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9536895674300254,67.62577414512634,opt -gvn -loop-rotate -mem2reg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9608142493638677,56.0164213180542,opt -simplifycfg -mem2reg -simplifycfg -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9750636132315522,55.400070667266846,opt -newgvn -mem2reg -newgvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/blowfish,0.9760814249363867,65.68105959892273,opt -sroa -instcombine -gvn -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.0189032963599436,506.44961738586426,opt -newgvn -early-cse-memssa -instcombine -newgvn -mem2reg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.0276519293860336,611.3136870861053,opt -instsimplify -simplifycfg -gvn -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.0346820809248554,591.6126170158386,opt -newgvn -gvn -instsimplify -mem2reg -newgvn input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.0417122324636776,460.1723909378052,opt -newgvn -jump-threading -instcombine -early-cse-memssa -sroa input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1100609279800029,516.1596391201019,opt -simplifycfg -instcombine -newgvn -sroa -newgvn input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1129511013904076,434.5198450088501,opt -break-crit-edges -sroa -loop-versioning -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1183408842368379,483.26005363464355,opt -early-cse-memssa -instcombine -sroa -gvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.124277456647399,408.8252160549164,opt -sroa -instsimplify -early-cse-memssa -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1532573035463207,468.97788882255554,opt -mem2reg -newgvn -instcombine -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/bzip2,1.1627870645211686,439.3595087528229,opt -mem2reg -early-cse-memssa -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/crc32,0.9921875,12.135392427444458,opt -sroa -gvn-hoist -jump-threading -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,0.9921875,12.39504885673523,opt -sroa -jump-threading -gvn-hoist -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,0.9921875,12.477880477905273,opt -sroa -gvn-hoist -gvn-hoist -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,0.9921875,13.834699153900146,opt -loop-reduce -gvn-hoist -newgvn -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,12.38622784614563,opt -jump-threading -sroa -gvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,12.388296604156494,opt -sroa -gvn -simplifycfg -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,12.750110149383545,opt -gvn -mem2reg -mem2reg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,12.753491163253784,opt -gvn -instcombine -jump-threading -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,12.77761960029602,opt -gvn -instcombine -newgvn -simplifycfg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/crc32,1.0,13.197687149047852,opt -gvn -gvn-hoist -instcombine -loop-versioning -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.8469387755102041,16.42105269432068,opt -loop-versioning -loop-reduce -early-cse-memssa -mem2reg -gvn input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.8928571428571428,16.77515435218811,opt -loop-versioning -gvn -sroa -loop-versioning -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9132653061224489,17.91624164581299,opt -mem2reg -gvn -gvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9183673469387755,15.950319051742554,opt -loop-reduce -sroa -simplifycfg -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9285714285714286,17.177513360977173,opt -instsimplify -sroa -newgvn -simplifycfg -gvn-hoist input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9438775510204083,17.411330938339233,opt -newgvn -simplifycfg -loop-reduce -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9489795918367346,18.498791217803955,opt -gvn -loop-reduce -instsimplify -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9489795918367347,18.632559776306152,opt -early-cse-memssa -sroa -jump-threading -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9642857142857142,18.02121114730835,opt -gvn -instcombine -simplifycfg -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/dijkstra,0.9693877551020409,17.388418436050415,opt -loop-versioning -newgvn -mem2reg -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.8590798227133253,7305.7554297447205,opt -gvn-hoist -instsimplify -loop-reduce -sroa -newgvn input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9160030072295898,8907.75801038742,opt -gvn-hoist -newgvn -instcombine -simplifycfg -mem2reg input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9359870968869928,8394.222642183304,opt -instcombine -newgvn -instcombine -sroa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9374120341635268,7752.1388874053955,opt -newgvn -instcombine -mem2reg -early-cse-memssa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9616315968913638,7042.417202949524,opt -newgvn -loop-versioning -instcombine -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9788357475675534,5539.23605632782,opt -mem2reg -early-cse-memssa -mem2reg -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9798716682256472,6584.19566488266,opt -sroa -loop-reduce -jump-threading -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.9828788978153875,6546.569329023361,opt -simplifycfg -newgvn -sroa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/ghostscript,0.998977192261629,6707.736433982849,opt -sroa -instcombine -simplifycfg -newgvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/ghostscript,1.0015866632864474,6481.519812345505,opt -jump-threading -sroa -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.8212151394422311,169.0888330936432,opt -early-cse-memssa -break-crit-edges -mem2reg -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.865288844621514,208.40022921562195,opt -instcombine -mem2reg -loop-rotate -early-cse-memssa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/gsm,0.8721364541832669,175.46982860565186,opt -early-cse-memssa -jump-threading -break-crit-edges -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.8913097609561753,213.2639627456665,opt -newgvn -newgvn -mem2reg -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.8930527888446215,204.30867552757263,opt -newgvn -loop-rotate -mem2reg -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.8964143426294822,178.84758162498474,opt -loop-versioning -loop-reduce -sroa -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.9173306772908367,200.24446320533752,opt -early-cse-memssa -jump-threading -mem2reg -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/gsm,0.9519422310756972,208.12021613121033,opt -instcombine -jump-threading -sroa -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/gsm,0.9808266932270916,197.38547897338867,opt -mem2reg -instcombine -gvn -simplifycfg -sroa input.bc -o output.bc +benchmark://cBench-v1/gsm,0.9951444223107571,213.1402907371521,opt -newgvn -sroa -instcombine -simplifycfg -gvn input.bc -o output.bc +benchmark://cBench-v1/ispell,0.8727656579873329,343.19073271751404,opt -early-cse-memssa -sroa -newgvn -gvn -jump-threading input.bc -o output.bc +benchmark://cBench-v1/ispell,0.8916256157635468,306.9970192909241,opt -gvn-hoist -newgvn -sroa -sroa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/ispell,0.8983814215341308,208.17792129516602,opt -loop-reduce -sroa -early-cse-memssa -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9183673469387754,267.9107894897461,opt -early-cse-memssa -jump-threading -newgvn -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9194933145672062,348.0915174484253,opt -gvn-hoist -gvn -mem2reg -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9339901477832512,240.79181241989136,opt -early-cse-memssa -mem2reg -instsimplify -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/ispell,0.95045742434905,265.32591462135315,opt -newgvn -mem2reg -jump-threading -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9642505277973257,241.44359374046326,opt -sroa -early-cse-memssa -gvn-hoist -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9790288529204785,262.0323996543884,opt -mem2reg -gvn -simplifycfg -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/ispell,0.9808585503166783,253.2433352470398,opt -newgvn -sroa -simplifycfg -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,0.9396410081532691,986.1076436042786,opt -instcombine -newgvn -simplifycfg -mem2reg -sroa input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,0.9477942772111481,1104.0241205692291,opt -reg2mem -gvn -instcombine -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,0.98037635241963,780.8405973911285,opt -mem2reg -gvn-hoist -instsimplify -instcombine -gvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,0.9844064854140187,695.512542963028,opt -simplifycfg -sroa -jump-threading -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,0.98474749666739,780.6597557067871,opt -instsimplify -mem2reg -early-cse-memssa -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,0.9924357503797625,1002.2689995765686,opt -gvn -mem2reg -sroa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0035961186719162,706.0171072483063,opt -loop-versioning -mem2reg -early-cse-memssa -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0184146076820535,759.4841728210449,opt -mem2reg -gvn -instsimplify -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0205536782713829,765.5858814716339,opt -mem2reg -gvn -jump-threading -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-c,1.0261338624174599,814.5025043487549,opt -sroa -newgvn -gvn-hoist -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,0.8548890820696093,1106.219302892685,opt -instcombine -instcombine -mem2reg -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,0.9591422776006956,983.0486352443695,opt -early-cse-memssa -newgvn -instcombine -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,0.9595286390418236,926.9824819564819,opt -simplifycfg -instcombine -mem2reg -sroa -newgvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,0.9623941530635242,1019.8296360969543,opt -newgvn -simplifycfg -instcombine -newgvn -mem2reg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,0.9786857271644289,826.6937079429626,opt -early-cse-memssa -break-crit-edges -simplifycfg -sroa -newgvn input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,0.9806175343700698,952.4904658794403,opt -gvn-hoist -mem2reg -gvn-hoist -jump-threading -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0063749637786148,1060.9550540447235,opt -newgvn -newgvn -simplifycfg -mem2reg -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0218616182105027,740.6848866939545,opt -sroa -instcombine -early-cse-memssa -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.022119192504588,803.4249346256256,opt -sroa -gvn -early-cse-memssa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/jpeg-d,1.0221513892913487,876.8247578144073,opt -sroa -gvn -jump-threading -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,0.8704926744097776,1207.56032705307,opt -instcombine -gvn -loop-versioning -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/lame,0.8918241858346618,1060.8467359542847,opt -instcombine -early-cse-memssa -instcombine -newgvn -sroa input.bc -o output.bc +benchmark://cBench-v1/lame,0.9065512791315571,1148.7082738876343,opt -loop-versioning -gvn -gvn-hoist -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,0.9089045775449784,978.4755280017853,opt -instcombine -loop-rotate -sroa -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/lame,0.9866772944659531,800.0693929195404,opt -early-cse-memssa -jump-threading -sroa -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,0.993889015410309,1098.1489617824554,opt -gvn -jump-threading -mem2reg -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,0.9961664009716846,818.2029616832733,opt -loop-reduce -sroa -newgvn -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,1.0058832460335534,1242.1754767894745,opt -gvn -newgvn -instcombine -simplifycfg -mem2reg input.bc -o output.bc +benchmark://cBench-v1/lame,1.0264176725119563,789.8268949985504,opt -early-cse-memssa -mem2reg -instcombine -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/lame,1.0401199423062324,861.6637892723083,opt -sroa -instcombine -gvn -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/patricia,0.6651835372636261,38.95438098907471,opt -jump-threading -instcombine -early-cse-memssa -sroa -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/patricia,0.7085650723025584,32.50617551803589,opt -loop-reduce -early-cse-memssa -jump-threading -newgvn -mem2reg input.bc -o output.bc +benchmark://cBench-v1/patricia,0.746384872080089,37.7064483165741,opt -instsimplify -early-cse-memssa -newgvn -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/patricia,0.7508342602892102,38.774662494659424,opt -sroa -early-cse-memssa -early-cse-memssa -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9010011123470523,33.67034387588501,opt -simplifycfg -mem2reg -loop-reduce -instcombine -gvn input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9165739710789766,29.46782422065735,opt -mem2reg -simplifycfg -simplifycfg -instcombine -gvn input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9276974416017798,36.06371855735779,opt -early-cse-memssa -mem2reg -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9288097886540602,34.96575975418091,opt -mem2reg -gvn -simplifycfg -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9632925472747498,36.296059131622314,opt -simplifycfg -gvn -simplifycfg -mem2reg -newgvn input.bc -o output.bc +benchmark://cBench-v1/patricia,0.9699666295884316,30.342700958251953,opt -mem2reg -simplifycfg -early-cse-memssa -simplifycfg -instsimplify input.bc -o output.bc +benchmark://cBench-v1/qsort,1.0371517027863777,24.007299423217773,opt -loop-versioning -newgvn -newgvn -gvn -sroa input.bc -o output.bc +benchmark://cBench-v1/qsort,1.061919504643963,26.209909200668335,opt -jump-threading -newgvn -instcombine -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.061919504643963,26.27937889099121,opt -early-cse-memssa -newgvn -instcombine -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.0681114551083593,24.640369176864624,opt -gvn -sroa -jump-threading -loop-versioning -newgvn input.bc -o output.bc +benchmark://cBench-v1/qsort,1.089783281733746,24.575623512268066,opt -instsimplify -gvn -newgvn -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.105263157894737,21.495224952697754,opt -mem2reg -early-cse-memssa -gvn -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.105263157894737,25.563459634780884,opt -newgvn -loop-versioning -sroa -instsimplify -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1207430340557276,24.669065475463867,opt -sroa -loop-versioning -instcombine -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1207430340557276,25.660110473632812,opt -newgvn -early-cse-memssa -sroa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/qsort,1.1207430340557276,26.18289589881897,opt -sroa -simplifycfg -gvn -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,0.9551552318896128,150.56142663955688,opt -early-cse-memssa -simplifycfg -gvn-hoist -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0532771176696052,162.30105829238892,opt -simplifycfg -gvn -newgvn -mem2reg -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0758911460329628,114.92220687866211,opt -newgvn -instsimplify -mem2reg -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.080107320812572,167.40569400787354,opt -gvn -simplifycfg -loop-rotate -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0831736297431966,136.8446969985962,opt -mem2reg -sroa -early-cse-memssa -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0877730931391338,115.83492469787598,opt -jump-threading -mem2reg -newgvn -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0931391337677272,106.79002737998962,opt -instsimplify -instcombine -sroa -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0954388654656957,167.8545172214508,opt -gvn -mem2reg -sroa -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.0985051743963203,138.74782538414001,opt -sroa -simplifycfg -gvn-hoist -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/rijndael,1.1034879264085857,124.68664073944092,opt -newgvn -sroa -simplifycfg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/sha,1.3879598662207357,33.540475606918335,opt -instcombine -gvn -newgvn -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/sha,1.4180602006688963,27.555041551589966,opt -instcombine -simplifycfg -gvn -mem2reg -sroa input.bc -o output.bc +benchmark://cBench-v1/sha,1.4247491638795984,27.469563722610474,opt -jump-threading -sroa -early-cse-memssa -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/sha,1.434782608695652,24.289857387542725,opt -sroa -jump-threading -newgvn -loop-versioning -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/sha,1.434782608695652,28.704103469848633,opt -newgvn -sroa -gvn-hoist -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/sha,1.4381270903010033,29.547996520996094,opt -newgvn -instcombine -sroa -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/sha,1.4414715719063547,28.447511434555054,opt -gvn -gvn -simplifycfg -instcombine -mem2reg input.bc -o output.bc +benchmark://cBench-v1/sha,1.4615384615384612,25.315016269683838,opt -newgvn -mem2reg -gvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/sha,1.4615384615384615,23.934131383895874,opt -sroa -gvn -sroa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/sha,1.4615384615384615,24.289858102798462,opt -mem2reg -newgvn -gvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9125683060109289,35.18286061286926,opt -sroa -instsimplify -gvn -loop-versioning -jump-threading input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.930327868852459,46.28186631202698,opt -instcombine -sroa -gvn-hoist -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9357923497267759,38.95826196670532,opt -early-cse-memssa -gvn-hoist -sroa -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9385245901639343,33.634284257888794,opt -mem2reg -gvn -jump-threading -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.948087431693989,34.09591245651245,opt -simplifycfg -mem2reg -newgvn -sroa -jump-threading input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9508196721311476,38.10904359817505,opt -jump-threading -sroa -simplifycfg -early-cse-memssa -newgvn input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9535519125683061,35.37439775466919,opt -mem2reg -instcombine -early-cse-memssa -jump-threading -newgvn input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9535519125683061,36.44464993476868,opt -early-cse-memssa -mem2reg -jump-threading -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9658469945355191,37.112871170043945,opt -sroa -newgvn -instcombine -mem2reg -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch,0.9672131147540983,41.395766258239746,opt -newgvn -loop-reduce -sroa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9440298507462686,19.493280172348022,opt -sroa -early-cse-memssa -instsimplify -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9440298507462686,21.35170030593872,opt -early-cse-memssa -sroa -early-cse-memssa -jump-threading -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9440298507462687,20.20559811592102,opt -break-crit-edges -sroa -mem2reg -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9477611940298507,24.747708320617676,opt -newgvn -newgvn -mem2reg -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.955223880597015,24.049656867980957,opt -newgvn -newgvn -instcombine -sroa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9701492537313432,18.949564218521118,opt -mem2reg -simplifycfg -gvn -loop-versioning -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9701492537313432,20.502401113510132,opt -early-cse-memssa -sroa -simplifycfg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9701492537313433,20.80332636833191,opt -sroa -sroa -early-cse-memssa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149252,21.823434114456177,opt -sroa -simplifycfg -instcombine -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/stringsearch2,0.9738805970149255,21.288577556610107,opt -mem2reg -gvn -simplifycfg -mem2reg -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.8814947530074224,299.9667785167694,opt -reg2mem -gvn -newgvn -mem2reg -newgvn input.bc -o output.bc +benchmark://cBench-v1/susan,0.899667263885334,223.4077410697937,opt -newgvn -instsimplify -sroa -instsimplify -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/susan,0.9163040696186332,351.48436188697815,opt -sroa -loop-reduce -instcombine -gvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/susan,0.9193754799078576,302.96518993377686,opt -jump-threading -gvn -newgvn -sroa -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9198873816227284,247.49678754806519,opt -newgvn -early-cse-memssa -instcombine -simplifycfg -sroa input.bc -o output.bc +benchmark://cBench-v1/susan,0.9316611210647555,281.5146358013153,opt -newgvn -mem2reg -mem2reg -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9773483491169696,223.83509993553162,opt -mem2reg -loop-versioning -early-cse-memssa -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/susan,0.9788840542615816,227.2367401123047,opt -mem2reg -loop-rotate -newgvn -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9799078576913233,235.4517364501953,opt -sroa -newgvn -jump-threading -gvn-hoist -instcombine input.bc -o output.bc +benchmark://cBench-v1/susan,0.9846429485538776,321.25112891197205,opt -sroa -gvn -simplifycfg -early-cse-memssa -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,0.8496364482968587,1085.0280344486237,opt -instcombine -early-cse-memssa -jump-threading -mem2reg -sroa input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,0.8502811705290304,1041.4899072647095,opt -instsimplify -jump-threading -instcombine -early-cse-memssa -sroa input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,0.8770013252623661,1371.1201612949371,opt -gvn -gvn-hoist -instcombine -instsimplify -mem2reg input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,0.9953078548658618,1003.0495076179504,opt -mem2reg -sroa -early-cse-memssa -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,0.9960600308033954,1168.238203048706,opt -early-cse-memssa -gvn -sroa -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.000680540133959,938.4663310050964,opt -instsimplify -sroa -simplifycfg -mem2reg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0083813890182314,1055.8959946632385,opt -sroa -gvn -loop-versioning -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.012464629821985,1472.0116050243378,opt -gvn-hoist -mem2reg -gvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0229950929474552,946.9063255786896,opt -mem2reg -gvn -early-cse-memssa -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2bw,1.0262545220101005,905.3037221431732,opt -sroa -early-cse-memssa -jump-threading -simplifycfg -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,0.9600387763894873,1176.036274433136,opt -instcombine -simplifycfg -gvn-hoist -sroa -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,0.9820838718942985,1026.7745895385742,opt -instcombine -sroa -early-cse-memssa -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,0.9841663076260232,1126.9321999549866,opt -newgvn -mem2reg -gvn -gvn-hoist -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,0.9964454976303319,1268.4253842830658,opt -gvn -sroa -instsimplify -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,0.9972353870458136,1231.7909007072449,opt -newgvn -gvn-hoist -mem2reg -instcombine -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0082579347982192,864.9466414451599,opt -break-crit-edges -mem2reg -jump-threading -instcombine -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0088323998276605,1122.0141212940216,opt -newgvn -mem2reg -gvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0267844319977022,987.1709635257721,opt -sroa -early-cse-memssa -jump-threading -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.029656757144909,975.9156556129456,opt -sroa -instcombine -loop-versioning -newgvn -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiff2rgba,1.0339293408013788,983.8013422489166,opt -sroa -newgvn -jump-threading -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,0.9347606689734718,949.0188481807709,opt -loop-rotate -newgvn -simplifycfg -early-cse-memssa -mem2reg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,0.9429786620530565,1334.1701338291168,opt -gvn -jump-threading -simplifycfg -instcombine -sroa input.bc -o output.bc +benchmark://cBench-v1/tiffdither,0.9589100346020761,1186.5059294700623,opt -gvn-hoist -newgvn -jump-threading -mem2reg -jump-threading input.bc -o output.bc +benchmark://cBench-v1/tiffdither,0.9886101499423298,1140.6224098205566,opt -instcombine -sroa -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffdither,0.9911692618223761,837.0975668430328,opt -break-crit-edges -sroa -sroa -simplifycfg -gvn input.bc -o output.bc +benchmark://cBench-v1/tiffdither,0.9946294694348327,1101.412239074707,opt -newgvn -sroa -gvn -gvn-hoist -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.01784169550173,1105.1730918884277,opt -mem2reg -loop-reduce -newgvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.01834630911188,1067.7296125888824,opt -newgvn -sroa -jump-threading -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0280781430219148,849.4251053333282,opt -sroa -jump-threading -early-cse-memssa -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffdither,1.0317546136101499,920.8428294658661,opt -jump-threading -mem2reg -simplifycfg -newgvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,0.9338137358696768,1638.8233025074005,opt -gvn -instcombine -mem2reg -instcombine -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,0.9905399405758001,911.3355669975281,opt -break-crit-edges -early-cse-memssa -mem2reg -simplifycfg -early-cse-memssa input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,0.9945357057477544,1113.789160490036,opt -mem2reg -gvn-hoist -gvn -early-cse-memssa -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,0.999487722413852,1138.8433756828308,opt -early-cse-memssa -simplifycfg -sroa -simplifycfg -newgvn input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0069328233325365,1256.4066178798676,opt -newgvn -sroa -gvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0076841637922203,990.8356461524963,opt -early-cse-memssa -sroa -jump-threading -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0222328472388238,1264.415761232376,opt -newgvn -mem2reg -simplifycfg -gvn -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0226768211468187,1361.323234319687,opt -sroa -gvn -newgvn -instcombine -simplifycfg input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0233940097674261,1085.0651605129242,opt -simplifycfg -sroa -newgvn -jump-threading -instcombine input.bc -o output.bc +benchmark://cBench-v1/tiffmedian,1.0241453502271098,1216.8832230567932,opt -mem2reg -newgvn -gvn -simplifycfg -instcombine input.bc -o output.bc diff --git a/leaderboard/llvm_instcount/tabular_q/tabular_q_eval.py b/leaderboard/llvm_instcount/tabular_q/tabular_q_eval.py new file mode 100644 index 000000000..3645fb7e1 --- /dev/null +++ b/leaderboard/llvm_instcount/tabular_q/tabular_q_eval.py @@ -0,0 +1,38 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Evaluate tabular_q policy for leaderboard.""" +import os +import sys +from typing import Dict + +from absl import app, flags + +from compiler_gym.envs import LlvmEnv +from compiler_gym.leaderboard.llvm_instcount import eval_llvm_instcount_policy + +sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)) + "/../../../examples") +from tabular_q import ( # noqa pylint: disable=wrong-import-position + StateActionTuple, + rollout, + train, +) + +FLAGS = flags.FLAGS + + +def train_and_run(env: LlvmEnv) -> None: + """ Run tabular Q learning on an environment """ + FLAGS.log_every = 0 # Disable printing to stdout + + q_table: Dict[StateActionTuple, float] = {} + env.observation_space = "Autophase" + training_env = env.fork() + train(q_table, training_env) + training_env.close() + rollout(q_table, env, printout=False) + + +if __name__ == "__main__": + app.run(eval_llvm_instcount_policy(train_and_run)) diff --git a/leaderboard/llvm_instcount/tabular_q/tabular_q_test.py b/leaderboard/llvm_instcount/tabular_q/tabular_q_test.py new file mode 100644 index 000000000..1f965cba0 --- /dev/null +++ b/leaderboard/llvm_instcount/tabular_q/tabular_q_test.py @@ -0,0 +1,34 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for //leaderboard/llvm_instcount/tabular_q_eval.""" +import pytest +from absl import flags + +from compiler_gym.leaderboard.llvm_instcount import eval_llvm_instcount_policy +from leaderboard.llvm_instcount.tabular_q.tabular_q_eval import train_and_run +from tests.test_main import main as _test_main + +FLAGS = flags.FLAGS + +pytest_plugins = ["tests.pytest_plugins.llvm"] + + +def test_tabular_q(): + FLAGS.unparse_flags() + FLAGS( + [ + "argv0", + "--n=1", + "--max_benchmarks=1", + "--nproc=1", + "--novalidate", + ] + ) + with pytest.raises(SystemExit): + eval_llvm_instcount_policy(train_and_run) + + +if __name__ == "__main__": + _test_main() diff --git a/leaderboard/requirements.txt b/leaderboard/requirements.txt deleted file mode 100644 index 373eb650c..000000000 --- a/leaderboard/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -GPUtil>=1.4.0 -psutil>=5.8.0 -py-cpuinfo>=7.0.0 -tqdm>=4.55.0 diff --git a/requirements.txt b/requirements.txt index b97c5aff2..b6a31f89c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,5 @@ -r compiler_gym/requirements.txt -r docs/requirements.txt -r examples/requirements.txt --r leaderboard/requirements.txt -r requirements_pre_commit.txt -r tests/requirements.txt diff --git a/setup.py b/setup.py index d9d7402d0..d361a6a57 100644 --- a/setup.py +++ b/setup.py @@ -50,9 +50,12 @@ def get_tag(self): packages=[ "compiler_gym.bin", "compiler_gym.datasets", + "compiler_gym.envs.llvm.datasets", "compiler_gym.envs.llvm.service.passes", "compiler_gym.envs.llvm.service", "compiler_gym.envs.llvm", + "compiler_gym.envs.llvm", + "compiler_gym.envs", "compiler_gym.envs", "compiler_gym.leaderboard", "compiler_gym.service.proto", @@ -72,13 +75,12 @@ def get_tag(self): }, package_data={ "compiler_gym": [ - "envs/llvm/service/passes/*.txt", "envs/llvm/service/compiler_gym-llvm-service", "envs/llvm/service/libLLVMPolly.so", + "envs/llvm/service/passes/*.txt", + "third_party/cbench/benchmarks.txt", + "third_party/cbench/cbench-v*/*", "third_party/inst2vec/*.pickle", - "third_party/cBench/benchmarks.txt", - "third_party/cBench/cBench-v*/*", - "third_party/cBench/runtime_data/**/*", ] }, install_requires=requirements, diff --git a/tests/BUILD b/tests/BUILD index 563ce1c78..8a9356f3c 100644 --- a/tests/BUILD +++ b/tests/BUILD @@ -22,6 +22,7 @@ py_test( deps = [ "//compiler_gym", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) @@ -34,6 +35,7 @@ py_test( "//compiler_gym:random_replay", "//compiler_gym:random_search", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) @@ -42,12 +44,12 @@ py_library( testonly = 1, srcs = ["test_main.py"], visibility = [ + "//benchmarks:__subpackages__", "//examples:__subpackages__", "//leaderboard:__subpackages__", "//tests:__subpackages__", ], deps = [ - "//compiler_gym", "//compiler_gym/util", ], ) diff --git a/tests/benchmarks/__init__.py b/tests/benchmarks/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/benchmarks/bench_test.py b/tests/benchmarks/bench_test.py deleted file mode 100644 index 265b25a18..000000000 --- a/tests/benchmarks/bench_test.py +++ /dev/null @@ -1,101 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. -"""Microbenchmarks for CompilerGym environments. - -To run these benchmarks within bazel, compile with optimiztions and stream the -test output: - - $ bazel test -c opt --test_output=streamed //tests/benchmarks:bench_test - -A record of the benchmark results is stored in -/tmp/compiler_gym/benchmarks//_bench_test.json -Compare multiple runs using: - - $ pytest-benchmark compare --group-by=name --sort=fullname \ - /tests/benchmarks/*_bench_test.json -""" -# pylint: disable=redefined-outer-name -import gym -import pytest - -from compiler_gym.envs import CompilerEnv, LlvmEnv, llvm -from compiler_gym.service import CompilerGymServiceConnection -from tests.test_main import main - -pytest_plugins = ["tests.pytest_plugins.llvm"] - -# Redefine this fixture since running all of the benchmarks in cBench would -# take too long, but we do want to use at least one small and one large -# benchmark to see both per-invocation overhead and overhead that is a result -# of the size of the fixture. -# -# adpcm is small and jpeg-d is large. ghostscript is the largest but that -# one takes too long. -@pytest.fixture( - params=["cBench-v1/crc32", "cBench-v1/jpeg-d"], - ids=["fast_benchmark", "slow_benchmark"], -) -def benchmark_name(request) -> str: - yield request.param - - -@pytest.fixture(params=["cBench-v1/crc32"], ids=["fast_benchmark"]) -def fast_benchmark_name(request) -> str: - yield request.param - - -@pytest.fixture(params=["-globaldce", "-gvn"], ids=["fast_action", "slow_action"]) -def action_name(request) -> str: - yield request.param - - -def test_make_local(benchmark): - benchmark(lambda: gym.make("llvm-v0").close()) - - -def test_make_service(benchmark): - service = CompilerGymServiceConnection(llvm.LLVM_SERVICE_BINARY) - try: - benchmark(lambda: LlvmEnv(service=service.connection.url).close()) - finally: - service.close() - - -def test_reset(benchmark, env: CompilerEnv, benchmark_name): - benchmark(env.reset, benchmark_name) - - -def test_step(benchmark, env: CompilerEnv, benchmark_name, action_name): - env.reset(benchmark_name) - action = env.action_space.flags.index(action_name) - benchmark(env.step, action) - - -def test_observation( - benchmark, env: CompilerEnv, fast_benchmark_name, observation_space -): - env.reset(fast_benchmark_name) - benchmark(lambda: env.observation[observation_space]) - - -def test_reward(benchmark, env: CompilerEnv, benchmark_name, reward_space): - env.reset(benchmark_name) - benchmark(lambda: env.reward[reward_space]) - - -def test_fork(benchmark, env: CompilerEnv, benchmark_name): - env.reset(benchmark_name) - benchmark(lambda: env.fork().close()) - - -if __name__ == "__main__": - main( - extra_pytest_args=[ - "--benchmark-storage=/tmp/compiler_gym/benchmarks", - "--benchmark-save=bench_test", - "-x", - ], - debug_level=0, - ) diff --git a/tests/bin/BUILD b/tests/bin/BUILD index 574d1e155..55d053379 100644 --- a/tests/bin/BUILD +++ b/tests/bin/BUILD @@ -10,6 +10,7 @@ py_test( deps = [ "//compiler_gym/bin:datasets", "//tests:test_main", + "//tests/pytest_plugins:common", ], ) @@ -17,11 +18,11 @@ py_test( name = "manual_env_bin_test", timeout = "short", srcs = ["manual_env_bin_test.py"], + flaky = 1, deps = [ "//compiler_gym/bin:manual_env", "//compiler_gym/util", "//tests:test_main", - "//tests/pytest_plugins:llvm", ], ) @@ -39,6 +40,7 @@ py_test( name = "validate_bin_test", timeout = "long", srcs = ["validate_bin_test.py"], + shard_count = 4, deps = [ "//compiler_gym", "//compiler_gym/bin:validate", diff --git a/tests/bin/datasets_bin_test.py b/tests/bin/datasets_bin_test.py index b70001f8a..33d6cab8a 100644 --- a/tests/bin/datasets_bin_test.py +++ b/tests/bin/datasets_bin_test.py @@ -4,36 +4,30 @@ # LICENSE file in the root directory of this source tree. """End-to-end tests for //compiler_gym/bin:benchmarks.""" import pytest -from absl import flags from compiler_gym.bin.datasets import main +from compiler_gym.util.capture_output import capture_output +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main as _test_main -FLAGS = flags.FLAGS - def run_main(*args): - FLAGS.unparse_flags() - FLAGS(["argv"] + list(args)) + set_command_line_flags(["argv"] + list(args)) return main(["argv0"]) -def test_llvm_download_url_404(): - invalid_url = "https://facebook.com/not/a/valid/url" - with pytest.raises(OSError) as ctx: - run_main("--env=llvm-v0", "--download", invalid_url) - assert str( - ctx.value - ) == f"GET returned status code 404: {invalid_url}" or "Max retries exceeded with url" in str( - ctx.value - ) +def test_llvm_summary(): + with capture_output() as out: + run_main("--env=llvm-v0") + + assert "cbench-v1" in out.stdout -def test_llvm_download_invalid_protocol(): - invalid_url = "invalid://facebook.com" - with pytest.raises(OSError) as ctx: - run_main("--env=llvm-v0", "--download", invalid_url) - assert invalid_url in str(ctx.value) +def test_datasets_is_deprecated(): + with pytest.deprecated_call( + match="Command-line management of datasets is deprecated" + ): + run_main("--env=llvm-v0") if __name__ == "__main__": diff --git a/tests/bin/manual_env_bin_test.py b/tests/bin/manual_env_bin_test.py index 893fad1a2..a96a7dfec 100644 --- a/tests/bin/manual_env_bin_test.py +++ b/tests/bin/manual_env_bin_test.py @@ -18,8 +18,6 @@ FLAGS = flags.FLAGS -pytest_plugins = ["tests.pytest_plugins.llvm"] - def io_check(input, output, rnd_seed=100): """Run the shell with the given input and check the output matches the @@ -46,7 +44,7 @@ def io_check(input, output, rnd_seed=100): + output + r""" -compilergym:[a-zA-Z0-9/-]+> Exiting +compiler_gym:[a-zA-Z0-9/-]+> Exiting """ ) @@ -73,92 +71,71 @@ def io_check(input, output, rnd_seed=100): sys.stdin = old_stdin -def test_download_cBench(cBench_dataset): - del cBench_dataset # unused +def test_list_datasets(): io_check( - """require_dataset cBench-v1""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Downloaded dataset cBench-v[0-9]+ in [0-9.mu]*s""", + """list_datasets""", r"""compiler_gym:cbench-v1/qsort> .*cbench-v[0-9]+.*""" ) -def test_list_datasets(cBench_dataset): - del cBench_dataset # unused - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - io_check("""list_datasets""", r"""compilergym:.+> .*cBench-v[0-9]+.*""") - - -def test_list_benchmarks(cBench_dataset): - del cBench_dataset # unused - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - io_check("""list_benchmarks""", r"""compilergym:.+> .*cBench-v[0-9]+/adpcm.*""") +def test_list_benchmarks(): + io_check( + """list_benchmarks""", + r"""compiler_gym:cbench-v1/qsort> .*cbench-v[0-9]+/adpcm.*""", + ) def test_list_actions(): - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - io_check("""list_actions""", r"""compilergym:.+> .*-adce.* -strip.*""") + io_check( + """list_actions""", r"""compiler_gym:cbench-v1/qsort> .*-adce.* -strip.*""" + ) def test_list_rewards(): - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. io_check( """list_rewards""", - r"""compilergym:.+> .*IrInstructionCount.* ObjectTextSizeOz.*""", + r"""compiler_gym:cbench-v1/qsort> .*IrInstructionCount.* ObjectTextSizeOz.*""", ) def test_list_observations(): - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. io_check( """list_observations""", - r"""compilergym:.+> Autophase, .*, Programl""", + r"""compiler_gym:cbench-v1/qsort> Autophase, .*, Programl""", ) -def test_set_benchmark(cBench_dataset): - del cBench_dataset # unused - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. +def test_set_benchmark(): io_check( - """set_benchmark cBench-v1/adpcm""", - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s""", + """set_benchmark cbench-v1/adpcm""", + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s""", ) -def test_actions_stack_back_stack(cBench_dataset): - del cBench_dataset # unused - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. +def test_actions_stack_back_stack(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm action -mem2reg -adce -adce stack back stack""", - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action -mem2reg +compiler_gym:cbench-v[0-9]+/adpcm> Action -mem2reg Action -adce Action -adce No effect Actions -mem2reg -adce -adce in [0-9.mu]*s with reward 0. -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 3 | -adce | False | False | - | 0 2 | -adce | True | False | - | 0 1 | -mem2reg | True | False | - | 0 0 | | False | False | 0 | 0 -compilergym:cBench-v[0-9]+/adpcm> Undid -adce in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Undid -adce in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 2 | -adce | True | False | - | 0 1 | -mem2reg | True | False | - | 0 @@ -166,32 +143,29 @@ def test_actions_stack_back_stack(cBench_dataset): ) -def test_reward(cBench_dataset): - del cBench_dataset # unused +def test_reward(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm set_default_reward IrInstructionCount action -mem2reg reward reward IrInstructionCountNorm stack""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action -mem2reg +compiler_gym:cbench-v[0-9]+/adpcm> Action -mem2reg Reward: 287.000000 Actions -mem2reg in [0-9.mu]*s with reward 287.0. -compilergym:cBench-v[0-9]+/adpcm> 0.000000 +compiler_gym:cbench-v[0-9]+/adpcm> 0.000000 Reward IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> 0.506173 +compiler_gym:cbench-v[0-9]+/adpcm> 0.506173 Reward IrInstructionCountNorm in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 1 | -mem2reg | True | False | 287 | 287 0 | | False | False | 0 | 0 @@ -199,49 +173,43 @@ def test_reward(cBench_dataset): ) -def test_observation(cBench_dataset): - del cBench_dataset # unused +def test_observation(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm set_default_observation IrInstructionCount action -mem2reg observation observation IrInstructionCountOz """, - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Observation IrInstructionCount in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Observation IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action -mem2reg +compiler_gym:cbench-v[0-9]+/adpcm> Action -mem2reg Observation: 280 Actions -mem2reg in [0-9.mu]*s with reward 0. -compilergym:cBench-v[0-9]+/adpcm> 280 +compiler_gym:cbench-v[0-9]+/adpcm> 280 Observation IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> 209 +compiler_gym:cbench-v[0-9]+/adpcm> 209 Observation IrInstructionCountOz in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> 209 +compiler_gym:cbench-v[0-9]+/adpcm> 209 Observation IrInstructionCountOz in [0-9.mu]*s""", ) -def test_try_all_actions(cBench_dataset): - del cBench_dataset # unused +def test_try_all_actions(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm set_default_reward IrInstructionCount try_all_actions""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action: -add-discriminators Reward: 0.000000 +compiler_gym:cbench-v[0-9]+/adpcm> Action: -add-discriminators Reward: 0.000000 Action: -adce Reward: 1.000000 (.|\n)* Got actions in [0-9.mu]*s @@ -257,21 +225,18 @@ def test_try_all_actions(cBench_dataset): ) -def test_simplify_stack(cBench_dataset): - del cBench_dataset # unused +def test_simplify_stack(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm set_default_reward IrInstructionCount action -mem2reg -adce -adce simplify_stack stack""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action -mem2reg +compiler_gym:cbench-v[0-9]+/adpcm> Action -mem2reg Reward: 287.000000 Action -adce Reward: 2.000000 @@ -280,8 +245,8 @@ def test_simplify_stack(cBench_dataset): No effect Actions -mem2reg -adce -adce in [0-9.mu]*s with reward 289.0. -compilergym:cBench-v[0-9]+/adpcm> -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 2 | -adce | True | False | 2 | 289 1 | -mem2reg | True | False | 287 | 287 @@ -289,25 +254,22 @@ def test_simplify_stack(cBench_dataset): ) -def test_simplify_stack_no_reward(cBench_dataset): - del cBench_dataset # unused +def test_simplify_stack_no_reward(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm action -mem2reg -adce -adce simplify_stack stack""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action -mem2reg +compiler_gym:cbench-v[0-9]+/adpcm> Action -mem2reg Action -adce Action -adce No effect Actions -mem2reg -adce -adce in [0-9.mu]*s with reward 0. -compilergym:cBench-v[0-9]+/adpcm> -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 2 | -adce | True | False | - | 0 1 | -mem2reg | True | False | - | 0 @@ -315,8 +277,7 @@ def test_simplify_stack_no_reward(cBench_dataset): ) -def test_hill_climb(monkeypatch, cBench_dataset): - del cBench_dataset # unused +def test_hill_climb(monkeypatch): i = 0 def incr(): @@ -327,41 +288,36 @@ def incr(): monkeypatch.setattr("random.randrange", lambda _: incr()) io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm set_default_reward IrInstructionCount hill_climb 2 stack""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Step: 1 Action: -adce Reward: 1.000000 Accept: True +compiler_gym:cbench-v[0-9]+/adpcm> Step: 1 Action: -adce Reward: 1.000000 Accept: True Step: 2 Action: -aggressive-instcombine Reward: 0.000000 Accept: False Hill climb complete in [0-9.mu]*s. Accepted 1 of 2 steps for total reward of 1.0. -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 1 | -adce | True | False | 1 | 1 0 | | False | False | 0 | 0""", ) -def test_greedy(cBench_dataset): - del cBench_dataset # unused +def test_greedy(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm set_default_reward IrInstructionCount greedy stack""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Reward IrInstructionCount in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action: -add-discriminators Reward: 0.000000 +compiler_gym:cbench-v[0-9]+/adpcm> Action: -add-discriminators Reward: 0.000000 Action: -adce Reward: 1.000000 (.|\n)* Action: -mem2reg Reward: 287.000000 @@ -370,49 +326,43 @@ def test_greedy(cBench_dataset): Step: 1 Selected action: -mem2reg Reward: 287.000000 Greedy 1 steps in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 1 | -mem2reg | True | False | 181 | 181 0 | | False | False | 0 | 0""", ) -def test_commandline(cBench_dataset): - del cBench_dataset # unused +def test_commandline(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm action -mem2reg -adce commandline""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action -mem2reg +compiler_gym:cbench-v[0-9]+/adpcm> Action -mem2reg Action -adce Actions -mem2reg -adce in [0-9.mu]*s with reward 0. -compilergym:cBench-v[0-9]+/adpcm> \$ opt -mem2reg -adce input.bc -o output.bc""", +compiler_gym:cbench-v[0-9]+/adpcm> \$ opt -mem2reg -adce input.bc -o output.bc""", ) -def test_reset(cBench_dataset): - del cBench_dataset # unused +def test_reset(): io_check( - """set_benchmark cBench-v1/adpcm + """set_benchmark cbench-v1/adpcm action -mem2reg -adce reset stack""", - # FIXME(cummins): Prompt should be compilergym:NO-BENCHMARK, but I've - # seen compilergym:cBench-v1/crc32 instead. Not sure why. - r"""compilergym:.+> Reset benchmark://cBench-v[0-9]+/adpcm environment in [0-9.mu]*s + r"""compiler_gym:cbench-v1/qsort> Reset benchmark://cbench-v[0-9]+/adpcm environment in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Action -mem2reg +compiler_gym:cbench-v[0-9]+/adpcm> Action -mem2reg Action -adce Actions -mem2reg -adce in [0-9.mu]*s with reward 0. -compilergym:cBench-v[0-9]+/adpcm> Reset in [0-9.mu]*s +compiler_gym:cbench-v[0-9]+/adpcm> Reset in [0-9.mu]*s -compilergym:cBench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward +compiler_gym:cbench-v[0-9]+/adpcm> Depth | Action | Effect | Done | Reward | Cumulative Reward ---------+----------+----------+--------+----------+--------------------- 0 | | False | False | 0 | 0""", ) diff --git a/tests/bin/validate_bin_test.py b/tests/bin/validate_bin_test.py index a6192cd17..40d527770 100644 --- a/tests/bin/validate_bin_test.py +++ b/tests/bin/validate_bin_test.py @@ -6,29 +6,28 @@ import tempfile from io import StringIO from pathlib import Path +from typing import List import pytest -from absl import flags from compiler_gym.bin.validate import main from compiler_gym.util.capture_output import capture_output -from tests.pytest_plugins.common import skip_on_ci +from tests.pytest_plugins.common import set_command_line_flags, skip_on_ci from tests.test_main import main as _test_main def test_okay_llvm_result(monkeypatch): stdin = """ benchmark,reward,commandline,walltime -benchmark://cBench-v1/crc32,0,opt input.bc -o output.bc,0.3 +benchmark://cbench-v1/crc32,0,opt input.bc -o output.bc,0.3 """.strip() - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", "--env=llvm-ic-v0", "--dataset=cBench-v1"]) + set_command_line_flags(["argv0", "--env=llvm-ic-v0"]) monkeypatch.setattr("sys.stdin", StringIO(stdin)) with capture_output() as out: main(["argv0", "-"]) - assert "✅ cBench-v1/crc32 " in out.stdout + assert "✅ cbench-v1/crc32 " in out.stdout assert not out.stderr @@ -39,22 +38,20 @@ def test_okay_llvm_result_file_input(): f.write( """ benchmark,reward,commandline,walltime -benchmark://cBench-v1/crc32,0,opt input.bc -o output.bc,0.3 +benchmark://cbench-v1/crc32,0,opt input.bc -o output.bc,0.3 """.strip() ) - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", "--env=llvm-ic-v0", "--dataset=cBench-v1"]) + set_command_line_flags(["argv0", "--env=llvm-ic-v0"]) with capture_output() as out: main(["argv0", str(path)]) - assert "✅ cBench-v1/crc32 " in out.stdout + assert "✅ cbench-v1/crc32 " in out.stdout assert not out.stderr def test_no_input(monkeypatch): - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", "--env=llvm-ic-v0", "--dataset=cBench-v1"]) + set_command_line_flags(["argv0", "--env=llvm-ic-v0"]) monkeypatch.setattr("sys.stdin", StringIO("")) with capture_output() as out: @@ -67,17 +64,16 @@ def test_no_input(monkeypatch): def test_invalid_reward_llvm_result(monkeypatch): stdin = """ benchmark,reward,commandline,walltime -benchmark://cBench-v1/crc32,0.5,opt input.bc -o output.bc,0.3 +benchmark://cbench-v1/crc32,0.5,opt input.bc -o output.bc,0.3 """.strip() - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", "--env=llvm-ic-v0", "--dataset=cBench-v1"]) + set_command_line_flags(["argv0", "--env=llvm-ic-v0"]) monkeypatch.setattr("sys.stdin", StringIO(stdin)) with capture_output() as out: with pytest.raises(SystemExit): main(["argv0", "-"]) assert ( - "❌ cBench-v1/crc32 Expected reward 0.5 but received reward 0.0\n" + "❌ cbench-v1/crc32 Expected reward 0.5 but received reward 0.0\n" in out.stdout ) assert not out.stderr @@ -85,27 +81,25 @@ def test_invalid_reward_llvm_result(monkeypatch): def test_invalid_csv_format(monkeypatch): stdin = "invalid\ncsv\nformat" - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", "--env=llvm-ic-v0", "--dataset=cBench-v1"]) + set_command_line_flags(["argv0", "--env=llvm-ic-v0"]) monkeypatch.setattr("sys.stdin", StringIO(stdin)) with capture_output() as out: with pytest.raises(SystemExit): main(["argv0", "-"]) - assert "Failed to parse input:" in out.stderr + assert "Expected 4 columns in the first row of CSV" in out.stderr @skip_on_ci def test_multiple_valid_inputs(monkeypatch): stdin = """ benchmark,reward,walltime,commandline -benchmark://cBench-v1/crc32,,0,opt input.bc -o output.bc -benchmark://cBench-v1/crc32,,0,opt input.bc -o output.bc -benchmark://cBench-v1/crc32,,0,opt input.bc -o output.bc +benchmark://cbench-v1/crc32,,0,opt input.bc -o output.bc +benchmark://cbench-v1/crc32,,0,opt input.bc -o output.bc +benchmark://cbench-v1/crc32,,0,opt input.bc -o output.bc """.strip() - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", "--env=llvm-v0", "--dataset=cBench-v1"]) + set_command_line_flags(["argv0", "--env=llvm-v0"]) monkeypatch.setattr("sys.stdin", StringIO(stdin)) with capture_output() as out: @@ -116,42 +110,60 @@ def test_multiple_valid_inputs(monkeypatch): @skip_on_ci -def test_validate_cBench_null_options(monkeypatch): - stdin = """ -benchmark,reward,walltime,commandline -benchmark://cBench-v1/gsm,,0,opt input.bc -o output.bc -benchmark://cBench-v1/lame,,0,opt input.bc -o output.bc -benchmark://cBench-v1/stringsearch,,0,opt input.bc -o output.bc -benchmark://cBench-v1/ghostscript,,0,opt input.bc -o output.bc -benchmark://cBench-v1/qsort,,0,opt input.bc -o output.bc -benchmark://cBench-v1/sha,,0,opt input.bc -o output.bc -benchmark://cBench-v1/ispell,,0,opt input.bc -o output.bc -benchmark://cBench-v1/blowfish,,0,opt input.bc -o output.bc -benchmark://cBench-v1/adpcm,,0,opt input.bc -o output.bc -benchmark://cBench-v1/tiffdither,,0,opt input.bc -o output.bc -benchmark://cBench-v1/bzip2,,0,opt input.bc -o output.bc -benchmark://cBench-v1/stringsearch2,,0,opt input.bc -o output.bc -benchmark://cBench-v1/bitcount,,0,opt input.bc -o output.bc -benchmark://cBench-v1/jpeg-d,,0,opt input.bc -o output.bc -benchmark://cBench-v1/jpeg-c,,0,opt input.bc -o output.bc -benchmark://cBench-v1/dijkstra,,0,opt input.bc -o output.bc -benchmark://cBench-v1/rijndael,,0,opt input.bc -o output.bc -benchmark://cBench-v1/patricia,,0,opt input.bc -o output.bc -benchmark://cBench-v1/tiff2rgba,,0,opt input.bc -o output.bc -benchmark://cBench-v1/crc32,,0,opt input.bc -o output.bc -benchmark://cBench-v1/tiff2bw,,0,opt input.bc -o output.bc -benchmark://cBench-v1/tiffmedian,,0,opt input.bc -o output.bc -benchmark://cBench-v1/susan,,0,opt input.bc -o output.bc -""".strip() - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0", "--env=llvm-v0", "--dataset=cBench-v1"]) +@pytest.mark.parametrize( + "benchmarks", + [ + [ + "benchmark://cbench-v1/gsm", + "benchmark://cbench-v1/lame", + "benchmark://cbench-v1/stringsearch", + "benchmark://cbench-v1/ghostscript", + ], + [ + "benchmark://cbench-v1/qsort", + "benchmark://cbench-v1/sha", + "benchmark://cbench-v1/ispell", + "benchmark://cbench-v1/blowfish", + ], + [ + "benchmark://cbench-v1/adpcm", + "benchmark://cbench-v1/tiffdither", + "benchmark://cbench-v1/bzip2", + "benchmark://cbench-v1/stringsearch2", + ], + [ + "benchmark://cbench-v1/bitcount", + "benchmark://cbench-v1/jpeg-d", + "benchmark://cbench-v1/jpeg-c", + "benchmark://cbench-v1/dijkstra", + ], + [ + "benchmark://cbench-v1/rijndael", + "benchmark://cbench-v1/patricia", + "benchmark://cbench-v1/tiff2rgba", + "benchmark://cbench-v1/crc32", + ], + [ + "benchmark://cbench-v1/tiff2bw", + "benchmark://cbench-v1/tiffmedian", + "benchmark://cbench-v1/susan", + ], + ], +) +def test_validate_cbench_null_options(monkeypatch, benchmarks: List[str]): + stdin = "\n".join( + [ + "benchmark,reward,walltime,commandline", + ] + + [f"{b},,0,opt input.bc -o output.bc" for b in benchmarks] + ) + set_command_line_flags(["argv0", "--env=llvm-v0"]) monkeypatch.setattr("sys.stdin", StringIO(stdin)) - with capture_output() as out: main(["argv0", "-"]) assert not out.stderr - assert out.stdout.count("✅") == 23 # Every benchmark passed. + assert out.stdout.count("✅") == len(benchmarks) # Every benchmark passed. if __name__ == "__main__": diff --git a/tests/compiler_env_state_test.py b/tests/compiler_env_state_test.py index 36efa0337..f566e7658 100644 --- a/tests/compiler_env_state_test.py +++ b/tests/compiler_env_state_test.py @@ -3,103 +3,108 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Unit tests for //compiler_gym:compiler_env_state.""" +import json +from io import StringIO +from pathlib import Path + import pytest +from pydantic import ValidationError as PydanticValidationError -from compiler_gym import CompilerEnvState +from compiler_gym import CompilerEnvState, CompilerEnvStateWriter +from compiler_gym.compiler_env_state import CompilerEnvStateReader from tests.test_main import main +pytest_plugins = ["tests.pytest_plugins.common"] -def test_state_to_csv_from_csv(): - original_state = CompilerEnvState( - benchmark="foo", walltime=100, reward=1.5, commandline="-a -b -c" - ) - state_from_csv = CompilerEnvState.from_csv(original_state.to_csv()) - - assert state_from_csv.benchmark == "foo" - assert state_from_csv.walltime == 100 - assert state_from_csv.reward == 1.5 - assert state_from_csv.commandline == "-a -b -c" - - -def test_state_to_csv_from_csv_no_reward(): - original_state = CompilerEnvState( - benchmark="foo", walltime=100, commandline="-a -b -c" - ) - state_from_csv = CompilerEnvState.from_csv(original_state.to_csv()) - assert state_from_csv.benchmark == "foo" - assert state_from_csv.walltime == 100 - assert state_from_csv.reward is None - assert state_from_csv.commandline == "-a -b -c" +def test_state_from_dict_empty(): + with pytest.raises(PydanticValidationError): + CompilerEnvState(**{}) -def test_state_from_csv_empty(): - with pytest.raises(ValueError) as ctx: - CompilerEnvState.from_csv("") +def test_state_invalid_benchmark_uri(): + with pytest.raises(PydanticValidationError, match="benchmark"): + CompilerEnvState(benchmark="invalid", walltime=100, reward=1.5, commandline="") - assert str(ctx.value) == "Failed to parse input: ``" +def test_state_invalid_walltime(): + with pytest.raises(PydanticValidationError, match="Walltime cannot be negative"): + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=-1, + reward=1.5, + commandline="", + ) -def test_state_from_csv_invalid_format(): - with pytest.raises(ValueError) as ctx: - CompilerEnvState.from_csv("abcdef") - - assert str(ctx.value).startswith("Failed to parse input: `abcdef`: ") - -def test_state_to_json_from_json(): +def test_state_to_json_from_dict(): original_state = CompilerEnvState( - benchmark="foo", walltime=100, reward=1.5, commandline="-a -b -c" + benchmark="benchmark://cbench-v0/foo", + walltime=100, + reward=1.5, + commandline="-a -b -c", ) - state_from_json = CompilerEnvState.from_json(original_state.json()) + state_from_dict = CompilerEnvState(**json.loads(original_state.json())) - assert state_from_json.benchmark == "foo" - assert state_from_json.walltime == 100 - assert state_from_json.reward == 1.5 - assert state_from_json.commandline == "-a -b -c" + assert state_from_dict.benchmark == "benchmark://cbench-v0/foo" + assert state_from_dict.walltime == 100 + assert state_from_dict.reward == 1.5 + assert state_from_dict.commandline == "-a -b -c" -def test_state_to_json_from_json_no_reward(): +def test_state_to_json_from_dict_no_reward(): original_state = CompilerEnvState( - benchmark="foo", walltime=100, commandline="-a -b -c" + benchmark="benchmark://cbench-v0/foo", walltime=100, commandline="-a -b -c" ) - state_from_json = CompilerEnvState.from_json(original_state.json()) - - assert state_from_json.benchmark == "foo" - assert state_from_json.walltime == 100 - assert state_from_json.reward is None - assert state_from_json.commandline == "-a -b -c" + state_from_dict = CompilerEnvState(**json.loads(original_state.json())) - -def test_state_from_json_empty(): - with pytest.raises(TypeError): - CompilerEnvState.from_json({}) + assert state_from_dict.benchmark == "benchmark://cbench-v0/foo" + assert state_from_dict.walltime == 100 + assert state_from_dict.reward is None + assert state_from_dict.commandline == "-a -b -c" def test_state_equality_different_types(): - state = CompilerEnvState(benchmark="foo", walltime=10, commandline="-a -b -c") + state = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", walltime=10, commandline="-a -b -c" + ) assert not state == 5 # noqa testing __eq__ assert state != 5 # testing __ne__ def test_state_equality_same(): - a = CompilerEnvState(benchmark="foo", walltime=10, commandline="-a -b -c") - b = CompilerEnvState(benchmark="foo", walltime=10, commandline="-a -b -c") + a = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", walltime=10, commandline="-a -b -c" + ) + b = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", walltime=10, commandline="-a -b -c" + ) assert a == b # testing __eq__ assert not a != b # noqa testing __ne__ def test_state_equality_differnt_walltime(): """Test that walltime is not compared.""" - a = CompilerEnvState(benchmark="foo", walltime=10, commandline="-a -b -c") - b = CompilerEnvState(benchmark="foo", walltime=5, commandline="-a -b -c") + a = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", walltime=10, commandline="-a -b -c" + ) + b = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", walltime=5, commandline="-a -b -c" + ) assert a == b # testing __eq__ assert not a != b # noqa testing __ne__ def test_state_equality_one_sided_reward(): - a = CompilerEnvState(benchmark="foo", walltime=5, commandline="-a -b -c", reward=2) - b = CompilerEnvState(benchmark="foo", walltime=5, commandline="-a -b -c") + a = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) + b = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", walltime=5, commandline="-a -b -c" + ) assert a == b # testing __eq__ assert b == a # testing __eq__ assert not a != b # noqa testing __ne__ @@ -107,8 +112,18 @@ def test_state_equality_one_sided_reward(): def test_state_equality_equal_reward(): - a = CompilerEnvState(benchmark="foo", walltime=5, commandline="-a -b -c", reward=2) - b = CompilerEnvState(benchmark="foo", walltime=5, commandline="-a -b -c", reward=2) + a = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) + b = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) assert a == b # testing __eq__ assert b == a # testing __eq__ assert not a != b # noqa testing __ne__ @@ -116,13 +131,209 @@ def test_state_equality_equal_reward(): def test_state_equality_unequal_reward(): - a = CompilerEnvState(benchmark="foo", walltime=5, commandline="-a -b -c", reward=2) - b = CompilerEnvState(benchmark="foo", walltime=5, commandline="-a -b -c", reward=3) + a = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) + b = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=3, + ) assert not a == b # noqa testing __eq__ assert not b == a # noqatesting __eq__ assert a != b # testing __ne__ assert b != a # testing __ne__ +def test_compiler_env_state_writer(): + buf = StringIO() + writer = CompilerEnvStateWriter(buf) + + writer.write_state( + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ), + flush=True, + ) + assert buf.getvalue() == ( + "benchmark,reward,walltime,commandline\n" + "benchmark://cbench-v0/foo,2.0,5.0,-a -b -c\n" + ) + + +def test_compiler_env_state_writer_no_header(): + buf = StringIO() + writer = CompilerEnvStateWriter(buf, header=False) + + writer.write_state( + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ), + flush=True, + ) + assert buf.getvalue() == "benchmark://cbench-v0/foo,2.0,5.0,-a -b -c\n" + + +@pytest.mark.parametrize("flush", range(1)) +def test_compiler_env_state_writer_with_statement(tmpwd: Path, flush: bool): + path = Path("results.csv") + assert not path.is_file() # Sanity check. + + f = open(path, "w") + with CompilerEnvStateWriter(f) as writer: + writer.write_state( + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ), + flush=flush, + ) + + assert f.closed + with open(path) as f: + assert f.read() == ( + "benchmark,reward,walltime,commandline\n" + "benchmark://cbench-v0/foo,2.0,5.0,-a -b -c\n" + ) + + +def test_compiler_env_state_reader(): + buf = StringIO( + "benchmark,reward,walltime,commandline\n" + "benchmark://cbench-v0/foo,2.0,5.0,-a -b -c\n" + ) + + reader = CompilerEnvStateReader(buf) + + assert list(reader) == [ + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) + ] + + +def test_compiler_env_state_reader_no_header(): + buf = StringIO("benchmark://cbench-v0/foo,2.0,5.0,-a -b -c\n") + reader = CompilerEnvStateReader(buf) + assert list(reader) == [ + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) + ] + + +def test_compiler_env_state_reader_with_header(): + buf = StringIO( + "benchmark,reward,walltime,commandline\n" + "benchmark://cbench-v0/foo,2.0,5.0,-a -b -c\n" + ) + reader = CompilerEnvStateReader(buf) + assert list(reader) == [ + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) + ] + + +def test_compiler_env_state_reader_with_header_out_of_order_columns(): + buf = StringIO( + "commandline,reward,benchmark,walltime\n" + "-a -b -c,2.0,benchmark://cbench-v0/foo,5.0\n" + ) + reader = CompilerEnvStateReader(buf) + assert list(reader) == [ + CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=5, + commandline="-a -b -c", + reward=2, + ) + ] + + +def test_compiler_env_state_reader_empty_input(): + buf = StringIO("") + reader = CompilerEnvStateReader(buf) + assert list(reader) == [] + + +def test_compiler_env_state_reader_header_only(): + buf = StringIO("benchmark,reward,walltime,commandline\n") + reader = CompilerEnvStateReader(buf) + assert list(reader) == [] + + +def test_state_from_csv_invalid_format(): + buf = StringIO("abcdef\n") + reader = CompilerEnvStateReader(buf) + with pytest.raises( + ValueError, match=r"Expected 4 columns in the first row of CSV: \['abcdef'\]" + ): + next(iter(reader)) + + +def test_state_from_csv_invalid_benchmark_uri(): + buf = StringIO( + "benchmark,reward,walltime,commandline\n" "invalid-uri,2.0,5.0,-a -b -c\n" + ) + reader = CompilerEnvStateReader(buf) + with pytest.raises(ValueError, match="string does not match regex"): + next(iter(reader)) + + +def test_state_serialize_deserialize_equality(): + original_state = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", + walltime=100, + reward=1.5, + commandline="-a -b -c", + ) + buf = StringIO() + CompilerEnvStateWriter(buf).write_state(original_state) + buf.seek(0) # Rewind the buffer for reading. + state_from_csv = next(iter(CompilerEnvStateReader(buf))) + + assert state_from_csv.benchmark == "benchmark://cbench-v0/foo" + assert state_from_csv.walltime == 100 + assert state_from_csv.reward == 1.5 + assert state_from_csv.commandline == "-a -b -c" + + +def test_state_serialize_deserialize_equality_no_reward(): + original_state = CompilerEnvState( + benchmark="benchmark://cbench-v0/foo", walltime=100, commandline="-a -b -c" + ) + buf = StringIO() + CompilerEnvStateWriter(buf).write_state(original_state) + buf.seek(0) # Rewind the buffer for reading. + state_from_csv = next(iter(CompilerEnvStateReader(buf))) + + assert state_from_csv.benchmark == "benchmark://cbench-v0/foo" + assert state_from_csv.walltime == 100 + assert state_from_csv.reward is None + assert state_from_csv.commandline == "-a -b -c" + + if __name__ == "__main__": main() diff --git a/tests/compiler_env_test.py b/tests/compiler_env_test.py index 052bc7b87..d663c9971 100644 --- a/tests/compiler_env_test.py +++ b/tests/compiler_env_test.py @@ -3,68 +3,164 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Unit tests for //compiler_gym/envs.""" -import sys +import logging import gym import pytest -from compiler_gym.datasets import LegacyDataset -from compiler_gym.envs import CompilerEnv +from compiler_gym.envs import CompilerEnv, llvm +from compiler_gym.service.connection import CompilerGymServiceConnection from tests.test_main import main pytest_plugins = ["tests.pytest_plugins.llvm"] -def make_dataset(**kwargs) -> LegacyDataset: - default_kwargs = { - "name": "test-dataset-v0", - "url": "https://dl.fbaipublicfiles.com/compiler_gym/llvm_bitcodes-10.0.0-blas-v0.tar.bz2", - "license": "MIT", - "description": "A test dataset", - "compiler": "llvm-10.0.0", - "file_count": 10, - "size_bytes": 2, - "sha256": "e724a8114709f8480adeb9873d48e426e8d9444b00cddce48e342b9f0f2b096d", - } - default_kwargs.update(kwargs) - return LegacyDataset(**default_kwargs) +def test_benchmark_constructor_arg(env: CompilerEnv): + env.close() # Fixture only required to pull in dataset. + env = gym.make("llvm-v0", benchmark="cbench-v1/dijkstra") + try: + assert env.benchmark == "benchmark://cbench-v1/dijkstra" + finally: + env.close() -def test_register_dataset(env: CompilerEnv): - dataset = make_dataset() - assert env.register_dataset(dataset) - assert dataset.name in env.available_datasets +def test_benchmark_setter(env: CompilerEnv): + env.benchmark = "benchmark://cbench-v1/dijkstra" + assert env.benchmark != "benchmark://cbench-v1/dijkstra" + env.reset() + assert env.benchmark == "benchmark://cbench-v1/dijkstra" -def test_register_dataset_matching_platform(env: CompilerEnv): - platform = {"darwin": "macos"}.get(sys.platform, sys.platform) - dataset = make_dataset(platforms=[platform]) - assert env.register_dataset(dataset) - assert dataset.name in env.available_datasets +def test_benchmark_set_in_reset(env: CompilerEnv): + env.reset(benchmark="benchmark://cbench-v1/dijkstra") + assert env.benchmark == "benchmark://cbench-v1/dijkstra" -def test_register_dataset_different_platform(env: CompilerEnv): - dataset = make_dataset(platforms=["not-a-real-platform"]) - assert not env.register_dataset(dataset) - assert dataset.name not in env.available_datasets +def test_logger_forced(): + logger = logging.getLogger("test_logger") + env_a = gym.make("llvm-v0") + env_b = gym.make("llvm-v0", logger=logger) + try: + assert env_a.logger != logger + assert env_b.logger == logger + finally: + env_a.close() + env_b.close() -def test_double_register_dataset(env: CompilerEnv): - dataset = make_dataset() - assert env.register_dataset(dataset) - with pytest.raises(ValueError) as ctx: - env.register_dataset(dataset) - assert str(ctx.value) == f"Dataset already registered with name: {dataset.name}" +def test_uri_substring_no_match(env: CompilerEnv): + env.reset(benchmark="benchmark://cbench-v1/crc32") + assert env.benchmark == "benchmark://cbench-v1/crc32" + + with pytest.raises(LookupError): + env.reset(benchmark="benchmark://cbench-v1/crc3") + + with pytest.raises(LookupError): + env.reset(benchmark="benchmark://cbench-v1/cr") + + +def test_uri_substring_candidate_no_match_infer_protocol(env: CompilerEnv): + env.reset(benchmark="cbench-v1/crc32") + assert env.benchmark == "benchmark://cbench-v1/crc32" + + with pytest.raises(LookupError): + env.reset(benchmark="cbench-v1/crc3") + + with pytest.raises(LookupError): + env.reset(benchmark="cbench-v1/cr") + + +def test_reset_to_force_benchmark(env: CompilerEnv): + """Reset that calling reset() with a benchmark forces that benchmark to + be used for every subsequent episode. + """ + env.reset(benchmark="benchmark://cbench-v1/crc32") + assert env.benchmark == "benchmark://cbench-v1/crc32" + for _ in range(10): + env.reset() + assert env.benchmark == "benchmark://cbench-v1/crc32" -def test_benchmark_constructor_arg(env: CompilerEnv): - env.close() # Fixture only required to pull in dataset. - env = gym.make("llvm-v0", benchmark="cBench-v1/dijkstra") +def test_unset_forced_benchmark(env: CompilerEnv): + """Test that setting benchmark "unsets" the previous benchmark.""" + env.reset(benchmark="benchmark://cbench-v1/dijkstra") + + with pytest.warns( + UserWarning, + match=r"Changing the benchmark has no effect until reset\(\) is called", + ): + env.benchmark = "benchmark://cbench-v1/crc32" + env.reset() + assert env.benchmark == "benchmark://cbench-v1/crc32" + + +def test_change_benchmark_mid_episode(env: CompilerEnv): + """Test that changing the benchmark while in an episode has no effect until + the next call to reset().""" + env.reset(benchmark="benchmark://cbench-v1/crc32") + assert env.benchmark == "benchmark://cbench-v1/crc32" + with pytest.warns( + UserWarning, + match=r"Changing the benchmark has no effect until reset\(\) is called", + ): + env.benchmark = "benchmark://cbench-v1/dijkstra" + assert env.benchmark == "benchmark://cbench-v1/crc32" + env.reset() + assert env.benchmark == "benchmark://cbench-v1/dijkstra" + + +def test_set_benchmark_invalid_type(env: CompilerEnv): + with pytest.raises(TypeError) as ctx: + env.benchmark = 10 + assert str(ctx.value) == "Expected a Benchmark or str, received: 'int'" + + +def test_gym_make_kwargs(): + """Test that passing kwargs to gym.make() are forwarded to environment + constructor. + """ + env = gym.make( + "llvm-v0", observation_space="Autophase", reward_space="IrInstructionCount" + ) + try: + assert env.observation_space_spec.id == "Autophase" + assert env.reward_space.id == "IrInstructionCount" + finally: + env.close() + + +def test_step_session_id_not_found(env: CompilerEnv): + """Test that step() recovers gracefully from an unknown session error from + the service.""" + env._session_id = 15 # pylint: disable=protected-access + observation, reward, done, info = env.step(0) + assert done + assert info["error_details"] == "Session not found: 15" + assert observation is None + assert reward is None + assert not env.in_episode + + +@pytest.fixture(scope="function") +def remote_env() -> CompilerEnv: + """A test fixture that yields a connection to a remote service.""" + service = CompilerGymServiceConnection(llvm.LLVM_SERVICE_BINARY) + env = CompilerEnv(service=service.connection.url) try: - assert env.benchmark == "cBench-v1/dijkstra" + yield env finally: env.close() + service.close() + + +def test_base_class_has_no_benchmark(remote_env: CompilerEnv): + """Test that when instantiating the base CompilerEnv class there are no + datasets available. + """ + assert remote_env.benchmark is None + with pytest.raises(TypeError, match="No benchmark set"): + remote_env.reset() if __name__ == "__main__": diff --git a/tests/datasets/BUILD b/tests/datasets/BUILD new file mode 100644 index 000000000..1dfa72a47 --- /dev/null +++ b/tests/datasets/BUILD @@ -0,0 +1,48 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +load("@rules_python//python:defs.bzl", "py_test") + +py_test( + name = "benchmark_test", + timeout = "short", + srcs = ["benchmark_test.py"], + deps = [ + "//compiler_gym/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + ], +) + +py_test( + name = "dataset_test", + timeout = "short", + srcs = ["dataset_test.py"], + deps = [ + "//compiler_gym/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + ], +) + +py_test( + name = "datasets_test", + srcs = ["datasets_test.py"], + deps = [ + "//compiler_gym/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + ], +) + +py_test( + name = "files_dataset_test", + timeout = "short", + srcs = ["files_dataset_test.py"], + deps = [ + "//compiler_gym/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + ], +) diff --git a/tests/datasets/benchmark_test.py b/tests/datasets/benchmark_test.py new file mode 100644 index 000000000..71c91b394 --- /dev/null +++ b/tests/datasets/benchmark_test.py @@ -0,0 +1,307 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Unit tests for //compiler_gym/datasets:benchmark.""" +import re +from pathlib import Path + +import pytest + +from compiler_gym.datasets import Benchmark, BenchmarkSource +from compiler_gym.datasets.uri import BENCHMARK_URI_RE, DATASET_NAME_RE +from compiler_gym.service.proto import Benchmark as BenchmarkProto +from compiler_gym.validation_error import ValidationError +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common"] + + +def _rgx_match(regex, groupname, string) -> str: + """Match the regex and return a named group.""" + match = re.match(regex, string) + assert match, f"Failed to match regex '{regex}' using string '{groupname}'" + return match.group(groupname) + + +def test_benchmark_uri_protocol(): + assert ( + _rgx_match(DATASET_NAME_RE, "dataset_protocol", "benchmark://cbench-v1/") + == "benchmark" + ) + assert ( + _rgx_match(DATASET_NAME_RE, "dataset_protocol", "Generator13://gen-v11/") + == "Generator13" + ) + + +def test_invalid_benchmark_uris(): + # Invalid protocol + assert not DATASET_NAME_RE.match("B?://cbench-v1/") # Invalid characters + assert not DATASET_NAME_RE.match("cbench-v1/") # Missing protocol + + # Invalid dataset name + assert not BENCHMARK_URI_RE.match("benchmark://cbench?v0/foo") # Invalid character + assert not BENCHMARK_URI_RE.match( + "benchmark://cbench/foo" + ) # Missing version suffix + assert not BENCHMARK_URI_RE.match("benchmark://cbench-v0") # Missing benchmark ID + assert not BENCHMARK_URI_RE.match("benchmark://cbench-v0/") # Missing benchmark ID + + # Invalid benchmark ID + assert not BENCHMARK_URI_RE.match("benchmark://cbench-v1/ whitespace") # Whitespace + assert not BENCHMARK_URI_RE.match("benchmark://cbench-v1/\t") # Whitespace + + +def test_benchmark_uri_dataset(): + assert ( + _rgx_match(BENCHMARK_URI_RE, "dataset_name", "benchmark://cbench-v1/foo") + == "cbench-v1" + ) + assert ( + _rgx_match(BENCHMARK_URI_RE, "dataset_name", "Generator13://gen-v11/foo") + == "gen-v11" + ) + + +def test_benchmark_dataset_name(): + assert ( + _rgx_match(BENCHMARK_URI_RE, "dataset", "benchmark://cbench-v1/foo") + == "benchmark://cbench-v1" + ) + assert ( + _rgx_match(BENCHMARK_URI_RE, "dataset", "Generator13://gen-v11/foo") + == "Generator13://gen-v11" + ) + + +def test_benchmark_uri_id(): + assert ( + _rgx_match(BENCHMARK_URI_RE, "benchmark_name", "benchmark://cbench-v1/foo") + == "foo" + ) + assert ( + _rgx_match(BENCHMARK_URI_RE, "benchmark_name", "benchmark://cbench-v1/foo/123") + == "foo/123" + ) + assert ( + _rgx_match( + BENCHMARK_URI_RE, "benchmark_name", "benchmark://cbench-v1/foo/123.txt" + ) + == "foo/123.txt" + ) + assert ( + _rgx_match( + BENCHMARK_URI_RE, + "benchmark_name", + "benchmark://cbench-v1/foo/123?param=true&false", + ) + == "foo/123?param=true&false" + ) + + +def test_benchmark_attribute_outside_init(): + """Test that new attributes cannot be added to Benchmark.""" + benchmark = Benchmark(None) + with pytest.raises(AttributeError): + # pylint: disable=assigning-non-slot + benchmark.foobar = 123 # noqa + + +def test_benchmark_subclass_attribute_outside_init(): + """Test that new attributes can be added to Benchmark subclass.""" + + class TestBenchmark(Benchmark): + pass + + benchmark = TestBenchmark(None) + benchmark.foobar = 123 # pylint: disable=attribute-defined-outside-init + assert benchmark.foobar == 123 + + +def test_benchmark_properties(): + """Test benchmark properties.""" + benchmark = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foobar")) + assert benchmark.uri == "benchmark://example-v0/foobar" + assert benchmark.proto == BenchmarkProto(uri="benchmark://example-v0/foobar") + + +def test_benchmark_immutable(): + """Test that benchmark properties are immutable.""" + benchmark = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foobar")) + with pytest.raises(AttributeError): + benchmark.uri = 123 + with pytest.raises(AttributeError): + benchmark.proto = 123 + + +def test_add_validation_callbacks_values(): + """Test methods for adding and checking custom validation callbacks.""" + + def a(env): + pass + + benchmark = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foobar")) + assert benchmark.validation_callbacks() == [] + assert not benchmark.is_validatable() + + benchmark.add_validation_callback(a) + assert benchmark.validation_callbacks() == [a] + assert benchmark.is_validatable() + + benchmark.add_validation_callback(a) + assert benchmark.validation_callbacks() == [a, a] + + +def test_add_validation_callbacks_call_count(): + """Test that custom validation callbacks are called on validate().""" + a_call_count = 0 + b_call_count = 0 + + def a(env): + nonlocal a_call_count + a_call_count += 1 + + def b(env): + nonlocal b_call_count + b_call_count += 1 + + benchmark = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foobar")) + benchmark.add_validation_callback(a) + + errors = benchmark.validate(env=None) + assert errors == [] + assert a_call_count == 1 + assert b_call_count == 0 + + benchmark.add_validation_callback(b) + errors = benchmark.validate(env=None) + assert errors == [] + assert a_call_count == 2 + assert b_call_count == 1 + + +def test_validation_callback_error(): + """Test error propagation from custom validation callback.""" + + def a(env): + yield ValidationError(type="Compilation Error") + yield ValidationError(type="Runtime Error") + + benchmark = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foobar")) + benchmark.add_validation_callback(a) + + errors = benchmark.validate(env=None) + assert errors == [ + ValidationError(type="Compilation Error"), + ValidationError(type="Runtime Error"), + ] + + +def test_validation_callback_error_iter(): + """Test error propagation from custom validation callback using iterable.""" + + def a(env): + yield ValidationError(type="Compilation Error") + yield ValidationError(type="Runtime Error") + + benchmark = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foobar")) + benchmark.add_validation_callback(a) + + errors = benchmark.ivalidate(env=None) + next(errors) == ValidationError(type="Compilation Error") + next(errors) == ValidationError(type="Runtime Error") + + +def test_validation_callback_flaky(): + """Test error propagation on callback which *may* fail.""" + flaky = False + + def a(env): + nonlocal flaky + del env + if flaky: + yield ValidationError(type="Runtime Error") + + benchmark = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foobar")) + benchmark.add_validation_callback(a) + + errors = benchmark.validate(env=None) + assert errors == [] + + flaky = True + errors = benchmark.validate(env=None) + assert errors == [ + ValidationError(type="Runtime Error"), + ] + + +def test_eq_benchmarks(): + a = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foo")) + b = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foo")) + + assert a == b + + +def test_eq_strings(): + a = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foo")) + b = "benchmark://example-v0/foo" + + assert a == b + + +def test_ne_benchmarks(): + a = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foo")) + b = Benchmark(BenchmarkProto(uri="benchmark://example-v0/bar")) + + assert a != b + + +def test_ne_strings(): + a = Benchmark(BenchmarkProto(uri="benchmark://example-v0/foo")) + b = "benchmark://example-v0/bar" + + assert a != b + + +def test_benchmark_sources(tmpwd: Path): + a = Benchmark( + BenchmarkProto(uri="benchmark://example-v0/foo"), + sources=[("example.py", "Hello, world!".encode("utf-8"))], + ) + a.add_source(BenchmarkSource(filename="foo.py", contents="Hi".encode("utf-8"))) + + assert list(a.sources) == [ + BenchmarkSource("example.py", "Hello, world!".encode("utf-8")), + BenchmarkSource(filename="foo.py", contents="Hi".encode("utf-8")), + ] + + a.write_sources_to_directory("benchmark_sources") + + with open(tmpwd / "benchmark_sources" / "example.py") as f: + assert f.read() == "Hello, world!" + with open(tmpwd / "benchmark_sources" / "foo.py") as f: + assert f.read() == "Hi" + + +def test_benchmark_from_file(tmpwd: Path): + path = tmpwd / "foo.txt" + path.touch() + benchmark = Benchmark.from_file("benchmark://example-v0/foo", path) + # Use startswith() and endswith() because macOS can add a /private prefix to + # paths. + assert benchmark.proto.program.uri.startswith("file:///") + assert benchmark.proto.program.uri.endswith(str(path)) + + +def test_benchmark_from_file_not_found(tmpwd: Path): + path = tmpwd / "foo.txt" + with pytest.raises(FileNotFoundError) as e_ctx: + Benchmark.from_file("benchmark://example-v0/foo", path) + + # Use endswith() because macOS can add a /private prefix to paths. + assert str(e_ctx.value).endswith(str(path)) + + +if __name__ == "__main__": + main() diff --git a/tests/datasets/dataset_test.py b/tests/datasets/dataset_test.py new file mode 100644 index 000000000..bd7a29a05 --- /dev/null +++ b/tests/datasets/dataset_test.py @@ -0,0 +1,200 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Unit tests for //compiler_gym/datasets.""" +from pathlib import Path + +import pytest + +from compiler_gym.datasets.dataset import Dataset +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common"] + +# pylint: disable=abstract-method + + +@pytest.mark.parametrize( + "invalid_name", ["benchmark://test", "test-v0", "benchmark://v0"] +) +def test_dataset__invalid_name(invalid_name: str): + """Test that invalid dataset names raise an error on init.""" + + with pytest.raises(ValueError) as e_ctx: + Dataset( + name=invalid_name, + description="A test dataset", + license="MIT", + site_data_base="test", + ) + + assert str(e_ctx.value) == ( + f"Invalid dataset name: '{invalid_name}'. " + "Dataset name must be in the form: '{{protocol}}://{{name}}-v{{version}}'" + ) + + +def test_dataset_properties(): + """Test the dataset property values.""" + dataset = Dataset( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + ) + + assert dataset.name == "benchmark://test-v0" + assert dataset.protocol == "benchmark" + assert dataset.description == "A test dataset" + assert dataset.license == "MIT" + + +def test_dataset_optional_properties(): + """Test the default values of optional dataset properties.""" + dataset = Dataset( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + ) + + assert dataset.references == {} # Default value. + assert not dataset.deprecated + assert dataset.sort_order == 0 + assert dataset.validatable == "No" + + +def test_dataset_optional_properties_explicit_values(): + """Test the non-default values of optional dataset properties.""" + dataset = Dataset( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + references={"GitHub": "https://github.com/facebookresearch/CompilerGym"}, + deprecated="Deprecation message", + sort_order=10, + validatable="Yes", + ) + + assert dataset.references == { + "GitHub": "https://github.com/facebookresearch/CompilerGym" + } + assert dataset.deprecated + assert dataset.sort_order == 10 + assert dataset.validatable == "Yes" + + +def test_dataset_inferred_properties(): + """Test the values of inferred dataset properties.""" + dataset = Dataset( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + ) + + assert dataset.protocol == "benchmark" + assert dataset.version == 0 + + +def test_dataset_properties_read_only(tmpwd: Path): + """Test that dataset properties are read-only.""" + dataset = Dataset( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + ) + + with pytest.raises(AttributeError): + dataset.name = "benchmark://test-v1" + with pytest.raises(AttributeError): + dataset.description = "A test dataset" + with pytest.raises(AttributeError): + dataset.license = "MIT" + with pytest.raises(AttributeError): + dataset.site_data_path = tmpwd + + +def test_dataset_site_data_directory(tmpwd: Path): + """Test the path generated for site data.""" + dataset = Dataset( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + ) + + # Use endswith() since tmpwd on macOS may have a '/private' prefix. + assert str(dataset.site_data_path).endswith( + str(tmpwd / "test" / "benchmark" / "test-v0") + ) + assert not dataset.site_data_path.is_dir() # Dir is not created until needed. + + +def test_dataset_deprecation_message(tmpwd: Path): + """Test that a deprecation warning is emitted on install().""" + dataset = Dataset( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + deprecated="The cat sat on the mat", + ) + + with pytest.warns(DeprecationWarning, match="The cat sat on the mat"): + dataset.install() + + +class DatasetForTesting(Dataset): + """A dataset to use for testing.""" + + def __init__(self, benchmarks=None): + super().__init__( + name="benchmark://test-v0", + description="A test dataset", + license="MIT", + site_data_base="test", + ) + self._benchmarks = benchmarks or { + "benchmark://test-v0/a": 1, + "benchmark://test-v0/b": 2, + "benchmark://test-v0/c": 3, + } + + def benchmark_uris(self): + return sorted(self._benchmarks) + + def benchmark(self, uri): + if uri: + return self._benchmarks[uri] + else: + return next(iter(self._benchmarks.values())) + + @property + def size(self): + return len(self._benchmarks) + + +def test_dataset_size(): + dataset = DatasetForTesting() + assert dataset.size == 3 + assert len(dataset) == 3 + + +def test_benchmarks_lookup_by_uri(): + dataset = DatasetForTesting() + assert dataset.benchmark("benchmark://test-v0/b") == 2 + assert dataset["benchmark://test-v0/b"] == 2 + + +def test_benchmarks_iter(): + dataset = DatasetForTesting() + assert list(dataset.benchmarks()) == [1, 2, 3] + assert list(dataset) == [1, 2, 3] + + +if __name__ == "__main__": + main() diff --git a/tests/datasets/datasets_test.py b/tests/datasets/datasets_test.py new file mode 100644 index 000000000..3392513ad --- /dev/null +++ b/tests/datasets/datasets_test.py @@ -0,0 +1,247 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Unit tests for //compiler_gym/datasets.""" +import pytest + +from compiler_gym.datasets.datasets import Datasets, round_robin_iterables +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common"] + + +class MockDataset: + """A mock Dataset class.""" + + def __init__(self, name): + self.name = name + self.installed = False + self.deprecated = False + self.benchmark_values = [] + self.sort_order = 0 + + def install(self): + self.installed = True + + def uninstall(self): + self.installed = False + + def benchmark_uris(self): + return (b.uri for b in self.benchmark_values) + + def benchmarks(self): + yield from self.benchmark_values + + def benchmark(self, uri=None): + if uri: + for b in self.benchmark_values: + if b.uri == uri: + return b + raise KeyError(uri) + return self.benchmark_values[0] + + def __repr__(self): + return str(self.name) + + +class MockBenchmark: + """A mock Benchmark class.""" + + def __init__(self, uri): + self.uri = uri + + def __repr__(self): + return str(self.uri) + + +def test_enumerate_datasets_empty(): + datasets = Datasets([]) + + assert list(datasets) == [] + + +def test_enumerate_datasets(): + da = MockDataset("benchmark://a") + db = MockDataset("benchmark://b") + datasets = Datasets((da, db)) + + assert list(datasets) == [da, db] + + +def test_enumerate_datasets_with_custom_sort_order(): + da = MockDataset("benchmark://a") + db = MockDataset("benchmark://b") + db.sort_order = -1 + datasets = Datasets((da, db)) + + assert list(datasets) == [db, da] + + +def test_enumerate_deprecated_datasets(): + da = MockDataset("benchmark://a") + db = MockDataset("benchmark://b") + datasets = Datasets((da, db)) + + db.deprecated = True + assert list(datasets) == [da] + assert list(datasets.datasets(with_deprecated=True)) == [da, db] + + +def test_enumerate_datasets_deprecated_at_construction_time(): + da = MockDataset("benchmark://a") + db = MockDataset("benchmark://b") + db.deprecated = True + datasets = Datasets((da, db)) + + assert list(datasets) == [da] + assert list(datasets.datasets(with_deprecated=True)) == [da, db] + + +def test_datasets_add_dataset(): + datasets = Datasets([]) + + da = MockDataset("benchmark://foo-v0") + datasets["benchmark://foo-v0"] = da + + assert list(datasets) == [da] + + +def test_datasets_add_deprecated_dataset(): + datasets = Datasets([]) + + da = MockDataset("benchmark://a") + da.deprecated = True + datasets["benchmark://foo-v0"] = da + + assert list(datasets) == [] + + +def test_datasets_remove(): + da = MockDataset("benchmark://foo-v0") + datasets = Datasets([da]) + + del datasets["benchmark://foo-v0"] + assert list(datasets) == [] + + +def test_datasets_get_item(): + da = MockDataset("benchmark://foo-v0") + datasets = Datasets([da]) + + assert datasets.dataset("benchmark://foo-v0") == da + assert datasets["benchmark://foo-v0"] == da + + +def test_datasets_get_item_default_protocol(): + da = MockDataset("benchmark://foo-v0") + datasets = Datasets([da]) + + assert datasets.dataset("foo-v0") == da + assert datasets["foo-v0"] == da + + +def test_datasets_get_item_lookup_miss(): + da = MockDataset("benchmark://foo-v0") + datasets = Datasets([da]) + + with pytest.raises(LookupError) as e_ctx: + datasets.dataset("benchmark://bar-v0") + assert str(e_ctx.value) == "Dataset not found: benchmark://bar-v0" + + with pytest.raises(LookupError) as e_ctx: + _ = datasets["benchmark://bar-v0"] + assert str(e_ctx.value) == "Dataset not found: benchmark://bar-v0" + + +def test_benchmark_lookup_by_uri(): + da = MockDataset("benchmark://foo-v0") + db = MockDataset("benchmark://bar-v0") + ba = MockBenchmark(uri="benchmark://foo-v0/abc") + da.benchmark_values.append(ba) + datasets = Datasets([da, db]) + + assert datasets.benchmark("benchmark://foo-v0/abc") == ba + + +def test_round_robin(): + iters = iter( + [ + iter([0, 1, 2, 3, 4, 5]), + iter(["a", "b", "c"]), + iter([0.5, 1.0]), + ] + ) + assert list(round_robin_iterables(iters)) == [ + 0, + "a", + 0.5, + 1, + "b", + 1.0, + 2, + "c", + 3, + 4, + 5, + ] + + +def test_benchmark_uris_order(): + da = MockDataset("benchmark://foo-v0") + db = MockDataset("benchmark://bar-v0") + ba = MockBenchmark(uri="benchmark://foo-v0/abc") + bb = MockBenchmark(uri="benchmark://foo-v0/123") + bc = MockBenchmark(uri="benchmark://bar-v0/abc") + bd = MockBenchmark(uri="benchmark://bar-v0/123") + da.benchmark_values.append(ba) + da.benchmark_values.append(bb) + db.benchmark_values.append(bc) + db.benchmark_values.append(bd) + datasets = Datasets([da, db]) + + assert list(datasets.benchmark_uris()) == [b.uri for b in datasets.benchmarks()] + # Datasets are ordered by name, so bar-v0 before foo-v0. + assert list(datasets.benchmark_uris()) == [ + "benchmark://bar-v0/abc", + "benchmark://foo-v0/abc", + "benchmark://bar-v0/123", + "benchmark://foo-v0/123", + ] + + +def test_benchmarks_iter_deprecated(): + da = MockDataset("benchmark://foo-v0") + db = MockDataset("benchmark://bar-v0") + db.deprecated = True + ba = MockBenchmark(uri="benchmark://foo-v0/abc") + bb = MockBenchmark(uri="benchmark://foo-v0/123") + bc = MockBenchmark(uri="benchmark://bar-v0/abc") + bd = MockBenchmark(uri="benchmark://bar-v0/123") + da.benchmark_values.append(ba) + da.benchmark_values.append(bb) + db.benchmark_values.append(bc) + db.benchmark_values.append(bd) + datasets = Datasets([da, db]) + + # Iterate over the benchmarks. The deprecated dataset is not included. + assert list(datasets.benchmark_uris()) == [b.uri for b in datasets.benchmarks()] + assert list(datasets.benchmark_uris()) == [ + "benchmark://foo-v0/abc", + "benchmark://foo-v0/123", + ] + + # Repeat the above, but include the deprecated datasets. + assert list(datasets.benchmark_uris(with_deprecated=True)) == [ + b.uri for b in datasets.benchmarks(with_deprecated=True) + ] + assert list(datasets.benchmark_uris(with_deprecated=True)) == [ + "benchmark://bar-v0/abc", + "benchmark://foo-v0/abc", + "benchmark://bar-v0/123", + "benchmark://foo-v0/123", + ] + + +if __name__ == "__main__": + main() diff --git a/tests/datasets/files_dataset_test.py b/tests/datasets/files_dataset_test.py new file mode 100644 index 000000000..e6d4b4233 --- /dev/null +++ b/tests/datasets/files_dataset_test.py @@ -0,0 +1,115 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Unit tests for //compiler_gym/datasets:files_dataset_test.""" +import tempfile +from pathlib import Path + +import pytest + +from compiler_gym.datasets import FilesDataset +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common"] + + +@pytest.fixture(scope="function") +def empty_dataset() -> FilesDataset: + with tempfile.TemporaryDirectory() as d: + yield FilesDataset( + name="benchmark://test-v0", + description="", + license="MIT", + dataset_root=Path(d) / "files", + site_data_base=Path(d) / "site_data", + ) + + +@pytest.fixture(scope="function", params=["", "memoized-ids"]) +def populated_dataset(request) -> FilesDataset: + with tempfile.TemporaryDirectory() as d: + df = Path(d) / "files" + (df / "a").mkdir(parents=True) + (df / "b").mkdir() + + (df / "e.txt").touch() + (df / "f.txt").touch() + (df / "g.jpg").touch() + (df / "a" / "a.txt").touch() + (df / "a" / "b.txt").touch() + (df / "b" / "a.txt").touch() + (df / "b" / "b.txt").touch() + (df / "b" / "c.txt").touch() + (df / "b" / "d.jpg").touch() + + yield FilesDataset( + name="benchmark://test-v0", + description="", + license="MIT", + dataset_root=Path(d) / "files", + site_data_base=Path(d) / "site_data", + memoize_uris=request.param == "memoized-ids", + ) + + +def test_dataset_is_installed(empty_dataset: FilesDataset): + assert empty_dataset.installed + + +def test_empty_dataset(empty_dataset: FilesDataset): + assert empty_dataset.size == 0 + assert list(empty_dataset.benchmark_uris()) == [] + assert list(empty_dataset.benchmarks()) == [] + + +def test_populated_dataset(populated_dataset: FilesDataset): + for _ in range(2): + assert list(populated_dataset.benchmark_uris()) == [ + "benchmark://test-v0/e.txt", + "benchmark://test-v0/f.txt", + "benchmark://test-v0/g.jpg", + "benchmark://test-v0/a/a.txt", + "benchmark://test-v0/a/b.txt", + "benchmark://test-v0/b/a.txt", + "benchmark://test-v0/b/b.txt", + "benchmark://test-v0/b/c.txt", + "benchmark://test-v0/b/d.jpg", + ] + assert populated_dataset.size == 9 + + +def test_populated_dataset_benchmark_lookup(populated_dataset: FilesDataset): + bm = populated_dataset.benchmark("benchmark://test-v0/e.txt") + assert bm.uri == "benchmark://test-v0/e.txt" + assert bm.proto.uri == "benchmark://test-v0/e.txt" + assert bm.proto.program.uri == f"file:///{populated_dataset.dataset_root}/e.txt" + + +def test_populated_dataset_first_file(populated_dataset: FilesDataset): + bm = next(populated_dataset.benchmarks()) + assert bm.uri == "benchmark://test-v0/e.txt" + assert bm.proto.uri == "benchmark://test-v0/e.txt" + assert bm.proto.program.uri == f"file:///{populated_dataset.dataset_root}/e.txt" + + +def test_populated_dataset_benchmark_lookup_not_found(populated_dataset: FilesDataset): + with pytest.raises(LookupError) as e_ctx: + populated_dataset.benchmark("benchmark://test-v0/not/a/file") + + assert str(e_ctx.value).startswith( + "Benchmark not found: benchmark://test-v0/not/a/file" + ) + + +def test_populated_dataset_with_file_extension_filter(populated_dataset: FilesDataset): + populated_dataset.benchmark_file_suffix = ".jpg" + assert list(populated_dataset.benchmark_uris()) == [ + "benchmark://test-v0/g", + "benchmark://test-v0/b/d", + ] + assert populated_dataset.size == 2 + + +if __name__ == "__main__": + main() diff --git a/tests/fuzzing/llvm_stress_fuzz_test.py b/tests/fuzzing/llvm_stress_fuzz_test.py index 9a50ad212..6c6446716 100644 --- a/tests/fuzzing/llvm_stress_fuzz_test.py +++ b/tests/fuzzing/llvm_stress_fuzz_test.py @@ -25,7 +25,7 @@ def test_fuzz(env: LlvmEnv, observation_space: str, reward_space: str): seed = random.randint(0, 2 << 31) llvm_ir = subprocess.check_output([str(llvm.llvm_stress_path()), f"--seed={seed}"]) print(f"llvm-stress --seed={seed}") # For debugging in case of failure. - env.benchamrk = Benchmark(uri="stress", program=File(contents=llvm_ir)) + env.benchmark = Benchmark(uri="stress", program=File(contents=llvm_ir)) env.observation_space = observation_space env.reward_space = reward_space diff --git a/tests/fuzzing/llvm_validate_fuzz_test.py b/tests/fuzzing/llvm_validate_fuzz_test.py index 454640a3e..eae460a0b 100644 --- a/tests/fuzzing/llvm_validate_fuzz_test.py +++ b/tests/fuzzing/llvm_validate_fuzz_test.py @@ -6,10 +6,7 @@ import random from compiler_gym.envs import LlvmEnv -from compiler_gym.envs.llvm.legacy_datasets import ( - get_llvm_benchmark_validation_callback, -) -from tests.pytest_plugins.llvm import VALIDATABLE_BENCHMARKS +from tests.pytest_plugins.llvm import VALIDATABLE_CBENCH_URIS from tests.test_main import main pytest_plugins = ["tests.pytest_plugins.llvm"] @@ -21,7 +18,7 @@ def test_fuzz(env: LlvmEnv): """This test generates a random trajectory and validates the semantics.""" - benchmark = random.choice(VALIDATABLE_BENCHMARKS) + benchmark = random.choice(VALIDATABLE_CBENCH_URIS) num_actions = random.randint(*RANDOM_TRAJECTORY_LENGTH_RANGE) while True: @@ -32,9 +29,7 @@ def test_fuzz(env: LlvmEnv): break # Broken trajectory, retry. else: print(f"Validating state {env.state}") - validation_cb = get_llvm_benchmark_validation_callback(env) - assert validation_cb - assert validation_cb(env) is None + assert env.validate() == [] # Stop the test. break diff --git a/tests/leaderboard/llvm_instcount_test.py b/tests/leaderboard/llvm_instcount_test.py index d1d043204..84693d6e6 100644 --- a/tests/leaderboard/llvm_instcount_test.py +++ b/tests/leaderboard/llvm_instcount_test.py @@ -9,6 +9,7 @@ from absl import flags from compiler_gym.leaderboard.llvm_instcount import eval_llvm_instcount_policy +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main FLAGS = flags.FLAGS @@ -22,24 +23,21 @@ def null_policy(env) -> None: def test_eval_llvm_instcount_policy(): - FLAGS.unparse_flags() - FLAGS(["argv0", "--n=1", "--max_benchmarks=1", "--novalidate"]) + set_command_line_flags(["argv0", "--n=1", "--max_benchmarks=1", "--novalidate"]) with pytest.raises(SystemExit): eval_llvm_instcount_policy(null_policy) def test_eval_llvm_instcount_policy_resume(tmpwd): - FLAGS.unparse_flags() - # Run eval on a single benchmark. - FLAGS( + set_command_line_flags( [ "argv0", "--n=1", "--max_benchmarks=1", "--novalidate", "--resume", - "--results_logfile=test.csv", + "--leaderboard_results=test.csv", ] ) with pytest.raises(SystemExit): @@ -53,14 +51,14 @@ def test_eval_llvm_instcount_policy_resume(tmpwd): init_logfile = log # Repeat, but for two benchmarks. - FLAGS( + set_command_line_flags( [ "argv0", "--n=1", "--max_benchmarks=2", "--novalidate", "--resume", - "--results_logfile=test.csv", + "--leaderboard_results=test.csv", ] ) with pytest.raises(SystemExit): @@ -75,14 +73,14 @@ def test_eval_llvm_instcount_policy_resume(tmpwd): init_logfile = log # Repeat, but for two runs of each benchmark. - FLAGS( + set_command_line_flags( [ "argv0", "--n=2", "--max_benchmarks=2", "--novalidate", "--resume", - "--results_logfile=test.csv", + "--leaderboard_results=test.csv", ] ) with pytest.raises(SystemExit): @@ -97,8 +95,7 @@ def test_eval_llvm_instcount_policy_resume(tmpwd): def test_eval_llvm_instcount_policy_invalid_flag(): - FLAGS.unparse_flags() - FLAGS(["argv0", "--n=-1"]) + set_command_line_flags(["argv0", "--n=-1"]) with pytest.raises(AssertionError): eval_llvm_instcount_policy(null_policy) diff --git a/tests/llvm/BUILD b/tests/llvm/BUILD index e8fd00ab4..882786d24 100644 --- a/tests/llvm/BUILD +++ b/tests/llvm/BUILD @@ -40,20 +40,6 @@ py_test( ], ) -py_test( - name = "benchmark_semantics_validation_test", - timeout = "eternal", - srcs = ["benchmark_semantics_validation_test.py"], - shard_count = 10, - deps = [ - "//compiler_gym", - "//compiler_gym/datasets", - "//compiler_gym/envs", - "//tests:test_main", - "//tests/pytest_plugins:llvm", - ], -) - py_test( name = "benchmarks_random_actions_test", timeout = "long", @@ -72,26 +58,27 @@ py_test( name = "custom_benchmarks_test", srcs = ["custom_benchmarks_test.py"], data = [ - "//compiler_gym/third_party/cBench:crc32", + "invalid_ir.ll", + "//compiler_gym/third_party/cbench:crc32", ], deps = [ "//compiler_gym/envs", "//compiler_gym/service/proto", "//compiler_gym/util", "//tests:test_main", + "//tests/pytest_plugins:common", "//tests/pytest_plugins:llvm", ], ) py_test( - name = "datasets_test", - srcs = ["datasets_test.py"], + name = "download_llvm_test", + srcs = ["download_llvm_test.py"], deps = [ - "//compiler_gym", - "//compiler_gym/envs/llvm:legacy_datasets", + "//compiler_gym/third_party/llvm", + "//compiler_gym/util", "//tests:test_main", "//tests/pytest_plugins:common", - "//tests/pytest_plugins:llvm", ], ) @@ -100,7 +87,7 @@ py_test( timeout = "long", srcs = ["fork_env_test.py"], data = [ - "//compiler_gym/third_party/cBench:crc32", + "//compiler_gym/third_party/cbench:crc32", ], deps = [ "//compiler_gym/envs", @@ -140,6 +127,28 @@ py_test( ], ) +py_test( + name = "gym_interface_compatability", + timeout = "short", + srcs = ["gym_interface_compatability.py"], + deps = [ + "//compiler_gym", + "//tests:test_main", + ], +) + +py_test( + name = "invalid_ir_test", + srcs = ["invalid_ir_test.py"], + data = ["invalid_ir.ll"], + deps = [ + "//compiler_gym/util", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + py_test( name = "llvm_benchmarks_test", srcs = ["llvm_benchmarks_test.py"], @@ -163,10 +172,23 @@ py_test( ], ) +py_test( + name = "module_id_test", + timeout = "short", + srcs = ["module_id_test.py"], + deps = [ + "//compiler_gym", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + py_test( name = "multiprocessing_test", timeout = "short", srcs = ["multiprocessing_test.py"], + flaky = 1, deps = [ "//compiler_gym", "//tests:test_main", @@ -211,17 +233,31 @@ py_test( name = "threading_test", timeout = "short", srcs = ["threading_test.py"], + flaky = 1, deps = [ "//compiler_gym", "//tests:test_main", ], ) +py_test( + name = "validate_test", + timeout = "moderate", + srcs = ["validate_test.py"], + deps = [ + "//compiler_gym", + "//compiler_gym/datasets", + "//compiler_gym/envs", + "//tests:test_main", + "//tests/pytest_plugins:llvm", + ], +) + py_test( name = "validation_regression_test", timeout = "long", srcs = ["validation_regression_test.py"], - shard_count = 6, + shard_count = 4, deps = [ "//compiler_gym", "//tests:test_main", diff --git a/tests/llvm/all_actions_single_step_test.py b/tests/llvm/all_actions_single_step_test.py index 5f5f7dd04..5e64a34f6 100644 --- a/tests/llvm/all_actions_single_step_test.py +++ b/tests/llvm/all_actions_single_step_test.py @@ -17,7 +17,7 @@ def test_step(env: CompilerEnv, action_name: str): """Run each action on a single benchmark.""" env.reward_space = "IrInstructionCount" env.observation_space = "Autophase" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") observation, reward, done, _ = env.step(env.action_space.from_string(action_name)) assert isinstance(observation, np.ndarray) diff --git a/tests/llvm/autophase_test.py b/tests/llvm/autophase_test.py index 86241c0b2..a466a2957 100644 --- a/tests/llvm/autophase_test.py +++ b/tests/llvm/autophase_test.py @@ -10,8 +10,8 @@ def test_autophase_crc32_feature_vector(env: CompilerEnv): - env.benchmark = "cBench-v1/crc32" - env.reset() + env.reset(benchmark="cbench-v1/crc32") + print(env.benchmark) # For debugging in case of error. features = env.observation["AutophaseDict"] print(features) # For debugging on failure. assert features == { diff --git a/tests/llvm/custom_benchmarks_test.py b/tests/llvm/custom_benchmarks_test.py index a8b42e933..35fe0e0cd 100644 --- a/tests/llvm/custom_benchmarks_test.py +++ b/tests/llvm/custom_benchmarks_test.py @@ -11,15 +11,20 @@ import gym import pytest +from compiler_gym.datasets import Benchmark from compiler_gym.envs import LlvmEnv, llvm -from compiler_gym.service.proto import Benchmark, File +from compiler_gym.service.proto import Benchmark as BenchmarkProto +from compiler_gym.service.proto import File from compiler_gym.util.runfiles_path import runfiles_path +from tests.pytest_plugins.common import bazel_only from tests.test_main import main pytest_plugins = ["tests.pytest_plugins.llvm"] +# The path of an IR file that assembles but does not compile. +INVALID_IR_PATH = runfiles_path("tests/llvm/invalid_ir.ll") EXAMPLE_BITCODE_FILE = runfiles_path( - "compiler_gym/third_party/cBench/cBench-v1/crc32.bc" + "compiler_gym/third_party/cbench/cbench-v1/crc32.bc" ) EXAMPLE_BITCODE_IR_INSTRUCTION_COUNT = 242 @@ -29,12 +34,12 @@ def test_reset_invalid_benchmark(env: LlvmEnv): with pytest.raises(ValueError) as ctx: env.reset(benchmark=invalid_benchmark) - assert str(ctx.value) == f'Unknown benchmark "{invalid_benchmark}"' + assert str(ctx.value) == f"Invalid benchmark URI: 'benchmark://{invalid_benchmark}'" def test_invalid_benchmark_data(env: LlvmEnv): - benchmark = Benchmark( - uri="benchmark://new", program=File(contents="Invalid bitcode".encode("utf-8")) + benchmark = Benchmark.from_file_contents( + "benchmark://new", "Invalid bitcode".encode("utf-8") ) with pytest.raises(ValueError) as ctx: @@ -45,7 +50,9 @@ def test_invalid_benchmark_data(env: LlvmEnv): def test_invalid_benchmark_missing_file(env: LlvmEnv): benchmark = Benchmark( - uri="benchmark://new", + BenchmarkProto( + uri="benchmark://new", + ) ) with pytest.raises(ValueError) as ctx: @@ -54,27 +61,12 @@ def test_invalid_benchmark_missing_file(env: LlvmEnv): assert str(ctx.value) == "No program set" -def test_benchmark_path_not_found(env: LlvmEnv): - with tempfile.TemporaryDirectory() as tmpdir: - tmpdir = Path(tmpdir) - benchmark = Benchmark( - uri="benchmark://new", program=File(uri=f"file:///{tmpdir}/not_found") - ) - - with pytest.raises(FileNotFoundError) as ctx: - env.reset(benchmark=benchmark) - - assert str(ctx.value) == f'File not found: "{tmpdir}/not_found"' - - def test_benchmark_path_empty_file(env: LlvmEnv): with tempfile.TemporaryDirectory() as tmpdir: tmpdir = Path(tmpdir) (tmpdir / "test.bc").touch() - benchmark = Benchmark( - uri="benchmark://new", program=File(uri=f"file:///{tmpdir}/test.bc") - ) + benchmark = Benchmark.from_file("benchmark://new", tmpdir / "test.bc") with pytest.raises(ValueError) as ctx: env.reset(benchmark=benchmark) @@ -88,9 +80,7 @@ def test_invalid_benchmark_path_contents(env: LlvmEnv): with open(str(tmpdir / "test.bc"), "w") as f: f.write("Invalid bitcode") - benchmark = Benchmark( - uri="benchmark://new", program=File(uri=f"file:///{tmpdir}/test.bc") - ) + benchmark = Benchmark.from_file("benchmark://new", tmpdir / "test.bc") with pytest.raises(ValueError) as ctx: env.reset(benchmark=benchmark) @@ -100,7 +90,9 @@ def test_invalid_benchmark_path_contents(env: LlvmEnv): def test_benchmark_path_invalid_protocol(env: LlvmEnv): benchmark = Benchmark( - uri="benchmark://new", program=File(uri="invalid_protocol://test") + BenchmarkProto( + uri="benchmark://new", program=File(uri="invalid_protocol://test") + ), ) with pytest.raises(ValueError) as ctx: @@ -108,22 +100,18 @@ def test_benchmark_path_invalid_protocol(env: LlvmEnv): assert ( str(ctx.value) - == 'Unsupported benchmark URI protocol: "invalid_protocol://test"' + == 'Invalid benchmark data URI. Only the file:/// protocol is supported: "invalid_protocol://test"' ) def test_custom_benchmark(env: LlvmEnv): - benchmark = Benchmark( - uri="benchmark://new", program=File(uri=f"file:///{EXAMPLE_BITCODE_FILE}") - ) + benchmark = Benchmark.from_file("benchmark://new", EXAMPLE_BITCODE_FILE) env.reset(benchmark=benchmark) assert env.benchmark == "benchmark://new" def test_custom_benchmark_constructor(): - benchmark = Benchmark( - uri="benchmark://new", program=File(uri=f"file:///{EXAMPLE_BITCODE_FILE}") - ) + benchmark = Benchmark.from_file("benchmark://new", EXAMPLE_BITCODE_FILE) env = gym.make("llvm-v0", benchmark=benchmark) try: env.reset() @@ -135,14 +123,21 @@ def test_custom_benchmark_constructor(): def test_make_benchmark_single_bitcode(env: LlvmEnv): benchmark = llvm.make_benchmark(EXAMPLE_BITCODE_FILE) - assert benchmark.uri == f"file:///{EXAMPLE_BITCODE_FILE}" - assert benchmark.program.uri == f"file:///{EXAMPLE_BITCODE_FILE}" + assert benchmark == f"file:///{EXAMPLE_BITCODE_FILE}" + assert benchmark.proto.program.uri == f"file:///{EXAMPLE_BITCODE_FILE}" env.reset(benchmark=benchmark) assert env.benchmark == benchmark.uri assert env.observation["IrInstructionCount"] == EXAMPLE_BITCODE_IR_INSTRUCTION_COUNT +@bazel_only +def test_make_benchmark_single_ll(): + """Test passing a single .ll file into make_benchmark().""" + benchmark = llvm.make_benchmark(INVALID_IR_PATH) + assert benchmark.uri.startswith("benchmark://user/") + + def test_make_benchmark_single_clang_job(env: LlvmEnv): with tempfile.TemporaryDirectory() as d: source = Path(d) / "input.c" @@ -287,8 +282,11 @@ def test_two_custom_benchmarks_reset(env: LlvmEnv): assert env.benchmark == benchmark1.uri env.reset() assert env.benchmark == benchmark1.uri - env.benchmark = benchmark2 - # assert env.benchmark == benchmark1.uri + with pytest.warns( + UserWarning, + match=r"Changing the benchmark has no effect until reset\(\) is called", + ): + env.benchmark = benchmark2 env.reset() assert env.benchmark == benchmark2.uri @@ -299,7 +297,9 @@ def test_get_system_includes_nonzero_exit_status(): os.environ["CXX"] = "false" try: with pytest.raises(OSError) as ctx: - list(llvm.benchmarks._get_system_includes()) + list( + llvm.llvm_benchmark._get_system_includes() # pylint: disable=protected-access + ) assert "Failed to invoke false" in str(ctx.value) finally: if old_cxx: @@ -312,7 +312,9 @@ def test_get_system_includes_output_parse_failure(): os.environ["CXX"] = "echo" try: with pytest.raises(OSError) as ctx: - list(llvm.benchmarks._get_system_includes()) + list( + llvm.llvm_benchmark._get_system_includes() # pylint: disable=protected-access + ) assert "Failed to parse '#include <...>' search paths from echo" in str( ctx.value ) diff --git a/tests/llvm/datasets/BUILD b/tests/llvm/datasets/BUILD new file mode 100644 index 000000000..9077658ba --- /dev/null +++ b/tests/llvm/datasets/BUILD @@ -0,0 +1,125 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +load("@rules_python//python:defs.bzl", "py_test") + +py_test( + name = "anghabench_test", + timeout = "long", + srcs = ["anghabench_test.py"], + shard_count = 8, + deps = [ + "//compiler_gym/envs/llvm", + "//compiler_gym/envs/llvm/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + +py_test( + name = "cbench_test", + timeout = "moderate", + srcs = ["cbench_test.py"], + deps = [ + "//compiler_gym/envs/llvm", + "//compiler_gym/envs/llvm/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + +py_test( + name = "cbench_validate_test", + timeout = "eternal", + srcs = ["cbench_validate_test.py"], + shard_count = 6, + deps = [ + "//compiler_gym", + "//compiler_gym/datasets", + "//compiler_gym/envs", + "//tests:test_main", + "//tests/pytest_plugins:llvm", + ], +) + +py_test( + name = "clgen_test", + timeout = "moderate", + srcs = ["clgen_test.py"], + shard_count = 8, + deps = [ + "//compiler_gym/envs/llvm", + "//compiler_gym/envs/llvm/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + +py_test( + name = "csmith_test", + timeout = "long", + srcs = ["csmith_test.py"], + shard_count = 8, + deps = [ + "//compiler_gym/envs/llvm", + "//compiler_gym/envs/llvm/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + +py_test( + name = "github_test", + timeout = "long", + srcs = ["github_test.py"], + shard_count = 8, + deps = [ + "//compiler_gym/envs/llvm", + "//compiler_gym/envs/llvm/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + +py_test( + name = "llvm_datasets_test", + timeout = "short", + srcs = ["llvm_datasets_test.py"], + deps = [ + "//compiler_gym/envs/llvm", + "//tests:test_main", + ], +) + +py_test( + name = "llvm_stress_test", + timeout = "long", + srcs = ["llvm_stress_test.py"], + deps = [ + "//compiler_gym/envs/llvm", + "//compiler_gym/envs/llvm/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) + +py_test( + name = "poj104_test", + timeout = "long", + srcs = ["poj104_test.py"], + shard_count = 8, + deps = [ + "//compiler_gym/envs/llvm", + "//compiler_gym/envs/llvm/datasets", + "//tests:test_main", + "//tests/pytest_plugins:common", + "//tests/pytest_plugins:llvm", + ], +) diff --git a/tests/llvm/datasets/anghabench_test.py b/tests/llvm/datasets/anghabench_test.py new file mode 100644 index 000000000..0d1026e82 --- /dev/null +++ b/tests/llvm/datasets/anghabench_test.py @@ -0,0 +1,71 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the AnghaBench dataset.""" +import sys +from itertools import islice +from pathlib import Path + +import gym +import pytest + +import compiler_gym.envs.llvm # noqa register environments +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets import AnghaBenchDataset +from tests.pytest_plugins.common import skip_on_ci +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] + + +@pytest.fixture(scope="module") +def anghabench_dataset() -> AnghaBenchDataset: + env = gym.make("llvm-v0") + try: + ds = env.datasets["anghabench-v0"] + finally: + env.close() + yield ds + + +def test_anghabench_size(anghabench_dataset: AnghaBenchDataset): + if sys.platform == "darwin": + assert anghabench_dataset.size == 1042908 + else: + assert anghabench_dataset.size == 1042976 + + +def test_missing_benchmark_name(anghabench_dataset: AnghaBenchDataset, mocker): + # Mock install() so that on CI it doesn't download and unpack the tarfile. + mocker.patch.object(anghabench_dataset, "install") + + with pytest.raises( + LookupError, match=r"^No benchmark specified: benchmark://anghabench-v0$" + ): + anghabench_dataset.benchmark("benchmark://anghabench-v0") + anghabench_dataset.install.assert_called_once() + + with pytest.raises( + LookupError, match=r"^No benchmark specified: benchmark://anghabench-v0/$" + ): + anghabench_dataset.benchmark("benchmark://anghabench-v0/") + assert anghabench_dataset.install.call_count == 2 + + +@skip_on_ci +@pytest.mark.parametrize("index", range(250)) +def test_anghabench_random_select( + env: LlvmEnv, anghabench_dataset: AnghaBenchDataset, index: int, tmpwd: Path +): + uri = next(islice(anghabench_dataset.benchmark_uris(), index, None)) + benchmark = anghabench_dataset.benchmark(uri) + env.reset(benchmark=benchmark) + + assert benchmark.source + benchmark.write_sources_to_directory(tmpwd) + assert (tmpwd / "function.c").is_file() + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/cbench_test.py b/tests/llvm/datasets/cbench_test.py new file mode 100644 index 000000000..13543ee0b --- /dev/null +++ b/tests/llvm/datasets/cbench_test.py @@ -0,0 +1,88 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the cbench dataset.""" +import tempfile +from pathlib import Path + +import pytest + +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets import CBenchDataset, cbench +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] + + +@pytest.fixture(scope="module") +def cbench_dataset() -> CBenchDataset: + with tempfile.TemporaryDirectory() as d: + yield CBenchDataset(site_data_base=Path(d)) + + +def test_cbench_size(cbench_dataset: CBenchDataset): + assert cbench_dataset.size == 23 + + +def test_cbench_uris(cbench_dataset: CBenchDataset): + assert list(cbench_dataset.benchmark_uris()) == [ + "benchmark://cbench-v1/adpcm", + "benchmark://cbench-v1/bitcount", + "benchmark://cbench-v1/blowfish", + "benchmark://cbench-v1/bzip2", + "benchmark://cbench-v1/crc32", + "benchmark://cbench-v1/dijkstra", + "benchmark://cbench-v1/ghostscript", + "benchmark://cbench-v1/gsm", + "benchmark://cbench-v1/ispell", + "benchmark://cbench-v1/jpeg-c", + "benchmark://cbench-v1/jpeg-d", + "benchmark://cbench-v1/lame", + "benchmark://cbench-v1/patricia", + "benchmark://cbench-v1/qsort", + "benchmark://cbench-v1/rijndael", + "benchmark://cbench-v1/sha", + "benchmark://cbench-v1/stringsearch", + "benchmark://cbench-v1/stringsearch2", + "benchmark://cbench-v1/susan", + "benchmark://cbench-v1/tiff2bw", + "benchmark://cbench-v1/tiff2rgba", + "benchmark://cbench-v1/tiffdither", + "benchmark://cbench-v1/tiffmedian", + ] + + +def test_validate_sha_output_okay(): + output = cbench.BenchmarkExecutionResult( + walltime_seconds=0, + output="1234567890abcdef 1234567890abcd 1234567890abc 1234567890 12345", + ) + assert cbench.validate_sha_output(output) is None + + +def test_validate_sha_output_invalid(): + output = cbench.BenchmarkExecutionResult(walltime_seconds=0, output="abcd") + assert cbench.validate_sha_output(output) + + +def test_cbench_v0_deprecation(env: LlvmEnv): + """Test that cBench-v0 emits a deprecation warning when used.""" + with pytest.deprecated_call(match="Please use 'benchmark://cbench-v1'"): + env.datasets["cBench-v0"].install() + + with pytest.deprecated_call(match="Please use 'benchmark://cbench-v1'"): + env.datasets.benchmark("benchmark://cBench-v0/crc32") + + +def test_cbench_v1_deprecation(env: LlvmEnv): + """Test that cBench-v1 emits a deprecation warning when used.""" + with pytest.deprecated_call(match="Please use 'benchmark://cbench-v1'"): + env.datasets["cBench-v1"].install() + + with pytest.deprecated_call(match="Please use 'benchmark://cbench-v1'"): + env.datasets.benchmark("benchmark://cBench-v1/crc32") + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/cbench_validate_test.py b/tests/llvm/datasets/cbench_validate_test.py new file mode 100644 index 000000000..156e47b46 --- /dev/null +++ b/tests/llvm/datasets/cbench_validate_test.py @@ -0,0 +1,54 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Test for cBench semantics validation.""" +from compiler_gym import ValidationResult +from compiler_gym.envs.llvm import LlvmEnv +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.llvm"] + + +def test_validate_benchmark_semantics(env: LlvmEnv, validatable_cbench_uri: str): + """Run the validation routine on all benchmarks.""" + env.reward_space = "IrInstructionCount" + env.reset(benchmark=validatable_cbench_uri) + + # Run a single step. + env.step(env.action_space.flags.index("-mem2reg")) + + # Validate the environment state. + result: ValidationResult = env.validate() + assert not result.error_details + assert result.reward_validated + assert not result.actions_replay_failed + assert not result.reward_validation_failed + assert result.benchmark_semantics_validated + assert not result.benchmark_semantics_validation_failed + assert result.okay() + + +def test_non_validatable_benchmark_validate( + env: LlvmEnv, non_validatable_cbench_uri: str +): + """Run the validation routine on all benchmarks.""" + env.reward_space = "IrInstructionCount" + env.reset(benchmark=non_validatable_cbench_uri) + + # Run a single step. + env.step(env.action_space.flags.index("-mem2reg")) + + # Validate the environment state. + result: ValidationResult = env.validate() + assert not result.error_details + assert result.reward_validated + assert not result.actions_replay_failed + assert not result.reward_validation_failed + assert not result.benchmark_semantics_validated + assert not result.benchmark_semantics_validation_failed + assert result.okay() + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/clgen_test.py b/tests/llvm/datasets/clgen_test.py new file mode 100644 index 000000000..313eede2f --- /dev/null +++ b/tests/llvm/datasets/clgen_test.py @@ -0,0 +1,67 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the CLgen dataset.""" +from itertools import islice +from pathlib import Path + +import gym +import pytest + +import compiler_gym.envs.llvm # noqa register environments +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets import CLgenDataset +from tests.pytest_plugins.common import skip_on_ci +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] + + +@pytest.fixture(scope="module") +def clgen_dataset() -> CLgenDataset: + env = gym.make("llvm-v0") + try: + ds = env.datasets["benchmark://clgen-v0"] + finally: + env.close() + yield ds + + +def test_clgen_size(clgen_dataset: CLgenDataset): + assert clgen_dataset.size == 996 + + +def test_missing_benchmark_name(clgen_dataset: CLgenDataset, mocker): + # Mock install() so that on CI it doesn't download and unpack the tarfile. + mocker.patch.object(clgen_dataset, "install") + + with pytest.raises( + LookupError, match=r"^No benchmark specified: benchmark://clgen-v0$" + ): + clgen_dataset.benchmark("benchmark://clgen-v0") + clgen_dataset.install.assert_called_once() + + with pytest.raises( + LookupError, match=r"^No benchmark specified: benchmark://clgen-v0/$" + ): + clgen_dataset.benchmark("benchmark://clgen-v0/") + assert clgen_dataset.install.call_count == 2 + + +@skip_on_ci +@pytest.mark.parametrize("index", range(250)) +def test_clgen_random_select( + env: LlvmEnv, clgen_dataset: CLgenDataset, index: int, tmpwd: Path +): + uri = next(islice(clgen_dataset.benchmark_uris(), index, None)) + benchmark = clgen_dataset.benchmark(uri) + env.reset(benchmark=benchmark) + + assert benchmark.source + benchmark.write_sources_to_directory(tmpwd) + assert (tmpwd / "kernel.cl").is_file() + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/csmith_test.py b/tests/llvm/datasets/csmith_test.py new file mode 100644 index 000000000..74d7b9443 --- /dev/null +++ b/tests/llvm/datasets/csmith_test.py @@ -0,0 +1,51 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the Csmith dataset.""" +from itertools import islice +from pathlib import Path + +import gym +import pytest + +import compiler_gym.envs.llvm # noqa register environments +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets import CsmithBenchmark, CsmithDataset +from tests.pytest_plugins.common import skip_on_ci +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] + + +@pytest.fixture(scope="module") +def csmith_dataset() -> CsmithDataset: + env = gym.make("llvm-v0") + try: + ds = env.datasets["generator://csmith-v0"] + finally: + env.close() + yield ds + + +def test_csmith_size(csmith_dataset: CsmithDataset): + assert csmith_dataset.size == float("inf") + + +@skip_on_ci +@pytest.mark.parametrize("index", range(250)) +def test_csmith_random_select( + env: LlvmEnv, csmith_dataset: CsmithDataset, index: int, tmpwd: Path +): + uri = next(islice(csmith_dataset.benchmark_uris(), index, None)) + benchmark = csmith_dataset.benchmark(uri) + assert isinstance(benchmark, CsmithBenchmark) + env.reset(benchmark=benchmark) + + assert benchmark.source + benchmark.write_sources_to_directory(tmpwd) + assert (tmpwd / "source.c").is_file() + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/github_test.py b/tests/llvm/datasets/github_test.py new file mode 100644 index 000000000..ba7af2e60 --- /dev/null +++ b/tests/llvm/datasets/github_test.py @@ -0,0 +1,47 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the GitHub dataset.""" +import sys +from itertools import islice + +import gym +import pytest + +import compiler_gym.envs.llvm # noqa register environments +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets import GitHubDataset +from tests.pytest_plugins.common import skip_on_ci +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] + + +@pytest.fixture(scope="module") +def github_dataset() -> GitHubDataset: + env = gym.make("llvm-v0") + try: + ds = env.datasets["github-v0"] + finally: + env.close() + yield ds + + +def test_github_size(github_dataset: GitHubDataset): + if sys.platform == "linux": + assert github_dataset.size == 49738 + else: + assert github_dataset.size == 47806 + + +@skip_on_ci +@pytest.mark.parametrize("index", range(250)) +def test_github_random_select(env: LlvmEnv, github_dataset: GitHubDataset, index: int): + uri = next(islice(github_dataset.benchmark_uris(), index, None)) + benchmark = github_dataset.benchmark(uri) + env.reset(benchmark=benchmark) + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/llvm_datasets_test.py b/tests/llvm/datasets/llvm_datasets_test.py new file mode 100644 index 000000000..495f17a6a --- /dev/null +++ b/tests/llvm/datasets/llvm_datasets_test.py @@ -0,0 +1,35 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the LLVM datasets.""" +import gym + +import compiler_gym.envs.llvm # noqa register environments +from tests.test_main import main + + +def test_default_dataset_list(): + env = gym.make("llvm-v0") + try: + assert list(d.name for d in env.datasets) == [ + "benchmark://cbench-v1", + "benchmark://anghabench-v0", + "benchmark://blas-v0", + "benchmark://clgen-v0", + "benchmark://github-v0", + "benchmark://linux-v0", + "benchmark://mibench-v0", + "benchmark://npb-v0", + "benchmark://opencv-v0", + "benchmark://poj104-v1", + "benchmark://tensorflow-v0", + "generator://csmith-v0", + "generator://llvm-stress-v0", + ] + finally: + env.close() + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/llvm_stress_test.py b/tests/llvm/datasets/llvm_stress_test.py new file mode 100644 index 000000000..50a5dcb4e --- /dev/null +++ b/tests/llvm/datasets/llvm_stress_test.py @@ -0,0 +1,63 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the AnghaBench dataset.""" +import sys +from itertools import islice + +import gym +import pytest + +import compiler_gym.envs.llvm # noqa register environments +from compiler_gym.datasets import BenchmarkInitError +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets import LlvmStressDataset +from tests.pytest_plugins.common import skip_on_ci +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] + + +@pytest.fixture(scope="module") +def llvm_stress_dataset() -> LlvmStressDataset: + env = gym.make("llvm-v0") + try: + ds = env.datasets["generator://llvm-stress-v0"] + finally: + env.close() + yield ds + + +def test_llvm_stress_size(llvm_stress_dataset: LlvmStressDataset): + assert llvm_stress_dataset.size == float("inf") + + +@skip_on_ci +@pytest.mark.parametrize("index", range(250)) +def test_llvm_stress_random_select( + env: LlvmEnv, llvm_stress_dataset: LlvmStressDataset, index: int +): + env.observation_space = "InstCountDict" + + uri = next(islice(llvm_stress_dataset.benchmark_uris(), index, None)) + benchmark = llvm_stress_dataset.benchmark(uri) + + # As of the current version (LLVM 10.0.0), programs generated with the + # following seeds emit an error when compiled: "Cannot emit physreg copy + # instruction". + FAILING_SEEDS = {"linux": {173, 239}, "darwin": {173}}[sys.platform] + + if index in FAILING_SEEDS: + with pytest.raises( + BenchmarkInitError, match="Cannot emit physreg copy instruction" + ): + env.reset(benchmark=benchmark) + else: + instcount = env.reset(benchmark=benchmark) + print(env.ir) # For debugging in case of error. + assert instcount["TotalInstsCount"] > 0 + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets/poj104_test.py b/tests/llvm/datasets/poj104_test.py new file mode 100644 index 000000000..084d89ad4 --- /dev/null +++ b/tests/llvm/datasets/poj104_test.py @@ -0,0 +1,54 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for the POJ104 dataset.""" +import sys +from itertools import islice +from pathlib import Path + +import gym +import pytest + +import compiler_gym.envs.llvm # noqa register environments +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets import POJ104Dataset +from tests.pytest_plugins.common import skip_on_ci +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] + + +@pytest.fixture(scope="module") +def poj104_dataset() -> POJ104Dataset: + env = gym.make("llvm-v0") + try: + ds = env.datasets["poj104-v1"] + finally: + env.close() + yield ds + + +def test_poj104_size(poj104_dataset: POJ104Dataset): + if sys.platform == "darwin": + assert poj104_dataset.size == 49815 + else: + assert poj104_dataset.size == 49816 + + +@skip_on_ci +@pytest.mark.parametrize("index", range(250)) +def test_poj104_random_select( + env: LlvmEnv, poj104_dataset: POJ104Dataset, index: int, tmpwd: Path +): + uri = next(islice(poj104_dataset.benchmark_uris(), index, None)) + benchmark = poj104_dataset.benchmark(uri) + env.reset(benchmark=benchmark) + + assert benchmark.source + benchmark.write_sources_to_directory(tmpwd) + assert (tmpwd / "source.cc").is_file() + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/datasets_test.py b/tests/llvm/datasets_test.py deleted file mode 100644 index 72569b054..000000000 --- a/tests/llvm/datasets_test.py +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. -"""Tests for //compiler_gym/envs/llvm:legacy_datasets.""" -import pytest - -from compiler_gym.envs.llvm import LlvmEnv, legacy_datasets -from tests.test_main import main - -pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] - - -def test_validate_sha_output_okay(): - output = legacy_datasets.BenchmarkExecutionResult( - walltime_seconds=0, - output="1234567890abcdef 1234567890abcd 1234567890abc 1234567890 12345", - ) - assert legacy_datasets.validate_sha_output(output) is None - - -def test_validate_sha_output_invalid(): - output = legacy_datasets.BenchmarkExecutionResult(walltime_seconds=0, output="abcd") - assert legacy_datasets.validate_sha_output(output) - - -def test_cBench_v0_deprecation(env: LlvmEnv): - """Test that cBench-v0 emits a deprecation warning when used.""" - with pytest.deprecated_call( - match=( - "Dataset 'cBench-v0' is deprecated as of CompilerGym release " - "v0.1.4, please update to the latest available version" - ) - ): - env.require_dataset("cBench-v0") - - -if __name__ == "__main__": - main() diff --git a/tests/llvm/download_llvm_test.py b/tests/llvm/download_llvm_test.py new file mode 100644 index 000000000..6e5d74f01 --- /dev/null +++ b/tests/llvm/download_llvm_test.py @@ -0,0 +1,55 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +import os +from concurrent.futures import ThreadPoolExecutor +from pathlib import Path + +from compiler_gym.third_party import llvm +from compiler_gym.util.runfiles_path import site_data_path +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common"] + + +def test_download_llvm_threaded_load_test(temporary_environ, tmpwd: Path, mocker): + """A load test for download_llvm_files() that checks that redundant + downloads are not performed when multiple simultaneous calls to + download_llvm_files() are issued. + """ + mocker.spy(llvm, "_download_llvm_files") + mocker.spy(llvm, "download") + + # Force the LLVM download function to run. + llvm._LLVM_DOWNLOADED = False + + # Force a temporary new site data path and sanity check it. + temporary_environ["COMPILER_GYM_SITE_DATA"] = str(tmpwd) + assert str(site_data_path(".")).endswith(str(tmpwd)) + + # Perform a bunch of concurrent calls to download_llvm_files(). + with ThreadPoolExecutor() as executor: + futures = [executor.submit(llvm.download_llvm_files) for _ in range(100)] + for future in futures: + future.result() + + # For debugging in case of error. + print("Downloads:", llvm._download_llvm_files.call_count) # pylint: disable + for root, _, filenames in os.walk(tmpwd): + print(root) + for filename in filenames: + print(Path(root) / filename) + + # Check that the files were unpacked. + assert (tmpwd / "llvm-v0" / "LICENSE").is_file() + assert (tmpwd / "llvm-v0" / "bin" / "clang").is_file() + + # Check that the underlying download implementation was only called a single + # time. + assert llvm._download_llvm_files.call_count == 1 # pylint: disable + assert llvm.download.call_count == 1 + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/fork_env_test.py b/tests/llvm/fork_env_test.py index 0f7b41582..59d239f1d 100644 --- a/tests/llvm/fork_env_test.py +++ b/tests/llvm/fork_env_test.py @@ -12,13 +12,13 @@ pytest_plugins = ["tests.pytest_plugins.llvm"] EXAMPLE_BITCODE_FILE = runfiles_path( - "compiler_gym/third_party/cBench/cBench-v1/crc32.bc" + "compiler_gym/third_party/cbench/cbench-v1/crc32.bc" ) EXAMPLE_BITCODE_IR_INSTRUCTION_COUNT = 196 def test_fork_child_process_is_not_orphaned(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") fkd = env.fork() try: # Check that both environments share the same service. @@ -49,7 +49,7 @@ def test_fork_child_process_is_not_orphaned(env: LlvmEnv): def test_fork_chain_child_processes_are_not_orphaned(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") # Create a chain of forked environments. a = env.fork() @@ -93,13 +93,12 @@ def test_fork_before_reset(env: LlvmEnv): try: assert env.in_episode assert fkd.in_episode - assert env.benchmark == fkd.benchmark finally: fkd.close() def test_fork_closed_service(env: LlvmEnv): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") _, _, done, _ = env.step(0) assert not done @@ -119,7 +118,7 @@ def test_fork_closed_service(env: LlvmEnv): def test_fork_spaces_are_same(env: LlvmEnv): env.observation_space = "Autophase" env.reward_space = "IrInstructionCount" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") fkd = env.fork() try: @@ -131,7 +130,7 @@ def test_fork_spaces_are_same(env: LlvmEnv): def test_fork_state(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") env.step(0) assert env.actions == [0] @@ -144,7 +143,7 @@ def test_fork_state(env: LlvmEnv): def test_fork_reset(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") env.step(0) env.step(1) env.step(2) @@ -183,7 +182,7 @@ def ir(env): def test_fork_twice_test(env: LlvmEnv): """Test that fork() on a forked environment works.""" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") fork_a = env.fork() fork_b = fork_a.fork() try: @@ -196,7 +195,7 @@ def test_fork_twice_test(env: LlvmEnv): def test_fork_modified_ir_is_the_same(env: LlvmEnv): """Test that the IR of a forked environment is the same.""" - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") # Apply an action that modifies the benchmark. _, _, done, info = env.step(env.action_space.flags.index("-mem2reg")) @@ -222,7 +221,7 @@ def test_fork_modified_ir_is_the_same(env: LlvmEnv): def test_fork_rewards(env: LlvmEnv, reward_space: str): """Test that rewards are equal after fork() is called.""" env.reward_space = reward_space - env.reset("cBench-v1/dijkstra") + env.reset("cbench-v1/dijkstra") actions = [env.action_space.flags.index(n) for n in ["-mem2reg", "-simplifycfg"]] @@ -240,7 +239,7 @@ def test_fork_rewards(env: LlvmEnv, reward_space: str): def test_fork_previous_cost_reward_update(env: LlvmEnv): env.reward_space = "IrInstructionCount" - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") env.step(env.action_space.flags.index("-mem2reg")) fkd = env.fork() @@ -253,7 +252,7 @@ def test_fork_previous_cost_reward_update(env: LlvmEnv): def test_fork_previous_cost_lazy_reward_update(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") env.step(env.action_space.flags.index("-mem2reg")) env.reward["IrInstructionCount"] diff --git a/tests/llvm/fresh_environment_observation_reward_test.py b/tests/llvm/fresh_environment_observation_reward_test.py index 262e24480..e1cf71018 100644 --- a/tests/llvm/fresh_environment_observation_reward_test.py +++ b/tests/llvm/fresh_environment_observation_reward_test.py @@ -14,7 +14,7 @@ def test_step(env: CompilerEnv, observation_space: str, reward_space: str): """Request every combination of observation and reward in a fresh environment.""" env.reward_space = None env.observation_space = None - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") observation = env.observation[observation_space] assert observation is not None diff --git a/tests/llvm/fuzzing_regression_test.py b/tests/llvm/fuzzing_regression_test.py index 09e30801c..8a628bf8c 100644 --- a/tests/llvm/fuzzing_regression_test.py +++ b/tests/llvm/fuzzing_regression_test.py @@ -18,7 +18,7 @@ @pytest.mark.xfail(reason="-separate-const-offset-from-gep", strict=True) def test_regression_test_const_offset_from_gep(env, tmpwd, llvm_diff, llvm_opt): - env.reset(benchmark="benchmark://cBench-v1/blowfish") + env.reset(benchmark="benchmark://cbench-v1/blowfish") env.write_ir("input.ll") # FIXME: Removing the -separate-const-offset-from-gep actions from the below # commandline "fixes" the test. diff --git a/tests/llvm/gvn_sink_test.py b/tests/llvm/gvn_sink_test.py index 9c8bfba9d..df5c592d8 100644 --- a/tests/llvm/gvn_sink_test.py +++ b/tests/llvm/gvn_sink_test.py @@ -19,24 +19,24 @@ @pytest.mark.parametrize( "benchmark_name", [ - "benchmark://cBench-v1/adpcm", - "benchmark://cBench-v1/bitcount", - "benchmark://cBench-v1/blowfish", - "benchmark://cBench-v1/bzip2", - "benchmark://cBench-v1/ghostscript", - "benchmark://cBench-v1/gsm", - "benchmark://cBench-v1/ispell", - "benchmark://cBench-v1/jpeg-c", - "benchmark://cBench-v1/jpeg-d", - "benchmark://cBench-v1/patricia", - "benchmark://cBench-v1/rijndael", - "benchmark://cBench-v1/stringsearch", - "benchmark://cBench-v1/stringsearch2", - "benchmark://cBench-v1/susan", - "benchmark://cBench-v1/tiff2bw", - "benchmark://cBench-v1/tiff2rgba", - "benchmark://cBench-v1/tiffdither", - "benchmark://cBench-v1/tiffmedian", + "benchmark://cbench-v1/adpcm", + "benchmark://cbench-v1/bitcount", + "benchmark://cbench-v1/blowfish", + "benchmark://cbench-v1/bzip2", + "benchmark://cbench-v1/ghostscript", + "benchmark://cbench-v1/gsm", + "benchmark://cbench-v1/ispell", + "benchmark://cbench-v1/jpeg-c", + "benchmark://cbench-v1/jpeg-d", + "benchmark://cbench-v1/patricia", + "benchmark://cbench-v1/rijndael", + "benchmark://cbench-v1/stringsearch", + "benchmark://cbench-v1/stringsearch2", + "benchmark://cbench-v1/susan", + "benchmark://cbench-v1/tiff2bw", + "benchmark://cbench-v1/tiff2rgba", + "benchmark://cbench-v1/tiffdither", + "benchmark://cbench-v1/tiffmedian", ], ) def test_gvn_sink_non_determinism(env: LlvmEnv, benchmark_name: str): diff --git a/tests/llvm/gym_interface_compatability.py b/tests/llvm/gym_interface_compatability.py new file mode 100644 index 000000000..95a02058f --- /dev/null +++ b/tests/llvm/gym_interface_compatability.py @@ -0,0 +1,81 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Test that LlvmEnv is compatible with OpenAI gym interface.""" +import gym +import pytest + +import compiler_gym # noqa Register Environments +from compiler_gym.envs import CompilerEnv +from tests.test_main import main + + +@pytest.fixture(scope="function") +def env() -> CompilerEnv: + env = gym.make("llvm-autophase-ic-v0") + try: + yield env + finally: + env.close() + + +def test_type_classes(env: CompilerEnv): + assert isinstance(env, gym.Env) + assert isinstance(env, CompilerEnv) + assert isinstance(env.unwrapped, CompilerEnv) + assert isinstance(env.action_space, gym.Space) + assert isinstance(env.observation_space, gym.Space) + assert isinstance(env.reward_range[0], float) + assert isinstance(env.reward_range[1], float) + + +def test_optional_properties(env: CompilerEnv): + assert "render.modes" in env.metadata + assert env.spec + + +def test_contextmanager(env: CompilerEnv, mocker): + mocker.spy(env, "close") + assert env.close.call_count == 0 + with env: + pass + assert env.close.call_count == 1 + + +def test_contextmanager_gym_make(mocker): + with gym.make("llvm-v0") as env: + mocker.spy(env, "close") + assert env.close.call_count == 0 + with env: + pass + assert env.close.call_count == 1 + + +def test_observation_wrapper(env: CompilerEnv): + class WrappedEnv(gym.ObservationWrapper): + def observation(self, observation): + return "Hello" + + wrapped = WrappedEnv(env) + observation = wrapped.reset() + assert observation == "Hello" + + observation, _, _, _ = wrapped.step(0) + assert observation == "Hello" + + +def test_reward_wrapper(env: CompilerEnv): + class WrappedEnv(gym.RewardWrapper): + def reward(self, reward): + return 1 + + wrapped = WrappedEnv(env) + wrapped.reset() + + _, reward, _, _ = wrapped.step(0) + assert reward == 1 + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/invalid_ir.ll b/tests/llvm/invalid_ir.ll new file mode 100644 index 000000000..ceea57466 --- /dev/null +++ b/tests/llvm/invalid_ir.ll @@ -0,0 +1,148 @@ +; Generated using llvm-stress --seed=1068 +; This IR file can be assembled: $ lvm-as tests/llvm/invalid_ir.ll +; But it cannot be compiled: $ clang tests/llvm/invalid_ir.ll +; The error is: "error in backend: Cannot emit physreg copy instruction" + +; ModuleID = '' +source_filename = "/tmp/autogen.bc" + +define void @autogen_SD1068(i8* %0, i32* %1, i64* %2, i32 %3, i64 %4, i8 %5) { +BB: + %A4 = alloca <8 x i32> + %A3 = alloca <16 x double> + %A2 = alloca <8 x double> + %A1 = alloca <1 x float> + %A = alloca <1 x i64> + %L = load i8, i8* %0 + store <1 x i64> , <1 x i64>* %A + %E = extractelement <16 x i32> zeroinitializer, i32 7 + %Shuff = shufflevector <2 x i1> zeroinitializer, <2 x i1> zeroinitializer, <2 x i32> + %I = insertelement <2 x i1> zeroinitializer, i1 true, i32 0 + %B = srem i8 %5, %5 + %FC = uitofp <4 x i1> zeroinitializer to <4 x double> + %Sl = select i1 false, i16 -83, i16 -1 + %Cmp = icmp slt <16 x i32> zeroinitializer, zeroinitializer + %L5 = load i8, i8* %0 + store i8 -11, i8* %0 + %E6 = extractelement <2 x i1> zeroinitializer, i32 1 + br label %CF74 + +CF74: ; preds = %BB + %Shuff7 = shufflevector <2 x i1> zeroinitializer, <2 x i1> %Shuff, <2 x i32> + %I8 = insertelement <2 x i1> %Shuff, i1 false, i32 0 + %B9 = and i16 %Sl, -25375 + %FC10 = uitofp <2 x i1> zeroinitializer to <2 x float> + %Sl11 = select i1 false, i16 -25375, i16 -1 + %Cmp12 = icmp uge <2 x i1> %I, %Shuff + %L13 = load i8, i8* %0 + store i8 -111, i8* %0 + %E14 = extractelement <4 x double> %FC, i32 3 + %Shuff15 = shufflevector <2 x i1> zeroinitializer, <2 x i1> %Shuff, <2 x i32> + %I16 = insertelement <2 x float> %FC10, float 0xB8A8325C00000000, i32 0 + %B17 = srem <2 x i64> zeroinitializer, zeroinitializer + %PC = bitcast <8 x i32>* %A4 to i1* + %Sl18 = select i1 false, <2 x float> %FC10, <2 x float> %FC10 + %Cmp19 = icmp ule <8 x i16> zeroinitializer, zeroinitializer + %L20 = load i1, i1* %PC + br label %CF + +CF: ; preds = %CF76, %CF82, %CF, %CF74 + store i1 true, i1* %PC + %E21 = extractelement <2 x i1> zeroinitializer, i32 1 + br i1 %E21, label %CF, label %CF77 + +CF77: ; preds = %CF83, %CF77, %CF + %Shuff22 = shufflevector <2 x i1> zeroinitializer, <2 x i1> zeroinitializer, <2 x i32> + %I23 = insertelement <2 x i16> zeroinitializer, i16 -83, i32 0 + %B24 = shl <2 x i16> zeroinitializer, zeroinitializer + %FC25 = fptosi float 0x3C2A305E00000000 to i32 + %Sl26 = select i1 true, <8 x i8> zeroinitializer, <8 x i8> zeroinitializer + %L27 = load i1, i1* %PC + br i1 %L27, label %CF77, label %CF83 + +CF83: ; preds = %CF77 + store i32 %FC25, i32* %1 + %E28 = extractelement <4 x double> %FC, i32 0 + %Shuff29 = shufflevector <2 x i1> zeroinitializer, <2 x i1> %Shuff, <2 x i32> + %I30 = insertelement <16 x i32> zeroinitializer, i32 484009, i32 1 + %B31 = fdiv float 0x3C2A305E00000000, 0x401A204E00000000 + %Sl32 = select i1 false, double %E14, double 0xE8B721D6BDB52C54 + %Cmp33 = fcmp une float 0xB8A8325C00000000, %B31 + br i1 %Cmp33, label %CF77, label %CF79 + +CF79: ; preds = %CF79, %CF83 + %L34 = load i1, i1* %PC + br i1 %L34, label %CF79, label %CF80 + +CF80: ; preds = %CF80, %CF79 + store i1 false, i1* %PC + %E35 = extractelement <8 x i1> %Cmp19, i32 1 + br i1 %E35, label %CF80, label %CF82 + +CF82: ; preds = %CF80 + %Shuff36 = shufflevector <16 x i32> zeroinitializer, <16 x i32> zeroinitializer, <16 x i32> + %I37 = insertelement <16 x i32> zeroinitializer, i32 48253, i32 6 + %ZE = zext <2 x i1> %Shuff29 to <2 x i64> + %Sl38 = select i1 true, i1 false, i1 false + br i1 %Sl38, label %CF, label %CF75 + +CF75: ; preds = %CF81, %CF75, %CF82 + %L39 = load i8, i8* %0 + store i1 true, i1* %PC + %E40 = extractelement <16 x i32> zeroinitializer, i32 9 + %Shuff41 = shufflevector <2 x i1> %Shuff29, <2 x i1> %Shuff29, <2 x i32> + %I42 = insertelement <2 x i1> zeroinitializer, i1 false, i32 0 + %Tr = trunc <16 x i32> %I37 to <16 x i16> + %Sl43 = select i1 %Sl38, i16 %Sl, i16 %Sl + %Cmp44 = icmp sge <2 x i1> zeroinitializer, zeroinitializer + %L45 = load i8, i8* %0 + store i8 %5, i8* %0 + %E46 = extractelement <2 x i16> %B24, i32 1 + %Shuff47 = shufflevector <2 x i1> %Shuff41, <2 x i1> %Shuff, <2 x i32> + %I48 = insertelement <2 x i1> zeroinitializer, i1 %E6, i32 0 + %B49 = shl i32 48253, %FC25 + %FC50 = uitofp <2 x i1> %Cmp12 to <2 x double> + %Sl51 = select i1 %E6, <16 x i32> %I30, <16 x i32> zeroinitializer + %Cmp52 = fcmp ult double 0x840B362A8B09F2A8, %E14 + br i1 %Cmp52, label %CF75, label %CF78 + +CF78: ; preds = %CF78, %CF75 + %L53 = load i8, i8* %0 + store i8 -79, i8* %0 + %E54 = extractelement <8 x i16> zeroinitializer, i32 4 + %Shuff55 = shufflevector <2 x i1> %Shuff, <2 x i1> %Shuff, <2 x i32> + %I56 = insertelement <2 x i1> %I8, i1 %Cmp52, i32 1 + %Sl57 = select i1 %Cmp52, i8 %L13, i8 %L39 + %Cmp58 = icmp ne <2 x i64> zeroinitializer, %B17 + %L59 = load i1, i1* %PC + br i1 %L59, label %CF78, label %CF81 + +CF81: ; preds = %CF78 + store i8 -111, i8* %0 + %E60 = extractelement <2 x i1> %Shuff7, i32 1 + br i1 %E60, label %CF75, label %CF76 + +CF76: ; preds = %CF81 + %Shuff61 = shufflevector <2 x i1> zeroinitializer, <2 x i1> %Shuff47, <2 x i32> + %I62 = insertelement <2 x i1> zeroinitializer, i1 %E21, i32 0 + %B63 = frem double %Sl32, %E14 + %ZE64 = zext i1 false to i8 + %Sl65 = select i1 false, <2 x i1> %Shuff61, <2 x i1> %Shuff + %Cmp66 = icmp uge i64 %4, %4 + br i1 %Cmp66, label %CF, label %CF73 + +CF73: ; preds = %CF76 + %L67 = load i8, i8* %0 + store i8 -111, i8* %0 + %E68 = extractelement <2 x i16> %B24, i32 1 + %Shuff69 = shufflevector <16 x i32> zeroinitializer, <16 x i32> %I30, <16 x i32> + %I70 = insertelement <16 x i32> zeroinitializer, i32 %B49, i32 0 + %Tr71 = fptrunc double 0x840B362A8B09F2A8 to float + %Sl72 = select i1 %Cmp52, i32 %FC25, i32 48253 + store i8 %L39, i8* %0 + store i8 %L13, i8* %0 + store i1 %Cmp52, i1* %PC + store <1 x i64> , <1 x i64>* %A + store i8 %L39, i8* %0 + ret void +} diff --git a/tests/llvm/invalid_ir_test.py b/tests/llvm/invalid_ir_test.py new file mode 100644 index 000000000..1fc7c8123 --- /dev/null +++ b/tests/llvm/invalid_ir_test.py @@ -0,0 +1,32 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests for LLVM benchmark handling.""" +import pytest + +from compiler_gym.datasets.benchmark import BenchmarkInitError +from compiler_gym.envs import llvm +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.util.runfiles_path import runfiles_path +from tests.pytest_plugins.common import bazel_only +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.llvm"] + +INVALID_IR_PATH = runfiles_path("tests/llvm/invalid_ir.ll") + + +@bazel_only # invalid_ir.ll not installed +def test_reset_invalid_ir(env: LlvmEnv): + """Test that setting the $CXX to an invalid binary raises an error.""" + benchmark = llvm.make_benchmark(INVALID_IR_PATH) + + with pytest.raises(BenchmarkInitError) as e_ctx: + env.reset(benchmark=benchmark) + + assert "Failed to compute .text size cost" in str(e_ctx.value) + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/llvm_benchmarks_test.py b/tests/llvm/llvm_benchmarks_test.py index 076385c2a..0986da359 100644 --- a/tests/llvm/llvm_benchmarks_test.py +++ b/tests/llvm/llvm_benchmarks_test.py @@ -8,8 +8,10 @@ import pytest +from compiler_gym.datasets import Benchmark from compiler_gym.envs import CompilerEnv -from compiler_gym.service.proto import Benchmark, File +from compiler_gym.service.proto import Benchmark as BenchmarkProto +from compiler_gym.service.proto import File from tests.test_main import main pytest_plugins = ["tests.pytest_plugins.llvm"] @@ -19,12 +21,14 @@ def test_add_benchmark_invalid_protocol(env: CompilerEnv): with pytest.raises(ValueError) as ctx: env.reset( benchmark=Benchmark( - uri="benchmark://foo", program=File(uri="https://invalid/protocol") + BenchmarkProto( + uri="benchmark://foo", program=File(uri="https://invalid/protocol") + ), ) ) - assert ( - str(ctx.value) - == 'Unsupported benchmark URI protocol: "https://invalid/protocol"' + assert str(ctx.value) == ( + "Invalid benchmark data URI. " + 'Only the file:/// protocol is supported: "https://invalid/protocol"' ) @@ -32,12 +36,9 @@ def test_add_benchmark_invalid_path(env: CompilerEnv): with tempfile.TemporaryDirectory() as d: tmp = Path(d) / "not_a_file" with pytest.raises(FileNotFoundError) as ctx: - env.reset( - benchmark=Benchmark( - uri="benchmark://foo", program=File(uri=f"file:///{tmp}") - ) - ) - assert str(ctx.value) == f'File not found: "{tmp}"' + env.reset(benchmark=Benchmark.from_file("benchmark://foo", tmp)) + # Use endswith() because on macOS there may be a /private prefix. + assert str(ctx.value).endswith(str(tmp)) if __name__ == "__main__": diff --git a/tests/llvm/llvm_env_test.py b/tests/llvm/llvm_env_test.py index b631a0c9a..65f9b3597 100644 --- a/tests/llvm/llvm_env_test.py +++ b/tests/llvm/llvm_env_test.py @@ -3,8 +3,8 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Integrations tests for the LLVM CompilerGym environments.""" -import logging from enum import Enum +from io import StringIO from pathlib import Path from typing import List @@ -12,11 +12,15 @@ import pytest import compiler_gym -from compiler_gym.compiler_env_state import CompilerEnvState +from compiler_gym.compiler_env_state import ( + CompilerEnvStateReader, + CompilerEnvStateWriter, +) from compiler_gym.envs import CompilerEnv, llvm from compiler_gym.envs.llvm.llvm_env import LlvmEnv from compiler_gym.service.connection import CompilerGymServiceConnection from compiler_gym.util import debug_util as dbg +from tests.pytest_plugins import llvm as llvm_plugin from tests.test_main import main pytest_plugins = ["tests.pytest_plugins.common", "tests.pytest_plugins.llvm"] @@ -27,15 +31,13 @@ def env(request) -> CompilerEnv: """Create an LLVM environment.""" if request.param == "local": env = gym.make("llvm-v0") - env.require_dataset("cBench-v1") try: yield env finally: env.close() else: service = CompilerGymServiceConnection(llvm.LLVM_SERVICE_BINARY) - env = LlvmEnv(service=service.connection.url, benchmark="foo") - env.require_dataset("cBench-v1") + env = LlvmEnv(service=service.connection.url) try: yield env finally: @@ -51,11 +53,11 @@ def test_compiler_version(env: LlvmEnv): assert env.compiler_version.startswith("10.0.0") -def test_action_space_names(env: CompilerEnv, action_names: List[str]): +def test_action_space_names(env: LlvmEnv, action_names: List[str]): assert set(env.action_space.names) == set(action_names) -def test_action_spaces_names(env: CompilerEnv): +def test_action_spaces_names(env: LlvmEnv): assert {a.name for a in env.action_spaces} == {"PassesAll"} @@ -63,26 +65,26 @@ def test_all_flags_are_unique(env: LlvmEnv): assert sorted(env.action_space.flags) == sorted(set(env.action_space.flags)) -def test_benchmark_names(env: CompilerEnv, benchmark_names: List[str]): - # Use a subset check as benchmark_names may exclude certain benchmarks for - # testing. - assert set(benchmark_names).issubset(set(env.benchmarks)) +@pytest.mark.parametrize("benchmark_name", llvm_plugin.BENCHMARK_NAMES) +def test_benchmark_names(env: LlvmEnv, benchmark_name: str): + """Check that all benchmark names can be found in the datasets.""" + assert env.datasets.benchmark(benchmark_name) -def test_double_reset(env: CompilerEnv): - env.reset(benchmark="cBench-v1/crc32") - env.reset(benchmark="cBench-v1/crc32") +def test_double_reset(env: LlvmEnv): + env.reset(benchmark="cbench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") assert env.in_episode -def test_commandline_no_actions(env: CompilerEnv): - env.reset(benchmark="cBench-v1/crc32") +def test_commandline_no_actions(env: LlvmEnv): + env.reset(benchmark="cbench-v1/crc32") assert env.commandline() == "opt input.bc -o output.bc" assert env.commandline_to_actions(env.commandline()) == [] -def test_commandline(env: CompilerEnv): - env.reset(benchmark="cBench-v1/crc32") +def test_commandline(env: LlvmEnv): + env.reset(benchmark="cbench-v1/crc32") env.step(env.action_space.flags.index("-mem2reg")) env.step(env.action_space.flags.index("-reg2mem")) assert env.commandline() == "opt -mem2reg -reg2mem input.bc -o output.bc" @@ -92,91 +94,9 @@ def test_commandline(env: CompilerEnv): ] -def test_uri_substring_candidate_match(env: CompilerEnv): - env.reset(benchmark="benchmark://cBench-v1/crc32") - assert env.benchmark == "benchmark://cBench-v1/crc32" - - env.reset(benchmark="benchmark://cBench-v1/crc3") - assert env.benchmark == "benchmark://cBench-v1/crc32" - - env.reset(benchmark="benchmark://cBench-v1/cr") - assert env.benchmark == "benchmark://cBench-v1/crc32" - - -def test_uri_substring_candidate_match_infer_protocol(env: CompilerEnv): - env.reset(benchmark="cBench-v1/crc32") - assert env.benchmark == "benchmark://cBench-v1/crc32" - - env.reset(benchmark="cBench-v1/crc3") - assert env.benchmark == "benchmark://cBench-v1/crc32" - - env.reset(benchmark="cBench-v1/cr") - assert env.benchmark == "benchmark://cBench-v1/crc32" - - -def test_reset_to_force_benchmark(env: CompilerEnv): - """Reset that calling reset() with a benchmark forces that benchmark to - be used for every subsequent episode. - """ - env.benchmark = None - env.reset(benchmark="benchmark://cBench-v1/crc32") - assert env.benchmark == "benchmark://cBench-v1/crc32" - for _ in range(10): - env.reset() - assert env.benchmark == "benchmark://cBench-v1/crc32" - - -def test_unset_forced_benchmark(env: CompilerEnv): - """Test that setting benchmark to None "unsets" the user benchmark for - every subsequent episode. - """ - env.reset(benchmark="benchmark://cBench-v1/crc32") - assert env.benchmark == "benchmark://cBench-v1/crc32" - env.benchmark = None - for _ in range(50): - env.reset() - if env.benchmark != "benchmark://cBench-v1/crc32": - break - else: - pytest.fail( - "Improbably selected the same benchmark 50 times! " "Expected random." - ) - - -def test_change_benchmark_mid_episode(env: LlvmEnv): - """Test that changing the benchmark while in an episode has no effect until - the next call to reset().""" - env.reset(benchmark="benchmark://cBench-v1/crc32") - assert env.benchmark == "benchmark://cBench-v1/crc32" - env.benchmark = "benchmark://cBench-v1/dijkstra" - assert env.benchmark == "benchmark://cBench-v1/crc32" - env.reset() - assert env.benchmark == "benchmark://cBench-v1/dijkstra" - - -def test_set_benchmark_invalid_type(env: LlvmEnv): - with pytest.raises(TypeError) as ctx: - env.benchmark = 10 - assert str(ctx.value) == "Unsupported benchmark type: int" - - -def test_gym_make_kwargs(): - """Test that passing kwargs to gym.make() are forwarded to environment - constructor. - """ - env = gym.make( - "llvm-v0", observation_space="Autophase", reward_space="IrInstructionCount" - ) - try: - assert env.observation_space.id == "Autophase" - assert env.reward_space.id == "IrInstructionCount" - finally: - env.close() - - def test_connection_dies_default_reward(env: LlvmEnv): env.reward_space = "IrInstructionCount" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") env.reward_space.default_negates_returns = False env.reward_space.default_value = 2.5 @@ -191,7 +111,7 @@ def test_connection_dies_default_reward(env: LlvmEnv): def test_connection_dies_default_reward_negated(env: LlvmEnv): env.reward_space = "IrInstructionCount" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") env.reward_space.default_negates_returns = True env.reward_space.default_value = 2.5 @@ -204,13 +124,18 @@ def test_connection_dies_default_reward_negated(env: LlvmEnv): assert reward == -7.5 # negates reward. -def test_state_to_csv_from_csv(env: LlvmEnv): - env.reset(benchmark="cBench-v1/crc32") +def test_state_serialize_deserialize_equality(env: LlvmEnv): + env.reset(benchmark="cbench-v1/crc32") env.episode_reward = 10 state = env.state assert state.reward == 10 - state_from_csv = CompilerEnvState.from_csv(env.state.to_csv()) + + buf = StringIO() + CompilerEnvStateWriter(buf).write_state(state) + buf.seek(0) # Rewind the buffer for reading. + state_from_csv = next(iter(CompilerEnvStateReader(buf))) + assert state_from_csv.reward == 10 assert state == state_from_csv @@ -218,7 +143,7 @@ def test_state_to_csv_from_csv(env: LlvmEnv): def test_apply_state(env: LlvmEnv): """Test that apply() on a clean environment produces same state.""" env.reward_space = "IrInstructionCount" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") env.step(env.action_space.flags.index("-mem2reg")) other = gym.make("llvm-v0", reward_space="IrInstructionCount") @@ -251,7 +176,7 @@ def test_same_reward_after_reset(env: LlvmEnv): same reward. """ env.reward_space = "IrInstructionCount" - env.benchmark = "cBench-v1/dijkstra" + env.benchmark = "cbench-v1/dijkstra" action = env.action_space.flags.index("-instcombine") env.reset() @@ -265,19 +190,19 @@ def test_same_reward_after_reset(env: LlvmEnv): def test_write_bitcode(env: LlvmEnv, tmpwd: Path): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") env.write_bitcode("file.bc") assert Path("file.bc").is_file() def test_write_ir(env: LlvmEnv, tmpwd: Path): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") env.write_bitcode("file.ll") assert Path("file.ll").is_file() def test_ir_sha1(env: LlvmEnv, tmpwd: Path): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") before = env.ir_sha1 _, _, done, info = env.step(env.action_space.flags.index("-mem2reg")) @@ -297,17 +222,9 @@ def test_logging_default_level(env: LlvmEnv): assert env.logger.level == dbg.get_logging_level() -def test_logging_forced_level(): - env = gym.make("llvm-v0", logging_level=logging.INFO) - try: - assert env.logger.level == logging.INFO - finally: - env.close() - - def test_step_multiple_actions_list(env: LlvmEnv): """Pass a list of actions to step().""" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") actions = [ env.action_space.flags.index("-mem2reg"), env.action_space.flags.index("-reg2mem"), @@ -319,7 +236,7 @@ def test_step_multiple_actions_list(env: LlvmEnv): def test_step_multiple_actions_generator(env: LlvmEnv): """Pass an iterable of actions to step().""" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") actions = ( env.action_space.flags.index("-mem2reg"), env.action_space.flags.index("-reg2mem"), diff --git a/tests/llvm/module_id_test.py b/tests/llvm/module_id_test.py new file mode 100644 index 000000000..d5e9e6936 --- /dev/null +++ b/tests/llvm/module_id_test.py @@ -0,0 +1,37 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Tests that module and source IDs are stripped in the LLVM modules.""" +from compiler_gym.envs.llvm import LlvmEnv +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.llvm", "tests.pytest_plugins.common"] + + +def test_no_module_id_builtin_benchmark(env: LlvmEnv): + """Test that the module and source IDs are stripped in shipped benchmark.""" + env.reset("cBench-v1/crc32") + ir = env.ir + + print(ir) # For debugging in case of error. + assert "; ModuleID = '-'\n" in ir + assert '\nsource_filename = "-"\n' in ir + + +def test_no_module_id_custom_benchmark(env: LlvmEnv): + """Test that the module and source IDs are stripped in custom benchmark.""" + + with open("source.c", "w") as f: + f.write("int A() {return 0;}") + benchmark = env.make_benchmark("source.c") + env.reset(benchmark=benchmark) + ir = env.ir + + print(ir) # For debugging in case of error. + assert "; ModuleID = '-'\n" in ir + assert '\nsource_filename = "-"\n' in ir + + +if __name__ == "__main__": + main() diff --git a/tests/llvm/multiprocessing_test.py b/tests/llvm/multiprocessing_test.py index 961f32a96..bcd5c4e7c 100644 --- a/tests/llvm/multiprocessing_test.py +++ b/tests/llvm/multiprocessing_test.py @@ -10,7 +10,7 @@ import gym import pytest -from compiler_gym import CompilerEnv +from compiler_gym.envs import LlvmEnv from tests.test_main import main @@ -27,7 +27,7 @@ def process_worker(env_name: str, benchmark: str, actions: List[int], queue: mp. env.close() -def process_worker_with_env(env: CompilerEnv, actions: List[int], queue: mp.Queue): +def process_worker_with_env(env: LlvmEnv, actions: List[int], queue: mp.Queue): assert actions for action in actions: @@ -42,7 +42,7 @@ def test_running_environment_in_background_process(): queue = mp.Queue(maxsize=3) process = mp.Process( target=process_worker, - args=("llvm-autophase-ic-v0", "cBench-v1/crc32", [0, 0, 0], queue), + args=("llvm-autophase-ic-v0", "cbench-v1/crc32", [0, 0, 0], queue), ) process.start() try: @@ -69,7 +69,7 @@ def test_moving_environment_to_background_process_macos(): queue = mp.Queue(maxsize=3) env = gym.make("llvm-autophase-ic-v0") - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") process = mp.Process(target=process_worker_with_env, args=(env, [0, 0, 0], queue)) @@ -83,10 +83,10 @@ def test_moving_environment_to_background_process_macos(): def test_port_collision_test(): """Test that attempting to connect to a port that is already in use succeeds.""" env_a = gym.make("llvm-autophase-ic-v0") - env_a.reset(benchmark="cBench-v1/crc32") + env_a.reset(benchmark="cbench-v1/crc32") - env_b = CompilerEnv(service=env_a.service.connection.url) - env_b.reset(benchmark="cBench-v1/crc32") + env_b = LlvmEnv(service=env_a.service.connection.url) + env_b.reset(benchmark="cbench-v1/crc32") env_b.close() env_a.close() diff --git a/tests/llvm/observation_spaces_test.py b/tests/llvm/observation_spaces_test.py index ff93bb8d2..9d76826e8 100644 --- a/tests/llvm/observation_spaces_test.py +++ b/tests/llvm/observation_spaces_test.py @@ -22,19 +22,20 @@ def test_default_observation_space(env: LlvmEnv): env.observation_space = "Autophase" - assert env.observation_space.id == "Autophase" + assert env.observation_space.shape == (56,) + assert env.observation_space_spec.id == "Autophase" env.observation_space = None assert env.observation_space is None + assert env.observation_space_spec is None invalid = "invalid value" - with pytest.raises(LookupError) as ctx: + with pytest.raises(LookupError, match=f"Observation space not found: {invalid}"): env.observation_space = invalid - assert str(ctx.value) == f"Observation space not found: {invalid}" def test_observation_spaces(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") assert set(env.observation.spaces.keys()) == { "Ir", @@ -62,7 +63,7 @@ def test_observation_spaces(env: LlvmEnv): def test_ir_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "Ir" space = env.observation.spaces[key] assert isinstance(space.space, Sequence) @@ -79,7 +80,7 @@ def test_ir_observation_space(env: LlvmEnv): def test_bitcode_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "BitcodeFile" space = env.observation.spaces[key] assert isinstance(space.space, Sequence) @@ -99,7 +100,7 @@ def test_bitcode_observation_space(env: LlvmEnv): assert not space.platform_dependent -# The Autophase feature vector for benchmark://cBench-v1/crc32 in its initial +# The Autophase feature vector for benchmark://cbench-v1/crc32 in its initial # state. AUTOPHASE_CBENCH_CRC32 = [ 0, @@ -164,13 +165,13 @@ def test_bitcode_observation_space(env: LlvmEnv): def test_autophase_observation_space_reset(env: LlvmEnv): """Test that the intial observation is returned on env.reset().""" env.observation_space = "Autophase" - observation = env.reset("cBench-v1/crc32") + observation = env.reset("cbench-v1/crc32") print(observation.tolist()) # For debugging on error. np.testing.assert_array_equal(observation, AUTOPHASE_CBENCH_CRC32) def test_instcount_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "InstCount" space = env.observation.spaces[key] assert isinstance(space.space, Box) @@ -264,7 +265,7 @@ def test_instcount_observation_space(env: LlvmEnv): def test_instcount_dict_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "InstCountDict" space = env.observation.spaces[key] assert isinstance(space.space, DictSpace) @@ -277,7 +278,7 @@ def test_instcount_dict_observation_space(env: LlvmEnv): def test_instcount_norm_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "InstCountNorm" space = env.observation.spaces[key] assert isinstance(space.space, Box) @@ -298,7 +299,7 @@ def test_instcount_norm_observation_space(env: LlvmEnv): def test_instcount_norm_dict_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "InstCountNormDict" space = env.observation.spaces[key] assert isinstance(space.space, DictSpace) @@ -311,7 +312,7 @@ def test_instcount_norm_dict_observation_space(env: LlvmEnv): def test_autophase_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "Autophase" space = env.observation.spaces[key] assert isinstance(space.space, Box) @@ -329,7 +330,7 @@ def test_autophase_observation_space(env: LlvmEnv): def test_autophase_dict_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "AutophaseDict" space = env.observation.spaces[key] assert isinstance(space.space, DictSpace) @@ -342,7 +343,7 @@ def test_autophase_dict_observation_space(env: LlvmEnv): def test_programl_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "Programl" space = env.observation.spaces[key] assert isinstance(space.space, Sequence) @@ -363,7 +364,7 @@ def test_programl_observation_space(env: LlvmEnv): def test_cpuinfo_observation_space(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "CpuInfo" space = env.observation.spaces[key] assert isinstance(space.space, DictSpace) @@ -397,7 +398,7 @@ def test_cpuinfo_observation_space(env: LlvmEnv): @pytest.fixture def cbench_crc32_inst2vec_embedding_indices() -> List[int]: - """The expected inst2vec embedding indices for cBench-v1/crc32.""" + """The expected inst2vec embedding indices for cbench-v1/crc32.""" # The linux/macOS builds of clang produce slightly different bitcodes. if sys.platform.lower().startswith("linux"): return [ @@ -974,7 +975,7 @@ def cbench_crc32_inst2vec_embedding_indices() -> List[int]: def test_inst2vec_preprocessed_observation_space( env: LlvmEnv, cbench_crc32_inst2vec_embedding_indices: List[int] ): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "Inst2vecPreprocessedText" space = env.observation.spaces[key] assert isinstance(space.space, Sequence) @@ -995,7 +996,7 @@ def test_inst2vec_preprocessed_observation_space( def test_inst2vec_embedding_indices_observation_space( env: LlvmEnv, cbench_crc32_inst2vec_embedding_indices: List[int] ): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "Inst2vecEmbeddingIndices" space = env.observation.spaces[key] assert isinstance(space.space, Sequence) @@ -1015,7 +1016,7 @@ def test_inst2vec_embedding_indices_observation_space( def test_inst2vec_observation_space( env: LlvmEnv, cbench_crc32_inst2vec_embedding_indices: List[int] ): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "Inst2vec" space = env.observation.spaces[key] assert isinstance(space.space, Sequence) @@ -1041,7 +1042,7 @@ def test_inst2vec_observation_space( def test_ir_instruction_count_observation_spaces(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") key = "IrInstructionCount" space = env.observation.spaces[key] @@ -1085,7 +1086,7 @@ def test_ir_instruction_count_observation_spaces(env: LlvmEnv): def test_object_text_size_observation_spaces(env: LlvmEnv): - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") # Expected .text sizes for this benchmark: -O0, -O3, -Oz. crc32_code_sizes = {"darwin": [1171, 3825, 3289], "linux": [1183, 3961, 3286]} diff --git a/tests/llvm/reward_spaces_test.py b/tests/llvm/reward_spaces_test.py index 02b741c8d..b7f5b3ddd 100644 --- a/tests/llvm/reward_spaces_test.py +++ b/tests/llvm/reward_spaces_test.py @@ -11,7 +11,7 @@ pytest_plugins = ["tests.pytest_plugins.llvm"] -# Instruction counts for cBench-v1/crc32 benchmark that are used for testing +# Instruction counts for cbench-v1/crc32 benchmark that are used for testing # reward signals. CRC32_INSTRUCTION_COUNT = 242 CRC32_INSTRUCTION_COUNT_AFTER_REG2MEM = 249 @@ -20,7 +20,7 @@ def test_instruction_count_reward(env: LlvmEnv): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") assert env.observation.IrInstructionCount() == CRC32_INSTRUCTION_COUNT action = env.action_space.flags.index("-reg2mem") @@ -52,7 +52,7 @@ def test_reward_space(env: LlvmEnv): def test_invalid_reward_space_name(env: LlvmEnv): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") invalid = "invalid value" with pytest.raises(KeyError) as ctx: _ = env.reward[invalid] @@ -60,7 +60,7 @@ def test_invalid_reward_space_name(env: LlvmEnv): def test_reward_spaces(env: LlvmEnv): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") assert set(env.reward.spaces.keys()) == { "IrInstructionCount", @@ -75,7 +75,7 @@ def test_reward_spaces(env: LlvmEnv): def test_instruction_count_reward_spaces(env: LlvmEnv): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") key = "IrInstructionCount" space = env.reward.spaces[key] @@ -119,7 +119,7 @@ def test_instruction_count_reward_spaces(env: LlvmEnv): def test_native_test_size_reward_spaces(env: LlvmEnv): - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") key = "ObjectTextSizeBytes" space = env.reward.spaces[key] diff --git a/tests/llvm/service/BUILD b/tests/llvm/service/BUILD index 48385ea7f..0f2e73416 100644 --- a/tests/llvm/service/BUILD +++ b/tests/llvm/service/BUILD @@ -22,7 +22,7 @@ cc_test( # cc_test( # name = "GvnSinkTest", # srcs = ["GvnSinkTest.cc"], -# data = ["//compiler_gym/third_party/cBench:blowfish"], +# data = ["//compiler_gym/third_party/cbench:blowfish"], # deps = [ # "//compiler_gym/envs/llvm/service:BenchmarkFactory", # "//compiler_gym/envs/llvm/service:LlvmSession", diff --git a/tests/llvm/service/GvnSinkTest.cc b/tests/llvm/service/GvnSinkTest.cc index 8204b857a..2b25a216a 100644 --- a/tests/llvm/service/GvnSinkTest.cc +++ b/tests/llvm/service/GvnSinkTest.cc @@ -36,12 +36,12 @@ class GvnSinkTest : public ::testing::Test { TEST_F(GvnSinkTest, runGvnSinkOnBlowfish) { const auto blowfish = - util::getRunfilesPath("compiler_gym/third_party/cBench/cBench-v1/blowfish.bc"); + util::getRunfilesPath("compiler_gym/third_party/cbench/cbench-v1/blowfish.bc"); BenchmarkFactory factory(workingDirectory_); - ASSERT_OK(factory.addBitcodeFile("benchmark://cBench-v1/blowfish", blowfish)); + ASSERT_OK(factory.addBitcodeFile("benchmark://cbench-v1/blowfish", blowfish)); std::unique_ptr benchmark; - ASSERT_OK(factory.getBenchmark("benchmark://cBench-v1/blowfish", &benchmark)); + ASSERT_OK(factory.getBenchmark("benchmark://cbench-v1/blowfish", &benchmark)); LlvmSession env(std::move(benchmark), LlvmActionSpace::PASSES_ALL, LlvmObservationSpace::IR, std::nullopt, workingDirectory_); diff --git a/tests/llvm/service_connection_test.py b/tests/llvm/service_connection_test.py index 8fde70277..db67e73d9 100644 --- a/tests/llvm/service_connection_test.py +++ b/tests/llvm/service_connection_test.py @@ -23,15 +23,13 @@ def env(request) -> CompilerEnv: # connections. if request.param == "local": env = gym.make("llvm-v0") - env.require_dataset("cBench-v1") try: yield env finally: env.close() else: service = CompilerGymServiceConnection(llvm.LLVM_SERVICE_BINARY) - env = LlvmEnv(service=service.connection.url, benchmark="foo") - env.require_dataset("cBench-v1") + env = LlvmEnv(service=service.connection.url) try: yield env finally: @@ -42,7 +40,7 @@ def env(request) -> CompilerEnv: def test_service_env_dies_reset(env: CompilerEnv): env.observation_space = "Autophase" env.reward_space = "IrInstructionCount" - env.reset("cBench-v1/crc32") + env.reset("cbench-v1/crc32") # Kill the service. env.service.close() @@ -57,7 +55,7 @@ def test_service_env_dies_reset(env: CompilerEnv): assert reward == 0 # Reset the environment and check that it works. - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") assert env.in_episode observation, reward, done, info = env.step(0) diff --git a/tests/llvm/threading_test.py b/tests/llvm/threading_test.py index eb66b9386..20cc15d76 100644 --- a/tests/llvm/threading_test.py +++ b/tests/llvm/threading_test.py @@ -57,7 +57,7 @@ def test_running_environment_in_background_thread(): """Test launching and running an LLVM environment in a background thread.""" thread = ThreadedWorker( env_name="llvm-autophase-ic-v0", - benchmark="cBench-v1/crc32", + benchmark="cbench-v1/crc32", actions=[0, 0, 0], ) thread.start() @@ -74,7 +74,7 @@ def test_moving_environment_to_background_thread(): is made in the main thread and used in the background thread. """ env = gym.make("llvm-autophase-ic-v0") - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") thread = ThreadedWorkerWithEnv(env=env, actions=[0, 0, 0]) thread.start() diff --git a/tests/llvm/benchmark_semantics_validation_test.py b/tests/llvm/validate_test.py similarity index 54% rename from tests/llvm/benchmark_semantics_validation_test.py rename to tests/llvm/validate_test.py index 3e15cacdd..1099ba8db 100644 --- a/tests/llvm/benchmark_semantics_validation_test.py +++ b/tests/llvm/validate_test.py @@ -7,12 +7,10 @@ from pathlib import Path import gym +import pytest -from compiler_gym import CompilerEnvState, ValidationResult +from compiler_gym import CompilerEnvState from compiler_gym.envs import LlvmEnv -from compiler_gym.envs.llvm.legacy_datasets import ( - get_llvm_benchmark_validation_callback, -) from tests.test_main import main pytest_plugins = ["tests.pytest_plugins.llvm"] @@ -20,32 +18,30 @@ def test_validate_state_no_reward(): state = CompilerEnvState( - benchmark="benchmark://cBench-v1/crc32", + benchmark="benchmark://cbench-v1/crc32", walltime=1, commandline="opt input.bc -o output.bc", ) env = gym.make("llvm-v0") try: - env.require_dataset("cBench-v1") result = env.validate(state) finally: env.close() assert result.okay() assert not result.reward_validated - assert str(result) == "✅ cBench-v1/crc32" + assert str(result) == "✅ cbench-v1/crc32" def test_validate_state_with_reward(): state = CompilerEnvState( - benchmark="benchmark://cBench-v1/crc32", + benchmark="benchmark://cbench-v1/crc32", walltime=1, reward=0, commandline="opt input.bc -o output.bc", ) env = gym.make("llvm-v0", reward_space="IrInstructionCount") try: - env.require_dataset("cBench-v1") result = env.validate(state) finally: env.close() @@ -53,19 +49,18 @@ def test_validate_state_with_reward(): assert result.okay() assert result.reward_validated assert not result.reward_validation_failed - assert str(result) == "✅ cBench-v1/crc32 0.0000" + assert str(result) == "✅ cbench-v1/crc32 0.0000" def test_validate_state_invalid_reward(): state = CompilerEnvState( - benchmark="benchmark://cBench-v1/crc32", + benchmark="benchmark://cbench-v1/crc32", walltime=1, reward=1, commandline="opt input.bc -o output.bc", ) env = gym.make("llvm-v0", reward_space="IrInstructionCount") try: - env.require_dataset("cBench-v1") result = env.validate(state) finally: env.close() @@ -74,37 +69,19 @@ def test_validate_state_invalid_reward(): assert result.reward_validated assert result.reward_validation_failed assert ( - str(result) == "❌ cBench-v1/crc32 Expected reward 1 but received reward 0.0" + str(result) == "❌ cbench-v1/crc32 Expected reward 1.0 but received reward 0.0" ) -def test_no_validation_callback_for_custom_benchmark(env: LlvmEnv): - """Test that a custom benchmark has no validation callback.""" - with tempfile.TemporaryDirectory() as d: - p = Path(d) / "example.c" - with open(p, "w") as f: - print("int main() {return 0;}", file=f) - benchmark = env.make_benchmark(p) - - env.benchmark = benchmark - env.reset() - - validation_cb = get_llvm_benchmark_validation_callback(env) - - assert validation_cb is None - - -def test_validate_state_without_env_reward(): - """Validating state when environment has no reward space.""" +def test_validate_state_without_state_reward(): + """Validating state when state has no reward value.""" state = CompilerEnvState( - benchmark="benchmark://cBench-v1/crc32", + benchmark="benchmark://cbench-v1/crc32", walltime=1, - reward=0, commandline="opt input.bc -o output.bc", ) - env = gym.make("llvm-v0") + env = gym.make("llvm-v0", reward_space="IrInstructionCount") try: - env.require_dataset("cBench-v1") result = env.validate(state) finally: env.close() @@ -114,17 +91,24 @@ def test_validate_state_without_env_reward(): assert not result.reward_validation_failed -def test_validate_state_without_state_reward(): - """Validating state when state has no reward value.""" +def test_validate_state_without_env_reward(): + """Validating state when environment has no reward space.""" state = CompilerEnvState( - benchmark="benchmark://cBench-v1/crc32", + benchmark="benchmark://cbench-v1/crc32", walltime=1, + reward=0, commandline="opt input.bc -o output.bc", ) - env = gym.make("llvm-v0", reward_space="IrInstructionCount") + env = gym.make("llvm-v0") try: - env.require_dataset("cBench-v1") - result = env.validate(state) + with pytest.warns( + UserWarning, + match=( + "Validating state with reward, " + "but environment has no reward space set" + ), + ): + result = env.validate(state) finally: env.close() @@ -133,44 +117,17 @@ def test_validate_state_without_state_reward(): assert not result.reward_validation_failed -def test_validate_benchmark_semantics(env: LlvmEnv, validatable_benchmark_name: str): - """Run the validation routine on all benchmarks.""" - env.reward_space = "IrInstructionCount" - env.reset(benchmark=validatable_benchmark_name) - - # Run a single step. - env.step(env.action_space.flags.index("-mem2reg")) - - # Validate the environment state. - result: ValidationResult = env.validate() - assert not result.error_details - assert result.reward_validated - assert not result.actions_replay_failed - assert not result.reward_validation_failed - assert result.benchmark_semantics_validated - assert not result.benchmark_semantics_validation_failed - assert result.okay() - - -def test_non_validatable_benchmark_validate( - env: LlvmEnv, non_validatable_benchmark_name: str -): - """Run the validation routine on all benchmarks.""" - env.reward_space = "IrInstructionCount" - env.reset(benchmark=non_validatable_benchmark_name) +def test_no_validation_callback_for_custom_benchmark(env: LlvmEnv): + """Test that a custom benchmark has no validation callback.""" + with tempfile.TemporaryDirectory() as d: + p = Path(d) / "example.c" + with open(p, "w") as f: + print("int main() {return 0;}", file=f) + benchmark = env.make_benchmark(p) - # Run a single step. - env.step(env.action_space.flags.index("-mem2reg")) + env.reset(benchmark=benchmark) - # Validate the environment state. - result: ValidationResult = env.validate() - assert not result.error_details - assert result.reward_validated - assert not result.actions_replay_failed - assert not result.reward_validation_failed - assert not result.benchmark_semantics_validated - assert not result.benchmark_semantics_validation_failed - assert result.okay() + assert not env.benchmark.is_validatable() if __name__ == "__main__": diff --git a/tests/llvm/validation_regression_test.py b/tests/llvm/validation_regression_test.py index db27dc5bd..2932a2437 100644 --- a/tests/llvm/validation_regression_test.py +++ b/tests/llvm/validation_regression_test.py @@ -3,9 +3,11 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Regression tests for LlvmEnv.validate().""" +from io import StringIO + import pytest -from compiler_gym import CompilerEnvState +from compiler_gym import CompilerEnvStateReader from compiler_gym.envs import LlvmEnv from tests.pytest_plugins.common import skip_on_ci from tests.test_main import main @@ -19,39 +21,37 @@ # A list of CSV states that should pass validation, to be used as regression # tests. -REGRESSION_TEST_STATES = """ -benchmark://cBench-v1/rijndael,,,opt -gvn -loop-unroll -instcombine -gvn -loop-unroll -instcombine input.bc -o output.bc -benchmark://cBench-v1/rijndael,,,opt -gvn -loop-unroll -mem2reg -loop-rotate -gvn -loop-unroll -mem2reg -loop-rotate input.bc -o output.bc -benchmark://cBench-v1/rijndael,,,opt -gvn-hoist input.bc -o output.bc -benchmark://cBench-v1/rijndael,,,opt -jump-threading -sink -partial-inliner -mem2reg -inline -jump-threading -sink -partial-inliner -mem2reg -inline input.bc -o output.bc -benchmark://cBench-v1/rijndael,,,opt -mem2reg -indvars -loop-unroll -simplifycfg -mem2reg -indvars -loop-unroll -simplifycfg input.bc -o output.bc -benchmark://cBench-v1/rijndael,,,opt -mem2reg -instcombine -early-cse-memssa -loop-unroll input.bc -o output.bc -benchmark://cBench-v1/rijndael,,,opt -reg2mem -licm -reg2mem -licm -reg2mem -licm input.bc -o output.bc -benchmark://cBench-v1/rijndael,,,opt -sroa -simplifycfg -partial-inliner input.bc -o output.bc +REGRESSION_TEST_STATES = """\ +benchmark://cbench-v1/rijndael,,,opt -gvn -loop-unroll -instcombine -gvn -loop-unroll -instcombine input.bc -o output.bc +benchmark://cbench-v1/rijndael,,,opt -gvn -loop-unroll -mem2reg -loop-rotate -gvn -loop-unroll -mem2reg -loop-rotate input.bc -o output.bc +benchmark://cbench-v1/rijndael,,,opt -gvn-hoist input.bc -o output.bc +benchmark://cbench-v1/rijndael,,,opt -jump-threading -sink -partial-inliner -mem2reg -inline -jump-threading -sink -partial-inliner -mem2reg -inline input.bc -o output.bc +benchmark://cbench-v1/rijndael,,,opt -mem2reg -indvars -loop-unroll -simplifycfg -mem2reg -indvars -loop-unroll -simplifycfg input.bc -o output.bc +benchmark://cbench-v1/rijndael,,,opt -mem2reg -instcombine -early-cse-memssa -loop-unroll input.bc -o output.bc +benchmark://cbench-v1/rijndael,,,opt -reg2mem -licm -reg2mem -licm -reg2mem -licm input.bc -o output.bc +benchmark://cbench-v1/rijndael,,,opt -sroa -simplifycfg -partial-inliner input.bc -o output.bc """ -REGRESSION_TEST_STATES = [ - CompilerEnvState.from_csv(s) for s in REGRESSION_TEST_STATES.strip().split("\n") -] +REGRESSION_TEST_STATES = list(CompilerEnvStateReader(StringIO(REGRESSION_TEST_STATES))) REGRESSION_TEST_STATE_NAMES = [ f"{s.benchmark},{s.commandline}" for s in REGRESSION_TEST_STATES ] # A list of CSV states that are known to fail validation. -KNOWN_BAD_STATES = """ -benchmark://cBench-v1/susan,0.40581008446378297,6.591785192489624,opt -mem2reg -reg2mem -gvn -reg2mem -gvn -newgvn input.bc -o output.bc +KNOWN_BAD_STATES = """\ +benchmark://cbench-v1/susan,0.40581008446378297,6.591785192489624,opt -mem2reg -reg2mem -gvn -reg2mem -gvn -newgvn input.bc -o output.bc """ -KNOWN_BAD_STATES = [ - CompilerEnvState.from_csv(s) for s in KNOWN_BAD_STATES.strip().split("\n") if s -] +KNOWN_BAD_STATES = list(CompilerEnvStateReader(StringIO(KNOWN_BAD_STATES))) KNOWN_BAD_STATE_NAMES = [f"{s.benchmark},{s.commandline}" for s in KNOWN_BAD_STATES] # # NOTE(github.com/facebookresearch/CompilerGym/issues/103): The following # regresison tests are deprecated after -structurizecfg was deactivated: # -# benchmark://cBench-v1/tiff2bw,,,opt -structurizecfg input.bc -o output.bc -# benchmark://cBench-v1/tiff2rgba,,,opt -structurizecfg input.bc -o output.bc -# benchmark://cBench-v1/tiffdither,,,opt -structurizecfg input.bc -o output.bc -# benchmark://cBench-v1/tiffmedian,,,opt -structurizecfg input.bc -o output.bc +# benchmark://cbench-v1/tiff2bw,,,opt -structurizecfg input.bc -o output.bc +# benchmark://cbench-v1/tiff2rgba,,,opt -structurizecfg input.bc -o output.bc +# benchmark://cbench-v1/tiffdither,,,opt -structurizecfg input.bc -o output.bc +# benchmark://cbench-v1/tiffmedian,,,opt -structurizecfg input.bc -o output.bc +# benchmark://cBench-v0/susan,-0.5352209944751382,1.849454402923584,opt -structurizecfg -loop-extract -mergereturn -structurizecfg -loop-extract -mergereturn input.bc -o output.bc +# benchmark://cBench-v0/susan,0.9802486187845304,1.7552905082702637,opt -mem2reg -simplifycfg -lcssa -break-crit-edges -newgvn -mem2reg -simplifycfg -lcssa -break-crit-edges -newgvn input.bc -o output.bc @skip_on_ci @@ -73,7 +73,7 @@ def test_validate_known_good_trajectory(env: LlvmEnv, state): for _ in range(VALIDATION_FLAKINESS): result = env.validate() if not result.okay(): - pytest.fail(f"Validation failed: {result}\n{result.json()}") + pytest.fail(f"Validation failed: {result}\n{result.dict()}") if __name__ == "__main__": diff --git a/tests/pytest_plugins/BUILD b/tests/pytest_plugins/BUILD index 0b0514e29..6c2b9f1ad 100644 --- a/tests/pytest_plugins/BUILD +++ b/tests/pytest_plugins/BUILD @@ -14,11 +14,12 @@ py_library( srcs = ["llvm.py"], data = [ "//compiler_gym/envs/llvm/service/passes:actions_genfiles", - "//compiler_gym/third_party/cBench:benchmarks_list", + "//compiler_gym/third_party/cbench:benchmarks_list", ], deps = [ - "//compiler_gym", + "//compiler_gym/envs/llvm", "//compiler_gym/third_party/llvm", + "//compiler_gym/util", ], ) @@ -26,6 +27,9 @@ py_library( name = "common", testonly = 1, srcs = ["common.py"], + deps = [ + "//compiler_gym/util", + ], ) py_library( diff --git a/tests/pytest_plugins/common.py b/tests/pytest_plugins/common.py index 44266de08..0527ae568 100644 --- a/tests/pytest_plugins/common.py +++ b/tests/pytest_plugins/common.py @@ -7,8 +7,14 @@ import sys import tempfile from pathlib import Path +from typing import List import pytest +from absl import flags as absl_flags + +from compiler_gym.util.runfiles_path import transient_cache_path + +FLAGS = absl_flags.FLAGS # Decorator to skip a test in the CI environment. skip_on_ci = pytest.mark.skipif(os.environ.get("CI", "") != "", reason="Skip on CI") @@ -31,8 +37,10 @@ @pytest.fixture(scope="function") def tmpwd() -> Path: - """A fixture that creates a tempory directory, changes to it, and yields the path.""" - with tempfile.TemporaryDirectory(prefix="compiler_gym-test-") as d: + """A fixture that creates a temporary directory, changes to it, and yields the path.""" + tmpdir_root = transient_cache_path("tests") + tmpdir_root.mkdir(exist_ok=True, parents=True) + with tempfile.TemporaryDirectory(dir=tmpdir_root, prefix="tmpwd-") as d: pwd = os.getcwd() try: os.chdir(d) @@ -46,7 +54,14 @@ def temporary_environ(): """A fixture that allows you to modify os.environ without affecting other tests.""" old_env = os.environ.copy() try: - yield + yield os.environ finally: os.environ.clear() os.environ.update(old_env) + + +def set_command_line_flags(flags: List[str]): + """Set the command line flags.""" + sys.argv = flags + FLAGS.unparse_flags() + FLAGS(flags) diff --git a/tests/pytest_plugins/llvm.py b/tests/pytest_plugins/llvm.py index 2b93a14cc..8a1f84b7b 100644 --- a/tests/pytest_plugins/llvm.py +++ b/tests/pytest_plugins/llvm.py @@ -10,8 +10,8 @@ import gym import pytest -from compiler_gym.envs import CompilerEnv -from compiler_gym.envs.llvm.legacy_datasets import VALIDATORS +from compiler_gym.envs.llvm import LlvmEnv +from compiler_gym.envs.llvm.datasets.cbench import VALIDATORS from compiler_gym.third_party import llvm from compiler_gym.util.runfiles_path import runfiles_path @@ -19,7 +19,7 @@ runfiles_path("compiler_gym/envs/llvm/service/passes/actions_flags.txt") ) -BENCHMARKS_LIST = Path(runfiles_path("compiler_gym/third_party/cBench/benchmarks.txt")) +BENCHMARKS_LIST = Path(runfiles_path("compiler_gym/third_party/cbench/benchmarks.txt")) def _read_list_file(path: Path) -> Iterable[str]: @@ -35,13 +35,12 @@ def _read_list_file(path: Path) -> Iterable[str]: # Skip ghostscript on CI as it is just too heavy. if bool(os.environ.get("CI")): BENCHMARK_NAMES = [ - b for b in BENCHMARK_NAMES if b != "benchmark://cBench-v1/ghostscript" + b for b in BENCHMARK_NAMES if b != "benchmark://cbench-v1/ghostscript" ] -_env = gym.make("llvm-v0") -OBSERVATION_SPACE_NAMES = sorted(_env.observation.spaces.keys()) -REWARD_SPACE_NAMES = sorted(_env.reward.spaces.keys()) -_env.close() +with gym.make("llvm-v0") as env: + OBSERVATION_SPACE_NAMES = sorted(env.observation.spaces.keys()) + REWARD_SPACE_NAMES = sorted(env.reward.spaces.keys()) @pytest.fixture(scope="module") @@ -78,43 +77,32 @@ def benchmark_name(request) -> str: yield request.param -VALIDATABLE_BENCHMARKS = [b for b in BENCHMARK_NAMES if b in VALIDATORS] -NON_VALIDATABLE_BENCHMARKS = [b for b in BENCHMARK_NAMES if b not in VALIDATORS] +VALIDATABLE_CBENCH_URIS = [b for b in BENCHMARK_NAMES if b in VALIDATORS] +NON_VALIDATABLE_CBENCH_URIS = [b for b in BENCHMARK_NAMES if b not in VALIDATORS] -@pytest.fixture(scope="module", params=VALIDATABLE_BENCHMARKS) -def validatable_benchmark_name(request) -> str: +@pytest.fixture(scope="module", params=VALIDATABLE_CBENCH_URIS) +def validatable_cbench_uri(request) -> str: """Enumerate the names of benchmarks whose semantics can be validated.""" yield request.param -@pytest.fixture(scope="module", params=NON_VALIDATABLE_BENCHMARKS) -def non_validatable_benchmark_name(request) -> str: +@pytest.fixture(scope="module", params=NON_VALIDATABLE_CBENCH_URIS) +def non_validatable_cbench_uri(request) -> str: """Enumerate the names of benchmarks whose semantics cannot be validated.""" yield request.param @pytest.fixture(scope="function") -def env() -> CompilerEnv: +def env() -> LlvmEnv: """Create an LLVM environment.""" env = gym.make("llvm-v0") - env.require_dataset("cBench-v1") try: yield env finally: env.close() -@pytest.fixture(scope="module") -def cBench_dataset(): - """Test fixture that ensures that cBench is available.""" - env = gym.make("llvm-v0") - try: - env.require_dataset("cBench-v1") - finally: - env.close() - - @pytest.fixture(scope="module") def llvm_opt() -> Path: """Test fixture that yields the path of opt.""" diff --git a/tests/random_search_test.py b/tests/random_search_test.py index 884b9dc1d..d29a78483 100644 --- a/tests/random_search_test.py +++ b/tests/random_search_test.py @@ -7,25 +7,23 @@ from pathlib import Path import gym -from absl import flags from compiler_gym.random_replay import replay_actions_from_logs from compiler_gym.random_search import random_search +from tests.pytest_plugins.common import set_command_line_flags from tests.test_main import main def make_env(): env = gym.make("llvm-autophase-ic-v0") - env.require_dataset("cBench-v1") - env.benchmark = "cBench-v1/dijkstra" + env.benchmark = "cbench-v1/dijkstra" return env def test_random_search_smoke_test(): with tempfile.TemporaryDirectory() as tmp: outdir = Path(tmp) - flags.FLAGS.unparse_flags() - flags.FLAGS(["argv0"]) + set_command_line_flags(["argv0"]) random_search( make_env=make_env, outdir=outdir, diff --git a/tests/requirements.txt b/tests/requirements.txt index 40e05856a..c99c25b9c 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,5 +1,7 @@ pytest==6.1.0 pytest-benchmark==3.2.3 +pytest-cov==2.11.1 +pytest-mock==3.6.0 pytest-shard==0.1.1 pytest-stress==1.0.1 pytest-sugar==0.9.4 diff --git a/tests/service/connection_test.py b/tests/service/connection_test.py index fd8826d85..443ed67be 100644 --- a/tests/service/connection_test.py +++ b/tests/service/connection_test.py @@ -49,7 +49,9 @@ def test_create_invalid_options(): def test_create_channel_failed_subprocess( dead_connection: CompilerGymServiceConnection, ): - with pytest.raises(ServiceError) as ctx: + with pytest.raises( + (ServiceError, TimeoutError), match="Failed to create connection to localhost:" + ): CompilerGymServiceConnection( f"{dead_connection.connection.url}", ConnectionOpts( @@ -59,9 +61,6 @@ def test_create_channel_failed_subprocess( ), ) - assert str(ctx.value).startswith("Failed to create connection to localhost:") - assert " (2 attempts made)" in str(ctx.value) - def test_create_channel_failed_subprocess_rpc_timeout( dead_connection: CompilerGymServiceConnection, diff --git a/tests/test_main.py b/tests/test_main.py index ede3f6324..f303acc5e 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -6,10 +6,8 @@ import sys from typing import List, Optional -import gym import pytest -import compiler_gym # noqa Register environments. from compiler_gym.util import debug_util as dbg @@ -40,14 +38,6 @@ def test_foo(): os.environ["COMPILER_GYM_SITE_DATA"] = "/tmp/compiler_gym/tests/site_data" os.environ["COMPILER_GYM_CACHE"] = "/tmp/compiler_gym/tests/cache" - # Install some benchmarks for the LLVM environment as otherwise - # reset() will fail. - env = gym.make("llvm-v0") - try: - env.require_dataset("cBench-v1") - finally: - env.close() - pytest_args = sys.argv + ["-vv"] # Support for sharding. If a py_test target has the shard_count attribute # set (in the range [1,50]), then the pytest-shard module is used to divide diff --git a/tests/util/BUILD b/tests/util/BUILD index efb27c9e1..2db713bd7 100644 --- a/tests/util/BUILD +++ b/tests/util/BUILD @@ -35,6 +35,16 @@ cc_test( ], ) +py_test( + name = "filesystem_test", + srcs = ["filesystem_test.py"], + deps = [ + "//compiler_gym/util", + "//tests:test_main", + "//tests/pytest_plugins:common", + ], +) + py_test( name = "minimize_trajectory_test", timeout = "short", diff --git a/tests/util/filesystem_test.py b/tests/util/filesystem_test.py new file mode 100644 index 000000000..92f5bc973 --- /dev/null +++ b/tests/util/filesystem_test.py @@ -0,0 +1,53 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# This source code is licensed under the MIT license found in the +# LICENSE file in the root directory of this source tree. +"""Unit tests for //compiler_gym/util:filesystem.""" +from pathlib import Path + +from compiler_gym.util import filesystem +from tests.test_main import main + +pytest_plugins = ["tests.pytest_plugins.common"] + + +def test_atomic_file_write_path(tmpwd: Path): + out = Path("a").resolve() + + assert not out.is_file() + + with filesystem.atomic_file_write(out) as tmp_out: + assert tmp_out != out + assert tmp_out.parent == out.parent + + # Write to the temporary file as normal. + with open(tmp_out, "w") as f: + f.write("Hello!") + + with open(out) as f: + assert f.read() == "Hello!" + assert not tmp_out.is_file() + + +def test_atomic_file_write_binary_io(tmpwd: Path): + out = Path("a").resolve() + + with filesystem.atomic_file_write(out, fileobj=True) as f: + f.write("Hello!".encode("utf-8")) + + with open(out) as f: + assert f.read() == "Hello!" + + +def test_atomic_file_write_text_io(tmpwd: Path): + out = Path("a").resolve() + + with filesystem.atomic_file_write(out, fileobj=True, mode="w") as f: + f.write("Hello!") + + with open(out) as f: + assert f.read() == "Hello!" + + +if __name__ == "__main__": + main() diff --git a/tests/util/minimize_trajectory_test.py b/tests/util/minimize_trajectory_test.py index e4fb105d0..5cb33a6a1 100644 --- a/tests/util/minimize_trajectory_test.py +++ b/tests/util/minimize_trajectory_test.py @@ -150,7 +150,7 @@ def hypothesis(env): def test_minimize_trajectory_iteratively_llvm_crc32(env): """Test trajectory minimization on a real environment.""" - env.reset(benchmark="cBench-v1/crc32") + env.reset(benchmark="cbench-v1/crc32") env.step( [ env.action_space["-mem2reg"], diff --git a/tests/util/timer_test.py b/tests/util/timer_test.py index af50a86be..30cb24d16 100644 --- a/tests/util/timer_test.py +++ b/tests/util/timer_test.py @@ -3,6 +3,8 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Unit tests for //compiler_gym/util:timer.""" +from time import sleep + from compiler_gym.util import timer from tests.test_main import main @@ -33,5 +35,31 @@ def test_humanize_duration_negative_seconds(): assert timer.humanize_duration(-1.5) == "-1.500s" +def test_humanize_duration_hms(): + assert timer.humanize_duration_hms(0.05) == "0:00:00" + assert timer.humanize_duration_hms(0.999) == "0:00:00" + assert timer.humanize_duration_hms(5) == "0:00:05" + assert timer.humanize_duration_hms(500.111111) == "0:08:20" + assert timer.humanize_duration_hms(4210.4) == "1:10:10" + assert timer.humanize_duration_hms(36000) == "10:00:00" + + +def test_timer_elapsed_before_reset(): + t = timer.Timer() + assert t.time == 0 + sleep(0.1) + assert t.time == 0 + + +def test_timer_elapsed_remains_constant(): + with timer.Timer() as t: + sleep(0.1) + elapsed_a = t.time + assert elapsed_a > 0 + sleep(0.1) + elapsed_b = t.time + assert elapsed_b == elapsed_a + + if __name__ == "__main__": main() diff --git a/tests/validate_test.py b/tests/validate_test.py index 596799b25..0bce2cbaf 100644 --- a/tests/validate_test.py +++ b/tests/validate_test.py @@ -14,7 +14,7 @@ @pytest.mark.parametrize("nproc", (1, 2)) def test_validate_states_lambda_callback(inorder, nproc): state = CompilerEnvState( - benchmark="benchmark://cBench-v1/crc32", + benchmark="benchmark://cbench-v1/crc32", walltime=1, commandline="opt input.bc -o output.bc", ) @@ -22,7 +22,6 @@ def test_validate_states_lambda_callback(inorder, nproc): validate_states( make_env=lambda: gym.make("llvm-v0"), states=[state], - datasets=["cBench-v1"], inorder=inorder, nproc=nproc, ) diff --git a/tests/validation_result_test.py b/tests/validation_result_test.py index 9fd6bb1fa..44473dbf7 100644 --- a/tests/validation_result_test.py +++ b/tests/validation_result_test.py @@ -3,6 +3,8 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. """Unit tests for //compiler_gym:validation_result.""" +import json + import pytest from compiler_gym import CompilerEnvState, ValidationError, ValidationResult @@ -39,13 +41,13 @@ def test_validation_error_json(): data={"data": [1, 2, 3]}, ) - assert ValidationError.from_json(error.json()) == error + assert ValidationError(**json.loads(error.json())) == error def test_validation_result_json(): result = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=1, ), @@ -58,13 +60,13 @@ def test_validation_result_json(): ], ) - assert ValidationResult.from_json(result.json()) == result + assert ValidationResult(**json.loads(result.json())) == result def test_validation_result_equality_different_states(): a = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test/a", + benchmark="benchmark://example-v0/test/a", commandline="test", walltime=1, ), @@ -72,7 +74,7 @@ def test_validation_result_equality_different_states(): ) b = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test/b", + benchmark="benchmark://example-v0/test/b", commandline="test", walltime=1, ), @@ -84,7 +86,7 @@ def test_validation_result_equality_different_states(): def test_validation_result_equality_different_walltimes(): a = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=1, ), @@ -92,7 +94,7 @@ def test_validation_result_equality_different_walltimes(): ) b = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=10, ), @@ -104,7 +106,7 @@ def test_validation_result_equality_different_walltimes(): def test_validation_result_equality_different_errors_order(): a = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=1, ), @@ -122,7 +124,7 @@ def test_validation_result_equality_different_errors_order(): ) b = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=1, ), @@ -150,7 +152,7 @@ def test_validation_result_join_no_inputs(): def test_validation_result_join_one_input(): result = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=1, ), @@ -170,7 +172,7 @@ def test_validation_result_join_one_input(): def test_validation_result_join_two_inputs_different_errors(): a = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=1, ), @@ -184,7 +186,7 @@ def test_validation_result_join_two_inputs_different_errors(): ) b = ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=10, ), @@ -200,7 +202,7 @@ def test_validation_result_join_two_inputs_different_errors(): c = ValidationResult.join([a, b]) assert c == ValidationResult( state=CompilerEnvState( - benchmark="benchmark://example/test", + benchmark="benchmark://example-v0/test", commandline="test", walltime=10, ), diff --git a/tox.ini b/tox.ini index 8ee4e3ee9..236c34bff 100644 --- a/tox.ini +++ b/tox.ini @@ -8,3 +8,7 @@ line_length = 88 [flake8] ignore = E501, E302, W503, E203 + +[pytest] +filterwarnings = + ignore::pytest.PytestAssertRewriteWarning: