[all-commits] [llvm/llvm-project] 7fa503: [SROA] rewritePartition()/findCommonType(): if use...
Roman Lebedev via All-commits
all-commits at lists.llvm.org
Tue Oct 6 23:21:09 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 7fa503ef4aaddc1c31dd36d970aa6609383e1718
https://github.com/llvm/llvm-project/commit/7fa503ef4aaddc1c31dd36d970aa6609383e1718
Author: Roman Lebedev <lebedev.ri at gmail.com>
Date: 2020-10-07 (Wed, 07 Oct 2020)
Changed paths:
M llvm/lib/Transforms/Scalar/SROA.cpp
M llvm/test/DebugInfo/ARM/sroa-complex.ll
M llvm/test/Transforms/SROA/ppcf128-no-fold.ll
M llvm/test/Transforms/SROA/preserve-nonnull.ll
Log Message:
-----------
[SROA] rewritePartition()/findCommonType(): if uses have conflicting type, try getTypePartition() before falling back to largest integral use type (PR47592)
And another step towards transformss not introducing inttoptr and/or
ptrtoint casts that weren't there already.
In this case, when load/store uses have conflicting types,
instead of falling back to the iN, we can try to use allocated sub-type.
As disscussed, this isn't the best idea overall (we shouldn't rely on
allocated type), but it works fine as a temporary measure.
I've measured, and @ `-O3` as of vanilla llvm test-suite + RawSpeed,
this results in +0.05% more bitcasts, -5.51% less inttoptr
and -1.05% less ptrtoint (at the end of middle-end opt pipeline)
See https://bugs.llvm.org/show_bug.cgi?id=47592
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D88788
More information about the All-commits
mailing list