[PATCH] D93827: [PatternMatch][LVI] Handle select-form and/or in LVI
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Dec 26 12:58:07 PST 2020
nikic created this revision.
nikic added reviewers: aqjune, spatel, lebedev.ri.
Herald added subscribers: dexonsmith, hiraditya.
nikic requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Following the discussion in D93065 <https://reviews.llvm.org/D93065>, this adds `m_LogicalAnd()` and `m_LogicalOr()` matchers, that match `A && B` and `A || B` logical operations, either as bitwise operations or select expressions. As an example usage, LVI is adapted to use these matchers for its condition reasoning.
The plan here is to switch other parts of LLVM that reason about and/or of conditions to also support the select forms, and then merge D93065 <https://reviews.llvm.org/D93065> (or some close variant) to disable the incorrect select -> and/or transform.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D93827
Files:
llvm/include/llvm/IR/PatternMatch.h
llvm/lib/Analysis/LazyValueInfo.cpp
llvm/test/Transforms/CorrelatedValuePropagation/basic.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93827.313757.patch
Type: text/x-patch
Size: 5019 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201226/07d5b340/attachment.bin>
More information about the llvm-commits
mailing list