1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test
Peter Collingbourne 68aaa34960 Introduce bitset metadata format and bitset lowering pass.
This patch introduces a new mechanism that allows IR modules to co-operatively
build pointer sets corresponding to addresses within a given set of
globals. One particular use case for this is to allow a C++ program to
efficiently verify (at each call site) that a vtable pointer is in the set
of valid vtable pointers for the class or its derived classes. One way of
doing this is for a toolchain component to build, for each class, a bit set
that maps to the memory region allocated for the vtables, such that each 1
bit in the bit set maps to a valid vtable for that class, and lay out the
vtables next to each other, to minimize the total size of the bit sets.

The patch introduces a metadata format for representing pointer sets, an
'@llvm.bitset.test' intrinsic and an LTO lowering pass that lays out the globals
and builds the bitsets, and documents the new feature.

Differential Revision: http://reviews.llvm.org/D7288

llvm-svn: 230054
2015-02-20 20:30:47 +00:00
..
Analysis [LoopAccesses] Add -analyze support 2015-02-19 19:15:19 +00:00
Assembler Bitcode: Stop assuming non-null fields 2015-02-20 03:17:58 +00:00
Bindings [OCaml] Add Llvm.build_empty_phi. 2015-02-06 13:42:03 +00:00
Bitcode [Bitcode reader] Fix a few assertions when reading invalid files 2015-02-16 00:03:11 +00:00
BugPoint
CodeGen Reversed revision 229706. The reason is regression, which is caused by the 2015-02-20 20:26:52 +00:00
DebugInfo DebugInfo: Match Name and DisplayName in testcase 2015-02-19 23:48:17 +00:00
ExecutionEngine Make frem.ll flush after calling printf. 2015-02-18 19:32:28 +00:00
Feature Don't promote asynch EH invokes of nounwind functions to calls 2015-02-11 01:23:16 +00:00
FileCheck
Instrumentation [sanitizer] fix a test broken by r229940 2015-02-20 02:12:25 +00:00
Integer
JitListener
Linker Add run line that was missing in r228999. 2015-02-13 16:00:03 +00:00
LTO Introduce Target::createNullTargetStreamer and use it from IRObjectFile. 2015-02-19 00:45:02 +00:00
MC MC: Allow multiple comma-separated expressions on the .uleb128 directive. 2015-02-19 20:24:04 +00:00
Object [Object] Support reading 64-bit MIPS ELF archives 2015-02-17 18:54:22 +00:00
Other Don't promote asynch EH invokes of nounwind functions to calls 2015-02-11 01:23:16 +00:00
SymbolRewriter SymbolRewriter: allow rewriting with comdats 2015-01-27 22:57:39 +00:00
TableGen
tools [Objdump] Fixing crash when printing symbols in ELF sections with special types. 2015-02-18 23:00:22 +00:00
Transforms Introduce bitset metadata format and bitset lowering pass. 2015-02-20 20:30:47 +00:00
Unit
Verifier Verifier: Unused comdats might not have a corresponding GV 2015-02-20 19:58:48 +00:00
YAMLParser
.clang-format
CMakeLists.txt Back out two accidental changes that snuck in with r229245. Sorry these 2015-02-14 09:05:58 +00:00
lit.cfg [gold] Consolidate the gold plugin options and actually search for 2015-02-14 09:43:57 +00:00
lit.site.cfg.in [gold] Consolidate the gold plugin options and actually search for 2015-02-14 09:43:57 +00:00
Makefile [gold] Consolidate the gold plugin options and actually search for 2015-02-14 09:43:57 +00:00
Makefile.tests
TestRunner.sh