1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/test
Lucas Prates 8fcafdf787 [CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder
SelectionDAGBuilder was inconsistently mangling values based on ABI
Calling Conventions when getting them through copyFromRegs in
SelectionDAGBuilder, causing duplicate value type convertions for
function arguments. The checking for the mangling requirement was based
on the value's originating instruction and was performed outside of, and
inspite of, the regular Calling Convention Lowering.

The issue could be observed in a scenario such as:

```
%arg1 = load half, half* %const, align 2
%arg2 = call fastcc half @someFunc()
call fastcc void @otherFunc(half %arg1, half %arg2)
; Here, %arg2 was incorrectly mangled twice, as the CallConv data from
; the call to @someFunc() was taken into consideration for the check
; when getting the value for processing the call to @otherFunc(...),
; after the proper convertion had taken place when lowering the return
; value of the first call.
```

This patch fixes the issue by disregarding the Calling Convention
information for such copyFromRegs, making sure the ABI mangling is
properly contanined in the Calling Convention Lowering.

This fixes Bugzilla #47454.

Reviewed By: efriedma

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

(cherry picked from commit 53d238a961d14eae46f6f2b296ce48026c7bd0a1)
2020-09-22 11:45:22 +02:00
..
Analysis [BasicAA] Fix -basicaa-recphi for geps with negative offsets 2020-07-27 17:02:13 +02:00
Assembler
Bindings
Bitcode Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-07-14 12:16:57 -07:00
BugPoint
CodeGen [CodeGen] Fixing inconsistent ABI mangling of vlaues in SelectionDAGBuilder 2020-09-22 11:45:22 +02:00
DebugInfo Revert "RegAllocFast: Record internal state based on register units" 2020-09-15 19:12:48 +02:00
Demangle
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation [MSAN] Implement experimental vector reduction intrinsics 2020-07-14 00:12:10 +00:00
Integer
JitListener
Linker
LTO
MachineVerifier
MC [MC][SVE] Fix data operand for instruction alias of st1d. 2020-08-26 20:12:13 +00:00
Object [yaml2obj] - Rename FileHeader::SH* fields. 2020-07-15 12:47:31 +03:00
ObjectYAML
Other Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-07-14 12:16:57 -07:00
Reduce
SafepointIRVerifier
Support
SymbolRewriter
TableGen [flang][openacc] OpenACC 3.0 parser 2020-07-14 14:29:40 -04:00
ThinLTO/X86 Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-07-14 12:16:57 -07:00
tools [llvm-rc] Allow string table values split into multiple string literals 2020-08-05 19:59:38 +02:00
Transforms Fix incorrect SimplifyWithOpReplaced transform (PR47322) 2020-09-15 10:21:08 +02:00
Unit
Verifier Temporarily Revert "[AssumeBundles] Use operand bundles to encode alignment assumptions" 2020-07-17 10:32:03 +02:00
YAMLParser
.clang-format
CMakeLists.txt Revert "[CMake] Simplify CMake handling for zlib" 2020-07-14 19:56:10 -07:00
lit.cfg.py
lit.site.cfg.py.in Revert "[CMake] Simplify CMake handling for zlib" 2020-07-14 19:56:10 -07:00
TestRunner.sh