tree 9f1fbe008cf834362dd61563b32bc07ea1c17cae
parent c84d620d4d3fe240a75b962c7c9ce6772b15548d
author Andrew Rogers <andrurogerz@gmail.com> 1750807007 -0700
committer GitHub <noreply@github.com> 1750807007 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoWzHfCRC1aQ7uu5UhlAAApt4QAD3DM8P4tAjkwpTFm4gCOZez
 TpGhM9vSB0nAirwNhPKs2oRdGKAWwksnN1AgJvTvkGm87xHVPTLAIffoF1ojfMPB
 4HHxfbJ6HPeQg3vR9kovehCcOczOmkkKZLMpoKEk6pod7eUzr9VqMgSYJR9sGRBW
 UBR9SMgTa/5IqOCjutkxDyUux7nDvRSdKmqXXpb7LwT8xTkBEGSlNy9JxnRfUxbw
 aY14y5SoT6fLtk3brKY9sYBeRhGSCvIdPH+9wYeME59AZG7lBuQHkaSfpJvxbh9z
 e925tbKSXdFWXG0CIPHaFMBrouSGoXsw+kY1dP6NqjRjatRHgfeRF8Pdfpci3cAh
 +IrIW4ronZNJL1wNRc3jr2Tns87ItKMIUx1DwiXNw/QALJBOgRbqLF5CpUnS2ZIj
 t7QhmUCFYARp+ENxbs/rzem2O2h1l9qRKMn7tG3jzdMtnmBBK+ZaYH6cOTORS++H
 v30l4QYk3RDo88AKGoOlt6+Yzim+fLgoVMk95gd7J2/3BBusYyh4ZhyxRvTPXyMp
 385LcEfmz8oBLPUhvw9xXq0lfhzydLkbijo4/210xfu621ulEF5QN7o7PMzJi4Vs
 Mungk+/Dn/4PKhgbsEChG6lj5MersCfvHcp+gqAdZQRUOahgV7Q0bwJKYh+IsBK3
 o22wzTAf0vNP6GZ3mczc
 =RemK
 -----END PGP SIGNATURE-----
 

[llvm] annotate remaining Telemetry and ToolDrivers interfaces for DLL export (#145369)

## Purpose

This patch is one in a series of code-mods that annotate LLVM’s public
interface for export. This patch annotates the remaining Telemetry and
ToolDrivers interfaces that were missed in, or modified since, previous
patches. The annotations currently have no meaningful impact on the LLVM
build; however, they are a prerequisite to support an LLVM Windows DLL
(shared library) build.

## Background

This effort is tracked in #109483. Additional context is provided in
[this
discourse](https://discourse.llvm.org/t/psa-annotating-llvm-public-interface/85307),
and documentation for `LLVM_ABI` and related annotations is found in the
LLVM repo
[here](https://github.com/llvm/llvm-project/blob/main/llvm/docs/InterfaceExportAnnotations.rst).

## Overview

The bulk of these changes were generated automatically using the
[Interface Definition Scanner (IDS)](https://github.com/compnerd/ids)
tool, followed formatting with `git clang-format`.

The following manual adjustments were also applied after running IDS:
- Add `#include "llvm/Support/Compiler.h"` to files where it was not
automatically added by IDS because there were no pre-existing include
statements.
- Add default ctor and delete the copy ctor and copy assignment operator
in the `Telemetry::Manager` class. This is required because the class is
now annotated with `LLVM_ABI` and cannot otherwise be fully instantiated
for export.

## Validation

Local builds and tests to validate cross-platform compatibility. This
included llvm, clang, and lldb on the following configurations:

- Windows with MSVC
- Windows with Clang
- Linux with GCC
- Linux with Clang
- Darwin with Clang