[opaque pointer type] Bitcode support for explicit type parameter on GEP.
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 25 Feb 2015 01:08:52 +0000 (01:08 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 25 Feb 2015 01:08:52 +0000 (01:08 +0000)
commitb5b5efd2d19839d2810ce4404d7ed717da2beecb
treeac082d9d178e8ebd670118eb851e4f33f79264e6
parent8503565eecfa630f8ee65266efc4a82e796ebc64
[opaque pointer type] Bitcode support for explicit type parameter on GEP.

Like r230414, add bitcode support including backwards compatibility, for
an explicit type parameter to GEP.

At the suggestion of Duncan I tried coalescing the two older bitcodes into a
single new bitcode, though I did hit a wrinkle: I couldn't figure out how to
create an explicit abbreviation for a record with a variable number of
arguments (the indicies to the gep). This means the discriminator between
inbounds and non-inbounds gep is a full variable-length field I believe? Is my
understanding correct? Is there a way to create such an abbreviation? Should I
just use two bitcodes as before?

Reviewers: dexonsmith

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

llvm-svn: 230415
llvm/include/llvm/Bitcode/LLVMBitCodes.h
llvm/include/llvm/IR/Instructions.h
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/test/Bitcode/function-encoding-rel-operands.ll
llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp