llvm-project/llvm/lib
Reid Kleckner f5d935c167 [WinCFG] Handle constant casts carefully in .gfids emission
Summary:
The general Function::hasAddressTaken has two issues that make it
inappropriate for our purposes:
1. it is sensitive to dead constant users (PR43858 / crbug.com/1019970),
   leading to different codegen when debu info is enabled
2. it considers direct calls via a function cast to be address escapes

The first is fixable, but the second is not, because IPO clients rely on
this behavior. They assume this function means that all call sites are
analyzable for IPO purposes.

So, implement our own analysis, which gets closer to finding functions
that may be indirect call targets.

Reviewers: ajpaverd, efriedma, hans

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69676
2019-11-01 13:32:03 -07:00
..
Analysis [PGO][PGSO] TargetLowering/TargetTransformationInfo/SwitchLoweringUtils part. 2019-10-31 13:22:56 -07:00
AsmParser [IR] Allow fast math flags on calls with floating point array type. 2019-10-30 14:00:33 +00:00
BinaryFormat [DWARF5] Added support for deleted C++ special member functions. 2019-10-29 13:44:06 -07:00
Bitcode [IR] Allow fast math flags on calls with floating point array type. 2019-10-30 14:00:33 +00:00
Bitstream [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
CodeGen [WinCFG] Handle constant casts carefully in .gfids emission 2019-11-01 13:32:03 -07:00
DebugInfo Fix -Wsign-compare warning with clang-cl 2019-10-30 15:20:43 -07:00
Demangle [Demangle] Add a few more options to the microsoft demangler 2019-10-15 08:29:56 +00:00
ExecutionEngine [JITLink] Move block ownership from LinkGraph to Section. 2019-10-30 17:57:03 -07:00
FuzzMutate [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Fuzzer
IR [LegacyPM] Fix pass structure dumping 2019-11-01 14:43:51 +03:00
IRReader
LTO Fix compilation warning on the trailing whitespace. NFC. 2019-10-24 09:55:06 -04:00
LineEditor [CMake] Delete redundant DEPENDS/LINK_LIBS from LineEditor/XRay 2019-06-22 01:50:21 +00:00
Linker [Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned) 2019-10-15 11:24:36 +00:00
MC [PowerPC][AIX] Adds support for writing the data section in object files 2019-10-30 18:44:35 +00:00
MCA [MCA] Fix a spelling mistake in a comment. NFC 2019-10-27 10:06:22 +00:00
Object [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
ObjectYAML minidump: Add an "arm64" constant 2019-10-31 11:20:46 +01:00
Option [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Passes PM: silence `-Wpessimizing-move` from GCC 9.2.1 (NFC) 2019-10-27 18:33:09 -04:00
ProfileData [profile] Add a mode to continuously sync counter updates to a file 2019-10-31 16:04:09 -07:00
Remarks [Remarks] Add support for linking remarks 2019-10-31 15:26:55 -07:00
Support [Support] Use /proc/self/exe for GNU Hurd 2019-11-01 17:27:27 +00:00
TableGen Add Record::getValueAsOptionalDef(). 2019-10-25 16:39:21 -07:00
Target [X86] Change the behavior of canWidenShuffleElements used by lowerV2X128Shuffle to match the behavior in lowerVectorShuffle with regards to zeroable elements. 2019-11-01 13:06:03 -07:00
Testing
TextAPI Reland "[TextAPI] Introduce TBDv4" 2019-10-10 04:24:44 +00:00
ToolDrivers [llvm-lib] Detect duplicate input files 2019-10-02 06:41:52 +00:00
Transforms Revert "[LLD][ThinLTO] Handle GUID collision in import global processing" 2019-11-01 10:02:58 -07:00
WindowsManifest Fight a bit against global initializers. NFC. 2019-08-22 19:43:27 +00:00
XRay [XRay] Silence static analyzer dyn_cast<BufferExtents> null dereference warning. NFCI. 2019-09-22 18:47:00 +00:00
CMakeLists.txt Fix build errors LLVM tests are disabled. 2019-07-11 22:08:35 +00:00
LLVMBuild.txt [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00