diff --git a/sim/regression-wally b/sim/regression-wally index 5f4e68bf1..3864d3b3e 100755 --- a/sim/regression-wally +++ b/sim/regression-wally @@ -11,6 +11,9 @@ # ################################## import sys,os,shutil +import multiprocessing + + class bcolors: HEADER = '\033[95m' @@ -215,6 +218,51 @@ if (nightly): ["div_4_4_rv64gc", ["arch64f_divsqrt", "arch64d_divsqrt", "arch64m"]], ["div_4_4i_rv64gc", ["arch64f_divsqrt", "arch64d_divsqrt", "arch64m"]], + ### branch predictor simulation + + ["bpred_TWOBIT_6_16_10_0_rv32gc", ["embench"]], + ["bpred_TWOBIT_8_16_10_0_rv32gc", ["embench"]], + ["bpred_TWOBIT_10_16_10_0_rv32gc", ["embench"]], + ["bpred_TWOBIT_12_16_10_0_rv32gc", ["embench"]], + ["bpred_TWOBIT_14_16_10_0_rv32gc", ["embench"]], + ["bpred_TWOBIT_16_16_10_0_rv32gc", ["embench"]], + ["bpred_TWOBIT_6_16_10_1_rv32gc", ["embench"]], + ["bpred_TWOBIT_8_16_10_1_rv32gc", ["embench"]], + ["bpred_TWOBIT_10_16_10_1_rv32gc", ["embench"]], + ["bpred_TWOBIT_12_16_10_1_rv32gc", ["embench"]], + ["bpred_TWOBIT_14_16_10_1_rv32gc", ["embench"]], + ["bpred_TWOBIT_16_16_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_16_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_16_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_12_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_12_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_14_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_14_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_16_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_16_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_6_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_6_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_8_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_2_8_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_3_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_3_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_4_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_4_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_10_6_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_10_6_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_12_16_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_12_16_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_14_16_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_14_16_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_16_16_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_16_16_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_6_16_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_6_16_10_1_rv32gc", ["embench"]], + ["bpred_GSHARE_8_16_10_0_rv32gc", ["embench"]], + ["bpred_GSHARE_8_16_10_1_rv32gc", ["embench"]], + # enable floating-point tests when lint is fixed # ["f_rv32gc", ["arch32f", "arch32f_divsqrt", "arch32f_fma"]], # ["fh_rv32gc", ["arch32f", "arch32f_divsqrt", "arch32f_fma", "arch32zfh", "arch32zfh_divsqrt"]], @@ -312,7 +360,7 @@ def main(): # Scale the number of concurrent processes to the number of test cases, but # max out at a limited number of concurrent processes to not overwhelm the system - with Pool(processes=min(len(configs),40)) as pool: + with Pool(processes=min(len(configs),multiprocessing.cpu_count())) as pool: num_fail = 0 results = {} for config in configs: