Go to file
Simon Pilgrim 3c912c4abe [DAG][X86] Convert isNegatibleForFree/GetNegatedExpression to a target hook (PR42863)
This patch converts the DAGCombine isNegatibleForFree/GetNegatedExpression into overridable TLI hooks.

The intention is to let us extend existing FNEG combines to work more generally with negatible float ops, allowing it work with target specific combines and opcodes (e.g. X86's FMA variants).

Unlike the SimplifyDemandedBits, we can't just handle target nodes through a Target callback, we need to do this as an override to allow targets to handle generic opcodes as well. This does mean that the target implementations has to duplicate some checks (recursion depth etc.).

Partial reversion of rL372756 - I've identified the infinite loop issue inside the X86 override but haven't fixed it yet so I've only (re)committed the common TargetLowering refactoring part of the patch.

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

llvm-svn: 373343
2019-10-01 15:32:04 +00:00
clang [clang] Make handling of unnamed template params similar to function params 2019-10-01 14:08:51 +00:00
clang-tools-extra [clangd] Implement getBeginning for overloaded operators. 2019-10-01 11:03:56 +00:00
compiler-rt compiler-rt: use __GLIBC_PREREQ for SANITIZER_INTERCEPT_GETRANDOM 2019-10-01 00:58:29 +00:00
debuginfo-tests Make nrvo-string test more robust. 2019-06-27 20:38:37 +00:00
libc Add a director, along with README.txt and LICENSE.txt, for libc. 2019-09-16 21:39:08 +00:00
libclc travis: Add LLVM 9 build 2019-09-27 05:58:15 +00:00
libcxx [libc++] Harden usage of static_assert against C++03 2019-10-01 12:12:21 +00:00
libcxxabi [Testing] unbreak after r372963 2019-09-26 11:32:02 +00:00
libunwind Unwind: avoid warning about unused typedef 2019-09-20 20:46:33 +00:00
lld ELF: Don't merge SHF_LINK_ORDER sections for different output sections in relocatable links. 2019-09-30 20:23:00 +00:00
lldb Update SymbolFilePDB for FindTypes API change. 2019-10-01 15:29:33 +00:00
llgo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
llvm [DAG][X86] Convert isNegatibleForFree/GetNegatedExpression to a target hook (PR42863) 2019-10-01 15:32:04 +00:00
openmp [OpenMP] FreeBSD address check if mapped more native 2019-09-28 19:01:59 +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 [Alignment][NFC] Remove AllocaInst::setAlignment(unsigned) 2019-09-30 13:34:44 +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.