llvm-project/llvm/test
David Green 1de1070559 [DAGCombine] Fix alias analysis for unaligned accesses
The alias analysis in DAG Combine looks at the BaseAlign, the Offset and
the Size of two accesses, and determines if they are known to access
different parts of memory by the fact that they are different offsets
from inside that "alignment window". It does not seem to account for
accesses that are not a multiple of the size, and may overflow from one
alignment window into another.

For example in the test case we have a 19byte memset that is splits into
a 16 byte neon store and an unaligned 4 byte store with a 15 byte
offset. This 15byte offset (with a base align of 8) wraps around to the
next alignment windows. When compared to an access that is a 16byte
offset (of the same 4byte size and 8byte basealign), the two accesses
are said not to alias.

I've fixed this here by just ensuring that the offsets are a multiple of
the size, ensuring that they don't overlap by wrapping. Fixes PR45035,
which was exposed by the UseAA changes in the arm backend.

Differential Revision: https://reviews.llvm.org/D75238
2020-02-28 18:44:36 +00:00
..
Analysis [CostModel][X86] Improve extract/insert element costs (PR43605) 2020-02-27 15:54:13 +00:00
Assembler [Assembler] Allow assembling empty index with non-zero flags 2020-02-26 16:34:11 +03:00
Bindings Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
Bitcode Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
BugPoint
CodeGen [DAGCombine] Fix alias analysis for unaligned accesses 2020-02-28 18:44:36 +00:00
DebugInfo [NFC] [Test commit] Testing commit access with new email 2020-02-28 12:01:52 +01:00
Demangle
Examples
ExecutionEngine Disable memory leak checking in a test to work around a bot failure 2020-02-26 14:51:50 -08:00
Feature Remove no un-necessary require for load_extension.ll 2020-02-26 08:29:09 +01:00
FileCheck
Instrumentation Reapply [IRBuilder] Always respect inserter/folder 2020-02-19 20:51:38 +01:00
Integer
JitListener
LTO Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
Linker Remove lit feature object-emission 2020-02-10 15:57:56 -06:00
MC [MC][ELF][ARM] Add relocations for some pc-relative fixups 2020-02-28 11:29:29 +00:00
MachineVerifier Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
Object Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
ObjectYAML
Other Use temporary directory for tests in D74346 2020-02-24 12:19:07 +01:00
Reduce
SafepointIRVerifier
Support
SymbolRewriter
TableGen TableGen: Fix logic for default operands 2020-02-19 23:41:07 -05:00
ThinLTO/X86 Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-02-11 10:48:05 -08:00
Transforms [VectorCombine] Fix assert on compare extract index 2020-02-28 10:37:08 -08:00
Unit
Verifier Visit previously unreachable nodes in the debug info metadata verifier. 2020-02-26 14:48:08 -08:00
YAMLParser
tools [llvm-objcopy] Enable --discard-all for MachO 2020-02-26 12:51:15 -08:00
.clang-format
CMakeLists.txt Fix buildbots after recent GSYM commit. 2020-02-26 10:30:04 -08:00
TestRunner.sh
lit.cfg.py Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
lit.site.cfg.py.in