Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"
authorVedant Kumar <vsk@apple.com>
Sat, 19 Dec 2015 08:52:49 +0000 (08:52 +0000)
committerVedant Kumar <vsk@apple.com>
Sat, 19 Dec 2015 08:52:49 +0000 (08:52 +0000)
commitef112d46b98642b59c657f1560f7e1c21b13a0da
treef929d6c04f77fecadf40f7f39f76de330fcbad21
parentd3d7d026d3fdf198e8970a522aec11e5e2a5d683
Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"

Make personality functions, prefix data, and prologue data hungoff
operands of Function.

This is based on the email thread "[RFC] Clean up the way we store
optional Function data" on llvm-dev.

Thanks to sanjoyd, majnemer, rnk, loladiro, and dexonsmith for feedback!

Includes a fix to scrub value subclass data in dropAllReferences. Does not
use binary literals.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256095 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Function.h
include/llvm/IR/User.h
lib/Bitcode/Writer/ValueEnumerator.cpp
lib/IR/AsmWriter.cpp
lib/IR/Function.cpp
lib/IR/LLVMContextImpl.h
lib/IR/TypeFinder.cpp
lib/Transforms/IPO/GlobalDCE.cpp