llvm-project/llvm/test
Craig Topper 3980d1ca6b [X86] Disable argument copy elision for arguments passed via pointers
Summary:
If you pass two 1024 bit vectors in IR with AVX2 on Windows 64. Both vectors will be split in four 256 bit pieces. The four pieces of the first argument will be passed indirectly using 4 gprs. The second argument will get passed via pointers in memory.

The PartOffsets stored for the second argument are all in terms of its original 1024 bit size. So the PartOffsets for each piece are 32 bytes apart. So if we consider it for copy elision we'll only load an 8 byte pointer, but we'll move the address 32 bytes. The stack object size we create for the first part is probably wrong too.

This issue was encountered by ISPC. I'm working on getting a reduce test case, but wanted to go ahead and get feedback on the fix.

Reviewers: rnk

Reviewed By: rnk

Subscribers: dbabokin, llvm-commits, hiraditya

Tags: #llvm

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

llvm-svn: 358817
2019-04-20 15:26:44 +00:00
..
Analysis [PowerPC] Add some PPC vec cost tests to prep for D60160 NFC 2019-04-18 18:12:09 +00:00
Assembler Add LLVM IR debug info support for Fortran COMMON blocks 2019-04-08 19:13:55 +00:00
Bindings
Bitcode [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
BugPoint
CodeGen [X86] Disable argument copy elision for arguments passed via pointers 2019-04-20 15:26:44 +00:00
DebugInfo [GVN+LICM] Use line 0 locations for better crash attribution 2019-04-19 22:36:40 +00:00
Demangle llvm-undname: Fix two more asserts-on-invalid, found by oss-fuzz 2019-04-18 19:52:32 +00:00
Examples
ExecutionEngine Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util. 2019-04-12 18:07:28 +00:00
Feature
FileCheck
Instrumentation Asan use-after-scope: don't poison allocas if there were untraced lifetime intrinsics in the function (PR41481) 2019-04-16 07:54:20 +00:00
Integer
JitListener
LTO Revert [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-08 18:53:21 +00:00
Linker
MC [llvm] Prevent duplicate files in debug line header in dwarf 5: another attempt 2019-04-19 02:26:56 +00:00
MachineVerifier [X86] Merge the different Jcc instructions for each condition code into single instructions that store the condition code as an operand. 2019-04-05 19:28:09 +00:00
Object [WebAssembly] Object: Improve error messages on invalid section 2019-04-20 00:11:46 +00:00
ObjectYAML [WebAssembly] Target features section 2019-03-20 20:26:45 +00:00
Other [PGO] Profile guided code size optimization. 2019-04-15 16:49:00 +00:00
SafepointIRVerifier
Support [CommandLineParser] Add DefaultOption flag 2019-04-15 17:18:10 +00:00
SymbolRewriter
TableGen [TableGen] Include schedule model name in diagnostic. 2019-04-15 10:06:26 +00:00
ThinLTO/X86 [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
Transforms [CorrelatedValuePropagation] Mark subs that we know not to wrap with nuw/nsw. 2019-04-20 13:14:18 +00:00
Unit
Verifier [SystemZ] Add missing intrinsics to intrinsics-immarg.ll 2019-04-16 14:35:18 +00:00
YAMLParser
tools Change \r\n -> \n for llvm-symbolizer/help.test after rL358749 2019-04-19 12:28:36 +00:00
.clang-format
CMakeLists.txt [llvm-symbolizer] Add llvm-addr2line 2019-04-19 10:17:52 +00:00
TestRunner.sh
lit.cfg.py Fix llvm-rc tests. 2019-03-27 20:15:08 +00:00
lit.site.cfg.py.in