LowerBitSets: Extend pass to support functions as bitset members.
authorPeter Collingbourne <peter@pcc.me.uk>
Tue, 8 Sep 2015 21:57:45 +0000 (21:57 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Tue, 8 Sep 2015 21:57:45 +0000 (21:57 +0000)
commitad699c862c133e32816766822b358ec88354b148
tree068f01e6afb47343f519ef78a21fed20660573a6
parent9e01a11e67c86e12d6a689c7b801952c21d587cc
LowerBitSets: Extend pass to support functions as bitset members.

This change extends the bitset lowering pass to support bitsets that may
contain either functions or global variables. A function bitset is lowered to
a jump table that is laid out before one of the functions in the bitset.

Also add support for non-string bitset identifier names. This allows for
distinct metadata nodes to stand in for names with internal linkage,
as done in D11857.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247080 91177308-0d34-0410-b5e6-96231b3b80d8
docs/BitSets.rst
docs/LangRef.rst
include/llvm/Transforms/IPO/LowerBitSets.h
lib/Transforms/IPO/LowerBitSets.cpp
test/Transforms/LowerBitSets/function-ext.ll [new file with mode: 0644]
test/Transforms/LowerBitSets/function.ll [new file with mode: 0644]
test/Transforms/LowerBitSets/nonstring.ll [new file with mode: 0644]
test/Transforms/LowerBitSets/simple.ll