[all-commits] [llvm/llvm-project] 96ea37: [PHIElimination] Compile time optimization for hu...

Jonas Paulsson via All-commits all-commits at lists.llvm.org
Wed Feb 5 15:12:33 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 96ea377ea4d6d8cb304a2f5ad69fd33fd1fade6f
      https://github.com/llvm/llvm-project/commit/96ea377ea4d6d8cb304a2f5ad69fd33fd1fade6f
  Author: Jonas Paulsson <paulsson at linux.vnet.ibm.com>
  Date:   2020-02-05 (Wed, 05 Feb 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/LiveVariables.h
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    M llvm/lib/CodeGen/LiveVariables.cpp
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/CodeGen/PHIElimination.cpp

  Log Message:
  -----------
  [PHIElimination]  Compile time optimization for huge functions.

This is a compile-time optimization for PHIElimination (splitting of critical
edges), which was reported at https://bugs.llvm.org/show_bug.cgi?id=44249. As
discussed there, the way to remedy the slowdowns with huge functions is to
pre-compute the live-in registers for each MBB in an efficient way in
PHIElimination.cpp and then pass that information along to
LiveVariabless::addNewBlock().

In all the huge test programs where this slowdown has been noticable, it has
dissapeared entirely with this patch.

Review: Björn Pettersson, Quentin Colombet.

Differential Revision: https://reviews.llvm.org/D73152




More information about the All-commits mailing list