[exegesis] SnippetRepetitor: don't deal with terminator instructions
These appear to be the only two crashing issues. Afterwards, we seem to not crash for all opcodes in all repetition modes in all measurement modes. Otherwise, we get: ``` # # Machine code for function foo: NoPHIs, TracksLiveness, NoVRegs bb.0: successors: %bb.1(0x80000000); %bb.1(100.00%) $r8 = MOV64ri 2 bb.1: ; predecessors: %bb.0, %bb.1 successors: %bb.1(0x80000000), %bb.2(0x00000000); %bb.1(100.00%), %bb.2(0.00%) liveins: $r8 HLT HLT $r8 = ADD64ri8 $r8(tied-def 0), -1, implicit-def $eflags JCC_1 %bb.1, 5, implicit $eflags bb.2: ; predecessors: %bb.1 RET64 # End machine code for function foo. *** Bad machine code: Non-terminator instruction after the first terminator *** - function: foo - basic block: %bb.1 (0x55df06791048) - instruction: $r8 = ADD64ri8 $r8(tied-def 0), -1, implicit-def $eflags First terminator was: HLT LLVM ERROR: Found 1 machine code errors. PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: bin/llvm-exegesis --skip-measurements -mode=uops --dump-object-to-disk=0 --repetition-mode=loop --loop-body-size=1000 --result-aggregation-mode=min --opcode-name=HLT --max-configs-per-opcode=8192 1. Running pass 'Function Pass Manager' on module 'ExegesisInfoTest'. 2. Running pass 'Verify generated machine code' on function '@foo' ```
Loading
Please sign in to comment