1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/lib
Sanjoy Das a0e8011216 [Verifier] Add verification for TBAA metadata
Summary:
This change adds some verification in the IR verifier around struct path
TBAA metadata.

Other than some basic sanity checks (e.g. we get constant integers where
we expect constant integers), this checks:

 - That by the time an struct access tuple `(base-type, offset)` is
   "reduced" to a scalar base type, the offset is `0`.  For instance, in
   C++ you can't start from, say `("struct-a", 16)`, and end up with
   `("int", 4)` -- by the time the base type is `"int"`, the offset
   better be zero.  In particular, a variant of this invariant is needed
   for `llvm::getMostGenericTBAA` to be correct.

 - That there are no cycles in a struct path.

 - That struct type nodes have their offsets listed in an ascending
   order.

 - That when generating the struct access path, you eventually reach the
   access type listed in the tbaa tag node.

Reviewers: dexonsmith, chandlerc, reames, mehdi_amini, manmanren

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 289402
2016-12-11 20:07:15 +00:00
..
Analysis [SCEVExpander] Explicitly expand AddRec starts into loop preheader 2016-12-11 19:02:21 +00:00
AsmParser
Bitcode Fix MSVC bool to uint64_t promotion warning 2016-12-06 11:12:53 +00:00
CodeGen instr-combiner: sum up all latencies of the transformed instructions 2016-12-11 19:39:32 +00:00
DebugInfo Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
Demangle
ExecutionEngine [mips][rtdyld] Merge code to write relocated values to the section. NFC 2016-12-07 11:41:23 +00:00
Fuzzer [libFuzzer] don't depend on time in a test 2016-12-11 06:28:09 +00:00
IR [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
IRReader
LibDriver
LineEditor
Linker IR: Move NumElements field from {Array,Vector}Type to SequentialType. 2016-12-02 03:20:58 +00:00
LTO LTO: Hash the parts of the LTO configuration that affect code generation. 2016-12-08 05:28:30 +00:00
MC Add a comment consumer mechanism to MCAsmLexer 2016-12-08 10:31:21 +00:00
Object [Object][MachO] Reference-ify some helper function arguments. NFC. 2016-12-04 01:56:10 +00:00
ObjectYAML [ObjectYAML] Support for DWARF debug_aranges 2016-12-09 00:26:44 +00:00
Option
Passes [PM] Support invalidation of inner analysis managers from a pass over the outer IR unit. 2016-12-10 06:34:44 +00:00
ProfileData
Support Tweak the core loop in StringRef::find to avoid calling memcmp on every 2016-12-11 07:46:21 +00:00
TableGen [TableGen] Centralize/Unify error handling. 2016-12-05 22:58:01 +00:00
Target [X86] Regcall - Adding support for mask types 2016-12-11 14:10:52 +00:00
Transforms [X86][InstCombine] Add support for scalar FMA intrinsics to SimplifyDemandedVectorElts. 2016-12-11 08:54:52 +00:00
CMakeLists.txt
LLVMBuild.txt