1*effccb7dSTang Haojinstats_dir = '' 2*effccb7dSTang Haojin 3*effccb7dSTang HaojinCSV_PATH = 'results/results.csv' 4*effccb7dSTang HaojinJSON_FILE = 'resources/spec06_rv64gcb_o2_20m.json' 5*effccb7dSTang HaojinOUT_CSV = 'results/results-weighted.csv' 6*effccb7dSTang HaojinINT_ONLY = False 7*effccb7dSTang HaojinFP_ONLY = False 8*effccb7dSTang Haojin 9*effccb7dSTang Haojinxs_coarse_rename_map = { 10*effccb7dSTang Haojin 'OverrideBubble': 'MergeFrontend', 11*effccb7dSTang Haojin 'FtqFullStall': 'MergeFrontend', 12*effccb7dSTang Haojin 'FtqUpdateBubble': 'MergeBadSpec', 13*effccb7dSTang Haojin 'TAGEMissBubble': 'MergeBadSpec', 14*effccb7dSTang Haojin 'SCMissBubble': 'MergeBadSpec', 15*effccb7dSTang Haojin 'ITTAGEMissBubble': 'MergeBadSpec', 16*effccb7dSTang Haojin 'RASMissBubble': 'MergeBadSpec', 17*effccb7dSTang Haojin 'ICacheMissBubble': 'MergeFrontend', 18*effccb7dSTang Haojin 'ITLBMissBubble': 'MergeFrontend', 19*effccb7dSTang Haojin 'BTBMissBubble': 'MergeBadSpec', 20*effccb7dSTang Haojin 'FetchFragBubble': 'MergeFrontend', 21*effccb7dSTang Haojin 22*effccb7dSTang Haojin 'DivStall': 'MergeCore', 23*effccb7dSTang Haojin 'IntNotReadyStall': 'MergeCore', 24*effccb7dSTang Haojin 'FPNotReadyStall': 'MergeCore', 25*effccb7dSTang Haojin 26*effccb7dSTang Haojin 'MemNotReadyStall': 'MergeLoad', 27*effccb7dSTang Haojin 28*effccb7dSTang Haojin 'IntFlStall': 'MergeFreelistStall', 29*effccb7dSTang Haojin 'FpFlStall': 'MergeFreelistStall', 30*effccb7dSTang Haojin 31*effccb7dSTang Haojin 'IntDqStall': 'MergeCoreDQStall', 32*effccb7dSTang Haojin 'FpDqStall': 'MergeCoreDQStall', 33*effccb7dSTang Haojin 'LsDqStall': 'MergeMemDQStall', 34*effccb7dSTang Haojin 35*effccb7dSTang Haojin 'LoadTLBStall': 'MergeLoad', 36*effccb7dSTang Haojin 'LoadL1Stall': 'MergeLoad', 37*effccb7dSTang Haojin 'LoadL2Stall': 'MergeLoad', 38*effccb7dSTang Haojin 'LoadL3Stall': 'MergeLoad', 39*effccb7dSTang Haojin 'LoadMemStall': 'MergeLoad', 40*effccb7dSTang Haojin 'StoreStall': 'MergeStore', 41*effccb7dSTang Haojin 42*effccb7dSTang Haojin 'AtomicStall': 'MergeMisc', 43*effccb7dSTang Haojin 44*effccb7dSTang Haojin 'FlushedInsts': 'MergeBadSpecInst', 45*effccb7dSTang Haojin 'LoadVioReplayStall': 'MergeBadSpec', 46*effccb7dSTang Haojin 47*effccb7dSTang Haojin 'LoadMSHRReplayStall': 'MergeLoad', 48*effccb7dSTang Haojin 49*effccb7dSTang Haojin 'ControlRecoveryStall': 'MergeBadSpec', 50*effccb7dSTang Haojin 'MemVioRecoveryStall': 'MergeBadSpec', 51*effccb7dSTang Haojin 'OtherRecoveryStall': 'MergeBadSpec', 52*effccb7dSTang Haojin 53*effccb7dSTang Haojin 'OtherCoreStall': 'MergeCoreOther', 54*effccb7dSTang Haojin 'NoStall': 'MergeBase', 55*effccb7dSTang Haojin 56*effccb7dSTang Haojin 'MemVioRedirectBubble': 'MergeBadSpec', 57*effccb7dSTang Haojin 'OtherRedirectBubble': 'MergeMisc', 58*effccb7dSTang Haojin 59*effccb7dSTang Haojin 'commitInstr': 'Insts', 60*effccb7dSTang Haojin 'total_cycles': 'Cycles', 61*effccb7dSTang Haojin} 62*effccb7dSTang Haojin 63*effccb7dSTang Haojinxs_fine_grain_rename_map = { 64*effccb7dSTang Haojin 'OverrideBubble': 'MergeOtherFrontend', 65*effccb7dSTang Haojin 'FtqFullStall': 'MergeOtherFrontend', 66*effccb7dSTang Haojin 'FtqUpdateBubble': 'MergeBadSpecBubble', 67*effccb7dSTang Haojin 'TAGEMissBubble': 'MergeBadSpecBubble', 68*effccb7dSTang Haojin 'SCMissBubble': 'MergeBadSpecBubble', 69*effccb7dSTang Haojin 'ITTAGEMissBubble': 'MergeBadSpecBubble', 70*effccb7dSTang Haojin 'RASMissBubble': 'MergeBadSpecBubble', 71*effccb7dSTang Haojin 'ICacheMissBubble': 'ICacheBubble', 72*effccb7dSTang Haojin 'ITLBMissBubble': 'ITlbBubble', 73*effccb7dSTang Haojin 'BTBMissBubble': 'MergeBadSpecBubble', 74*effccb7dSTang Haojin 'FetchFragBubble': 'FragmentBubble', 75*effccb7dSTang Haojin 76*effccb7dSTang Haojin 'DivStall': 'LongExecute', 77*effccb7dSTang Haojin 'IntNotReadyStall': 'MergeInstNotReady', 78*effccb7dSTang Haojin 'FPNotReadyStall': 'MergeInstNotReady', 79*effccb7dSTang Haojin 80*effccb7dSTang Haojin 'MemNotReadyStall': 'MemNotReady', 81*effccb7dSTang Haojin 82*effccb7dSTang Haojin 'IntFlStall': 'MergeFreelistStall', 83*effccb7dSTang Haojin 'FpFlStall': 'MergeFreelistStall', 84*effccb7dSTang Haojin 85*effccb7dSTang Haojin 'IntDqStall': 'MergeDispatchQueueStall', 86*effccb7dSTang Haojin 'FpDqStall': 'MergeDispatchQueueStall', 87*effccb7dSTang Haojin 'LsDqStall': 'MergeDispatchQueueStall', 88*effccb7dSTang Haojin 89*effccb7dSTang Haojin 'LoadTLBStall': 'DTlbStall', 90*effccb7dSTang Haojin 'LoadL1Stall': 'LoadL1Bound', 91*effccb7dSTang Haojin 'LoadL2Stall': 'LoadL2Bound', 92*effccb7dSTang Haojin 'LoadL3Stall': 'LoadL3Bound', 93*effccb7dSTang Haojin 'LoadMemStall': 'LoadMemBound', 94*effccb7dSTang Haojin 'StoreStall': 'MergeStoreBound', 95*effccb7dSTang Haojin 96*effccb7dSTang Haojin 'AtomicStall': 'SerializeStall', 97*effccb7dSTang Haojin 98*effccb7dSTang Haojin 'FlushedInsts': 'BadSpecInst', 99*effccb7dSTang Haojin 'LoadVioReplayStall': None, 100*effccb7dSTang Haojin 101*effccb7dSTang Haojin 'LoadMSHRReplayStall': None, 102*effccb7dSTang Haojin 103*effccb7dSTang Haojin 'ControlRecoveryStall': 'MergeBadSpecWalking', 104*effccb7dSTang Haojin 'MemVioRecoveryStall': 'MergeBadSpecWalking', 105*effccb7dSTang Haojin 'OtherRecoveryStall': 'MergeBadSpecWalking', 106*effccb7dSTang Haojin 107*effccb7dSTang Haojin 'OtherCoreStall': 'MergeMisc', 108*effccb7dSTang Haojin 'NoStall': None, 109*effccb7dSTang Haojin 110*effccb7dSTang Haojin 'MemVioRedirectBubble': 'MergeBadSpecBubble', 111*effccb7dSTang Haojin 'OtherRedirectBubble': 'MergeMisc', 112*effccb7dSTang Haojin 113*effccb7dSTang Haojin 'commitInstr': 'Insts', 114*effccb7dSTang Haojin 'total_cycles': 'Cycles', 115*effccb7dSTang Haojin} 116*effccb7dSTang Haojin 117*effccb7dSTang HaojinXS_CORE_PREFIX = r'\[PERF \]\[time=\s+\d+\] TOP\.SimTop\.l_soc\.core_with_l2\.core' 118*effccb7dSTang Haojin 119*effccb7dSTang Haojintargets = { 120*effccb7dSTang Haojin 'NoStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: NoStall,\s+(\d+)', 121*effccb7dSTang Haojin 122*effccb7dSTang Haojin 'OverrideBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: OverrideBubble,\s+(\d+)', 123*effccb7dSTang Haojin 'FtqUpdateBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: FtqUpdateBubble,\s+(\d+)', 124*effccb7dSTang Haojin 'TAGEMissBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: TAGEMissBubble,\s+(\d+)', 125*effccb7dSTang Haojin 'SCMissBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: SCMissBubble,\s+(\d+)', 126*effccb7dSTang Haojin 'ITTAGEMissBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: ITTAGEMissBubble,\s+(\d+)', 127*effccb7dSTang Haojin 'RASMissBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: RASMissBubble,\s+(\d+)', 128*effccb7dSTang Haojin 'MemVioRedirectBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: MemVioRedirectBubble,\s+(\d+)', 129*effccb7dSTang Haojin 'OtherRedirectBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: OtherRedirectBubble,\s+(\d+)', 130*effccb7dSTang Haojin 'FtqFullStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: FtqFullStall,\s+(\d+)', 131*effccb7dSTang Haojin 132*effccb7dSTang Haojin 'ICacheMissBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: ICacheMissBubble,\s+(\d+)', 133*effccb7dSTang Haojin 'ITLBMissBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: ITLBMissBubble,\s+(\d+)', 134*effccb7dSTang Haojin 'BTBMissBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: BTBMissBubble,\s+(\d+)', 135*effccb7dSTang Haojin 'FetchFragBubble': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: FetchFragBubble,\s+(\d+)', 136*effccb7dSTang Haojin 137*effccb7dSTang Haojin 'DivStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: DivStall,\s+(\d+)', 138*effccb7dSTang Haojin 'IntNotReadyStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: IntNotReadyStall,\s+(\d+)', 139*effccb7dSTang Haojin 'FPNotReadyStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: FPNotReadyStall,\s+(\d+)', 140*effccb7dSTang Haojin 'MemNotReadyStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: MemNotReadyStall,\s+(\d+)', 141*effccb7dSTang Haojin 142*effccb7dSTang Haojin 'IntFlStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: IntFlStall,\s+(\d+)', 143*effccb7dSTang Haojin 'FpFlStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: FpFlStall,\s+(\d+)', 144*effccb7dSTang Haojin 145*effccb7dSTang Haojin 'IntDqStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: IntDqStall,\s+(\d+)', 146*effccb7dSTang Haojin 'FpDqStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: FpDqStall,\s+(\d+)', 147*effccb7dSTang Haojin 'LsDqStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LsDqStall,\s+(\d+)', 148*effccb7dSTang Haojin 149*effccb7dSTang Haojin 'LoadTLBStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LoadTLBStall,\s+(\d+)', 150*effccb7dSTang Haojin 'LoadL1Stall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LoadL1Stall,\s+(\d+)', 151*effccb7dSTang Haojin 'LoadL2Stall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LoadL2Stall,\s+(\d+)', 152*effccb7dSTang Haojin 'LoadL3Stall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LoadL3Stall,\s+(\d+)', 153*effccb7dSTang Haojin 'LoadMemStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LoadMemStall,\s+(\d+)', 154*effccb7dSTang Haojin 'StoreStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: StoreStall,\s+(\d+)', 155*effccb7dSTang Haojin 'AtomicStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: AtomicStall,\s+(\d+)', 156*effccb7dSTang Haojin 157*effccb7dSTang Haojin 'LoadVioReplayStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LoadVioReplayStall,\s+(\d+)', 158*effccb7dSTang Haojin 'LoadMSHRReplayStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: LoadMSHRReplayStall,\s+(\d+)', 159*effccb7dSTang Haojin 160*effccb7dSTang Haojin 'ControlRecoveryStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: ControlRecoveryStall,\s+(\d+)', 161*effccb7dSTang Haojin 'MemVioRecoveryStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: MemVioRecoveryStall,\s+(\d+)', 162*effccb7dSTang Haojin 'OtherRecoveryStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: OtherRecoveryStall,\s+(\d+)', 163*effccb7dSTang Haojin 164*effccb7dSTang Haojin 'FlushedInsts': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: FlushedInsts,\s+(\d+)', 165*effccb7dSTang Haojin 'OtherCoreStall': fr'{XS_CORE_PREFIX}.backend.ctrlBlock\.dispatch: OtherCoreStall,\s+(\d+)', 166*effccb7dSTang Haojin 167*effccb7dSTang Haojin "commitInstr": r"\[PERF \]\[time=\s+\d+\] TOP.SimTop.l_soc.core_with_l2.core.backend.ctrlBlock.rob: commitInstr,\s+(\d+)", 168*effccb7dSTang Haojin "total_cycles": r"\[PERF \]\[time=\s+\d+\] TOP.SimTop.l_soc.core_with_l2.core.backend.ctrlBlock.rob: clock_cycle,\s+(\d+)", 169*effccb7dSTang Haojin} 170*effccb7dSTang Haojin 171*effccb7dSTang Haojin 172*effccb7dSTang Haojinspec_bmks = { 173*effccb7dSTang Haojin '06': { 174*effccb7dSTang Haojin 'int': [ 175*effccb7dSTang Haojin 'perlbench', 176*effccb7dSTang Haojin 'bzip2', 177*effccb7dSTang Haojin 'gcc', 178*effccb7dSTang Haojin 'mcf', 179*effccb7dSTang Haojin 'gobmk', 180*effccb7dSTang Haojin 'hmmer', 181*effccb7dSTang Haojin 'sjeng', 182*effccb7dSTang Haojin 'libquantum', 183*effccb7dSTang Haojin 'h264ref', 184*effccb7dSTang Haojin 'omnetpp', 185*effccb7dSTang Haojin 'astar', 186*effccb7dSTang Haojin 'xalancbmk', 187*effccb7dSTang Haojin ], 188*effccb7dSTang Haojin 'float': [ 189*effccb7dSTang Haojin 'bwaves', 'gamess', 'milc', 'zeusmp', 'gromacs', 190*effccb7dSTang Haojin 'cactusADM', 'leslie3d', 'namd', 'dealII', 'soplex', 191*effccb7dSTang Haojin 'povray', 'calculix', 'GemsFDTD', 'tonto', 'lbm', 192*effccb7dSTang Haojin 'wrf', 'sphinx3', 193*effccb7dSTang Haojin ], 194*effccb7dSTang Haojin 'high_squash': ['astar', 'bzip2', 'gobmk', 'sjeng'], 195*effccb7dSTang Haojin }, 196*effccb7dSTang Haojin '17': {}, 197*effccb7dSTang Haojin} 198