[all-commits] [llvm/llvm-project] 2a2a37: [IVUsers] Check for preheader instead of loop simp...

Nikita Popov via All-commits all-commits at lists.llvm.org
Mon Oct 11 14:13:32 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2a2a37d97207ea7017f1ad9d1312e462c0de9e79
      https://github.com/llvm/llvm-project/commit/2a2a37d97207ea7017f1ad9d1312e462c0de9e79
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-10-11 (Mon, 11 Oct 2021)

  Changed paths:
    M llvm/lib/Analysis/IVUsers.cpp

  Log Message:
  -----------
  [IVUsers] Check for preheader instead of loop simplify form

IVUsers currently makes sure that all loops dominating a user are
in loop simplify form, because SCEVExpander needs a preheader to
insert into. However, loop simplify form requires much more than
that. In particular, it requires dedicated exits, which means that
exits need to be found and walked. For large functions with many
nested loops, this can result in pathological compile-time explosion.

Fix this by only checking the property we're actually interested in,
which is incidentally cheap to check.

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




More information about the All-commits mailing list