[all-commits] [llvm/llvm-project] 0e0ff8: [GuardWidening] Refactor to work with the list of ...
Aleksandr Popov via All-commits
all-commits at lists.llvm.org
Wed Sep 6 07:51:07 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0e0ff8573de69286536e4f49098226eda0c4c7f5
https://github.com/llvm/llvm-project/commit/0e0ff8573de69286536e4f49098226eda0c4c7f5
Author: Aleksandr Popov <a.popov.tmb at gmail.com>
Date: 2023-09-06 (Wed, 06 Sep 2023)
Changed paths:
M llvm/lib/Transforms/Scalar/GuardWidening.cpp
M llvm/test/Transforms/GuardWidening/range-check-merging.ll
Log Message:
-----------
[GuardWidening] Refactor to work with the list of checks to widen/hoist
Currently we hoist conditions from widenable branch which are joined to
the widenable_condition by And operation. E.g if we have
br(WC && (c1 && c2)) we will operate with (c1 && c2) unsplitted.
This patch adds more flexibility to that mechanism by supporting work
with the list of checks parsed from the widenable branch.
On that stage patch doesn't change the logic of checks hoisting. In the
example above we will either hoist both checks [c1, c2] or none of them.
But in the future we would improve that logic analyzing each check
separately.
Reviewed By: anna
Differential Revision: https://reviews.llvm.org/D157689
More information about the All-commits
mailing list