[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