Go to file
David Green e6f313b380 [Codegen] Alter the default promotion for saturating adds and subs
The default promotion for the add_sat/sub_sat nodes currently does:
    ANY_EXTEND iN to iM
    SHL by M-N
    [US][ADD|SUB]SAT
    L/ASHR by M-N

If the promoted add_sat or sub_sat node is not legal, this can produce code
that effectively does a lot of shifting (and requiring large constants to be
materialised) just to use the overflow flag. It is simpler to just do the
saturation manually, using the higher bitwidth addition and a min/max against
the saturating bounds. That is what this patch attempts to do.

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

llvm-svn: 375211
2019-10-18 09:47:48 +00:00
clang [WebAssembly] -pthread implies -target-feature +sign-ext 2019-10-18 04:34:26 +00:00
clang-tools-extra [clangd] Use our own relation kind. 2019-10-17 14:08:28 +00:00
compiler-rt libhwasan initialisation include kernel syscall ABI relaxation 2019-10-17 20:32:54 +00:00
debuginfo-tests Make nrvo-string test more robust. 2019-06-27 20:38:37 +00:00
libc [libc] Do not add unittests if LLVM_INCLUDE_TESTS is OFF. 2019-10-15 17:42:28 +00:00
libclc travis: Add LLVM 9 build 2019-09-27 05:58:15 +00:00
libcxx [libc++][test] Use <version> to get config on MSVC 2019-10-15 00:22:38 +00:00
libcxxabi [libc++abi] Introduce a LIBCXXABI_LIBRARY_VERSION option 2019-10-07 19:22:04 +00:00
libunwind [libunwind][Android] Improve workaround for PIE zero-dlpi_addr bug 2019-10-16 02:38:47 +00:00
lld Update release notes 2019-10-18 06:11:16 +00:00
lldb [lldb][NFC] Fix typo in DWARFASTParserClang.cpp 2019-10-17 23:11:32 +00:00
llgo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
llvm [Codegen] Alter the default promotion for saturating adds and subs 2019-10-18 09:47:48 +00:00
openmp [libomptarget][nfc] Make interface.h target independent 2019-10-15 17:15:26 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly [ScopBuilder] Fix bug 38358 by preserving correct order of ScopStmts. 2019-10-17 23:55:35 +00:00
pstl [pstl] Allow customizing whether per-TU insulation is provided 2019-08-13 12:49:00 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
.git-blame-ignore-revs Add LLDB reformatting to .git-blame-ignore-revs 2019-09-04 09:31:55 +00:00
.gitignore Add a newline at the end of the file 2019-09-04 06:33:46 +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.