forked from OSchip/llvm-project
2bfe759a8d
Summary: Large GEP splitting, introduced in rL332015, uses a `DenseMap<AssertingVH<Value>, ...>`. This causes an assertion to fail (in debug builds) or undefined behaviour to occur (in release builds) when a value is RAUWed. This manifested itself in the 7zip benchmark from the llvm test suite built on ARM with `-fstrict-vtable-pointers` enabled while RAUWing invariant group launders and splits in CodeGenPrepare. This patch merges the large offsets of the argument and the result of an invariant.group strip/launder intrinsic before RAUWing. Reviewers: Prazek, javed.absar, haicheng, efriedma Reviewed By: Prazek, efriedma Subscribers: kristof.beyls, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D51936 llvm-svn: 344802 |
||
---|---|---|
.. | ||
AArch64 | ||
AMDGPU | ||
ARM | ||
Mips | ||
NVPTX | ||
X86 | ||
2008-11-24-RAUW-Self.ll | ||
basic.ll | ||
bitreverse-hang.ll | ||
builtin-condition.ll | ||
crash-on-large-allocas.ll | ||
dom-tree.ll | ||
gep-unmerging.ll | ||
invariant.group.ll | ||
nonintegral.ll | ||
overflow-intrinsics.ll | ||
section-samplepgo.ll | ||
section.ll | ||
sink-shift-and-trunc.ll | ||
skip-merging-case-block.ll | ||
split-indirect-loop.ll | ||
statepoint-relocate.ll |