Decouple dllexport/dllimport from linkage

Press ? to show keyboard shortcuts.
Committed
nrieckJan 14 2014, 7:22 AM
Parents
rL199217: AVX-512: optimized scalar compare patterns
Branches
Unknown
Tags
Unknown
Description

Decouple dllexport/dllimport from linkage

Representing dllexport/dllimport as distinct linkage types prevents using
these attributes on templates and inline functions.

Instead of introducing further mixed linkage types to include linkonce and
weak ODR, the old import/export linkage types are replaced with a new
separate visibility-like specifier:

define available_externally dllimport void @f() {}
@Var = dllexport global i32 1, align 4

Linkage for dllexported globals and functions is now equal to their linkage
without dllexport. Imported globals and functions must be either
declarations with external linkage, or definitions with
AvailableExternallyLinkage.

Changes (27)

HistoryBrowseChangePath
HistoryBrowseModifiedllvm/trunk/docs/BitCodeFormat.rst
HistoryBrowseModifiedllvm/trunk/docs/LangRef.rst
HistoryBrowseModifiedllvm/trunk/include/llvm-c/Core.h
HistoryBrowseModifiedllvm/trunk/include/llvm/IR/GlobalValue.h
HistoryBrowseModifiedllvm/trunk/lib/AsmParser/LLParser.cpp
HistoryBrowseModifiedllvm/trunk/lib/AsmParser/LLParser.h
HistoryBrowseModifiedllvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
HistoryBrowseModifiedllvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp
HistoryBrowseModifiedllvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
HistoryBrowseModifiedllvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp
HistoryBrowseModifiedllvm/trunk/lib/IR/AsmWriter.cpp
HistoryBrowseModifiedllvm/trunk/lib/IR/Core.cpp
HistoryBrowseModifiedllvm/trunk/lib/IR/Verifier.cpp
HistoryBrowseModifiedllvm/trunk/lib/Linker/LinkModules.cpp
HistoryBrowseModifiedllvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
HistoryBrowseModifiedllvm/trunk/lib/Target/X86/X86AsmPrinter.cpp
HistoryBrowseModifiedllvm/trunk/lib/Target/X86/X86FastISel.cpp
HistoryBrowseModifiedllvm/trunk/lib/Target/X86/X86ISelLowering.cpp
HistoryBrowseModifiedllvm/trunk/lib/Target/X86/X86Subtarget.cpp
HistoryBrowseModifiedllvm/trunk/lib/Target/XCore/XCoreAsmPrinter.cpp
HistoryBrowseModifiedllvm/trunk/lib/Transforms/IPO/Internalize.cpp
HistoryBrowseModifiedllvm/trunk/test/Bitcode/linkage-types-3.2.ll
HistoryBrowseDeletedllvm/trunk/test/CodeGen/X86/dll-linkage.ll
HistoryBrowseAddedllvm/trunk/test/CodeGen/X86/dllexport-x86_64.ll
HistoryBrowseModifiedllvm/trunk/test/CodeGen/X86/dllexport.ll
HistoryBrowseAddedllvm/trunk/test/CodeGen/X86/dllimport-x86_64.ll
HistoryBrowseAddedllvm/trunk/test/CodeGen/X86/dllimport.ll

rL199218

llvm/trunk/docs/BitCodeFormat.rst

Loading...

llvm/trunk/docs/LangRef.rst

Loading...

llvm/trunk/include/llvm-c/Core.h

Loading...

llvm/trunk/include/llvm/IR/GlobalValue.h

Loading...

llvm/trunk/lib/AsmParser/LLParser.cpp

Loading...

llvm/trunk/lib/AsmParser/LLParser.h

Loading...

llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp

Loading...

llvm/trunk/lib/Bitcode/Writer/BitcodeWriter.cpp

Loading...

llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

Loading...

llvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp

Loading...

llvm/trunk/lib/IR/AsmWriter.cpp

Loading...

llvm/trunk/lib/IR/Core.cpp

Loading...

llvm/trunk/lib/IR/Verifier.cpp

Loading...

llvm/trunk/lib/Linker/LinkModules.cpp

Loading...

llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp

Loading...

llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp

Loading...

llvm/trunk/lib/Target/X86/X86FastISel.cpp

Loading...

llvm/trunk/lib/Target/X86/X86ISelLowering.cpp

Loading...

llvm/trunk/lib/Target/X86/X86Subtarget.cpp

Loading...

llvm/trunk/lib/Target/XCore/XCoreAsmPrinter.cpp

Loading...

llvm/trunk/lib/Transforms/IPO/Internalize.cpp

Loading...

llvm/trunk/test/Bitcode/linkage-types-3.2.ll

Loading...

llvm/trunk/test/CodeGen/X86/dll-linkage.ll

Loading...

llvm/trunk/test/CodeGen/X86/dllexport-x86_64.ll

Loading...

llvm/trunk/test/CodeGen/X86/dllexport.ll

Loading...

llvm/trunk/test/CodeGen/X86/dllimport-x86_64.ll

Loading...

llvm/trunk/test/CodeGen/X86/dllimport.ll

Loading...

Add Comment