diff options
author | Scott Michel <scottm@aero.org> | 2008-03-05 17:49:05 +0000 |
---|---|---|
committer | Scott Michel <scottm@aero.org> | 2008-03-05 17:49:05 +0000 |
commit | 327d0651f8c3b1480d8fc1f4d96e07a1452eaa8c (patch) | |
tree | c18217463b152fa5afa93ffe0df2ade7ac684580 /lib/Transforms/Utils/UnifyFunctionExitNodes.cpp | |
parent | 4d93b2f16d66841f3338ffe2c1318fe6eeeef181 (diff) |
This patch fixes a problem encountered by the CellSPU backend where variants
were being pruned in patterns where a variable was used more than once, e.g.:
(or (and R32C:$rA, R32C:$rC), (and R32C:$rB, (not R32C:$rC)))
In this example, $rC is used more than once and is actually significant to
instruction selection pattern matching when commuted variants are produced.
This patch scans the pattern's clauses and collects the variables, creating
a set of variables that are used more than once. TreePatternNode::isIsomorphicTo()
also understands that multiply-used variables are significant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47950 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/UnifyFunctionExitNodes.cpp')
0 files changed, 0 insertions, 0 deletions