aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2024-05-07 21:17:50 -0700
committerGitHub <noreply@github.com>2024-05-07 21:17:50 -0700
commitef84452571b8e8f4a38a173e6adf6a5ecbbde97e (patch)
treea0150a7211ae50db55b27e3da4d1ed7e89c83b90 /flang/lib/Frontend/CompilerInvocation.cpp
parent85ef6b7c364f3b57c13c179bf278fe47366287a2 (diff)
downloadllvm-ef84452571b8e8f4a38a173e6adf6a5ecbbde97e.zip
llvm-ef84452571b8e8f4a38a173e6adf6a5ecbbde97e.tar.gz
llvm-ef84452571b8e8f4a38a173e6adf6a5ecbbde97e.tar.bz2
[DAGCombiner] Be more careful about looking through extends and truncates in mergeTruncStores. (#91375)
Previously we recursively looked through extends and truncates on both SourceValue and WideVal. SourceValue is the largest source found for each of the stores we are combining. WideVal is the source for the current store. Previously we could incorrectly look through a (zext (trunc X)) pair and incorrectly believe X to be a good source. I think we could also look through a zext on one store and a sext on another store and arbitrarily pick one of the extends as the final source. With this patch we only look through one level of extend or truncate. And we don't look through extends/truncs on both SourceValue and WideVal at the same time. This may lose some optimization cases, but keeps everything we had tests for. Fixes #90936.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions