[PATCH] IR: Add COMDATs to the IR

David Majnemer david.majnemer at gmail.com
Tue Jun 10 13:17:54 PDT 2014


Hi rnk, rafael, nicholas,

This new IR facility allows us to represent the object-file semantic of
a COMDAT group.

COMDATs allow us to tie together sections and make the inclusion of one
dependent on another.  This is required to implement features like MS
ABI VFTables and optimizing away certain kinds of initialization in C++.

This functionality is only representable in COFF and ELF, Mach-O has no
similar mechanism.

http://reviews.llvm.org/D4094

Files:
  docs/LangRef.rst
  include/llvm-c/Core.h
  include/llvm/Bitcode/LLVMBitCodes.h
  include/llvm/IR/Comdat.h
  include/llvm/IR/Function.h
  include/llvm/IR/GlobalAlias.h
  include/llvm/IR/GlobalValue.h
  include/llvm/IR/GlobalVariable.h
  include/llvm/IR/Module.h
  include/llvm/IR/Type.h
  include/llvm/IR/Value.h
  include/llvm/IR/ValueSymbolTable.h
  lib/AsmParser/LLLexer.cpp
  lib/AsmParser/LLLexer.h
  lib/AsmParser/LLParser.cpp
  lib/AsmParser/LLParser.h
  lib/AsmParser/LLToken.h
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/Bitcode/Reader/BitcodeReader.h
  lib/Bitcode/Writer/BitcodeWriter.cpp
  lib/Bitcode/Writer/ValueEnumerator.cpp
  lib/Bitcode/Writer/ValueEnumerator.h
  lib/CodeGen/TargetLoweringObjectFileImpl.cpp
  lib/IR/AsmWriter.cpp
  lib/IR/AsmWriter.h
  lib/IR/CMakeLists.txt
  lib/IR/Comdat.cpp
  lib/IR/Core.cpp
  lib/IR/Function.cpp
  lib/IR/Globals.cpp
  lib/IR/LLVMContextImpl.cpp
  lib/IR/LLVMContextImpl.h
  lib/IR/Module.cpp
  lib/IR/Type.cpp
  lib/IR/Value.cpp
  test/Feature/comdat.ll
  test/Instrumentation/AddressSanitizer/do-not-instrument-llvm-metadata.ll
  test/MC/COFF/comdat.ll
  test/MC/ELF/comdat.ll
  test/MC/MachO/comdat.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4094.10299.patch
Type: text/x-patch
Size: 72438 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140610/6747d4a8/attachment.bin>


More information about the llvm-commits mailing list