diff --git a/README.md b/README.md index eda1242207..f11b7d6ce9 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,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/examples/BUILD b/examples/BUILD index f54103055d..38b174cc2d 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -74,6 +74,7 @@ py_test( py_binary( name = "tabular_q", srcs = ["tabular_q.py"], + visibility = ["//visibility:public"], deps = [ "//compiler_gym", "//compiler_gym/util", diff --git a/examples/tabular_q.py b/examples/tabular_q.py index d1f027b012..7f11a03ec6 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/leaderboard/llvm_instcount/tabular_q/BUILD b/leaderboard/llvm_instcount/tabular_q/BUILD new file mode 100644 index 0000000000..b72a25a420 --- /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 0000000000..dc947cce68 --- /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 0000000000..762fe996f6 --- /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 0000000000..62917db52d --- /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 0000000000..3645fb7e15 --- /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 0000000000..1f965cba01 --- /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()