1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib
Ayke van Laethem 172706e7f2 [CaptureTracking] Don't let comparisons against null escape inbounds pointers
Pointers that are in-bounds (either through dereferenceable_or_null or
thorough a getelementptr inbounds) cannot be captured with a comparison
against null. There is no way to construct a pointer that is still in
bounds but also NULL.

This helps safe languages that insert null checks before load/store
instructions. Without this patch, almost all pointers would be
considered captured even for simple loads. With this patch, an icmp with
null will not be seen as escaping as long as certain conditions are met.

There was a lot of discussion about this patch. See the Phabricator
thread for detals.

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

llvm-svn: 362900
2019-06-09 10:20:33 +00:00
..
Analysis [CaptureTracking] Don't let comparisons against null escape inbounds pointers 2019-06-09 10:20:33 +00:00
AsmParser Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
BinaryFormat
Bitcode IR: make getParamByValType Just Work. NFC. 2019-06-05 20:37:47 +00:00
CodeGen Use for-range loop. NFCI. 2019-06-09 09:07:30 +00:00
DebugInfo Extend the DWARFExpression address handling to support 16-bit addresses 2019-06-01 09:18:26 +00:00
Demangle llvm-undname: Correctly demangle vararg parameters 2019-06-04 19:10:08 +00:00
ExecutionEngine [ORC] Update symbol lookup to use a single callback with a required symbol state 2019-06-07 19:33:51 +00:00
Fuzzer
FuzzMutate
IR IR: make getParamByValType Just Work. NFC. 2019-06-05 20:37:47 +00:00
IRReader
LineEditor
Linker Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
LTO [Attributor] Pass infrastructure and fixpoint framework 2019-06-05 03:02:24 +00:00
MC [MC][ELF] Don't create relocations with section symbols for STB_LOCAL ifunc 2019-06-07 03:47:22 +00:00
MCA [MCA][Scheduler] Change how memory instructions are dispatched to the pending set. NFCI 2019-06-01 15:22:37 +00:00
Object [MACHO] Replaced calls to getStruct with getStructOrErr in functions returning Error or Expected or similar 2019-06-04 16:55:30 +00:00
ObjectYAML [llvm-objdump/llvm-readobj/obj2yaml/yaml2obj] Support DT_PPC_GOT and DT_PPC_OPT 2019-06-05 01:36:48 +00:00
Option Option spell checking: Penalize delimiter flags if input has no argument 2019-05-01 16:45:15 +00:00
Passes [Attributor] Pass infrastructure and fixpoint framework 2019-06-05 03:02:24 +00:00
ProfileData Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef> 2019-05-16 13:24:04 +00:00
Remarks [Remarks] Fix usage of enum class 2019-05-30 22:01:56 +00:00
Support [APFloat] APFloat::Storage::Storage - refix use after move 2019-06-07 19:51:22 +00:00
TableGen TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
Target [X86] NFCI : Comment updation for EVEX to VEX translation. 2019-06-09 09:59:26 +00:00
Testing [Testing] Move clangd::Annotations to llvm testing support 2019-04-25 10:08:31 +00:00
TextAPI [TextAPI] Fix Symbol::dump which was failing to append the SymbolKind string. 2019-04-29 18:25:04 +00:00
ToolDrivers llvm-lib: Disallow mixing object files with different machine types 2019-06-07 13:24:34 +00:00
Transforms [GVN] non-functional code movement 2019-06-07 23:08:38 +00:00
WindowsManifest
XRay Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef> 2019-05-16 13:24:04 +00:00
CMakeLists.txt
LLVMBuild.txt