Go to file
Pablo Barrio 2b4385846c Fix function pointer tail calls in armv8-M.base
Summary:
The compiler fails with the following error message:

fatal error: error in backend: ran out of registers during
register allocation

Tail call optimization for Armv8-M.base fails to meet all the required
constraints when handling calls to function pointers where the
arguments take up r0-r3. This is because the pointer to the
function to be called can only be stored in r0-r3, but these are
all occupied by arguments. This patch makes sure that tail call
optimization does not try to handle this type of calls.

Reviewers: chill, MatzeB, olista01, rengolin, efriedma

Reviewed By: olista01, efriedma

Subscribers: efriedma, aemerson, javed.absar, llvm-commits, kristof.beyls

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

llvm-svn: 319664
2017-12-04 16:55:49 +00:00
clang [OPENMP] Codegen for `distribute simd` directive. 2017-12-04 15:38:33 +00:00
clang-tools-extra [clangd] Split CodeComplete into a separate file. NFC 2017-12-04 13:49:59 +00:00
compiler-rt Move __tsan::Vector to __sanitizer 2017-12-04 12:30:09 +00:00
debuginfo-tests Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
libclc configure.py: Add gfx900 (Vega, Raven) 2017-11-27 11:14:06 +00:00
libcxx Corrected a typo in the building libc++ docs 2017-12-03 10:18:35 +00:00
libcxxabi [libc++abi] Add install-cxxabi-stripped target 2017-11-30 23:25:51 +00:00
libunwind [libunwind] Switch to add_llvm_install_targets 2017-11-30 23:24:08 +00:00
lld [ELF] Add BYTE expression to test case for non-contiguous relro [NFC] 2017-12-04 10:34:15 +00:00
lldb Makefile.rules: compile all tests with -fno-limit-debug-info 2017-12-04 13:31:56 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm Fix function pointer tail calls in armv8-M.base 2017-12-04 16:55:49 +00:00
openmp [CMake] Detect information about test compiler 2017-11-30 17:08:31 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [NFC] In GPGPU testcases, replace numeric registers in CHECK directives. 2017-12-01 14:16:39 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

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