Go to file
Alexander Potapenko 1b5e38a6c9 [CodeGen]: don't treat structures returned in registers as memory inputs
Summary:
The "=r" output constraint for a structure variable passed to inline asm
shouldn't be converted to "=*r", as this changes the asm directive
semantics and prevents DSE optimizations.
Instead, preserve the constraints and return such structures as integers
of corresponding size, which are converted back to structures when
storing the result.

Fixes PR42672.

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 370335
2019-08-29 11:21:41 +00:00
clang [CodeGen]: don't treat structures returned in registers as memory inputs 2019-08-29 11:21:41 +00:00
clang-tools-extra [clangd] Update themeRuleMatcher when color theme changes in vscode extension. 2019-08-29 08:40:17 +00:00
compiler-rt [sanitizer] Support monorepo layout in symbolizer build script 2019-08-29 02:02:03 +00:00
debuginfo-tests Make nrvo-string test more robust. 2019-06-27 20:38:37 +00:00
libclc Revert "Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC" 2019-08-05 17:23:23 +00:00
libcxx [libc++] Fix visibility of __vector_base_common on GCC 2019-08-28 18:10:39 +00:00
libcxxabi Provide a meaningful diagnostic when LLVM_PATH doesn't point to a directory 2019-08-19 23:51:26 +00:00
libunwind [runtimes] Don't depend on libpthread on Android 2019-07-22 20:41:03 +00:00
lld lld: Make a test not fail if "repro" is part of the build directory name 2019-08-28 14:33:35 +00:00
lldb [lldb][NFC] Try fixing TestCompletion.py on Windows 2019-08-29 09:57:02 +00:00
llgo
llvm [DebugInfo] LiveDebugValues: correctly discriminate kinds of variable locations 2019-08-29 11:20:54 +00:00
openmp Use target_impl functions to replace more inline asm 2019-08-28 15:04:06 +00:00
parallel-libs
polly [ScopBuilder] Simplify main statement flag in buildEqivClassBlockStmts. NFC. 2019-08-26 21:31:47 +00:00
pstl [pstl] Allow customizing whether per-TU insulation is provided 2019-08-13 12:49:00 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore Change /build to /build* in top-level .gitignore. 2019-08-02 02:14:08 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.