aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy/ELF/Object.cpp
diff options
context:
space:
mode:
authorMatteo Favaro <fvrmatteo@gmail.com>2021-03-10 21:07:54 +0100
committerNikita Popov <nikita.ppv@gmail.com>2021-03-10 21:09:33 +0100
commit989051d5f899c22fd2b3b4bb039b2913be0a2a4a (patch)
tree08f6e7742884739b7be2c1400da450e5c75f2c13 /llvm/tools/llvm-objcopy/ELF/Object.cpp
parent98fe9e41f7a612193ee74689961050bd4dc7c61e (diff)
downloadllvm-989051d5f899c22fd2b3b4bb039b2913be0a2a4a.zip
llvm-989051d5f899c22fd2b3b4bb039b2913be0a2a4a.tar.gz
llvm-989051d5f899c22fd2b3b4bb039b2913be0a2a4a.tar.bz2
[DSE] Extending isOverwrite to support offsetted fully overlapping stores
The isOverwrite function is making sure to identify if two stores are fully overlapping and ideally we would like to identify all the instances of OW_Complete as they'll yield possibly killable stores. The current implementation is incapable of spotting instances where the earlier store is offsetted compared to the later store, but still fully overlapped. The limitation seems to lie on the computation of the base pointers with the GetPointerBaseWithConstantOffset API that often yields different base pointers even if the stores are guaranteed to partially overlap (e.g. the alias analysis is returning AliasResult::PartialAlias). The patch relies on the offsets computed and cached by BatchAAResults (available after D93529) to determine if the offsetted overlapping is OW_Complete. Differential Revision: https://reviews.llvm.org/D97676
Diffstat (limited to 'llvm/tools/llvm-objcopy/ELF/Object.cpp')
0 files changed, 0 insertions, 0 deletions