[PATCH] D41739: Debug Info: Support DW_AT_calling_convention on composite types

Adrian Prantl via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 4 13:21:56 PST 2018


aprantl created this revision.
aprantl added reviewers: echristo, probinson, dblaikie.
aprantl added a project: debug-info.
Herald added a reviewer: deadalnix.
Herald added a subscriber: JDevlieghere.

This implements the DWARF 5 feature described at
http://www.dwarfstd.org/ShowIssue.php?issue=141215.1

This allows a consumer to understand whether a composite data type is
trivially copyable and thus should be passed by value instead of by
reference. The canonical example is being able to distinguish the
following two types:

  // S is not trivially copyable because of the explicit destructor.
  struct S {
     ~S() {}
  };
  
  // T is a POD type.
  struct T {
     ~T() = default;
  };

This patch adds two new (DI)flags to LLVM metadata: TypePassByValue
and TypePassByReference.


Repository:
  rL LLVM

https://reviews.llvm.org/D41739

Files:
  include/llvm-c/DebugInfo.h
  include/llvm/IR/DebugInfoFlags.def
  include/llvm/IR/DebugInfoMetadata.h
  lib/CodeGen/AsmPrinter/DwarfUnit.cpp
  lib/IR/Verifier.cpp
  test/DebugInfo/Generic/pass-by-value.ll
  test/Verifier/cc-flags.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41739.128647.patch
Type: text/x-patch
Size: 6989 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180104/c04b9710/attachment.bin>


More information about the llvm-commits mailing list