llvm-project/llvm/test
Craig Topper 52cac4b79f [X86] Remove CustomInserter pseudos for MONITOR/MONITORX/CLZERO. Use custom instruction selection instead.
This custom inserter existed so we could do a weird thing where we pretended that the instructions support
a full address mode instead of taking a pointer in EAX/RAX. I think was largely so we could be pointer
size agnostic in the isel pattern.

To make this work we would then put the address into an LEA into EAX/RAX in front of the instruction after
isel. But the LEA is overkill when we just have a base pointer. So we end up using the LEA as a slower MOV
instruction.

With this change we now just do custom selection during isel instead and just assign the incoming address
of the intrinsic into EAX/RAX based on its size. After the intrinsic is selected, we can let isel take
care of selecting an LEA or other operation to do any address computation needed in this basic block.

I've also split the instruction into a 32-bit mode version and a 64-bit mode version so the implicit
use is properly sized based on the pointer. Without this we get comments in the assembly output about
killing eax and defing rax or vice versa depending on whether we define the instruction to use EAX/RAX.

llvm-svn: 357652
2019-04-03 23:28:30 +00:00
..
Analysis [SCEV] Check the cache in get{S|U}MaxExpr before doing any work 2019-03-29 22:00:12 +00:00
Assembler IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
Bindings [Go / ASAN] Disable Go bindings for ASAN tests. 2019-03-08 22:34:33 +00:00
Bitcode [DebugInfoMetadata] Move main subprogram DIFlag into DISPFlags 2019-03-19 13:49:03 +00:00
BugPoint
CodeGen [X86] Remove CustomInserter pseudos for MONITOR/MONITORX/CLZERO. Use custom instruction selection instead. 2019-04-03 23:28:30 +00:00
DebugInfo [DWARF] check whether the DIE is valid before querying for information 2019-04-03 17:13:45 +00:00
Demangle llvm-undname: Fix a crash-on-invalid 2019-04-03 23:27:18 +00:00
Examples
ExecutionEngine [yaml2obj]Allow explicit symbol indexes in relocations and emit error for bad names 2019-03-12 17:00:25 +00:00
Feature
FileCheck [FileCheck]Remove assertions that prevent matching an empty string at file start before CHECK-NEXT/SAME 2019-03-12 15:37:34 +00:00
Instrumentation [asan] Add options -asan-detect-invalid-pointer-cmp and -asan-detect-invalid-pointer-sub options. 2019-03-28 10:51:24 +00:00
Integer
JitListener
LTO [Linker] Fix crash handling appending linkage 2019-03-20 19:20:07 +00:00
Linker
MC [AArch64] Update v8.5a MTE LDG/STG instructions 2019-04-03 14:12:13 +00:00
MachineVerifier [AMDGPU] Add support for immediate operand for S_ENDPGM 2019-03-12 09:52:58 +00:00
Object [yaml2obj][obj2yaml] - Change how symbol's binding is descibed when parsing/dumping. 2019-04-03 14:53:42 +00:00
ObjectYAML [WebAssembly] Target features section 2019-03-20 20:26:45 +00:00
Other [NewPM] Fix a nasty bug with analysis invalidation in the new PM. 2019-03-28 00:51:36 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [TableGen] Let list elements have a trailing comma 2019-03-26 11:16:01 +00:00
ThinLTO/X86 Commit accidentally omitted test case. 2019-04-01 16:29:40 +00:00
Transforms [ProfileSummary] Count callsite samples when computing total samples. 2019-04-03 19:54:43 +00:00
Unit
Verifier Remove immarg from llvm.expect 2019-03-17 23:16:18 +00:00
YAMLParser
tools [dwarfdump] Remove bogus verifier error 2019-04-03 19:57:13 +00:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py Fix llvm-rc tests. 2019-03-27 20:15:08 +00:00
lit.site.cfg.py.in