[all-commits] [llvm/llvm-project] 1a25d0: [LICM] Remove profile driven restriction on hoisting

Philip Reames via All-commits all-commits at lists.llvm.org
Fri Dec 3 17:19:54 PST 2021

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1a25d0bfbb6b587caa03bacd121b67086a774598
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-12-03 (Fri, 03 Dec 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LICM.cpp
    R llvm/test/Transforms/LICM/no-hoist-prof.ll
    R llvm/test/Transforms/LICM/sink.ll

  Log Message:
  [LICM] Remove profile driven restriction on hoisting

This reverts change 2c391a5/D87551.  As noted in the llvm-dev thread "LICM as canonical form" sent earlier today, introducing this was a major design change made without sufficient cause.

A profile driven LICM is not an unreasonable design, it simply is not what we have.  Switching to such a model requires a lot more work than just this patch, and broad aggeement that is the right direction for the optimizer as a whole.

Worth noting is that all the tests included in the reverted changed are probably handled if we allow running unconstrained LICM, and later run LoopSink.  As such, we have no public examples which motivate a profit based hoisting approach.

More information about the All-commits mailing list