https://bugs.llvm.org/show_bug.cgi?id=46934

            Bug ID: 46934
           Summary: Suboptimal instruction schedule leads to spilling and
                    poor performance
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Register Allocator
          Assignee: unassignedb...@nondot.org
          Reporter: benny....@gmail.com
                CC: echri...@gmail.com, llvm-bugs@lists.llvm.org,
                    n...@google.com, quentin.colom...@gmail.com

Created attachment 23801
  --> https://bugs.llvm.org/attachment.cgi?id=23801&action=edit
test case

When looking at a matmul benchmark we're seeing steep performance cliffs after
tiny changes to the IR. This seems to be due to excessive spilling.

$ llc -mcpu=skx < matmul.ll | grep -c Spill
13

Picking a different scheduler can make this go away. I think it's just getting
lucky though:
$ llc -mcpu=skx < matmul.ll -pre-RA-sched=list-ilp | grep -c Spill
1

The input contains a loop with lots of loads, followed by arithmetic. It is
possible to move some of the loads down into the arithmetic to reduce register
pressure.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to