[GCC] Attribute ifunc support in llvm
authorDmitry Polukhin <dmitry.polukhin@gmail.com>
Thu, 7 Apr 2016 12:32:19 +0000 (12:32 +0000)
committerDmitry Polukhin <dmitry.polukhin@gmail.com>
Thu, 7 Apr 2016 12:32:19 +0000 (12:32 +0000)
commita1feff7024b552b579f302fea0030aaaa14624b3
treebc5cbda70333854512705e91da81598e4368a052
parent79cb643b201bfa1acba9a1afef7395f3be3f60e6
[GCC] Attribute ifunc support in llvm

This patch add support for GCC attribute((ifunc("resolver"))) for
targets that use ELF as object file format. In general ifunc is a
special kind of function alias with type @gnu_indirect_function. Patch
for Clang http://reviews.llvm.org/D15524

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

llvm-svn: 265667
24 files changed:
llvm/docs/LangRef.rst
llvm/include/llvm-c/Core.h
llvm/include/llvm/Bitcode/LLVMBitCodes.h
llvm/include/llvm/IR/GlobalIFunc.h [new file with mode: 0644]
llvm/include/llvm/IR/GlobalIndirectSymbol.h
llvm/include/llvm/IR/GlobalValue.h
llvm/include/llvm/IR/Module.h
llvm/include/llvm/IR/SymbolTableListTraits.h
llvm/include/llvm/IR/Value.def
llvm/include/llvm/IR/Value.h
llvm/include/llvm/IR/ValueSymbolTable.h
llvm/lib/AsmParser/LLLexer.cpp
llvm/lib/AsmParser/LLParser.cpp
llvm/lib/AsmParser/LLToken.h
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/lib/IR/AsmWriter.cpp
llvm/lib/IR/Globals.cpp
llvm/lib/IR/Module.cpp
llvm/test/Assembler/ifunc-asm.ll [new file with mode: 0644]
llvm/test/Assembler/ifunc-use-list-order.ll [new file with mode: 0644]
llvm/test/Bitcode/compatibility.ll