llvm-project/llvm/test
Evgeniy Stepanov 04647f5e22 MemTag: unchecked load/store optimization.
Summary:
MTE allows memory access to bypass tag check iff the address argument
is [SP, #imm]. This change takes advantage of this to demote uses of
tagged addresses to regular FrameIndex operands, reducing register
pressure in large functions.

MO_TAGGED target flag is used to signal that the FrameIndex operand
refers to memory that might be tagged, and needs to be handled with
care. Such operand must be lowered to [SP, #imm] directly, without a
scratch register.

The transformation pass attempts to predict when the offset will be
out of range and disable the optimization.
AArch64RegisterInfo::eliminateFrameIndex has an escape hatch in case
this prediction has been wrong, but it is quite inefficient and should
be avoided.

Reviewers: pcc, vitalybuka, ostannard

Subscribers: mgorny, javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66457

llvm-svn: 370490
2019-08-30 17:23:02 +00:00
..
Analysis [CostModel] Model all `extractvalue`s as free. 2019-08-29 11:50:30 +00:00
Assembler Debug Info: Support for DW_AT_export_symbols for anonymous structs 2019-08-23 17:19:21 +00:00
Bindings Revert "Expose TailCallKind via the LLVM C API" 2019-08-15 03:49:51 +00:00
Bitcode [BitcodeReader] Check if we can create a null constant for type. 2019-08-21 18:20:11 +00:00
BugPoint
CodeGen MemTag: unchecked load/store optimization. 2019-08-30 17:23:02 +00:00
DebugInfo [LiveDebugValues] Insert entry values after bundles 2019-08-30 09:06:50 +00:00
Demangle
Examples
ExecutionEngine [JITLink] Don't under-align zero-fill sections. 2019-08-27 15:22:23 +00:00
Feature [FPEnv] Add fptosi and fptoui constrained intrinsics. 2019-08-28 16:33:36 +00:00
FileCheck [FileCheck] Move -dump-input diagnostic to first line 2019-08-14 02:56:09 +00:00
Instrumentation [ASan] Version mismatch check follow-up 2019-08-29 20:20:05 +00:00
Integer
JitListener
LTO Revert r370105 - Update two x86 datalayouts for r370083, looks like racing commits 2019-08-28 01:55:06 +00:00
Linker IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
MC [WebAssembly] Make __attribute__((used)) not imply export. 2019-08-29 22:40:00 +00:00
MachineVerifier Remove unnecessary REQUIRES from a test. 2019-08-24 02:39:51 +00:00
Object [llvm-readobj/llvm-readelf] - Report a proper warning when dumping a broken dynamic relocation. 2019-08-29 10:55:57 +00:00
ObjectYAML [ObjectYAML] Fix lifetime issue in dumpDebugLines 2019-08-29 02:36:48 +00:00
Other Revert enabling MemorySSA. 2019-08-29 19:01:23 +00:00
Reduce [Bugpoint redesign] Added Pass to Remove Global Variables 2019-08-15 22:54:09 +00:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen GlobalISel/TableGen: Handle setcc patterns 2019-08-29 01:13:41 +00:00
ThinLTO/X86 Revert r370105 - Update two x86 datalayouts for r370083, looks like racing commits 2019-08-28 01:55:06 +00:00
Transforms [Attributor] Use existing function information for the call site 2019-08-30 15:24:52 +00:00
Unit
Verifier [IntrinsicEmitter] Support scalable vectors in intrinsics 2019-08-27 12:57:09 +00:00
YAMLParser
tools [yaml2obj][obj2yaml] - Use a single "Other" field instead of "Other", "Visibility" and "StOther". 2019-08-30 13:39:22 +00:00
.clang-format
CMakeLists.txt Added Delta IR Reduction Tool 2019-08-08 22:16:33 +00:00
TestRunner.sh
lit.cfg.py
lit.site.cfg.py.in