OSDN Git Service

llvm-extract was unable to handle aliases. It would leave a copy on the
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 29 Oct 2012 00:27:55 +0000 (00:27 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 29 Oct 2012 00:27:55 +0000 (00:27 +0000)
commitc0916d30e09192b7023e453aaa7d2ffe026345ed
tree58b483b79894ac48d38aeeedd4da5ef997ae5533
parent3a9f4568fbb974844afacd12ab9b62e8844fd8ad
llvm-extract was unable to handle aliases. It would leave a copy on the
output of both

llvm-extract foo.ll -func=bar
and
llvm-extract foo.ll -func=bar -delete

so the two new files could not be linked together anymore. With this change
alias are handled almost like functions and global variables. Almost because
with alias we cannot just clear the initializer/body, we have to create a new
declaration and replace the alias with it.

The net result is that now the output of the above commands can be linked
even if foo.ll has aliases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166907 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/IPO/ExtractGV.cpp
test/Other/extract-alias.ll [new file with mode: 0644]