[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)
commit6606ad944bb4e88fc41dca522c02f8f8d54aab2d
tree34dfc5039fb5f259fcb4ecbe9d9628b791c3a3a2
parent5e2e6f28554c323018ad1ad6de952b38369fe42d
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230415 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Bitcode/LLVMBitCodes.h
include/llvm/IR/Instructions.h
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
test/Bitcode/function-encoding-rel-operands.ll
tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp