xref: /llvm-project/llvm/test/CodeGen/MLRegAlloc/interactive-mode.ll (revision 65b40f273f09a53f61a13ac6f4bb65ec4ac63d6e)
1; REQUIRES: x86_64-linux
2; RUN: rm -rf %t.rundir
3; RUN: rm -rf %t.channel-basename.*
4; RUN: mkdir %t.rundir
5; RUN: cp %S/../../../lib/Analysis/models/log_reader.py %t.rundir
6; RUN: cp %S/../../../lib/Analysis/models/interactive_host.py %t.rundir
7; RUN: cp %S/Inputs/interactive_main.py %t.rundir
8; RUN: %python %t.rundir/interactive_main.py %t.channel-basename \
9; RUN:    llc -mtriple=x86_64-linux-unknown -regalloc=greedy -regalloc-enable-advisor=release -interactive-model-runner-echo-reply \
10; RUN:    -regalloc-evict-interactive-channel-base=%t.channel-basename %S/Inputs/two-large-fcts.ll -o /dev/null | FileCheck %s
11
12;; Make sure we see both contexts. Also sanity-check that the advice is the
13;; expected one - the index of the first legal register
14; CHECK: context: SyFgets
15; CHECK-NEXT: observation: 0
16; CHECK-NEXT: mask: 0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
17; CHECK: observation: 1
18; CHECK-NEXT: mask: 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
19; CHECK: context: SyFgetsCopy
20; CHECK-NEXT: observation: 0
21
22; CHECK:      index_to_evict: 9
23; CHECK-NEXT: index_to_evict: 10
24