llvm-project/llvm/include/llvm
Teresa Johnson f9ca75f19b [Inliner] Inlining should honor nobuiltin attributes
Summary:
Final patch in series to fix inlining between functions with different
nobuiltin attributes/options, which was specifically an issue in LTO.
See discussion on D61634 for background.

The prior patch in this series (D67923) enabled per-Function TLI
construction that identified the nobuiltin attributes.

Here I have allowed inlining to proceed if the callee's nobuiltins are a
subset of the caller's nobuiltins, but not in the reverse case, which
should be conservatively correct. This is controlled by a new option,
-inline-caller-superset-nobuiltin, which is enabled by default.

Reviewers: hfinkel, gchatelet, chandlerc, davidxl

Subscribers: arsenm, jvesely, nhaehnle, mehdi_amini, eraman, hiraditya, haicheng, dexonsmith, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D74162
2020-02-28 07:34:14 -08:00
..
ADT [ADT] Add CoalescingBitVector, implemented using IntervalMap [1/3] 2020-02-27 12:39:46 -08:00
Analysis [Inliner] Inlining should honor nobuiltin attributes 2020-02-28 07:34:14 -08:00
AsmParser
BinaryFormat [macho][NFC] Extract all CPU_(SUB_)TYPE logic to BinaryFormat 2020-02-21 12:43:29 -08:00
Bitcode [LTO] Support for embedding bitcode section during LTO 2019-12-12 12:34:19 -08:00
Bitstream Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
CodeGen [CallSiteInfo] Handle bundles when updating call site info 2020-02-27 13:57:06 +01:00
Config build: reduce CMake handling for zlib 2020-01-02 11:19:12 -08:00
DWARFLinker [DWARFLinker][NFC] Remove usages of "const object::ObjectFile" from DWARFLinker. 2020-02-28 13:26:22 +03:00
DebugInfo [Debuginfo][NFC] Unify error reporting routines inside DebugInfoDWARF. 2020-02-27 18:32:40 +03:00
Demangle PODSmallVector - fix MSVC uninitialized variable warnings. NFCI. 2019-11-10 11:18:15 +00:00
ExecutionEngine [ORC] Remove the JITDylib::SymbolTableEntry::isInMaterializingState() method. 2020-02-25 16:44:12 -08:00
Frontend/OpenMP [OpenMP][Opt] Combine `struct ident_t*` during deduplication 2020-02-25 14:07:14 -08:00
FuzzMutate Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
IR Remove BinaryOperator::CreateFNeg 2020-02-27 09:06:03 -08:00
IRReader
LTO [Support] On Windows, ensure hardware_concurrency() extends to all CPU sockets and all NUMA groups 2020-02-14 10:24:22 -05:00
LineEditor
Linker
MC [MC][ARM] Resolve some pcrel fixups at assembly time (PR44929) 2020-02-27 12:43:29 +01:00
MCA [MCA][LSUnit] Track loads and stores until retirement. 2019-10-08 10:46:01 +00:00
Object [ARM] Change ARMAttributeParser::Parse to use support::endianness and simplify 2020-02-21 11:05:33 -08:00
ObjectYAML [yaml2obj] - Automatically assign sh_addr for allocatable sections. 2020-02-22 14:43:54 +03:00
Option Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Passes [Coroutines][5/6] Add coroutine passes to pipeline 2020-02-19 00:57:14 -05:00
ProfileData Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
Remarks [Remarks] Extend the RemarkStreamer to support other emitters 2020-02-04 17:16:02 -08:00
Support llvm-ar: Fix MinGW compilation 2020-02-28 09:59:24 +01:00
TableGen [llvm][TableGen] Define FieldInit::isConcrete overload 2020-02-10 18:04:58 -08:00
Target [Intrinsic] Add fixed point saturating division intrinsics. 2020-02-24 10:50:52 +01:00
Testing/Support [Error/unittests] Add a FailedWithMessage gtest matcher 2020-02-21 15:29:48 +01:00
TextAPI Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ToolDrivers
Transforms [Inliner] Inlining should honor nobuiltin attributes 2020-02-28 07:34:14 -08:00
WindowsManifest
WindowsResource
XRay Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
CMakeLists.txt
InitializePasses.h [VectorCombine] new IR transform pass for partial vector ops 2020-02-09 10:04:41 -05:00
LinkAllIR.h
LinkAllPasses.h [VectorCombine] new IR transform pass for partial vector ops 2020-02-09 10:04:41 -05:00
Pass.h Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
PassAnalysisSupport.h
PassInfo.h
PassRegistry.h
PassSupport.h
module.extern.modulemap
module.install.modulemap
module.modulemap Fix modules build after https://reviews.llvm.org/D73835 (IRBuilder virtualization change) 2020-02-17 11:22:44 -08:00
module.modulemap.build