aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MOVED1
-rw-r--r--devel/Makefile1
-rw-r--r--devel/llvm60/Makefile459
-rw-r--r--devel/llvm60/Makefile.COMMANDS90
-rw-r--r--devel/llvm60/distinfo15
-rw-r--r--devel/llvm60/files/clang/patch-fformat_extensions.diff44
-rw-r--r--devel/llvm60/files/clang/patch-fopenmp.diff14
-rw-r--r--devel/llvm60/files/clang/patch-head-r331066.diff40
-rw-r--r--devel/llvm60/files/clang/patch-head-r336227.diff42
-rw-r--r--devel/llvm60/files/clang/patch-head-r338697.diff104
-rw-r--r--devel/llvm60/files/clang/patch-head-r339019.diff30
-rw-r--r--devel/llvm60/files/clang/patch-stable12-r342281.diff834
-rw-r--r--devel/llvm60/files/clang/patch-tools_clang_lib_Headers_CMakeLists.txt32
-rw-r--r--devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format-sublime.py14
-rw-r--r--devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format.py11
-rw-r--r--devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_git-clang-format32
-rw-r--r--devel/llvm60/files/clang/patch-tools_clang_tools_scan-build_libexec_ccc-analyzer12
-rw-r--r--devel/llvm60/files/lld/patch-head-r331731.diff67
-rw-r--r--devel/llvm60/files/lld/patch-head-r333401.diff34
-rw-r--r--devel/llvm60/files/lld/patch-head-r336664.diff52
-rw-r--r--devel/llvm60/files/lld/patch-head-r336972.diff146
-rw-r--r--devel/llvm60/files/lld/patch-head-r337282.diff39
-rw-r--r--devel/llvm60/files/lld/patch-head-r338251.diff123
-rw-r--r--devel/llvm60/files/lld/patch-head-r338682.diff55
-rw-r--r--devel/llvm60/files/lld/patch-head-r339013.diff39
-rw-r--r--devel/llvm60/files/lld/patch-head-r339304.diff37
-rw-r--r--devel/llvm60/files/lldb/patch-head-r332849.diff38
-rw-r--r--devel/llvm60/files/lldb/patch-head-r332965.diff22
-rw-r--r--devel/llvm60/files/llvm-wrapper.sh.in12
-rw-r--r--devel/llvm60/files/openmp/patch-bug3227929
-rw-r--r--devel/llvm60/files/openmp/patch-i38611
-rw-r--r--devel/llvm60/files/patch-cmake_modules_AddSphinxTarget.cmake11
-rw-r--r--devel/llvm60/files/patch-head-r308867.diff33
-rw-r--r--devel/llvm60/files/patch-head-r330686.diff80
-rw-r--r--devel/llvm60/files/patch-head-r331065.diff88
-rw-r--r--devel/llvm60/files/patch-head-r331366.diff609
-rw-r--r--devel/llvm60/files/patch-head-r336969.diff32
-rw-r--r--devel/llvm60/files/patch-head-r336970.diff24
-rw-r--r--devel/llvm60/files/patch-head-r337615.diff64
-rw-r--r--devel/llvm60/files/patch-head-r338689.diff32
-rw-r--r--devel/llvm60/files/patch-svn-r3223251589
-rw-r--r--devel/llvm60/pkg-descr8
-rw-r--r--devel/llvm60/pkg-plist2899
43 files changed, 1 insertions, 7947 deletions
diff --git a/MOVED b/MOVED
index 7bcb8520051a..69ec5214b474 100644
--- a/MOVED
+++ b/MOVED
@@ -16192,3 +16192,4 @@ devel/relx||2021-03-03|Has expired: Script removed upstream, library included in
sysutils/synergy-1|sysutils/synergy|2021-03-03|Current version is 1.x.x, 2.x.x was tagged by the upstream by mistake
www/moodle35|www/moodle39|2021-03-04|Has expired: Deprecated by upstream
www/moodle38|www/moodle39|2021-03-04|Has expired: Deprecated by upstream
+devel/llvm60|devel/llvm80|2021-03-06|Has expired: Uses Python 2.7 which is EOLed upstream
diff --git a/devel/Makefile b/devel/Makefile
index 348233b438e1..9b30232a3269 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -1422,7 +1422,6 @@
SUBDIR += llvm10
SUBDIR += llvm11
SUBDIR += llvm12
- SUBDIR += llvm60
SUBDIR += llvm70
SUBDIR += llvm80
SUBDIR += llvm90
diff --git a/devel/llvm60/Makefile b/devel/llvm60/Makefile
deleted file mode 100644
index 257be275a350..000000000000
--- a/devel/llvm60/Makefile
+++ /dev/null
@@ -1,459 +0,0 @@
-# $FreeBSD$
-
-PORTNAME= llvm
-DISTVERSION= 6.0.1
-PORTREVISION= 7
-CATEGORIES= devel lang
-MASTER_SITES= http://${PRE_}releases.llvm.org/${LLVM_RELEASE}/${RCDIR}
-PKGNAMESUFFIX= ${LLVM_SUFFIX}
-DISTNAME= ${PORTNAME}-${DISTVERSION}.src
-DISTFILES= ${PORTNAME}-${DISTVERSION}.src${EXTRACT_SUFX}
-
-MAINTAINER= brooks@FreeBSD.org
-COMMENT= LLVM and Clang
-
-.include "${.CURDIR}/../llvm-devel/Makefile.LICENSE"
-
-LLVM_RELEASE= ${DISTVERSION:C/rc.*//}
-LLVM_MAJOR= ${LLVM_RELEASE:C/\.[0-9]$//}
-LLVM_LIB_VER= ${LLVM_MAJOR:C/\.//}
-RCDIR= ${DISTVERSION:S/${LLVM_RELEASE}//:C|(rc.*)|\1/|}
-PRE_= ${DISTVERSION:C/.*rc.*/pre/:N*[0-9]*}
-LLVM_SUFFIX= ${LLVM_LIB_VER}
-
-LLVM_PREFIX= ${PREFIX}/llvm${LLVM_SUFFIX}
-DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${LLVM_SUFFIX}
-DATADIR= ${PREFIX}/share/${PORTNAME}${LLVM_SUFFIX}
-
-USES= cmake compiler:c++11-lib libedit perl5 tar:xz shebangfix
-_USES_PYTHON?= python:2.7,build
-USES+= ${_USES_PYTHON}
-USE_LDCONFIG= ${LLVM_PREFIX}/lib
-SHEBANG_FILES= utils/lit/lit.py utils/llvm-lit/llvm-lit.in
-
-SUB_FILES= llvm-wrapper.sh
-SUB_LIST= LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}"
-
-CMAKE_INSTALL_PREFIX= ${LLVM_PREFIX}
-CMAKE_ARGS= -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON
-CMAKE_ARGS+= -DLLVM_ENABLE_RTTI=ON
-CMAKE_ARGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=${CONFIGURE_TARGET}
-CMAKE_ARGS+= -DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET}
-# Following commit https://github.com/kitware/cmake/commit/956054
-# we need to either change the whole man-shuffle below, or simply
-# redefine CMAKE_INSTALL_MANDIR
-CMAKE_ARGS+= -DCMAKE_INSTALL_MANDIR:PATH="share/man"
-CMAKE_ARGS+= -DLLVM_PARALLEL_LINK_JOBS=1
-
-# Disable assertions. They should be disabled by cmake, but USES=cmake
-# overrides -DCMAKE_*_FLAGS_RELEASE.
-CFLAGS+= -DNDEBUG
-CXXFLAGS+= -DNDEBUG
-
-OPTIONS_DEFINE= CLANG DOCS EXTRAS LIT LLD LLDB
-OPTIONS_DEFINE_amd64= COMPILER_RT GOLD OPENMP
-OPTIONS_DEFINE_i386= COMPILER_RT OPENMP
-OPTIONS_DEFAULT= CLANG EXTRAS LIT LLD LLDB
-OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD OPENMP
-OPTIONS_DEFAULT_i386= COMPILER_RT OPENMP
-OPTIONS_SUB= yes
-
-CLANG_DESC= Build clang
-CLANG_EXTRA_PATCHES= ${PATCHDIR}/clang
-CLANG_DISTFILES= cfe-${DISTVERSION}.src${EXTRACT_SUFX}
-CLANG_CMAKE_ON= -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
-CLANG_PORTDOCS= clang
-CLANG_USE= GNOME=libxml2
-COMPILER_RT_DESC= Sanitizer libraries
-COMPILER_RT_DISTFILES= compiler-rt-${DISTVERSION}.src${EXTRACT_SUFX}
-COMPILER_RT_PLIST_FILES=${_COMPILER_RT_LIBS:S|^|${_CRTLIBDIR}/|}
-DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
-DOCS_PORTDOCS= llvm
-DOCS_CMAKE_ON= -DLLVM_ENABLE_SPHINX=ON \
- -DSPHINX_WARNINGS_AS_ERRORS=OFF \
- -DLLVM_BUILD_DOCS=ON
-DOCS_PLIST_FILES= ${MAN1SRCS:S|^|man/man1/|:S|.1$|${LLVM_SUFFIX}.1.gz|}
-EXTRAS_DESC= Extra clang tools
-EXTRAS_IMPLIES= CLANG
-EXTRAS_DISTFILES= clang-tools-extra-${DISTVERSION}.src${EXTRACT_SUFX}
-GOLD_DESC= Build the LLVM Gold plugin for LTO
-GOLD_CMAKE_ON= -DLLVM_BINUTILS_INCDIR=${LOCALBASE}/include
-GOLD_BUILD_DEPENDS= ${LOCALBASE}/bin/ld.gold:devel/binutils
-LIT_DESC= Install lit and FileCheck test tools
-LIT_VARS= _USES_PYTHON=python:2.7
-LLD_DESC= Install lld, the LLVM linker
-LLD_DISTFILES= lld-${DISTVERSION}.src${EXTRACT_SUFX}
-LLD_EXTRA_PATCHES= ${PATCHDIR}/lld
-LLDB_BUILD_DEPENDS= swig:devel/swig \
- ${PY_ENUM34}
-LLDB_DESC= Install lldb, the LLVM debugger
-LLDB_DISTFILES= lldb-${DISTVERSION}.src${EXTRACT_SUFX}
-LLDB_EXTRA_PATCHES= ${PATCHDIR}/lldb
-LLDB_IMPLIES= CLANG
-LLDB_VARS= _USES_PYTHON=python:2.7
-OPENMP_DESC= Install libomp, the LLVM OpenMP runtime library
-OPENMP_DISTFILES= openmp-${DISTVERSION}.src${EXTRACT_SUFX}
-OPENMP_EXTRA_PATCHES= ${PATCHDIR}/openmp
-
-.if defined(WITH_DEBUG)
-CMAKE_BUILD_TYPE= RelWithDebInfo
-STRIP=
-.endif
-
-_CRTLIBDIR= ${LLVM_PREFIX:S|${PREFIX}/||}/lib/clang/${LLVM_RELEASE}/lib/freebsd
-
-# Emulate USE_GITHUB's ${WRKSRC_tag} to reduce diffs to ../llvm-devel
-.for option in CLANG COMPILER_RT EXTRAS LLD LLDB OPENMP
-WRKSRC_${option:tl}= ${WRKDIR}/${${option}_DISTFILES:S/${EXTRACT_SUFX}//}
-.endfor
-
-PLIST_SUB+= LLVM_LIB_VER=${LLVM_LIB_VER} \
- LLVM_MAJOR=${LLVM_MAJOR} \
- LLVM_RELEASE=${LLVM_RELEASE} \
- LLVM_SUFFIX=${LLVM_SUFFIX}
-
-COMMANDS= ${LLVM_COMMANDS}
-FIRST_COMMAND= ${COMMANDS:C/^/XXXX/1:MXXXX*:C/^XXXX//}
-
-STRIP_LIBS= BugpointPasses.so \
- LLVMHello.so \
- ${LIBNAME}.0 \
- libLTO.so
-
-EXTRAS_LIBS= libclangApplyReplacements \
- libclangChangeNamespace \
- libclangDaemon \
- libclangIncludeFixer \
- libclangMove \
- libclangQuery \
- libclangRename \
- libclangReorderFields \
- libclangTidy \
- libclangTidyGoogleModule \
- libclangTidyLLVMModule \
- libclangTidyMiscModule \
- libclangTidyReadabilityModule \
- libclangTidyUtils \
- libfindAllSymbols \
- libmodernizeCore
-EXTRAS_PATTERN= ${EXTRAS_COMMANDS:tW:C/ */|/g}|${EXTRAS_LIBS:tW:C/ */|/g}
-
-.include <bsd.port.options.mk>
-
-# keep in sync with /usr/src/lib/clang/clang.build.mk
-# ----------- start of sync block ------------------
-# Armv6 and armv7 uses hard float abi, unless the CPUTYPE has soft in it.
-# arm (for armv4 and armv5 CPUs) always uses the soft float ABI.
-# For all other targets, we stick with 'unknown'.
-.if ${ARCH:Marmv[67]*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "")
-TARGET_ABI= -gnueabihf
-.elif ${ARCH:Marm*}
-TARGET_ABI= -gnueabi
-.else
-TARGET_ABI=
-.endif
-
-CONFIGURE_TARGET:=${ARCH:C/amd64/x86_64/:C/arm64/aarch64/}-portbld-${OPSYS:tl}${OSREL}${TARGET_ABI}
-# ----------- end of sync block --------------------
-
-.if ${PORT_OPTIONS:MCLANG}
-COMMANDS+= ${CLANG_COMMANDS}
-MAN1SRCS+= clang.1 \
- scan-build.1
-CLANG_PATTERN= (c-index-test|clang|scan-|Reporter.py|ScanView.py|scanview.css|sorttable.js|startfile.py|-analyzer)
-SHEBANG_FILES+= tools/clang/tools/scan-view/bin/scan-view \
- tools/clang/tools/clang-format/git-clang-format \
- tools/clang/tools/clang-format/clang-format-diff.py
-USES+= gnome
-.endif
-
-.if ${PORT_OPTIONS:MCOMPILER_RT}
-COMPILER_RT_PATTERN= (_blacklist.txt|sanitizer|include.xray)
-.endif
-
-.if ${PORT_OPTIONS:MEXTRAS}
-COMMANDS+= ${EXTRAS_COMMANDS}
-MAN1SRCS+= extraclangtools.1
-PORTDOCS+= clang-tools
-SHEBANG_FILES+= tools/clang/tools/extra/clang-tidy/tool/clang-tidy-diff.py \
- tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py \
- tools/clang/tools/extra/include-fixer/find-all-symbols/tool/run-find-all-symbols.py
-.endif
-
-.if ${PORT_OPTIONS:MLIT}
-MAN1SRCS+= lit.1 FileCheck.1
-.endif
-
-.if ${PORT_OPTIONS:MLLD}
-COMMANDS+= ${LLD_COMMANDS}
-PORTDOCS+= lld
-.endif
-
-.if ${PORT_OPTIONS:MLLDB}
-COMMANDS+= ${LLDB_COMMANDS}
-.endif
-
-MAN1SRCS+= bugpoint.1 dsymutil.1 llc.1 lli.1 llvm-ar.1 llvm-as.1 \
- llvm-bcanalyzer.1 llvm-build.1 llvm-config.1 llvm-cov.1 \
- llvm-diff.1 llvm-dis.1 llvm-dwarfdump.1 \
- llvm-extract.1 llvm-lib.1 llvm-link.1 llvm-nm.1 \
- llvm-pdbutil.1 \
- llvm-profdata.1 llvm-readobj.1 llvm-stress.1 llvm-symbolizer.1 \
- opt.1 tblgen.1
-
-.include <bsd.port.pre.mk>
-.include "${.CURDIR}/Makefile.COMMANDS"
-
-.if ${ARCH} == "amd64"
-_COMPILER_RT_LIBS= \
- libclang_rt.asan-preinit-x86_64.a \
- libclang_rt.asan-x86_64.a \
- libclang_rt.asan-x86_64.a.syms \
- libclang_rt.asan-x86_64.so \
- libclang_rt.asan_cxx-x86_64.a \
- libclang_rt.asan_cxx-x86_64.a.syms \
- libclang_rt.builtins-x86_64.a \
- libclang_rt.dd-x86_64.a \
- libclang_rt.dyndd-x86_64.so \
- libclang_rt.lsan-x86_64.a \
- libclang_rt.profile-x86_64.a \
- libclang_rt.safestack-x86_64.a \
- libclang_rt.stats-x86_64.a \
- libclang_rt.stats_client-x86_64.a \
- libclang_rt.tsan-x86_64.a \
- libclang_rt.tsan-x86_64.a.syms \
- libclang_rt.tsan_cxx-x86_64.a \
- libclang_rt.tsan_cxx-x86_64.a.syms \
- libclang_rt.ubsan_minimal-x86_64.a \
- libclang_rt.ubsan_minimal-x86_64.a.syms \
- libclang_rt.ubsan_minimal-x86_64.so \
- libclang_rt.ubsan_standalone-x86_64.a \
- libclang_rt.ubsan_standalone-x86_64.a.syms \
- libclang_rt.ubsan_standalone-x86_64.so \
- libclang_rt.ubsan_standalone_cxx-x86_64.a \
- libclang_rt.ubsan_standalone_cxx-x86_64.a.syms
-.endif
-.if ${ARCH} == "i386"
-_COMPILER_RT_LIBS+= \
- libclang_rt.asan-i386.a \
- libclang_rt.asan-i386.so \
- libclang_rt.asan-preinit-i386.a \
- libclang_rt.asan_cxx-i386.a \
- libclang_rt.builtins-i386.a \
- libclang_rt.lsan-i386.a \
- libclang_rt.profile-i386.a \
- libclang_rt.safestack-i386.a \
- libclang_rt.stats-i386.a \
- libclang_rt.stats_client-i386.a \
- libclang_rt.ubsan_minimal-i386.a \
- libclang_rt.ubsan_minimal-i386.so \
- libclang_rt.ubsan_standalone-i386.a \
- libclang_rt.ubsan_standalone-i386.so \
- libclang_rt.ubsan_standalone_cxx-i386.a
-.endif
-
-# Use lld for armv6 on clang 7 and up to avoid binutils ld issues
-# PR: 235282
-.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 70
-LDFLAGS_armv6=-fuse-ld=lld
-.endif
-
-.if ${ARCH} == "armv6"
-BUILD_DEPENDS+= ${LOCALBASE}/bin/ld:devel/binutils
-CONFIGURE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
-MAKE_ENV+= COMPILER_PATH=${LOCALBASE}/bin
-.endif
-
-.if ! ${OPTIONS_DEFINE:MCOMPILER_RT}
-# Hack to disable COMPILER_RT in plist of unsupported architectures
-PLIST_SUB+= COMPILER_RT="@comment "
-.else
-.endif
-
-.if ! ${OPTIONS_DEFINE:MGOLD}
-# Hack to disable GOLD in plist of unsupported architectures
-PLIST_SUB+= GOLD="@comment "
-.else
-.endif
-
-.if ! ${OPTIONS_DEFINE:MOPENMP}
-# Hack to disable OPENMP in plist of unsupported architectures
-PLIST_SUB+= OPENMP="@comment "
-.else
-.endif
-
-post-extract-CLANG-on:
- ${MV} ${WRKSRC_clang} ${PATCH_WRKSRC}/tools/clang
-
-post-extract-EXTRAS-on:
- ${MV} ${WRKSRC_extras} ${PATCH_WRKSRC}/tools/clang/tools/extra
-
-post-extract-LLD-on:
- ${MV} ${WRKSRC_lld} ${PATCH_WRKSRC}/tools/lld
-
-post-extract-LLDB-on:
- ${MV} ${WRKSRC_lldb} ${PATCH_WRKSRC}/tools/lldb
-
-post-extract-OPENMP-on:
- ${MV} ${WRKSRC_openmp} ${PATCH_WRKSRC}/projects/openmp
-
-post-patch:
- ${REINPLACE_CMD} -e 's|import lit|import lit${LLVM_SUFFIX}|' \
- -e 's|from lit|from lit${LLVM_SUFFIX}|' \
- -e 's|lit\.|lit${LLVM_SUFFIX}.|' \
- ${WRKSRC}/utils/lit/lit.py ${WRKSRC}/utils/lit/lit/*.py \
- ${WRKSRC}/utils/lit/lit/formats/*.py
- ${REINPLACE_CMD} -e 's,/usr/local/,${LOCALBASE}/,' \
- ${WRKSRC}/CMakeLists.txt
-
-post-patch-CLANG-on:
- ${REINPLACE_CMD} -e 's|%%LLVM_PREFIX%%|${LLVM_PREFIX}|' \
- ${PATCH_WRKSRC}/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp
- ${REINPLACE_CMD} -e 's|%%LLVM_SUFFIX%%|${LLVM_SUFFIX}|' \
- ${PATCH_WRKSRC}/tools/clang/tools/clang-format/clang-format.py \
- ${PATCH_WRKSRC}/tools/clang/tools/clang-format/clang-format-sublime.py \
- ${PATCH_WRKSRC}/tools/clang/tools/clang-format/git-clang-format
-
-post-patch-LLD-on:
- ${REINPLACE_CMD} -e "s|'indexsidebar.html'|['indexsidebar.html']|" \
- ${PATCH_WRKSRC}/tools/lld/docs/conf.py
-
-post-build-COMPILER_RT-on:
- ${MKDIR} ${WRKDIR}/compiler-rt-build
- cd ${WRKDIR}/compiler-rt-build && \
- ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \
- -DLLVM_CONFIG_PATH=${CONFIGURE_WRKSRC}/bin/llvm-config \
- ${WRKSRC_compiler_rt} && \
- ${MAKE_ENV} ${MAKE_CMD}
-
-post-install:
- ${RM} -r ${STAGEDIR}${LLVM_PREFIX}/include/llvm/MC/MCAnalysis
- ${INSTALL_SCRIPT} ${WRKDIR}/llvm-wrapper.sh \
- ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX}
-.for command in ${COMMANDS:C/^/XXXX/1:NXXXX*}
- ${LN} -f ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX} \
- ${STAGEDIR}${PREFIX}/bin/${command}${LLVM_SUFFIX}
-.endfor
-
-post-install-DOCS-on:
- ${MV} ${STAGEDIR}${LLVM_PREFIX}/share/doc ${STAGEDIR}${DOCSDIR}
-.for _man in ${MAN1SRCS}
- ${MV} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/${_man} \
- ${STAGEDIR}${MANPREFIX}/man/man1/${_man:R}${LLVM_SUFFIX}.1
-.endfor
-.if ! ${PORT_OPTIONS:MLIT}
- ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/lit.1
- ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/FileCheck.1
-.endif
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/
-
-.if ${PORT_OPTIONS:MCLANG}
-post-install-DOCS-off:
- ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/scan-build.1
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/
-.endif
-
-post-install-LLD-on:
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/llvm/BinaryFormat/WasmRelocs
-
-post-install-LLDB-on:
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/lldb/Host/windows/getopt
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/lldb/Host/mingw
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/lldb/Host/msvc
-
-post-install-CLANG-on:
- ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/clang \
- ${STAGEDIR}${LLVM_PREFIX}/bin/clang-cpp
- ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/clang-tblgen \
- ${STAGEDIR}${LLVM_PREFIX}/bin/
-
-post-install-COMPILER_RT-on:
- cd ${WRKDIR}/compiler-rt-build && \
- ${MAKE_ENV} ${MAKE_CMD} ${INSTALL_TARGET}
-.if ${ARCH} == "amd64"
- ${RM} ${STAGEDIR}${LLVM_PREFIX}/lib/freebsd/libclang_rt*i386*
-.endif
- ${MKDIR} ${STAGEDIR}${PREFIX}/${_CRTLIBDIR}
- ${MV} ${STAGEDIR}${LLVM_PREFIX}/lib/freebsd/* \
- ${STAGEDIR}${PREFIX}/${_CRTLIBDIR}
- ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/lib/freebsd
-
-post-install-LIT-on:
- ${INSTALL_SCRIPT} ${PATCH_WRKSRC}/utils/lit/lit.py \
- ${STAGEDIR}${LLVM_PREFIX}/bin/lit
- ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
- ${STAGEDIR}${LLVM_PREFIX}/bin/llvm-lit
- ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
- ${STAGEDIR}${PREFIX}/bin/lit${LLVM_SUFFIX}
- ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \
- ${STAGEDIR}${PREFIX}/bin/llvm-lit${LLVM_SUFFIX}
- ${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}
- ${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}/formats
- ${INSTALL_DATA} ${WRKSRC}/utils/lit/lit/*.py \
- ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}
- ${INSTALL_DATA} ${WRKSRC}/utils/lit/lit/formats/*.py \
- ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX}/formats
- ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/FileCheck \
- ${STAGEDIR}${LLVM_PREFIX}/bin/
- ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/FileCheck \
- ${STAGEDIR}${PREFIX}/bin/FileCheck${LLVM_SUFFIX}
-
-TEST_CMD= '(cd ${WRKSRC}/test; ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${WRKSRC}/Release/lib ${MAKE_CMD} check-local-lit)'
-do-test:
- if [ `${ID} -u` = 0 ]; then \
- ${CHOWN} -R nobody ${WRKSRC}/test; \
- su -m nobody -c ${TEST_CMD}; \
- else \
- ${SH} -c ${TEST_CMD}; \
- fi
-
-build-plist:
- ${RM} ${PLIST} ${PLIST}.tmp
- ${ECHO_CMD} "@comment >>>>> GENERATED FILE, DO NOT EDIT <<<<<" >> ${PLIST}.tmp
- ${ECHO_CMD} "@comment Alter build-plist target and regenerate as required" >> ${PLIST}.tmp
-.for command in ${COMMANDS}
- ${ECHO_CMD} bin/${command}%%LLVM_SUFFIX%% >> ${PLIST}.tmp
-.endfor
-.for command in ${LIT_COMMANDS}
- ${ECHO_CMD} %%LIT%%bin/${command}%%LLVM_SUFFIX%% >> ${PLIST}.tmp
- ${ECHO_CMD} %%LIT%%${LLVM_PREFIX:S|${PREFIX}/||:C|${LLVM_SUFFIX}|%%LLVM_SUFFIX%%|}/bin/${command} >> ${PLIST}.tmp
-.endfor
-
- ${FIND} ${STAGEDIR}${LLVM_PREFIX} -type f -o -type l | \
- ${GREP} -v '[/-]lit$$' | ${GREP} -v 'FileCheck$$' | \
- ${GREP} -v man/man1 | ${SED} -e 's|${STAGEDIR}${PREFIX}/||' \
- -e 's|${PYTHON_SITELIBDIR:C|${PREFIX}/||}|%%PYTHON_SITELIBDIR%%|' \
- -e 's|${LLVM_RELEASE}|%%LLVM_RELEASE%%|' \
- -e 's|release.cmake|%%CMAKE_BUILD_TYPE%%.cmake|' \
- -e 's|${LLVM_RELEASE:C/\./\\./g}|%%LLVM_RELEASE%%|' \
- -e 's|${LLVM_MAJOR:C/\./\\./}|%%LLVM_MAJOR%%|' \
- -e 's|${LLVM_MAJOR:C/\.//}|%%LLVM_LIB_VER%%|' \
- | ${SORT} >> ${PLIST}.tmp
- ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/lit${LLVM_SUFFIX} -type f | \
- ${SED} -e 's|${STAGEDIR}${PYTHON_SITELIBDIR}|%%LIT%%%%PYTHON_SITELIBDIR%%|' \
- -e 's|${LLVM_RELEASE:C/\./\\./g}|%%LLVM_RELEASE%%|' \
- -e 's|${LLVM_MAJOR:C/\./\\./}|%%LLVM_MAJOR%%|' \
- -e 's|lit${LLVM_SUFFIX}|lit%%LLVM_SUFFIX%%|' | \
- ${SORT} >> ${PLIST}.tmp
- ${AWK} '{ \
- if ($$0 ~ /${CLANG_PATTERN}/ && $$0 !~ /(omp.h|ompt.h|${EXTRAS_PATTERN}|libclang_rt)/) {printf "%%%%CLANG%%%%"} \
- if ($$0 ~ /${COMPILER_RT_PATTERN}/) \
- {printf "%%%%COMPILER_RT%%%%"} \
- if ($$0 ~ /(${EXTRAS_PATTERN})/) {printf "%%%%EXTRAS%%%%"} \
- if ($$0 ~ /lld|wasm-ld/ && $$0 !~ /lldb/) {printf "%%%%LLD%%%%"} \
- if ($$0 ~ /(argdumper|lldb|six.py)/) {printf "%%%%LLDB%%%%"} \
- if ($$0 ~ /lib.*omp|omp.h|ompt.h/) {printf "%%%%OPENMP%%%%"} \
- if ($$0 ~ /LLVMgold/) {printf "%%%%GOLD%%%%"} \
- if ($$0 !~ /libclang_rt/) {print}}' ${PLIST}.tmp >> ${PLIST}
- ${ECHO_CMD} '@postexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi' >> ${PLIST}
- ${ECHO_CMD} '@postunexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi' >> ${PLIST}
- ${RM} ${PLIST}.tmp
-
-check-commands:
-.for command in ${COMMANDS}
- test -e ${STAGEDIR}${LLVM_PREFIX}/bin/${command}
-.endfor
-
-.include <bsd.port.post.mk>
diff --git a/devel/llvm60/Makefile.COMMANDS b/devel/llvm60/Makefile.COMMANDS
deleted file mode 100644
index 8ffdaacb1c29..000000000000
--- a/devel/llvm60/Makefile.COMMANDS
+++ /dev/null
@@ -1,90 +0,0 @@
-# $FreeBSD$
-
-LLVM_COMMANDS= \
- bugpoint \
- llc \
- lli \
- llvm-ar \
- llvm-as \
- llvm-bcanalyzer \
- llvm-cat \
- llvm-cfi-verify \
- llvm-config \
- llvm-cov \
- llvm-cvtres \
- llvm-diff \
- llvm-dis \
- llvm-dlltool \
- llvm-dwarfdump \
- llvm-dwp \
- llvm-extract \
- llvm-link \
- llvm-mc \
- llvm-mcmarkup \
- llvm-modextract \
- llvm-mt \
- llvm-nm \
- llvm-objcopy \
- llvm-objdump \
- llvm-opt-report \
- llvm-pdbutil \
- llvm-profdata \
- llvm-ranlib \
- llvm-rc \
- llvm-readelf \
- llvm-readobj \
- llvm-rtdyld \
- llvm-size \
- llvm-split \
- llvm-stress \
- llvm-strings \
- llvm-symbolizer \
- llvm-tblgen \
- macho-dump \
- opt \
- sancov
-
-CLANG_COMMANDS= \
- c-index-test \
- clang \
- clang++ \
- clang-check \
- clang-cpp \
- clang-format \
- clang-func-mapping \
- clang-import-test \
- clang-offload-bundler \
- scan-build \
- scan-view
-
-EXTRAS_COMMANDS= \
- clang-apply-replacements \
- clang-change-namespace \
- clang-include-fixer \
- clang-modernize \
- clang-query \
- clang-rename \
- clang-reorder-fields \
- clang-tidy \
- clangd \
- find-all-symbols \
- modularize
-
-LIT_COMMANDS= \
- FileCheck \
- lit \
- llvm-lit
-
-LLD_COMMANDS= \
- ld.lld \
- ld64.lld \
- lld \
- lld-link \
- wasm-ld
-
-LLDB_COMMANDS= \
- lldb \
- lldb-argdumper \
- lldb-mi \
- lldb-server \
- lldb-test
diff --git a/devel/llvm60/distinfo b/devel/llvm60/distinfo
deleted file mode 100644
index cf083ca19108..000000000000
--- a/devel/llvm60/distinfo
+++ /dev/null
@@ -1,15 +0,0 @@
-TIMESTAMP = 1530117803
-SHA256 (llvm-6.0.1.src.tar.xz) = b6d6c324f9c71494c0ccaf3dac1f16236d970002b42bb24a6c9e1634f7d0f4e2
-SIZE (llvm-6.0.1.src.tar.xz) = 25306628
-SHA256 (cfe-6.0.1.src.tar.xz) = 7c243f1485bddfdfedada3cd402ff4792ea82362ff91fbdac2dae67c6026b667
-SIZE (cfe-6.0.1.src.tar.xz) = 11905772
-SHA256 (compiler-rt-6.0.1.src.tar.xz) = f4cd1e15e7d5cb708f9931d4844524e4904867240c306b06a4287b22ac1c99b9
-SIZE (compiler-rt-6.0.1.src.tar.xz) = 1686820
-SHA256 (clang-tools-extra-6.0.1.src.tar.xz) = 0d2e3727786437574835b75135f9e36f861932a958d8547ced7e13ebdda115f1
-SIZE (clang-tools-extra-6.0.1.src.tar.xz) = 757256
-SHA256 (lld-6.0.1.src.tar.xz) = e706745806921cea5c45700e13ebe16d834b5e3c0b7ad83bf6da1f28b0634e11
-SIZE (lld-6.0.1.src.tar.xz) = 787804
-SHA256 (lldb-6.0.1.src.tar.xz) = 6b8573841f2f7b60ffab9715c55dceff4f2a44e5a6d590ac189d20e8e7472714
-SIZE (lldb-6.0.1.src.tar.xz) = 19292420
-SHA256 (openmp-6.0.1.src.tar.xz) = 66afca2b308351b180136cf899a3b22865af1a775efaf74dc8a10c96d4721c5a
-SIZE (openmp-6.0.1.src.tar.xz) = 2048320
diff --git a/devel/llvm60/files/clang/patch-fformat_extensions.diff b/devel/llvm60/files/clang/patch-fformat_extensions.diff
deleted file mode 100644
index 69093d923b6f..000000000000
--- a/devel/llvm60/files/clang/patch-fformat_extensions.diff
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -ruN tools/clang/include/clang/Basic/LangOptions.def tools/clang/include/clang/Basic/LangOptions.def
---- tools/clang/include/clang/Basic/LangOptions.def 2015-07-30 22:47:41 UTC
-+++ tools/clang/include/clang/Basic/LangOptions.def
-@@ -114,6 +114,7 @@
- LANGOPT(RTTIData , 1, 1, "emit run-time type information data")
- LANGOPT(MSBitfields , 1, 0, "Microsoft-compatible structure layout")
- LANGOPT(Freestanding, 1, 0, "freestanding implementation")
-+LANGOPT(FormatExtensions , 1, 0, "FreeBSD format extensions")
- LANGOPT(NoBuiltin , 1, 0, "disable builtin functions")
- LANGOPT(NoMathBuiltin , 1, 0, "disable math builtin functions")
- LANGOPT(GNUAsm , 1, 1, "GNU-style inline assembly")
-diff -ruN tools/clang/include/clang/Driver/Options.td tools/clang/include/clang/Driver/Options.td
---- tools/clang/include/clang/Driver/Options.td 2015-07-30 22:47:41 UTC
-+++ tools/clang/include/clang/Driver/Options.td
-@@ -644,6 +644,8 @@
-
- def ffreestanding : Flag<["-"], "ffreestanding">, Group<f_Group>, Flags<[CC1Option]>,
- HelpText<"Assert that the compilation takes place in a freestanding environment">;
-+def fformat_extensions: Flag<["-"], "fformat-extensions">, Group<f_Group>, Flags<[CC1Option]>,
-+ HelpText<"Enable FreeBSD kernel specific format string extensions">;
- def fgnu_keywords : Flag<["-"], "fgnu-keywords">, Group<f_Group>, Flags<[CC1Option]>,
- HelpText<"Allow GNU-extension keywords regardless of language standard">;
- def fgnu89_inline : Flag<["-"], "fgnu89-inline">, Group<f_Group>, Flags<[CC1Option]>,
---- tools/clang/lib/Driver/ToolChains/Clang.cpp.orig 2017-09-14 19:36:28.212240000 +0100
-+++ tools/clang/lib/Driver/ToolChains/Clang.cpp 2017-09-14 19:35:59.296165000 +0100
-@@ -3202,6 +3202,7 @@
-
- // Forward -f (flag) options which we can pass directly.
- Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls);
-+ Args.AddLastArg(CmdArgs, options::OPT_fformat_extensions);
- Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions);
- Args.AddLastArg(CmdArgs, options::OPT_fno_operator_names);
- // Emulated TLS is enabled by default on Android and OpenBSD, and can be enabled
-diff -ruN tools/clang/lib/Frontend/CompilerInvocation.cpp tools/clang/lib/Frontend/CompilerInvocation.cpp
---- tools/clang/lib/Frontend/CompilerInvocation.cpp 2015-07-30 22:47:41 UTC
-+++ tools/clang/lib/Frontend/CompilerInvocation.cpp
-@@ -1543,6 +1543,7 @@
- Opts.ShortWChar = Args.hasFlag(OPT_fshort_wchar, OPT_fno_short_wchar, false);
- Opts.ShortEnums = Args.hasArg(OPT_fshort_enums);
- Opts.Freestanding = Args.hasArg(OPT_ffreestanding);
-+ Opts.FormatExtensions = Args.hasArg(OPT_fformat_extensions);
- Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding;
- Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin);
- Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new);
diff --git a/devel/llvm60/files/clang/patch-fopenmp.diff b/devel/llvm60/files/clang/patch-fopenmp.diff
deleted file mode 100644
index 18932bd0d19c..000000000000
--- a/devel/llvm60/files/clang/patch-fopenmp.diff
+++ /dev/null
@@ -1,14 +0,0 @@
---- tools/clang/lib/Driver/ToolChains/CommonArgs.cpp.orig 2017-05-10 17:18:56.000000000 +0000
-+++ tools/clang/lib/Driver/ToolChains/CommonArgs.cpp 2017-05-10 23:01:17.087686000 +0000
-@@ -441,7 +441,10 @@
-
- switch (TC.getDriver().getOpenMPRuntime(Args)) {
- case Driver::OMPRT_OMP:
-- CmdArgs.push_back("-lomp");
-+ if (TC.getTriple().getOS() != llvm::Triple::FreeBSD || TC.isCrossCompiling() || !llvm::sys::fs::exists("%%LLVM_PREFIX%%/lib/libomp.so"))
-+ CmdArgs.push_back("-lomp");
-+ else
-+ CmdArgs.push_back("%%LLVM_PREFIX%%/lib/libomp.so");
- break;
- case Driver::OMPRT_GOMP:
- CmdArgs.push_back("-lgomp");
diff --git a/devel/llvm60/files/clang/patch-head-r331066.diff b/devel/llvm60/files/clang/patch-head-r331066.diff
deleted file mode 100644
index 7296a087bfb0..000000000000
--- a/devel/llvm60/files/clang/patch-head-r331066.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-r331066 | dim | 2018-03-16 19:04:13 +0100 (Fri, 16 Mar 2018) | 19 lines
-
-Pull in r321999 from upstream clang trunk (by Ivan A. Kosarev):
-
- [CodeGen] Fix TBAA info for accesses to members of base classes
-
- Resolves:
- Bug 35724 - regression (r315984): fatal error: error in backend:
- Broken function found (Did not see access type in access path!)
- https://bugs.llvm.org/show_bug.cgi?id=35724
-
- Differential Revision: https://reviews.llvm.org/D41547
-
-This fixes "Did not see access type in access path" fatal errors when
-building the devel/gdb port (version 8.1).
-
-Reported by: jbeich
-PR: 226658
-MFC after: 3 months
-X-MFC-With: r327952
-
-Index: tools/clang/lib/CodeGen/CGExpr.cpp
-===================================================================
---- tools/clang/lib/CodeGen/CGExpr.cpp (revision 331065)
-+++ tools/clang/lib/CodeGen/CGExpr.cpp (revision 331066)
-@@ -1034,8 +1034,12 @@ Address CodeGenFunction::EmitPointerWithAlignment(
- // Derived-to-base conversions.
- case CK_UncheckedDerivedToBase:
- case CK_DerivedToBase: {
-- Address Addr = EmitPointerWithAlignment(CE->getSubExpr(), BaseInfo,
-- TBAAInfo);
-+ // TODO: Support accesses to members of base classes in TBAA. For now, we
-+ // conservatively pretend that the complete object is of the base class
-+ // type.
-+ if (TBAAInfo)
-+ *TBAAInfo = CGM.getTBAAAccessInfo(E->getType());
-+ Address Addr = EmitPointerWithAlignment(CE->getSubExpr(), BaseInfo);
- auto Derived = CE->getSubExpr()->getType()->getPointeeCXXRecordDecl();
- return GetAddressOfBaseClass(Addr, Derived,
- CE->path_begin(), CE->path_end(),
diff --git a/devel/llvm60/files/clang/patch-head-r336227.diff b/devel/llvm60/files/clang/patch-head-r336227.diff
deleted file mode 100644
index fd543dc38489..000000000000
--- a/devel/llvm60/files/clang/patch-head-r336227.diff
+++ /dev/null
@@ -1,42 +0,0 @@
-r336227 | dim | 2018-07-12 21:02:59 +0200 (Thu, 12 Jul 2018) | 27 lines
-
-Pull in r336008 from upstream clang trunk:
-
- Request init/fini array on FreeBSD 12 and later
-
- Summary:
-
- It seems a bad idea to change the default in the middle of a release
- branch due to possible changes in global ctor / dtor ordering between
- .ctors and .init_array. With FreeBSD 11.0's release imminent lets
- change the default now for FreeBSD 12 (the current development
- stream) and later.
-
- FreeBSD rtld has supported .init_array / .fini_array for many years.
- As of Jan 1 2017 all supported FreeBSD releases and branches will
- have support.
-
- Reviewers: dim, brooks, arichardson
-
- Reviewed By: dim, brooks, arichardson
-
- Subscribers: bsdjhb, krytarowski, emaste, cfe-commits
-
- Differential Revision: https://reviews.llvm.org/D24867
-
-Requested by: jhb
-MFC after: 3 days
-
-Index: tools/clang/lib/Driver/ToolChains/Gnu.cpp
-===================================================================
---- tools/clang/lib/Driver/ToolChains/Gnu.cpp (revision 336226)
-+++ tools/clang/lib/Driver/ToolChains/Gnu.cpp (revision 336227)
-@@ -2375,6 +2375,8 @@ void Generic_ELF::addClangTargetOptions(const ArgL
- bool UseInitArrayDefault =
- getTriple().getArch() == llvm::Triple::aarch64 ||
- getTriple().getArch() == llvm::Triple::aarch64_be ||
-+ (getTriple().getOS() == llvm::Triple::FreeBSD &&
-+ getTriple().getOSMajorVersion() >= 12) ||
- (getTriple().getOS() == llvm::Triple::Linux &&
- ((!GCCInstallation.isValid() || !V.isOlderThan(4, 7, 0)) ||
- getTriple().isAndroid())) ||
diff --git a/devel/llvm60/files/clang/patch-head-r338697.diff b/devel/llvm60/files/clang/patch-head-r338697.diff
deleted file mode 100644
index eb7f11e83fcf..000000000000
--- a/devel/llvm60/files/clang/patch-head-r338697.diff
+++ /dev/null
@@ -1,104 +0,0 @@
-r338697 | dim | 2018-09-15 23:22:50 +0200 (Sat, 15 Sep 2018) | 21 lines
-
-Pull in r325478 from upstream clang trunk (by Ivan A. Kosarev):
-
- [CodeGen] Initialize large arrays by copying from a global
-
- Currently, clang compiles explicit initializers for array elements
- into series of store instructions. For large arrays of built-in types
- this results in bloated output code and significant amount of time
- spent on the instruction selection phase. This patch fixes the issue
- by initializing such arrays with global constants that store the
- binary image of the initializer.
-
- Differential Revision: https://reviews.llvm.org/D43181
-
-This should fix a compiler hang (and excessive memory usage) while
-building the science/rmg port.
-
-Approved by: re (kib)
-Reported by: yuri@tsoft.com
-See also: https://bugs.llvm.org/show_bug.cgi?id=38798
-MFC after: 3 days
-
-Index: tools/clang/lib/CodeGen/CGExprAgg.cpp
-===================================================================
---- tools/clang/lib/CodeGen/CGExprAgg.cpp (revision 338696)
-+++ tools/clang/lib/CodeGen/CGExprAgg.cpp (revision 338697)
-@@ -14,6 +14,7 @@
- #include "CodeGenFunction.h"
- #include "CGObjCRuntime.h"
- #include "CodeGenModule.h"
-+#include "ConstantEmitter.h"
- #include "clang/AST/ASTContext.h"
- #include "clang/AST/DeclCXX.h"
- #include "clang/AST/DeclTemplate.h"
-@@ -85,7 +86,7 @@ class AggExprEmitter : public StmtVisitor<AggExprE
- void EmitMoveFromReturnSlot(const Expr *E, RValue Src);
-
- void EmitArrayInit(Address DestPtr, llvm::ArrayType *AType,
-- QualType elementType, InitListExpr *E);
-+ QualType ArrayQTy, InitListExpr *E);
-
- AggValueSlot::NeedsGCBarriers_t needsGC(QualType T) {
- if (CGF.getLangOpts().getGC() && TypeRequiresGCollection(T))
-@@ -392,12 +393,15 @@ static bool isTrivialFiller(Expr *E) {
-
- /// \brief Emit initialization of an array from an initializer list.
- void AggExprEmitter::EmitArrayInit(Address DestPtr, llvm::ArrayType *AType,
-- QualType elementType, InitListExpr *E) {
-+ QualType ArrayQTy, InitListExpr *E) {
- uint64_t NumInitElements = E->getNumInits();
-
- uint64_t NumArrayElements = AType->getNumElements();
- assert(NumInitElements <= NumArrayElements);
-
-+ QualType elementType =
-+ CGF.getContext().getAsArrayType(ArrayQTy)->getElementType();
-+
- // DestPtr is an array*. Construct an elementType* by drilling
- // down a level.
- llvm::Value *zero = llvm::ConstantInt::get(CGF.SizeTy, 0);
-@@ -409,6 +413,29 @@ void AggExprEmitter::EmitArrayInit(Address DestPtr
- CharUnits elementAlign =
- DestPtr.getAlignment().alignmentOfArrayElement(elementSize);
-
-+ // Consider initializing the array by copying from a global. For this to be
-+ // more efficient than per-element initialization, the size of the elements
-+ // with explicit initializers should be large enough.
-+ if (NumInitElements * elementSize.getQuantity() > 16 &&
-+ elementType.isTriviallyCopyableType(CGF.getContext())) {
-+ CodeGen::CodeGenModule &CGM = CGF.CGM;
-+ ConstantEmitter Emitter(CGM);
-+ LangAS AS = ArrayQTy.getAddressSpace();
-+ if (llvm::Constant *C = Emitter.tryEmitForInitializer(E, AS, ArrayQTy)) {
-+ auto GV = new llvm::GlobalVariable(
-+ CGM.getModule(), C->getType(),
-+ CGM.isTypeConstant(ArrayQTy, /* ExcludeCtorDtor= */ true),
-+ llvm::GlobalValue::PrivateLinkage, C, "constinit",
-+ /* InsertBefore= */ nullptr, llvm::GlobalVariable::NotThreadLocal,
-+ CGM.getContext().getTargetAddressSpace(AS));
-+ Emitter.finalize(GV);
-+ CharUnits Align = CGM.getContext().getTypeAlignInChars(ArrayQTy);
-+ GV->setAlignment(Align.getQuantity());
-+ EmitFinalDestCopy(ArrayQTy, CGF.MakeAddrLValue(GV, ArrayQTy, Align));
-+ return;
-+ }
-+ }
-+
- // Exception safety requires us to destroy all the
- // already-constructed members if an initializer throws.
- // For that, we'll need an EH cleanup.
-@@ -1156,11 +1183,8 @@ void AggExprEmitter::VisitInitListExpr(InitListExp
-
- // Handle initialization of an array.
- if (E->getType()->isArrayType()) {
-- QualType elementType =
-- CGF.getContext().getAsArrayType(E->getType())->getElementType();
--
- auto AType = cast<llvm::ArrayType>(Dest.getAddress().getElementType());
-- EmitArrayInit(Dest.getAddress(), AType, elementType, E);
-+ EmitArrayInit(Dest.getAddress(), AType, E->getType(), E);
- return;
- }
-
diff --git a/devel/llvm60/files/clang/patch-head-r339019.diff b/devel/llvm60/files/clang/patch-head-r339019.diff
deleted file mode 100644
index 240772d184c2..000000000000
--- a/devel/llvm60/files/clang/patch-head-r339019.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-r339019 | emaste | 2018-09-29 22:01:23 +0200 (Sat, 29 Sep 2018) | 15 lines
-
-clang: allow ifunc resolvers to accept arguments
-
-Previously Clang required ifunc resolution functions to take no
-arguments, presumably because GCC documented ifunc resolvers as taking
-no arguments. However, GCC accepts resolvers accepting arguments, and
-our rtld passes CPU ID information (cpuid, hwcap, etc.) to ifunc
-resolvers. Just remove the check from the in-tree compiler for our in-
-tree compiler; a different (per-OS) approach may be required upstream.
-
-Reported by: mjg
-Approved by: re (rgrimes)
-MFC after: 1 week
-Relnotes: Yes
-Sponsored by: The FreeBSD Foundation
-
-Index: tools/clang/lib/CodeGen/CodeGenModule.cpp
-===================================================================
---- tools/clang/lib/CodeGen/CodeGenModule.cpp (revision 339018)
-+++ tools/clang/lib/CodeGen/CodeGenModule.cpp (revision 339019)
-@@ -321,8 +321,6 @@ void CodeGenModule::checkAliases() {
- assert(FTy);
- if (!FTy->getReturnType()->isPointerTy())
- Diags.Report(Location, diag::err_ifunc_resolver_return);
-- if (FTy->getNumParams())
-- Diags.Report(Location, diag::err_ifunc_resolver_params);
- }
-
- llvm::Constant *Aliasee = Alias->getIndirectSymbol();
diff --git a/devel/llvm60/files/clang/patch-stable12-r342281.diff b/devel/llvm60/files/clang/patch-stable12-r342281.diff
deleted file mode 100644
index 4a6e9f615889..000000000000
--- a/devel/llvm60/files/clang/patch-stable12-r342281.diff
+++ /dev/null
@@ -1,834 +0,0 @@
-r342281 | dim | 2018-12-20 19:28:53 +0100 (Thu, 20 Dec 2018) | 24 lines
-
-Pull in r329671 from upstream clang trunk (by Akira Hatanaka):
-
- [ExprConstant] Use an AST node and a version number as a key to
- create an APValue and retrieve it from map Temporaries.
-
- The version number is needed when a single AST node is visited
- multiple times and is used to create APValues that are required to be
- distinct from each other (for example, MaterializeTemporaryExprs in
- default arguments and VarDecls in loops).
-
- rdar://problem/36505742
-
- Differential Revision: https://reviews.llvm.org/D42776
-
-This should fix 'Assertion failed: (Result.isUninit() && "temporary
-created multiple times"), function createTemporary' errors (if
-assertions are enabled, otherwise the compiler internal state might go
-bad), when building the graphics/rawtherapee port.
-
-Direct commit to stable/11 and stable/12, since head already has clang
-7.0.1, which includes this change.
-
-PR: 234144
-
-Index: tools/clang/include/clang/AST/APValue.h
-===================================================================
---- tools/clang/include/clang/AST/APValue.h (revision 342280)
-+++ tools/clang/include/clang/AST/APValue.h (revision 342281)
-@@ -53,7 +53,58 @@ class APValue {
- MemberPointer,
- AddrLabelDiff
- };
-- typedef llvm::PointerUnion<const ValueDecl *, const Expr *> LValueBase;
-+
-+ class LValueBase {
-+ public:
-+ typedef llvm::PointerUnion<const ValueDecl *, const Expr *> PtrTy;
-+
-+ LValueBase() : CallIndex(0), Version(0) {}
-+
-+ template <class T>
-+ LValueBase(T P, unsigned I = 0, unsigned V = 0)
-+ : Ptr(P), CallIndex(I), Version(V) {}
-+
-+ template <class T>
-+ bool is() const { return Ptr.is<T>(); }
-+
-+ template <class T>
-+ T get() const { return Ptr.get<T>(); }
-+
-+ template <class T>
-+ T dyn_cast() const { return Ptr.dyn_cast<T>(); }
-+
-+ void *getOpaqueValue() const;
-+
-+ bool isNull() const;
-+
-+ explicit operator bool () const;
-+
-+ PtrTy getPointer() const {
-+ return Ptr;
-+ }
-+
-+ unsigned getCallIndex() const {
-+ return CallIndex;
-+ }
-+
-+ void setCallIndex(unsigned Index) {
-+ CallIndex = Index;
-+ }
-+
-+ unsigned getVersion() const {
-+ return Version;
-+ }
-+
-+ bool operator==(const LValueBase &Other) const {
-+ return Ptr == Other.Ptr && CallIndex == Other.CallIndex &&
-+ Version == Other.Version;
-+ }
-+
-+ private:
-+ PtrTy Ptr;
-+ unsigned CallIndex, Version;
-+ };
-+
- typedef llvm::PointerIntPair<const Decl *, 1, bool> BaseOrMemberType;
- union LValuePathEntry {
- /// BaseOrMember - The FieldDecl or CXXRecordDecl indicating the next item
-@@ -135,15 +186,15 @@ class APValue {
- }
- APValue(const APValue &RHS);
- APValue(APValue &&RHS) : Kind(Uninitialized) { swap(RHS); }
-- APValue(LValueBase B, const CharUnits &O, NoLValuePath N, unsigned CallIndex,
-+ APValue(LValueBase B, const CharUnits &O, NoLValuePath N,
- bool IsNullPtr = false)
- : Kind(Uninitialized) {
-- MakeLValue(); setLValue(B, O, N, CallIndex, IsNullPtr);
-+ MakeLValue(); setLValue(B, O, N, IsNullPtr);
- }
- APValue(LValueBase B, const CharUnits &O, ArrayRef<LValuePathEntry> Path,
-- bool OnePastTheEnd, unsigned CallIndex, bool IsNullPtr = false)
-+ bool OnePastTheEnd, bool IsNullPtr = false)
- : Kind(Uninitialized) {
-- MakeLValue(); setLValue(B, O, Path, OnePastTheEnd, CallIndex, IsNullPtr);
-+ MakeLValue(); setLValue(B, O, Path, OnePastTheEnd, IsNullPtr);
- }
- APValue(UninitArray, unsigned InitElts, unsigned Size) : Kind(Uninitialized) {
- MakeArray(InitElts, Size);
-@@ -255,6 +306,7 @@ class APValue {
- bool hasLValuePath() const;
- ArrayRef<LValuePathEntry> getLValuePath() const;
- unsigned getLValueCallIndex() const;
-+ unsigned getLValueVersion() const;
- bool isNullPointer() const;
-
- APValue &getVectorElt(unsigned I) {
-@@ -376,10 +428,10 @@ class APValue {
- ((ComplexAPFloat *)(char *)Data.buffer)->Imag = std::move(I);
- }
- void setLValue(LValueBase B, const CharUnits &O, NoLValuePath,
-- unsigned CallIndex, bool IsNullPtr);
-+ bool IsNullPtr);
- void setLValue(LValueBase B, const CharUnits &O,
- ArrayRef<LValuePathEntry> Path, bool OnePastTheEnd,
-- unsigned CallIndex, bool IsNullPtr);
-+ bool IsNullPtr);
- void setUnion(const FieldDecl *Field, const APValue &Value) {
- assert(isUnion() && "Invalid accessor");
- ((UnionData*)(char*)Data.buffer)->Field = Field;
-@@ -451,4 +503,14 @@ class APValue {
-
- } // end namespace clang.
-
-+namespace llvm {
-+template<> struct DenseMapInfo<clang::APValue::LValueBase> {
-+ static clang::APValue::LValueBase getEmptyKey();
-+ static clang::APValue::LValueBase getTombstoneKey();
-+ static unsigned getHashValue(const clang::APValue::LValueBase &Base);
-+ static bool isEqual(const clang::APValue::LValueBase &LHS,
-+ const clang::APValue::LValueBase &RHS);
-+};
-+}
-+
- #endif
-Index: tools/clang/lib/AST/APValue.cpp
-===================================================================
---- tools/clang/lib/AST/APValue.cpp (revision 342280)
-+++ tools/clang/lib/AST/APValue.cpp (revision 342281)
-@@ -23,14 +23,57 @@ using namespace clang;
-
- namespace {
- struct LVBase {
-- llvm::PointerIntPair<APValue::LValueBase, 1, bool> BaseAndIsOnePastTheEnd;
-+ APValue::LValueBase Base;
- CharUnits Offset;
- unsigned PathLength;
-- unsigned CallIndex;
-- bool IsNullPtr;
-+ bool IsNullPtr : 1;
-+ bool IsOnePastTheEnd : 1;
- };
- }
-
-+void *APValue::LValueBase::getOpaqueValue() const {
-+ return Ptr.getOpaqueValue();
-+}
-+
-+bool APValue::LValueBase::isNull() const {
-+ return Ptr.isNull();
-+}
-+
-+APValue::LValueBase::operator bool () const {
-+ return static_cast<bool>(Ptr);
-+}
-+
-+clang::APValue::LValueBase
-+llvm::DenseMapInfo<clang::APValue::LValueBase>::getEmptyKey() {
-+ return clang::APValue::LValueBase(
-+ DenseMapInfo<clang::APValue::LValueBase::PtrTy>::getEmptyKey(),
-+ DenseMapInfo<unsigned>::getEmptyKey(),
-+ DenseMapInfo<unsigned>::getEmptyKey());
-+}
-+
-+clang::APValue::LValueBase
-+llvm::DenseMapInfo<clang::APValue::LValueBase>::getTombstoneKey() {
-+ return clang::APValue::LValueBase(
-+ DenseMapInfo<clang::APValue::LValueBase::PtrTy>::getTombstoneKey(),
-+ DenseMapInfo<unsigned>::getTombstoneKey(),
-+ DenseMapInfo<unsigned>::getTombstoneKey());
-+}
-+
-+unsigned llvm::DenseMapInfo<clang::APValue::LValueBase>::getHashValue(
-+ const clang::APValue::LValueBase &Base) {
-+ llvm::FoldingSetNodeID ID;
-+ ID.AddPointer(Base.getOpaqueValue());
-+ ID.AddInteger(Base.getCallIndex());
-+ ID.AddInteger(Base.getVersion());
-+ return ID.ComputeHash();
-+}
-+
-+bool llvm::DenseMapInfo<clang::APValue::LValueBase>::isEqual(
-+ const clang::APValue::LValueBase &LHS,
-+ const clang::APValue::LValueBase &RHS) {
-+ return LHS == RHS;
-+}
-+
- struct APValue::LV : LVBase {
- static const unsigned InlinePathSpace =
- (DataSize - sizeof(LVBase)) / sizeof(LValuePathEntry);
-@@ -150,11 +193,10 @@ APValue::APValue(const APValue &RHS) : Kind(Uninit
- MakeLValue();
- if (RHS.hasLValuePath())
- setLValue(RHS.getLValueBase(), RHS.getLValueOffset(), RHS.getLValuePath(),
-- RHS.isLValueOnePastTheEnd(), RHS.getLValueCallIndex(),
-- RHS.isNullPointer());
-+ RHS.isLValueOnePastTheEnd(), RHS.isNullPointer());
- else
- setLValue(RHS.getLValueBase(), RHS.getLValueOffset(), NoLValuePath(),
-- RHS.getLValueCallIndex(), RHS.isNullPointer());
-+ RHS.isNullPointer());
- break;
- case Array:
- MakeArray(RHS.getArrayInitializedElts(), RHS.getArraySize());
-@@ -552,12 +594,12 @@ std::string APValue::getAsString(ASTContext &Ctx,
-
- const APValue::LValueBase APValue::getLValueBase() const {
- assert(isLValue() && "Invalid accessor");
-- return ((const LV*)(const void*)Data.buffer)->BaseAndIsOnePastTheEnd.getPointer();
-+ return ((const LV*)(const void*)Data.buffer)->Base;
- }
-
- bool APValue::isLValueOnePastTheEnd() const {
- assert(isLValue() && "Invalid accessor");
-- return ((const LV*)(const void*)Data.buffer)->BaseAndIsOnePastTheEnd.getInt();
-+ return ((const LV*)(const void*)Data.buffer)->IsOnePastTheEnd;
- }
-
- CharUnits &APValue::getLValueOffset() {
-@@ -578,9 +620,14 @@ ArrayRef<APValue::LValuePathEntry> APValue::getLVa
-
- unsigned APValue::getLValueCallIndex() const {
- assert(isLValue() && "Invalid accessor");
-- return ((const LV*)(const char*)Data.buffer)->CallIndex;
-+ return ((const LV*)(const char*)Data.buffer)->Base.getCallIndex();
- }
-
-+unsigned APValue::getLValueVersion() const {
-+ assert(isLValue() && "Invalid accessor");
-+ return ((const LV*)(const char*)Data.buffer)->Base.getVersion();
-+}
-+
- bool APValue::isNullPointer() const {
- assert(isLValue() && "Invalid usage");
- return ((const LV*)(const char*)Data.buffer)->IsNullPtr;
-@@ -587,13 +634,12 @@ bool APValue::isNullPointer() const {
- }
-
- void APValue::setLValue(LValueBase B, const CharUnits &O, NoLValuePath,
-- unsigned CallIndex, bool IsNullPtr) {
-+ bool IsNullPtr) {
- assert(isLValue() && "Invalid accessor");
- LV &LVal = *((LV*)(char*)Data.buffer);
-- LVal.BaseAndIsOnePastTheEnd.setPointer(B);
-- LVal.BaseAndIsOnePastTheEnd.setInt(false);
-+ LVal.Base = B;
-+ LVal.IsOnePastTheEnd = false;
- LVal.Offset = O;
-- LVal.CallIndex = CallIndex;
- LVal.resizePath((unsigned)-1);
- LVal.IsNullPtr = IsNullPtr;
- }
-@@ -600,13 +646,12 @@ void APValue::setLValue(LValueBase B, const CharUn
-
- void APValue::setLValue(LValueBase B, const CharUnits &O,
- ArrayRef<LValuePathEntry> Path, bool IsOnePastTheEnd,
-- unsigned CallIndex, bool IsNullPtr) {
-+ bool IsNullPtr) {
- assert(isLValue() && "Invalid accessor");
- LV &LVal = *((LV*)(char*)Data.buffer);
-- LVal.BaseAndIsOnePastTheEnd.setPointer(B);
-- LVal.BaseAndIsOnePastTheEnd.setInt(IsOnePastTheEnd);
-+ LVal.Base = B;
-+ LVal.IsOnePastTheEnd = IsOnePastTheEnd;
- LVal.Offset = O;
-- LVal.CallIndex = CallIndex;
- LVal.resizePath(Path.size());
- memcpy(LVal.getPath(), Path.data(), Path.size() * sizeof(LValuePathEntry));
- LVal.IsNullPtr = IsNullPtr;
-Index: tools/clang/lib/AST/ExprConstant.cpp
-===================================================================
---- tools/clang/lib/AST/ExprConstant.cpp (revision 342280)
-+++ tools/clang/lib/AST/ExprConstant.cpp (revision 342281)
-@@ -446,8 +446,8 @@ namespace {
-
- // Note that we intentionally use std::map here so that references to
- // values are stable.
-- typedef std::map<const void*, APValue> MapTy;
-- typedef MapTy::const_iterator temp_iterator;
-+ typedef std::pair<const void *, unsigned> MapKeyTy;
-+ typedef std::map<MapKeyTy, APValue> MapTy;
- /// Temporaries - Temporary lvalues materialized within this stack frame.
- MapTy Temporaries;
-
-@@ -457,6 +457,20 @@ namespace {
- /// Index - The call index of this call.
- unsigned Index;
-
-+ /// The stack of integers for tracking version numbers for temporaries.
-+ SmallVector<unsigned, 2> TempVersionStack = {1};
-+ unsigned CurTempVersion = TempVersionStack.back();
-+
-+ unsigned getTempVersion() const { return TempVersionStack.back(); }
-+
-+ void pushTempVersion() {
-+ TempVersionStack.push_back(++CurTempVersion);
-+ }
-+
-+ void popTempVersion() {
-+ TempVersionStack.pop_back();
-+ }
-+
- // FIXME: Adding this to every 'CallStackFrame' may have a nontrivial impact
- // on the overall stack usage of deeply-recursing constexpr evaluataions.
- // (We should cache this map rather than recomputing it repeatedly.)
-@@ -473,10 +487,36 @@ namespace {
- APValue *Arguments);
- ~CallStackFrame();
-
-- APValue *getTemporary(const void *Key) {
-- MapTy::iterator I = Temporaries.find(Key);
-- return I == Temporaries.end() ? nullptr : &I->second;
-+ // Return the temporary for Key whose version number is Version.
-+ APValue *getTemporary(const void *Key, unsigned Version) {
-+ MapKeyTy KV(Key, Version);
-+ auto LB = Temporaries.lower_bound(KV);
-+ if (LB != Temporaries.end() && LB->first == KV)
-+ return &LB->second;
-+ // Pair (Key,Version) wasn't found in the map. Check that no elements
-+ // in the map have 'Key' as their key.
-+ assert((LB == Temporaries.end() || LB->first.first != Key) &&
-+ (LB == Temporaries.begin() || std::prev(LB)->first.first != Key) &&
-+ "Element with key 'Key' found in map");
-+ return nullptr;
- }
-+
-+ // Return the current temporary for Key in the map.
-+ APValue *getCurrentTemporary(const void *Key) {
-+ auto UB = Temporaries.upper_bound(MapKeyTy(Key, UINT_MAX));
-+ if (UB != Temporaries.begin() && std::prev(UB)->first.first == Key)
-+ return &std::prev(UB)->second;
-+ return nullptr;
-+ }
-+
-+ // Return the version number of the current temporary for Key.
-+ unsigned getCurrentTemporaryVersion(const void *Key) const {
-+ auto UB = Temporaries.upper_bound(MapKeyTy(Key, UINT_MAX));
-+ if (UB != Temporaries.begin() && std::prev(UB)->first.first == Key)
-+ return std::prev(UB)->first.second;
-+ return 0;
-+ }
-+
- APValue &createTemporary(const void *Key, bool IsLifetimeExtended);
- };
-
-@@ -606,7 +646,8 @@ namespace {
-
- /// EvaluatingObject - Pair of the AST node that an lvalue represents and
- /// the call index that that lvalue was allocated in.
-- typedef std::pair<APValue::LValueBase, unsigned> EvaluatingObject;
-+ typedef std::pair<APValue::LValueBase, std::pair<unsigned, unsigned>>
-+ EvaluatingObject;
-
- /// EvaluatingConstructors - Set of objects that are currently being
- /// constructed.
-@@ -625,8 +666,10 @@ namespace {
- }
- };
-
-- bool isEvaluatingConstructor(APValue::LValueBase Decl, unsigned CallIndex) {
-- return EvaluatingConstructors.count(EvaluatingObject(Decl, CallIndex));
-+ bool isEvaluatingConstructor(APValue::LValueBase Decl, unsigned CallIndex,
-+ unsigned Version) {
-+ return EvaluatingConstructors.count(
-+ EvaluatingObject(Decl, {CallIndex, Version}));
- }
-
- /// The current array initialization index, if we're performing array
-@@ -722,7 +765,7 @@ namespace {
- void setEvaluatingDecl(APValue::LValueBase Base, APValue &Value) {
- EvaluatingDecl = Base;
- EvaluatingDeclValue = &Value;
-- EvaluatingConstructors.insert({Base, 0});
-+ EvaluatingConstructors.insert({Base, {0, 0}});
- }
-
- const LangOptions &getLangOpts() const { return Ctx.getLangOpts(); }
-@@ -1086,11 +1129,16 @@ namespace {
- unsigned OldStackSize;
- public:
- ScopeRAII(EvalInfo &Info)
-- : Info(Info), OldStackSize(Info.CleanupStack.size()) {}
-+ : Info(Info), OldStackSize(Info.CleanupStack.size()) {
-+ // Push a new temporary version. This is needed to distinguish between
-+ // temporaries created in different iterations of a loop.
-+ Info.CurrentCall->pushTempVersion();
-+ }
- ~ScopeRAII() {
- // Body moved to a static method to encourage the compiler to inline away
- // instances of this class.
- cleanup(Info, OldStackSize);
-+ Info.CurrentCall->popTempVersion();
- }
- private:
- static void cleanup(EvalInfo &Info, unsigned OldStackSize) {
-@@ -1170,7 +1218,8 @@ CallStackFrame::~CallStackFrame() {
-
- APValue &CallStackFrame::createTemporary(const void *Key,
- bool IsLifetimeExtended) {
-- APValue &Result = Temporaries[Key];
-+ unsigned Version = Info.CurrentCall->getTempVersion();
-+ APValue &Result = Temporaries[MapKeyTy(Key, Version)];
- assert(Result.isUninit() && "temporary created multiple times");
- Info.CleanupStack.push_back(Cleanup(&Result, IsLifetimeExtended));
- return Result;
-@@ -1262,27 +1311,27 @@ namespace {
- struct LValue {
- APValue::LValueBase Base;
- CharUnits Offset;
-- unsigned InvalidBase : 1;
-- unsigned CallIndex : 31;
- SubobjectDesignator Designator;
-- bool IsNullPtr;
-+ bool IsNullPtr : 1;
-+ bool InvalidBase : 1;
-
- const APValue::LValueBase getLValueBase() const { return Base; }
- CharUnits &getLValueOffset() { return Offset; }
- const CharUnits &getLValueOffset() const { return Offset; }
-- unsigned getLValueCallIndex() const { return CallIndex; }
- SubobjectDesignator &getLValueDesignator() { return Designator; }
- const SubobjectDesignator &getLValueDesignator() const { return Designator;}
- bool isNullPointer() const { return IsNullPtr;}
-
-+ unsigned getLValueCallIndex() const { return Base.getCallIndex(); }
-+ unsigned getLValueVersion() const { return Base.getVersion(); }
-+
- void moveInto(APValue &V) const {
- if (Designator.Invalid)
-- V = APValue(Base, Offset, APValue::NoLValuePath(), CallIndex,
-- IsNullPtr);
-+ V = APValue(Base, Offset, APValue::NoLValuePath(), IsNullPtr);
- else {
- assert(!InvalidBase && "APValues can't handle invalid LValue bases");
- V = APValue(Base, Offset, Designator.Entries,
-- Designator.IsOnePastTheEnd, CallIndex, IsNullPtr);
-+ Designator.IsOnePastTheEnd, IsNullPtr);
- }
- }
- void setFrom(ASTContext &Ctx, const APValue &V) {
-@@ -1290,12 +1339,11 @@ namespace {
- Base = V.getLValueBase();
- Offset = V.getLValueOffset();
- InvalidBase = false;
-- CallIndex = V.getLValueCallIndex();
- Designator = SubobjectDesignator(Ctx, V);
- IsNullPtr = V.isNullPointer();
- }
-
-- void set(APValue::LValueBase B, unsigned I = 0, bool BInvalid = false) {
-+ void set(APValue::LValueBase B, bool BInvalid = false) {
- #ifndef NDEBUG
- // We only allow a few types of invalid bases. Enforce that here.
- if (BInvalid) {
-@@ -1308,7 +1356,6 @@ namespace {
- Base = B;
- Offset = CharUnits::fromQuantity(0);
- InvalidBase = BInvalid;
-- CallIndex = I;
- Designator = SubobjectDesignator(getType(B));
- IsNullPtr = false;
- }
-@@ -1317,13 +1364,12 @@ namespace {
- Base = (Expr *)nullptr;
- Offset = CharUnits::fromQuantity(TargetVal);
- InvalidBase = false;
-- CallIndex = 0;
- Designator = SubobjectDesignator(PointerTy->getPointeeType());
- IsNullPtr = true;
- }
-
- void setInvalid(APValue::LValueBase B, unsigned I = 0) {
-- set(B, I, true);
-+ set(B, true);
- }
-
- // Check that this LValue is not based on a null pointer. If it is, produce
-@@ -1525,6 +1571,15 @@ static bool EvaluateAsRValue(EvalInfo &Info, const
- // Misc utilities
- //===----------------------------------------------------------------------===//
-
-+/// A helper function to create a temporary and set an LValue.
-+template <class KeyTy>
-+static APValue &createTemporary(const KeyTy *Key, bool IsLifetimeExtended,
-+ LValue &LV, CallStackFrame &Frame) {
-+ LV.set({Key, Frame.Info.CurrentCall->Index,
-+ Frame.Info.CurrentCall->getTempVersion()});
-+ return Frame.createTemporary(Key, IsLifetimeExtended);
-+}
-+
- /// Negate an APSInt in place, converting it to a signed form if necessary, and
- /// preserving its value (by extending by up to one bit as needed).
- static void negateAsSigned(APSInt &Int) {
-@@ -1854,7 +1909,7 @@ static const ValueDecl *GetLValueBaseDecl(const LV
- }
-
- static bool IsLiteralLValue(const LValue &Value) {
-- if (Value.CallIndex)
-+ if (Value.getLValueCallIndex())
- return false;
- const Expr *E = Value.Base.dyn_cast<const Expr*>();
- return E && !isa<MaterializeTemporaryExpr>(E);
-@@ -2404,7 +2459,7 @@ static bool handleLValueToRValueConversion(EvalInf
- /// \param Result Filled in with a pointer to the value of the variable.
- static bool evaluateVarDeclInit(EvalInfo &Info, const Expr *E,
- const VarDecl *VD, CallStackFrame *Frame,
-- APValue *&Result) {
-+ APValue *&Result, const LValue *LVal) {
-
- // If this is a parameter to an active constexpr function call, perform
- // argument substitution.
-@@ -2423,7 +2478,8 @@ static bool evaluateVarDeclInit(EvalInfo &Info, co
-
- // If this is a local variable, dig out its value.
- if (Frame) {
-- Result = Frame->getTemporary(VD);
-+ Result = LVal ? Frame->getTemporary(VD, LVal->getLValueVersion())
-+ : Frame->getCurrentTemporary(VD);
- if (!Result) {
- // Assume variables referenced within a lambda's call operator that were
- // not declared within the call operator are captures and during checking
-@@ -3000,8 +3056,8 @@ static CompleteObject findCompleteObject(EvalInfo
- }
-
- CallStackFrame *Frame = nullptr;
-- if (LVal.CallIndex) {
-- Frame = Info.getCallFrame(LVal.CallIndex);
-+ if (LVal.getLValueCallIndex()) {
-+ Frame = Info.getCallFrame(LVal.getLValueCallIndex());
- if (!Frame) {
- Info.FFDiag(E, diag::note_constexpr_lifetime_ended, 1)
- << AK << LVal.Base.is<const ValueDecl*>();
-@@ -3113,7 +3169,7 @@ static CompleteObject findCompleteObject(EvalInfo
- }
- }
-
-- if (!evaluateVarDeclInit(Info, E, VD, Frame, BaseVal))
-+ if (!evaluateVarDeclInit(Info, E, VD, Frame, BaseVal, &LVal))
- return CompleteObject();
- } else {
- const Expr *Base = LVal.Base.dyn_cast<const Expr*>();
-@@ -3155,7 +3211,7 @@ static CompleteObject findCompleteObject(EvalInfo
- return CompleteObject();
- }
- } else {
-- BaseVal = Frame->getTemporary(Base);
-+ BaseVal = Frame->getTemporary(Base, LVal.Base.getVersion());
- assert(BaseVal && "missing value for temporary");
- }
-
-@@ -3175,7 +3231,9 @@ static CompleteObject findCompleteObject(EvalInfo
- // During the construction of an object, it is not yet 'const'.
- // FIXME: This doesn't do quite the right thing for const subobjects of the
- // object under construction.
-- if (Info.isEvaluatingConstructor(LVal.getLValueBase(), LVal.CallIndex)) {
-+ if (Info.isEvaluatingConstructor(LVal.getLValueBase(),
-+ LVal.getLValueCallIndex(),
-+ LVal.getLValueVersion())) {
- BaseType = Info.Ctx.getCanonicalType(BaseType);
- BaseType.removeLocalConst();
- }
-@@ -3212,7 +3270,7 @@ static bool handleLValueToRValueConversion(EvalInf
-
- // Check for special cases where there is no existing APValue to look at.
- const Expr *Base = LVal.Base.dyn_cast<const Expr*>();
-- if (Base && !LVal.CallIndex && !Type.isVolatileQualified()) {
-+ if (Base && !LVal.getLValueCallIndex() && !Type.isVolatileQualified()) {
- if (const CompoundLiteralExpr *CLE = dyn_cast<CompoundLiteralExpr>(Base)) {
- // In C99, a CompoundLiteralExpr is an lvalue, and we defer evaluating the
- // initializer until now for such expressions. Such an expression can't be
-@@ -3715,8 +3773,7 @@ static bool EvaluateVarDecl(EvalInfo &Info, const
- return true;
-
- LValue Result;
-- Result.set(VD, Info.CurrentCall->Index);
-- APValue &Val = Info.CurrentCall->createTemporary(VD, true);
-+ APValue &Val = createTemporary(VD, true, Result, *Info.CurrentCall);
-
- const Expr *InitE = VD->getInit();
- if (!InitE) {
-@@ -3772,6 +3829,19 @@ struct StmtResult {
- /// The location containing the result, if any (used to support RVO).
- const LValue *Slot;
- };
-+
-+struct TempVersionRAII {
-+ CallStackFrame &Frame;
-+
-+ TempVersionRAII(CallStackFrame &Frame) : Frame(Frame) {
-+ Frame.pushTempVersion();
-+ }
-+
-+ ~TempVersionRAII() {
-+ Frame.popTempVersion();
-+ }
-+};
-+
- }
-
- static EvalStmtResult EvaluateStmt(StmtResult &Result, EvalInfo &Info,
-@@ -4329,7 +4399,8 @@ static bool HandleConstructorCall(const Expr *E, c
- }
-
- EvalInfo::EvaluatingConstructorRAII EvalObj(
-- Info, {This.getLValueBase(), This.CallIndex});
-+ Info, {This.getLValueBase(),
-+ {This.getLValueCallIndex(), This.getLValueVersion()}});
- CallStackFrame Frame(Info, CallLoc, Definition, &This, ArgValues);
-
- // FIXME: Creating an APValue just to hold a nonexistent return value is
-@@ -4578,9 +4649,12 @@ class ExprEvaluatorBase
- { return StmtVisitorTy::Visit(E->getResultExpr()); }
- bool VisitSubstNonTypeTemplateParmExpr(const SubstNonTypeTemplateParmExpr *E)
- { return StmtVisitorTy::Visit(E->getReplacement()); }
-- bool VisitCXXDefaultArgExpr(const CXXDefaultArgExpr *E)
-- { return StmtVisitorTy::Visit(E->getExpr()); }
-+ bool VisitCXXDefaultArgExpr(const CXXDefaultArgExpr *E) {
-+ TempVersionRAII RAII(*Info.CurrentCall);
-+ return StmtVisitorTy::Visit(E->getExpr());
-+ }
- bool VisitCXXDefaultInitExpr(const CXXDefaultInitExpr *E) {
-+ TempVersionRAII RAII(*Info.CurrentCall);
- // The initializer may not have been parsed yet, or might be erroneous.
- if (!E->getExpr())
- return Error(E);
-@@ -4658,7 +4732,7 @@ class ExprEvaluatorBase
- }
-
- bool VisitOpaqueValueExpr(const OpaqueValueExpr *E) {
-- if (APValue *Value = Info.CurrentCall->getTemporary(E))
-+ if (APValue *Value = Info.CurrentCall->getCurrentTemporary(E))
- return DerivedSuccess(*Value, E);
-
- const Expr *Source = E->getSourceExpr();
-@@ -5216,7 +5290,8 @@ bool LValueExprEvaluator::VisitVarDecl(const Expr
-
- if (!VD->getType()->isReferenceType()) {
- if (Frame) {
-- Result.set(VD, Frame->Index);
-+ Result.set({VD, Frame->Index,
-+ Info.CurrentCall->getCurrentTemporaryVersion(VD)});
- return true;
- }
- return Success(VD);
-@@ -5223,7 +5298,7 @@ bool LValueExprEvaluator::VisitVarDecl(const Expr
- }
-
- APValue *V;
-- if (!evaluateVarDeclInit(Info, E, VD, Frame, V))
-+ if (!evaluateVarDeclInit(Info, E, VD, Frame, V, nullptr))
- return false;
- if (V->isUninit()) {
- if (!Info.checkingPotentialConstantExpression())
-@@ -5255,9 +5330,8 @@ bool LValueExprEvaluator::VisitMaterializeTemporar
- *Value = APValue();
- Result.set(E);
- } else {
-- Value = &Info.CurrentCall->
-- createTemporary(E, E->getStorageDuration() == SD_Automatic);
-- Result.set(E, Info.CurrentCall->Index);
-+ Value = &createTemporary(E, E->getStorageDuration() == SD_Automatic, Result,
-+ *Info.CurrentCall);
- }
-
- QualType Type = Inner->getType();
-@@ -5736,7 +5810,6 @@ bool PointerExprEvaluator::VisitCastExpr(const Cas
- Result.Base = (Expr*)nullptr;
- Result.InvalidBase = false;
- Result.Offset = CharUnits::fromQuantity(N);
-- Result.CallIndex = 0;
- Result.Designator.setInvalid();
- Result.IsNullPtr = false;
- return true;
-@@ -5752,9 +5825,9 @@ bool PointerExprEvaluator::VisitCastExpr(const Cas
- if (!evaluateLValue(SubExpr, Result))
- return false;
- } else {
-- Result.set(SubExpr, Info.CurrentCall->Index);
-- if (!EvaluateInPlace(Info.CurrentCall->createTemporary(SubExpr, false),
-- Info, Result, SubExpr))
-+ APValue &Value = createTemporary(SubExpr, false, Result,
-+ *Info.CurrentCall);
-+ if (!EvaluateInPlace(Value, Info, Result, SubExpr))
- return false;
- }
- // The result is a pointer to the first element of the array.
-@@ -6520,9 +6593,8 @@ class TemporaryExprEvaluator
-
- /// Visit an expression which constructs the value of this temporary.
- bool VisitConstructExpr(const Expr *E) {
-- Result.set(E, Info.CurrentCall->Index);
-- return EvaluateInPlace(Info.CurrentCall->createTemporary(E, false),
-- Info, Result, E);
-+ APValue &Value = createTemporary(E, false, Result, *Info.CurrentCall);
-+ return EvaluateInPlace(Value, Info, Result, E);
- }
-
- bool VisitCastExpr(const CastExpr *E) {
-@@ -8007,7 +8079,8 @@ static bool HasSameBase(const LValue &A, const LVa
- }
-
- return IsGlobalLValue(A.getLValueBase()) ||
-- A.getLValueCallIndex() == B.getLValueCallIndex();
-+ (A.getLValueCallIndex() == B.getLValueCallIndex() &&
-+ A.getLValueVersion() == B.getLValueVersion());
- }
-
- /// \brief Determine whether this is a pointer past the end of the complete
-@@ -9941,15 +10014,13 @@ static bool Evaluate(APValue &Result, EvalInfo &In
- return true;
- } else if (T->isArrayType()) {
- LValue LV;
-- LV.set(E, Info.CurrentCall->Index);
-- APValue &Value = Info.CurrentCall->createTemporary(E, false);
-+ APValue &Value = createTemporary(E, false, LV, *Info.CurrentCall);
- if (!EvaluateArray(E, LV, Value, Info))
- return false;
- Result = Value;
- } else if (T->isRecordType()) {
- LValue LV;
-- LV.set(E, Info.CurrentCall->Index);
-- APValue &Value = Info.CurrentCall->createTemporary(E, false);
-+ APValue &Value = createTemporary(E, false, LV, *Info.CurrentCall);
- if (!EvaluateRecord(E, LV, Value, Info))
- return false;
- Result = Value;
-@@ -9963,8 +10034,7 @@ static bool Evaluate(APValue &Result, EvalInfo &In
- QualType Unqual = T.getAtomicUnqualifiedType();
- if (Unqual->isArrayType() || Unqual->isRecordType()) {
- LValue LV;
-- LV.set(E, Info.CurrentCall->Index);
-- APValue &Value = Info.CurrentCall->createTemporary(E, false);
-+ APValue &Value = createTemporary(E, false, LV, *Info.CurrentCall);
- if (!EvaluateAtomic(E, &LV, Value, Info))
- return false;
- } else {
-@@ -10786,7 +10856,7 @@ bool Expr::isPotentialConstantExpr(const FunctionD
- // is a temporary being used as the 'this' pointer.
- LValue This;
- ImplicitValueInitExpr VIE(RD ? Info.Ctx.getRecordType(RD) : Info.Ctx.IntTy);
-- This.set(&VIE, Info.CurrentCall->Index);
-+ This.set({&VIE, Info.CurrentCall->Index});
-
- ArrayRef<const Expr*> Args;
-
-Index: tools/clang/test/SemaCXX/constant-expression-cxx1y.cpp
-===================================================================
---- tools/clang/test/SemaCXX/constant-expression-cxx1y.cpp (revision 342280)
-+++ tools/clang/test/SemaCXX/constant-expression-cxx1y.cpp (revision 342281)
-@@ -852,7 +852,6 @@ namespace Lifetime {
- static_assert(h(2) == 0, ""); // expected-error {{constant expression}} expected-note {{in call}}
- static_assert(h(3) == 0, ""); // expected-error {{constant expression}} expected-note {{in call}}
-
-- // FIXME: This function should be treated as non-constant.
- constexpr void lifetime_versus_loops() {
- int *p = 0;
- for (int i = 0; i != 2; ++i) {
-@@ -862,10 +861,10 @@ namespace Lifetime {
- if (i)
- // This modifies the 'n' from the previous iteration of the loop outside
- // its lifetime.
-- ++*q;
-+ ++*q; // expected-note {{increment of object outside its lifetime}}
- }
- }
-- static_assert((lifetime_versus_loops(), true), "");
-+ static_assert((lifetime_versus_loops(), true), ""); // expected-error {{constant expression}} expected-note {{in call}}
- }
-
- namespace Bitfields {
-Index: tools/clang/test/SemaCXX/constexpr-default-arg.cpp
-===================================================================
---- tools/clang/test/SemaCXX/constexpr-default-arg.cpp (nonexistent)
-+++ tools/clang/test/SemaCXX/constexpr-default-arg.cpp (revision 342281)
-@@ -0,0 +1,38 @@
-+// RUN: %clang_cc1 -std=c++1y -S -o - -emit-llvm -verify %s
-+
-+namespace default_arg_temporary {
-+
-+constexpr bool equals(const float& arg = 1.0f) {
-+ return arg == 1.0f;
-+}
-+
-+constexpr const int &x(const int &p = 0) {
-+ return p;
-+}
-+
-+struct S {
-+ constexpr S(const int &a = 0) {}
-+};
-+
-+void test_default_arg2() {
-+ // This piece of code used to cause an assertion failure in
-+ // CallStackFrame::createTemporary because the same MTE is used to initilize
-+ // both elements of the array (see PR33140).
-+ constexpr S s[2] = {};
-+
-+ // This piece of code used to cause an assertion failure in
-+ // CallStackFrame::createTemporary because multiple CXXDefaultArgExpr share
-+ // the same MTE (see PR33140).
-+ static_assert(equals() && equals(), "");
-+
-+ // Test that constant expression evaluation produces distinct lvalues for
-+ // each call.
-+ static_assert(&x() != &x(), "");
-+}
-+
-+// Check that multiple CXXDefaultInitExprs don't cause an assertion failure.
-+struct A { int &&r = 0; }; // expected-warning {{binding reference member}} // expected-note {{reference member declared here}}
-+struct B { A x, y; };
-+B b = {};
-+
-+}
diff --git a/devel/llvm60/files/clang/patch-tools_clang_lib_Headers_CMakeLists.txt b/devel/llvm60/files/clang/patch-tools_clang_lib_Headers_CMakeLists.txt
deleted file mode 100644
index 17043c6072cf..000000000000
--- a/devel/llvm60/files/clang/patch-tools_clang_lib_Headers_CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
---- tools/clang/lib/Headers/CMakeLists.txt.orig
-+++ tools/clang/lib/Headers/CMakeLists.txt
-@@ -56,7 +56,6 @@
- intrin.h
- inttypes.h
- iso646.h
-- limits.h
- lwpintrin.h
- lzcntintrin.h
- mm3dnow.h
-@@ -76,21 +75,13 @@
- s390intrin.h
- shaintrin.h
- smmintrin.h
-- stdalign.h
-- stdarg.h
-- stdatomic.h
-- stdbool.h
-- stddef.h
- __stddef_max_align_t.h
-- stdint.h
-- stdnoreturn.h
- tbmintrin.h
- tgmath.h
- tmmintrin.h
- unwind.h
- vadefs.h
- vaesintrin.h
-- varargs.h
- vecintrin.h
- vpclmulqdqintrin.h
- wmmintrin.h
diff --git a/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format-sublime.py b/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format-sublime.py
deleted file mode 100644
index 2c8909f1e1d1..000000000000
--- a/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format-sublime.py
+++ /dev/null
@@ -1,14 +0,0 @@
-
-$FreeBSD$
-
---- tools/clang/tools/clang-format/clang-format-sublime.py.orig
-+++ tools/clang/tools/clang-format/clang-format-sublime.py
-@@ -18,7 +18,7 @@
- import subprocess
-
- # Change this to the full path if clang-format is not on the path.
--binary = 'clang-format'
-+binary = 'clang-format%%LLVM_SUFFIX%%'
-
- # Change this to format according to other formatting styles. See the output of
- # 'clang-format --help' for a list of supported styles. The default looks for
diff --git a/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format.py b/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format.py
deleted file mode 100644
index 2962d3f4cbcb..000000000000
--- a/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_clang-format.py
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/clang/tools/clang-format/clang-format.py.orig 2015-09-08 20:44:00 UTC
-+++ tools/clang/tools/clang-format/clang-format.py
-@@ -34,7 +34,7 @@ import vim
-
- # set g:clang_format_path to the path to clang-format if it is not on the path
- # Change this to the full path if clang-format is not on the path.
--binary = 'clang-format'
-+binary = 'clang-format%%LLVM_SUFFIX%%'
- if vim.eval('exists("g:clang_format_path")') == "1":
- binary = vim.eval('g:clang_format_path')
-
diff --git a/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_git-clang-format b/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_git-clang-format
deleted file mode 100644
index 5c5ae3581228..000000000000
--- a/devel/llvm60/files/clang/patch-tools_clang_tools_clang-format_git-clang-format
+++ /dev/null
@@ -1,32 +0,0 @@
-
-$FreeBSD$
-
---- tools/clang/tools/clang-format/git-clang-format.orig
-+++ tools/clang/tools/clang-format/git-clang-format
-@@ -90,7 +90,7 @@
- usage=usage, formatter_class=argparse.RawDescriptionHelpFormatter,
- description=desc)
- p.add_argument('--binary',
-- default=config.get('clangformat.binary', 'clang-format'),
-+ default=config.get('clangformat.binary', 'clang-format%%LLVM_SUFFIX%%'),
- help='path to clang-format'),
- p.add_argument('--commit',
- default=config.get('clangformat.commit', 'HEAD'),
-@@ -344,7 +344,7 @@
-
-
- def run_clang_format_and_save_to_tree(changed_lines, revision=None,
-- binary='clang-format', style=None):
-+ binary='clang-format%%LLVM_SUFFIX%%', style=None):
- """Run clang-format on each file and save the result to a git tree.
-
- Returns the object ID (SHA-1) of the created tree."""
-@@ -397,7 +397,7 @@
-
-
- def clang_format_to_blob(filename, line_ranges, revision=None,
-- binary='clang-format', style=None):
-+ binary='clang-format%%LLVM_SUFFIX%%', style=None):
- """Run clang-format on the given file and save the result to a git blob.
-
- Runs on the file in `revision` if not None, or on the file in the working
diff --git a/devel/llvm60/files/clang/patch-tools_clang_tools_scan-build_libexec_ccc-analyzer b/devel/llvm60/files/clang/patch-tools_clang_tools_scan-build_libexec_ccc-analyzer
deleted file mode 100644
index e1c65480ce2f..000000000000
--- a/devel/llvm60/files/clang/patch-tools_clang_tools_scan-build_libexec_ccc-analyzer
+++ /dev/null
@@ -1,12 +0,0 @@
---- tools/clang/tools/scan-build/libexec/ccc-analyzer.orig
-+++ tools/clang/tools/scan-build/libexec/ccc-analyzer
-@@ -81,6 +81,9 @@
- if (-x "/usr/bin/xcrun") {
- $UseXCRUN = 1;
- }
-+} elsif (`uname -s` eq "FreeBSD\n") {
-+ $DefaultCCompiler = 'cc';
-+ $DefaultCXXCompiler = 'c++';
- } else {
- $DefaultCCompiler = 'gcc';
- $DefaultCXXCompiler = 'g++';
diff --git a/devel/llvm60/files/lld/patch-head-r331731.diff b/devel/llvm60/files/lld/patch-head-r331731.diff
deleted file mode 100644
index 6b162d89f6be..000000000000
--- a/devel/llvm60/files/lld/patch-head-r331731.diff
+++ /dev/null
@@ -1,67 +0,0 @@
-r331731 | dim | 2018-03-29 15:55:23 +0200 (Thu, 29 Mar 2018) | 22 lines
-
-Pull in r328738 from upstream lld trunk (by Rafael Espindola):
-
- Strip @VER suffices from the LTO output.
-
- This fixes pr36623.
-
- The problem is that we have to parse versions out of names before LTO
- so that LTO can use that information.
-
- When we get the LTO produced .o files, we replace the previous symbols
- with the LTO produced ones, but they still have @ in their names.
-
- We could just trim the name directly, but calling parseSymbolVersion
- to do it is simpler.
-
-This is a follow-up to r331366, since we discovered that lld could
-append version strings to symbols twice, when using Link Time
-Optimization.
-
-MFC after: 3 months
-X-MFC-With: r327952
-
-Index: tools/lld/ELF/InputFiles.cpp
-===================================================================
---- tools/lld/ELF/InputFiles.cpp (revision 331730)
-+++ tools/lld/ELF/InputFiles.cpp (revision 331731)
-@@ -281,6 +281,10 @@ template <class ELFT> ArrayRef<Symbol *> ObjFile<E
- return makeArrayRef(this->Symbols).slice(1, this->FirstNonLocal - 1);
- }
-
-+template <class ELFT> ArrayRef<Symbol *> ObjFile<ELFT>::getGlobalSymbols() {
-+ return makeArrayRef(this->Symbols).slice(this->FirstNonLocal);
-+}
-+
- template <class ELFT>
- void ObjFile<ELFT>::parse(DenseSet<CachedHashStringRef> &ComdatGroups) {
- // Read section and symbol tables.
-Index: tools/lld/ELF/InputFiles.h
-===================================================================
---- tools/lld/ELF/InputFiles.h (revision 331730)
-+++ tools/lld/ELF/InputFiles.h (revision 331731)
-@@ -167,6 +167,7 @@ template <class ELFT> class ObjFile : public ELFFi
- static bool classof(const InputFile *F) { return F->kind() == Base::ObjKind; }
-
- ArrayRef<Symbol *> getLocalSymbols();
-+ ArrayRef<Symbol *> getGlobalSymbols();
-
- ObjFile(MemoryBufferRef M, StringRef ArchiveName);
- void parse(llvm::DenseSet<llvm::CachedHashStringRef> &ComdatGroups);
-Index: tools/lld/ELF/SymbolTable.cpp
-===================================================================
---- tools/lld/ELF/SymbolTable.cpp (revision 331730)
-+++ tools/lld/ELF/SymbolTable.cpp (revision 331731)
-@@ -130,7 +130,10 @@ template <class ELFT> void SymbolTable::addCombine
-
- for (InputFile *File : LTO->compile()) {
- DenseSet<CachedHashStringRef> DummyGroups;
-- cast<ObjFile<ELFT>>(File)->parse(DummyGroups);
-+ auto *Obj = cast<ObjFile<ELFT>>(File);
-+ Obj->parse(DummyGroups);
-+ for (Symbol *Sym : Obj->getGlobalSymbols())
-+ Sym->parseSymbolVersion();
- ObjectFiles.push_back(File);
- }
- }
diff --git a/devel/llvm60/files/lld/patch-head-r333401.diff b/devel/llvm60/files/lld/patch-head-r333401.diff
deleted file mode 100644
index 131f6a0ea274..000000000000
--- a/devel/llvm60/files/lld/patch-head-r333401.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-r333401 | emaste | 2018-05-09 13:17:01 +0200 (Wed, 09 May 2018) | 19 lines
-
-lld: Omit PT_NOTE for SHT_NOTE without SHF_ALLOC
-
-A non-alloc note section should not have a PT_NOTE program header.
-
-Found while linking ghc (Haskell compiler) with lld on FreeBSD. Haskell
-emits a .debug-ghc-link-info note section (as the name suggests, it
-contains link info) as a SHT_NOTE section without SHF_ALLOC set.
-
-For this case ld.bfd does not emit a PT_NOTE segment for
-.debug-ghc-link-info. lld previously emitted a PT_NOTE with p_vaddr = 0
-and FreeBSD's rtld segfaulted when trying to parse a note at address 0.
-
-LLVM PR: https://llvm.org/pr37361
-LLVM review: https://reviews.llvm.org/D46623
-
-PR: 226872
-Reviewed by: dim
-Sponsored by: The FreeBSD Foundation
-
-Index: tools/lld/ELF/Writer.cpp
-===================================================================
---- tools/lld/ELF/Writer.cpp (revision 333400)
-+++ tools/lld/ELF/Writer.cpp (revision 333401)
-@@ -1708,7 +1708,7 @@ template <class ELFT> std::vector<PhdrEntry *> Wri
- // Create one PT_NOTE per a group of contiguous .note sections.
- PhdrEntry *Note = nullptr;
- for (OutputSection *Sec : OutputSections) {
-- if (Sec->Type == SHT_NOTE) {
-+ if (Sec->Type == SHT_NOTE && (Sec->Flags & SHF_ALLOC)) {
- if (!Note || Sec->LMAExpr)
- Note = AddHdr(PT_NOTE, PF_R);
- Note->add(Sec);
diff --git a/devel/llvm60/files/lld/patch-head-r336664.diff b/devel/llvm60/files/lld/patch-head-r336664.diff
deleted file mode 100644
index e26fd06d4c5e..000000000000
--- a/devel/llvm60/files/lld/patch-head-r336664.diff
+++ /dev/null
@@ -1,52 +0,0 @@
-r336664 | emaste | 2018-07-24 13:35:22 +0200 (Tue, 24 Jul 2018) | 11 lines
-
-lld: fix addends with partial linking
-
-[ELF] Update addends in non-allocatable sections for REL targets when
-creating a relocatable output.
-
-LLVM PR: 37735
-LLVM Differential Revision: https://reviews.llvm.org/D48929
-
-PR: 225128
-Obtained from: LLVM r336799 by Igor Kudrin
-
-Index: tools/lld/ELF/InputSection.cpp
-===================================================================
---- tools/lld/ELF/InputSection.cpp (revision 336663)
-+++ tools/lld/ELF/InputSection.cpp (revision 336664)
-@@ -686,6 +686,23 @@ void InputSection::relocateNonAlloc(uint8_t *Buf,
- }
- }
-
-+// This is used when '-r' is given.
-+// For REL targets, InputSection::copyRelocations() may store artificial
-+// relocations aimed to update addends. They are handled in relocateAlloc()
-+// for allocatable sections, and this function does the same for
-+// non-allocatable sections, such as sections with debug information.
-+static void relocateNonAllocForRelocatable(InputSection *Sec, uint8_t *Buf) {
-+ const unsigned Bits = Config->Is64 ? 64 : 32;
-+
-+ for (const Relocation &Rel : Sec->Relocations) {
-+ // InputSection::copyRelocations() adds only R_ABS relocations.
-+ assert(Rel.Expr == R_ABS);
-+ uint8_t *BufLoc = Buf + Rel.Offset + Sec->OutSecOff;
-+ uint64_t TargetVA = SignExtend64(Rel.Sym->getVA(Rel.Addend), Bits);
-+ Target->relocateOne(BufLoc, Rel.Type, TargetVA);
-+ }
-+}
-+
- template <class ELFT>
- void InputSectionBase::relocate(uint8_t *Buf, uint8_t *BufEnd) {
- if (Flags & SHF_ALLOC) {
-@@ -694,7 +711,9 @@ void InputSectionBase::relocate(uint8_t *Buf, uint
- }
-
- auto *Sec = cast<InputSection>(this);
-- if (Sec->AreRelocsRela)
-+ if (Config->Relocatable)
-+ relocateNonAllocForRelocatable(Sec, Buf);
-+ else if (Sec->AreRelocsRela)
- Sec->relocateNonAlloc<ELFT>(Buf, Sec->template relas<ELFT>());
- else
- Sec->relocateNonAlloc<ELFT>(Buf, Sec->template rels<ELFT>());
diff --git a/devel/llvm60/files/lld/patch-head-r336972.diff b/devel/llvm60/files/lld/patch-head-r336972.diff
deleted file mode 100644
index d7497ce5390a..000000000000
--- a/devel/llvm60/files/lld/patch-head-r336972.diff
+++ /dev/null
@@ -1,146 +0,0 @@
-r336972 | emaste | 2018-07-31 17:25:03 +0200 (Tue, 31 Jul 2018) | 37 lines
-
-lld: [ELF][ARM] Implement support for Tag_ABI_VFP_args
-
-The Tag_ABI_VFP_args build attribute controls the procedure call
-standard used for floating point parameters on ARM. The values are:
-
-0 - Base AAPCS (FP Parameters passed in Core (Integer) registers
-1 - VFP AAPCS (FP Parameters passed in FP registers)
-2 - Toolchain specific (Neither Base or VFP)
-3 - Compatible with all (No use of floating point parameters)
-
-If the Tag_ABI_VFP_args build attribute is missing it has an implicit
-value of 0.
-
-We use the attribute in two ways:
-
-* Detect a clash in calling convention between Base, VFP and Toolchain.
-
-we follow ld.bfd's lead and do not error if there is a clash between an
-implicit Base AAPCS caused by a missing attribute. Many projects
-including the hard-float (VFP AAPCS) version of glibc contain assembler
-files that do not use floating point but do not have Tag_ABI_VFP_args.
-
-* Set the EF_ARM_ABI_FLOAT_SOFT or EF_ARM_ABI_FLOAT_HARD ELF header flag
-
-for Base or VFP AAPCS respectively. This flag is used by some ELF
-loaders.
-
-References:
-* Addenda to, and Errata in, the ABI for the ARM Architecture for
- Tag_ABI_VFP_args
-* Elf for the ARM Architecture for ELF header flags
-
-Fixes LLVM PR36009
-
-PR: 229050
-Obtained from: llvm r338377 by Peter Smith
-
-Index: tools/lld/ELF/Arch/ARM.cpp
-===================================================================
---- tools/lld/ELF/Arch/ARM.cpp (revision 336971)
-+++ tools/lld/ELF/Arch/ARM.cpp (revision 336972)
-@@ -97,10 +97,19 @@ ARM::ARM() {
- }
-
- uint32_t ARM::calcEFlags() const {
-+ // The ABIFloatType is used by loaders to detect the floating point calling
-+ // convention.
-+ uint32_t ABIFloatType = 0;
-+ if (Config->ARMVFPArgs == ARMVFPArgKind::Base ||
-+ Config->ARMVFPArgs == ARMVFPArgKind::Default)
-+ ABIFloatType = EF_ARM_ABI_FLOAT_SOFT;
-+ else if (Config->ARMVFPArgs == ARMVFPArgKind::VFP)
-+ ABIFloatType = EF_ARM_ABI_FLOAT_HARD;
-+
- // We don't currently use any features incompatible with EF_ARM_EABI_VER5,
- // but we don't have any firm guarantees of conformance. Linux AArch64
- // kernels (as of 2016) require an EABI version to be set.
-- return EF_ARM_EABI_VER5;
-+ return EF_ARM_EABI_VER5 | ABIFloatType;
- }
-
- RelExpr ARM::getRelExpr(RelType Type, const Symbol &S,
-Index: tools/lld/ELF/Config.h
-===================================================================
---- tools/lld/ELF/Config.h (revision 336971)
-+++ tools/lld/ELF/Config.h (revision 336972)
-@@ -54,6 +54,9 @@ enum class SortSectionPolicy { Default, None, Alig
- // For --target2
- enum class Target2Policy { Abs, Rel, GotRel };
-
-+// For tracking ARM Float Argument PCS
-+enum class ARMVFPArgKind { Default, Base, VFP, ToolChain };
-+
- struct SymbolVersion {
- llvm::StringRef Name;
- bool IsExternCpp;
-@@ -169,6 +172,7 @@ struct Configuration {
- StripPolicy Strip;
- UnresolvedPolicy UnresolvedSymbols;
- Target2Policy Target2;
-+ ARMVFPArgKind ARMVFPArgs = ARMVFPArgKind::Default;
- BuildIdKind BuildId = BuildIdKind::None;
- ELFKind EKind = ELFNoneKind;
- uint16_t DefaultSymbolVersion = llvm::ELF::VER_NDX_GLOBAL;
-Index: tools/lld/ELF/InputFiles.cpp
-===================================================================
---- tools/lld/ELF/InputFiles.cpp (revision 336971)
-+++ tools/lld/ELF/InputFiles.cpp (revision 336972)
-@@ -441,6 +441,46 @@ void ObjFile<ELFT>::initializeSections(
- }
- }
-
-+// For ARM only, to set the EF_ARM_ABI_FLOAT_SOFT or EF_ARM_ABI_FLOAT_HARD
-+// flag in the ELF Header we need to look at Tag_ABI_VFP_args to find out how
-+// the input objects have been compiled.
-+static void updateARMVFPArgs(const ARMAttributeParser &Attributes,
-+ const InputFile *F) {
-+ if (!Attributes.hasAttribute(ARMBuildAttrs::ABI_VFP_args))
-+ // If an ABI tag isn't present then it is implicitly given the value of 0
-+ // which maps to ARMBuildAttrs::BaseAAPCS. However many assembler files,
-+ // including some in glibc that don't use FP args (and should have value 3)
-+ // don't have the attribute so we do not consider an implicit value of 0
-+ // as a clash.
-+ return;
-+
-+ unsigned VFPArgs = Attributes.getAttributeValue(ARMBuildAttrs::ABI_VFP_args);
-+ ARMVFPArgKind Arg;
-+ switch (VFPArgs) {
-+ case ARMBuildAttrs::BaseAAPCS:
-+ Arg = ARMVFPArgKind::Base;
-+ break;
-+ case ARMBuildAttrs::HardFPAAPCS:
-+ Arg = ARMVFPArgKind::VFP;
-+ break;
-+ case ARMBuildAttrs::ToolChainFPPCS:
-+ // Tool chain specific convention that conforms to neither AAPCS variant.
-+ Arg = ARMVFPArgKind::ToolChain;
-+ break;
-+ case ARMBuildAttrs::CompatibleFPAAPCS:
-+ // Object compatible with all conventions.
-+ return;
-+ default:
-+ error(toString(F) + ": unknown Tag_ABI_VFP_args value: " + Twine(VFPArgs));
-+ return;
-+ }
-+ // Follow ld.bfd and error if there is a mix of calling conventions.
-+ if (Config->ARMVFPArgs != Arg && Config->ARMVFPArgs != ARMVFPArgKind::Default)
-+ error(toString(F) + ": incompatible Tag_ABI_VFP_args");
-+ else
-+ Config->ARMVFPArgs = Arg;
-+}
-+
- // The ARM support in lld makes some use of instructions that are not available
- // on all ARM architectures. Namely:
- // - Use of BLX instruction for interworking between ARM and Thumb state.
-@@ -520,6 +560,8 @@ InputSectionBase *ObjFile<ELFT>::createInputSectio
- ArrayRef<uint8_t> Contents = check(this->getObj().getSectionContents(&Sec));
- Attributes.Parse(Contents, /*isLittle*/ Config->EKind == ELF32LEKind);
- updateSupportedARMFeatures(Attributes);
-+ updateARMVFPArgs(Attributes, this);
-+
- // FIXME: Retain the first attribute section we see. The eglibc ARM
- // dynamic loaders require the presence of an attribute section for dlopen
- // to work. In a full implementation we would merge all attribute sections.
diff --git a/devel/llvm60/files/lld/patch-head-r337282.diff b/devel/llvm60/files/lld/patch-head-r337282.diff
deleted file mode 100644
index 1e046d6e2b17..000000000000
--- a/devel/llvm60/files/lld/patch-head-r337282.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-r337282 | alc | 2018-08-04 04:30:51 +0200 (Sat, 04 Aug 2018) | 7 lines
-
-Set the default image base on arm64 and i386 to a superpage-aligned
-address.
-
-Reviewed by: emaste, markj
-Discussed with: dim
-Differential Revision: https://reviews.freebsd.org/D16385
-
-Index: tools/lld/ELF/Arch/AArch64.cpp
-===================================================================
---- tools/lld/ELF/Arch/AArch64.cpp (revision 337281)
-+++ tools/lld/ELF/Arch/AArch64.cpp (revision 337282)
-@@ -66,6 +66,10 @@ AArch64::AArch64() {
- PltHeaderSize = 32;
- DefaultMaxPageSize = 65536;
-
-+ // Align to the 2 MiB page size (known as a superpage or huge page).
-+ // FreeBSD automatically promotes 2 MiB-aligned allocations.
-+ DefaultImageBase = 0x200000;
-+
- // It doesn't seem to be documented anywhere, but tls on aarch64 uses variant
- // 1 of the tls structures and the tcb size is 16.
- TcbSize = 16;
-Index: tools/lld/ELF/Arch/X86.cpp
-===================================================================
---- tools/lld/ELF/Arch/X86.cpp (revision 337281)
-+++ tools/lld/ELF/Arch/X86.cpp (revision 337282)
-@@ -61,6 +61,10 @@ X86::X86() {
- PltHeaderSize = 16;
- TlsGdRelaxSkip = 2;
- TrapInstr = 0xcccccccc; // 0xcc = INT3
-+
-+ // Align to the non-PAE large page size (known as a superpage or huge page).
-+ // FreeBSD automatically promotes large, superpage-aligned allocations.
-+ DefaultImageBase = 0x400000;
- }
-
- static bool hasBaseReg(uint8_t ModRM) { return (ModRM & 0xc7) != 0x5; }
diff --git a/devel/llvm60/files/lld/patch-head-r338251.diff b/devel/llvm60/files/lld/patch-head-r338251.diff
deleted file mode 100644
index 1c3df02100cd..000000000000
--- a/devel/llvm60/files/lld/patch-head-r338251.diff
+++ /dev/null
@@ -1,123 +0,0 @@
-r338251 | markj | 2018-08-23 16:58:19 +0200 (Thu, 23 Aug 2018) | 29 lines
-
-Add an lld option to emit PC-relative relocations for ifunc calls.
-
-The current kernel ifunc implementation creates a PLT entry for each
-ifunc definition. ifunc calls therefore consist of a call to the
-PLT entry followed by an indirect jump. The jump target is written
-during boot when the kernel linker resolves R_[*]_IRELATIVE relocations.
-This implementation is defined by requirements for userland code, where
-text relocations are avoided. This requirement is not present for the
-kernel, so the implementation has avoidable overhead (namely, an extra
-indirect jump per call).
-
-Address this for now by adding a special option to the static linker
-to inhibit PLT creation for ifuncs. Instead, relocations to ifunc call
-sites are passed through to the output file, so the kernel linker can
-enumerate such call sites and apply PC-relative relocations directly
-to the text section. Thus the overhead of an ifunc call becomes exactly
-the same as that of an ordinary function call. This option is only for
-use by the kernel and will not work for regular programs.
-
-The final form of this optimization is up for debate; for now, this
-change is simple and static enough to be acceptable as an interim
-solution.
-
-Reviewed by: emaste
-Discussed with: arichardson, dim
-MFC after: 1 month
-Sponsored by: The FreeBSD Foundation
-Differential Revision: https://reviews.freebsd.org/D16748
-
-Index: tools/lld/ELF/Config.h
-===================================================================
---- tools/lld/ELF/Config.h (revision 338250)
-+++ tools/lld/ELF/Config.h (revision 338251)
-@@ -155,6 +155,7 @@ struct Configuration {
- bool ZCombreloc;
- bool ZExecstack;
- bool ZHazardplt;
-+ bool ZIfuncnoplt;
- bool ZNocopyreloc;
- bool ZNodelete;
- bool ZNodlopen;
-Index: tools/lld/ELF/Driver.cpp
-===================================================================
---- tools/lld/ELF/Driver.cpp (revision 338250)
-+++ tools/lld/ELF/Driver.cpp (revision 338251)
-@@ -669,6 +669,7 @@ void LinkerDriver::readConfigs(opt::InputArgList &
- Config->ZCombreloc = !hasZOption(Args, "nocombreloc");
- Config->ZExecstack = hasZOption(Args, "execstack");
- Config->ZHazardplt = hasZOption(Args, "hazardplt");
-+ Config->ZIfuncnoplt = hasZOption(Args, "ifunc-noplt");
- Config->ZNocopyreloc = hasZOption(Args, "nocopyreloc");
- Config->ZNodelete = hasZOption(Args, "nodelete");
- Config->ZNodlopen = hasZOption(Args, "nodlopen");
-Index: tools/lld/ELF/Relocations.cpp
-===================================================================
---- tools/lld/ELF/Relocations.cpp (revision 338250)
-+++ tools/lld/ELF/Relocations.cpp (revision 338251)
-@@ -374,6 +374,9 @@ static bool isStaticLinkTimeConstant(RelExpr E, Re
- R_PPC_PLT_OPD, R_TLSDESC_CALL, R_TLSDESC_PAGE, R_HINT>(E))
- return true;
-
-+ if (Sym.isGnuIFunc() && Config->ZIfuncnoplt)
-+ return false;
-+
- // These never do, except if the entire file is position dependent or if
- // only the low bits are used.
- if (E == R_GOT || E == R_PLT || E == R_TLSDESC)
-@@ -921,7 +924,9 @@ static void scanRelocs(InputSectionBase &Sec, Arra
- // Strenghten or relax a PLT access.
- //
- // GNU ifunc symbols must be accessed via PLT because their addresses
-- // are determined by runtime.
-+ // are determined by runtime. If the -z ifunc-noplt option is specified,
-+ // we permit the optimization of ifunc calls by omitting the PLT entry
-+ // and preserving relocations at ifunc call sites.
- //
- // On the other hand, if we know that a PLT entry will be resolved within
- // the same ELF module, we can skip PLT access and directly jump to the
-@@ -929,7 +934,7 @@ static void scanRelocs(InputSectionBase &Sec, Arra
- // all dynamic symbols that can be resolved within the executable will
- // actually be resolved that way at runtime, because the main exectuable
- // is always at the beginning of a search list. We can leverage that fact.
-- if (Sym.isGnuIFunc())
-+ if (Sym.isGnuIFunc() && !Config->ZIfuncnoplt)
- Expr = toPlt(Expr);
- else if (!Preemptible && Expr == R_GOT_PC && !isAbsoluteValue(Sym))
- Expr =
-@@ -1034,6 +1039,16 @@ static void scanRelocs(InputSectionBase &Sec, Arra
- continue;
- }
-
-+ // Preserve relocations against ifuncs if we were asked to do so.
-+ if (Sym.isGnuIFunc() && Config->ZIfuncnoplt) {
-+ if (Config->IsRela)
-+ InX::RelaDyn->addReloc({Type, &Sec, Offset, false, &Sym, Addend});
-+ else
-+ // Preserve the existing addend.
-+ InX::RelaDyn->addReloc({Type, &Sec, Offset, false, &Sym, 0});
-+ continue;
-+ }
-+
- // If the output being produced is position independent, the final value
- // is still not known. In that case we still need some help from the
- // dynamic linker. We can however do better than just copying the incoming
-Index: tools/lld/ELF/Writer.cpp
-===================================================================
---- tools/lld/ELF/Writer.cpp (revision 338250)
-+++ tools/lld/ELF/Writer.cpp (revision 338251)
-@@ -1400,8 +1400,11 @@ template <class ELFT> void Writer<ELFT>::finalizeS
- applySynthetic({InX::EhFrame},
- [](SyntheticSection *SS) { SS->finalizeContents(); });
-
-- for (Symbol *S : Symtab->getSymbols())
-+ for (Symbol *S : Symtab->getSymbols()) {
- S->IsPreemptible |= computeIsPreemptible(*S);
-+ if (S->isGnuIFunc() && Config->ZIfuncnoplt)
-+ S->ExportDynamic = true;
-+ }
-
- // Scan relocations. This must be done after every symbol is declared so that
- // we can correctly decide if a dynamic relocation is needed.
diff --git a/devel/llvm60/files/lld/patch-head-r338682.diff b/devel/llvm60/files/lld/patch-head-r338682.diff
deleted file mode 100644
index 1783fe227489..000000000000
--- a/devel/llvm60/files/lld/patch-head-r338682.diff
+++ /dev/null
@@ -1,55 +0,0 @@
-r338682 | emaste | 2018-09-14 17:15:16 +0200 (Fri, 14 Sep 2018) | 16 lines
-
-lld: add -z interpose support
-
--z interpose sets the DF_1_INTERPOSE flag, marking the object as an
-interposer.
-
-Committed upstream as LLVM r342239.
-
-PR: 230604
-Reported by: jbeich
-Reviewed by: markj
-Approved by: re (kib)
-MFC after: 1 week
-Relnotes: Yes
-Sponsored by: The FreeBSD Foundation
-Differential Revision: https://reviews.freebsd.org/D17172
-
-Index: tools/lld/ELF/Config.h
-===================================================================
---- tools/lld/ELF/Config.h (revision 338681)
-+++ tools/lld/ELF/Config.h (revision 338682)
-@@ -156,6 +156,7 @@ struct Configuration {
- bool ZExecstack;
- bool ZHazardplt;
- bool ZIfuncnoplt;
-+ bool ZInterpose;
- bool ZNocopyreloc;
- bool ZNodelete;
- bool ZNodlopen;
-Index: tools/lld/ELF/Driver.cpp
-===================================================================
---- tools/lld/ELF/Driver.cpp (revision 338681)
-+++ tools/lld/ELF/Driver.cpp (revision 338682)
-@@ -670,6 +670,7 @@ void LinkerDriver::readConfigs(opt::InputArgList &
- Config->ZExecstack = hasZOption(Args, "execstack");
- Config->ZHazardplt = hasZOption(Args, "hazardplt");
- Config->ZIfuncnoplt = hasZOption(Args, "ifunc-noplt");
-+ Config->ZInterpose = hasZOption(Args, "interpose");
- Config->ZNocopyreloc = hasZOption(Args, "nocopyreloc");
- Config->ZNodelete = hasZOption(Args, "nodelete");
- Config->ZNodlopen = hasZOption(Args, "nodlopen");
-Index: tools/lld/ELF/SyntheticSections.cpp
-===================================================================
---- tools/lld/ELF/SyntheticSections.cpp (revision 338681)
-+++ tools/lld/ELF/SyntheticSections.cpp (revision 338682)
-@@ -1034,6 +1034,8 @@ template <class ELFT> void DynamicSection<ELFT>::f
- uint32_t DtFlags1 = 0;
- if (Config->Bsymbolic)
- DtFlags |= DF_SYMBOLIC;
-+ if (Config->ZInterpose)
-+ DtFlags1 |= DF_1_INTERPOSE;
- if (Config->ZNodelete)
- DtFlags1 |= DF_1_NODELETE;
- if (Config->ZNodlopen)
diff --git a/devel/llvm60/files/lld/patch-head-r339013.diff b/devel/llvm60/files/lld/patch-head-r339013.diff
deleted file mode 100644
index ba614706a88d..000000000000
--- a/devel/llvm60/files/lld/patch-head-r339013.diff
+++ /dev/null
@@ -1,39 +0,0 @@
-r339013 | dim | 2018-09-29 16:12:03 +0200 (Sat, 29 Sep 2018) | 24 lines
-
-Pull in r329557 from upstream lld trunk (by George Rimar):
-
- [ELF] - Allow LLD to produce file symbols.
-
- This is for PR36716 and
- this enables emitting STT_FILE symbols.
-
- Output size affect is minor:
- lld binary size changes from 52,883,408 to 52,949,400
- clang binary size changes from 83,136,456 to 83,219,600
-
- Differential revision: https://reviews.llvm.org/D45261
-
-This fixes a regression in lld that made it stop emitting STT_FILE
-symbols, which ctfmerge relies upon to uniquify function table entries
-that reference STB_LOCAL symbols. Consequently, ctfmerge stopped
-emitting entries for static functions into the function table, and
-dtrace no longer gets type info for them.
-
-Approved by: re (kib)
-Reported by: markj
-PR: 230444
-MFC after: 3 days
-
-Index: tools/lld/ELF/Writer.cpp
-===================================================================
---- tools/lld/ELF/Writer.cpp (revision 339012)
-+++ tools/lld/ELF/Writer.cpp (revision 339013)
-@@ -487,7 +487,7 @@ template <class ELFT> void Writer<ELFT>::run() {
-
- static bool shouldKeepInSymtab(SectionBase *Sec, StringRef SymName,
- const Symbol &B) {
-- if (B.isFile() || B.isSection())
-+ if (B.isSection())
- return false;
-
- // If sym references a section in a discarded group, don't keep it.
diff --git a/devel/llvm60/files/lld/patch-head-r339304.diff b/devel/llvm60/files/lld/patch-head-r339304.diff
deleted file mode 100644
index 59ff933dfff6..000000000000
--- a/devel/llvm60/files/lld/patch-head-r339304.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-r339304 | emaste | 2018-10-11 15:19:17 +0200 (Thu, 11 Oct 2018) | 13 lines
-
-lld: set sh_link and sh_info for .rela.plt sections
-
-ELF spec says that for SHT_REL and SHT_RELA sh_link should reference the
-associated string table and sh_info should reference the "section to
-which the relocation applies." ELF Tool Chain's elfcopy / strip use
-this (in part) to control whether or not the relocation entry is copied
-to the output.
-
-LLVM PR 37538 https://bugs.llvm.org/show_bug.cgi?id=37538
-
-Approved by: re (kib)
-Obtained from: llvm r344226 (backported for 6.0)
-
-Index: tools/lld/ELF/SyntheticSections.cpp
-===================================================================
---- tools/lld/ELF/SyntheticSections.cpp (revision 339303)
-+++ tools/lld/ELF/SyntheticSections.cpp (revision 339304)
-@@ -1213,11 +1213,13 @@ void RelocationBaseSection::addReloc(const Dynamic
- void RelocationBaseSection::finalizeContents() {
- // If all relocations are R_*_RELATIVE they don't refer to any
- // dynamic symbol and we don't need a dynamic symbol table. If that
-- // is the case, just use 0 as the link.
-- Link = InX::DynSymTab ? InX::DynSymTab->getParent()->SectionIndex : 0;
-+ // is the case, just use the index of the regular symbol table section.
-+ getParent()->Link = InX::DynSymTab ?
-+ InX::DynSymTab->getParent()->SectionIndex :
-+ InX::SymTab->getParent()->SectionIndex;
-
-- // Set required output section properties.
-- getParent()->Link = Link;
-+ if (InX::RelaIplt == this || InX::RelaPlt == this)
-+ getParent()->Info = InX::GotPlt->getParent()->SectionIndex;
- }
-
- template <class ELFT>
diff --git a/devel/llvm60/files/lldb/patch-head-r332849.diff b/devel/llvm60/files/lldb/patch-head-r332849.diff
deleted file mode 100644
index ced3a7a80319..000000000000
--- a/devel/llvm60/files/lldb/patch-head-r332849.diff
+++ /dev/null
@@ -1,38 +0,0 @@
-r332849 | emaste | 2018-04-21 02:34:46 +0200 (Sat, 21 Apr 2018) | 20 lines
-
-lldb: propagate error to user if memory read fails
-
-Previously, an attempt to read an unreadable access reported zeros:
-
-(lldb) memory read -format hex -size 8 0
-0x00000000: 0x0000000000000000 0x0000000000000000
-0x00000010: 0x0000000000000000 0x0000000000000000
-...
-
-Now, if DoReadMemory encounters error then return 0 (bytes read) so we
-report the error to the user:
-
-(lldb) memory read -format hex -size 8 0
-error: Bad address
-
-LLVM PR: 37190
-
-MFC after: 1 week
-Sponsored by: The FreeBSD Foundation
-
-Index: tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
-===================================================================
---- tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp (revision 332848)
-+++ tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp (revision 332849)
-@@ -163,8 +163,10 @@ static size_t DoReadMemory(lldb::pid_t pid, lldb::
- pi_desc.piod_addr = buf;
- pi_desc.piod_len = size;
-
-- if (PTRACE(PT_IO, pid, (caddr_t)&pi_desc, 0) < 0)
-+ if (PTRACE(PT_IO, pid, (caddr_t)&pi_desc, 0) < 0) {
- error.SetErrorToErrno();
-+ return 0;
-+ }
- return pi_desc.piod_len;
- }
-
diff --git a/devel/llvm60/files/lldb/patch-head-r332965.diff b/devel/llvm60/files/lldb/patch-head-r332965.diff
deleted file mode 100644
index 67e33f30e33a..000000000000
--- a/devel/llvm60/files/lldb/patch-head-r332965.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-r332965 | emaste | 2018-04-24 21:26:58 +0200 (Tue, 24 Apr 2018) | 8 lines
-
-lldb: remove assertion that target_arch is FreeBSD
-
-The target is not necessarily a FreeBSD binary - for example, it may be
-a Linux binary running under the linuxulator. Basic ptrace (live)
-debugging already worked in this case, except for the assertion.
-
-Sponsored by: Turing Robotic Industries Inc.
-
-Index: tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
-===================================================================
---- tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp (revision 332964)
-+++ tools/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp (revision 332965)
-@@ -169,7 +169,6 @@ lldb::RegisterContextSP FreeBSDThread::GetRegister
- RegisterInfoInterface *reg_interface = NULL;
- const ArchSpec &target_arch = GetProcess()->GetTarget().GetArchitecture();
-
-- assert(target_arch.GetTriple().getOS() == llvm::Triple::FreeBSD);
- switch (target_arch.GetMachine()) {
- case llvm::Triple::aarch64:
- reg_interface = new RegisterInfoPOSIX_arm64(target_arch);
diff --git a/devel/llvm60/files/llvm-wrapper.sh.in b/devel/llvm60/files/llvm-wrapper.sh.in
deleted file mode 100644
index dfece2c0ced9..000000000000
--- a/devel/llvm60/files/llvm-wrapper.sh.in
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-# $FreeBSD$
-
-LLVM_PREFIX="%%LLVM_PREFIX%%"
-LLVM_SUFFIX="%%LLVM_SUFFIX%%"
-
-tool=$0
-[ -L "$tool" ] && tool=$(/bin/realpath $tool)
-tool=${tool##*/}
-tool="${LLVM_PREFIX}/bin/${tool%${LLVM_SUFFIX}}"
-LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${LLVM_PREFIX}/lib" \
- exec "${tool}" "${@}"
diff --git a/devel/llvm60/files/openmp/patch-bug32279 b/devel/llvm60/files/openmp/patch-bug32279
deleted file mode 100644
index 420402ab15a6..000000000000
--- a/devel/llvm60/files/openmp/patch-bug32279
+++ /dev/null
@@ -1,29 +0,0 @@
---- projects/openmp/runtime/cmake/LibompHandleFlags.cmake.orig 2017-03-16 15:50:48 UTC
-+++ projects/openmp/runtime/cmake/LibompHandleFlags.cmake
-@@ -156,6 +156,11 @@ function(libomp_get_libflags libflags)
- if(${IA32})
- libomp_append(libflags_local -lirc_pic LIBOMP_HAVE_IRC_PIC_LIBRARY)
- endif()
-+ IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
-+ libomp_append(libflags_local "-Wl,--no-as-needed" LIBOMP_HAVE_AS_NEEDED_FLAG)
-+ libomp_append(libflags_local "-lm")
-+ libomp_append(libflags_local "-Wl,--as-needed" LIBOMP_HAVE_AS_NEEDED_FLAG)
-+ ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
- IF(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
- libomp_append(libflags_local -lm)
- ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
- runtime/cmake/LibompHandleFlags.cmake | 5 +++++
- runtime/cmake/LibompMicroTests.cmake | 2 +-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
---- projects/openmp/runtime/cmake/LibompMicroTests.cmake.orig 2017-03-16 15:50:48 UTC
-+++ projects/openmp/runtime/cmake/LibompMicroTests.cmake
-@@ -171,7 +171,7 @@ add_custom_command(
- add_custom_target(libomp-test-deps DEPENDS test-deps/.success)
- set(libomp_expected_library_deps)
- if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
-- set(libomp_expected_library_deps libc.so.7 libthr.so.3)
-+ set(libomp_expected_library_deps libc.so.7 libthr.so.3 libm.so.5)
- libomp_append(libomp_expected_library_deps libhwloc.so.5 LIBOMP_USE_HWLOC)
- elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
- set(libomp_expected_library_deps libc.so.12 libpthread.so.1 libm.so.0)
diff --git a/devel/llvm60/files/openmp/patch-i386 b/devel/llvm60/files/openmp/patch-i386
deleted file mode 100644
index 9300640f6845..000000000000
--- a/devel/llvm60/files/openmp/patch-i386
+++ /dev/null
@@ -1,11 +0,0 @@
---- projects/openmp/runtime/src/kmp_runtime.cpp.orig 2017-07-17 09:03:14 UTC
-+++ projects/openmp/runtime/src/kmp_runtime.cpp
-@@ -7535,7 +7535,7 @@ __kmp_determine_reduction_method(
-
- #elif KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_AARCH || KMP_ARCH_MIPS
-
--#if KMP_OS_LINUX || KMP_OS_WINDOWS
-+#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS
-
- // basic tuning
-
diff --git a/devel/llvm60/files/patch-cmake_modules_AddSphinxTarget.cmake b/devel/llvm60/files/patch-cmake_modules_AddSphinxTarget.cmake
deleted file mode 100644
index f4fc8f25e306..000000000000
--- a/devel/llvm60/files/patch-cmake_modules_AddSphinxTarget.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
---- cmake/modules/AddSphinxTarget.cmake.orig
-+++ cmake/modules/AddSphinxTarget.cmake
-@@ -29,6 +29,8 @@
- endif()
-
- add_custom_target(${SPHINX_TARGET_NAME}
-+ COMMAND ${CMAKE_COMMAND}
-+ -E make_directory ${SPHINX_BUILD_DIR}
- COMMAND ${SPHINX_EXECUTABLE}
- -b ${builder}
- -d "${SPHINX_DOC_TREE_DIR}"
diff --git a/devel/llvm60/files/patch-head-r308867.diff b/devel/llvm60/files/patch-head-r308867.diff
deleted file mode 100644
index 07efefa7c899..000000000000
--- a/devel/llvm60/files/patch-head-r308867.diff
+++ /dev/null
@@ -1,33 +0,0 @@
-r308867 | dim | 2016-11-19 22:05:17 +0100 (Sat, 19 Nov 2016) | 15 lines
-
-Work around LLVM PR30879, which is about a bad interaction between X86
-Call Frame Optimization on i386 and libunwind, by disallowing the
-optimization for i386-freebsd12.
-
-This should fix some instances of broken exception handling when frame
-pointers are omitted, in particular some unittests run during the build
-of editors/libreoffice.
-
-This hack will be removed as soon as upstream has implemented a more
-permanent fix for this problem.
-
-Upstream PR: https://llvm.org/bugs/show_bug.cgi?id=30879
-Reviewed by: emaste
-PR: 212343
-
-Index: lib/Target/X86/X86CallFrameOptimization.cpp
-===================================================================
---- lib/Target/X86/X86CallFrameOptimization.cpp (revision 308866)
-+++ lib/Target/X86/X86CallFrameOptimization.cpp (revision 308867)
-@@ -125,6 +125,11 @@ bool X86CallFrameOptimization::isLegal(MachineFunc
- if (NoX86CFOpt.getValue())
- return false;
-
-+ // Work around LLVM PR30879 (bad interaction between CFO and libunwind)
-+ if (STI->isTargetFreeBSD() && STI->is32Bit() &&
-+ STI->getTargetTriple().getOSMajorVersion() >= 12)
-+ return false;
-+
- // We can't encode multiple DW_CFA_GNU_args_size or DW_CFA_def_cfa_offset
- // in the compact unwind encoding that Darwin uses. So, bail if there
- // is a danger of that being generated.
diff --git a/devel/llvm60/files/patch-head-r330686.diff b/devel/llvm60/files/patch-head-r330686.diff
deleted file mode 100644
index 5a5f04e3b0ef..000000000000
--- a/devel/llvm60/files/patch-head-r330686.diff
+++ /dev/null
@@ -1,80 +0,0 @@
-r330686 | dim | 2018-03-09 10:21:22 +0100 (Fri, 09 Mar 2018) | 20 lines
-
-Pull in r326882 from upstream llvm trunk (by Sjoerd Meijer):
-
- [ARM] Fix for PR36577
-
- Don't PerformSHLSimplify if the given node is used by a node that
- also uses a constant because we may get stuck in an infinite combine
- loop.
-
- bugzilla: https://bugs.llvm.org/show_bug.cgi?id=36577
-
- Patch by Sam Parker.
-
- Differential Revision: https://reviews.llvm.org/D44097
-
-This fixes a hang when compiling one particular file in java/openjdk8
-for armv6 and armv7.
-
-Reported by: swills
-PR: 226388
-
-Index: lib/Target/ARM/ARMISelLowering.cpp
-===================================================================
---- lib/Target/ARM/ARMISelLowering.cpp (revision 330685)
-+++ lib/Target/ARM/ARMISelLowering.cpp (revision 330686)
-@@ -10201,7 +10201,14 @@ static SDValue PerformSHLSimplify(SDNode *N,
- case ISD::XOR:
- case ISD::SETCC:
- case ARMISD::CMP:
-- // Check that its not already using a shl.
-+ // Check that the user isn't already using a constant because there
-+ // aren't any instructions that support an immediate operand and a
-+ // shifted operand.
-+ if (isa<ConstantSDNode>(U->getOperand(0)) ||
-+ isa<ConstantSDNode>(U->getOperand(1)))
-+ return SDValue();
-+
-+ // Check that it's not already using a shift.
- if (U->getOperand(0).getOpcode() == ISD::SHL ||
- U->getOperand(1).getOpcode() == ISD::SHL)
- return SDValue();
-@@ -10223,8 +10230,6 @@ static SDValue PerformSHLSimplify(SDNode *N,
- if (!C1ShlC2 || !C2)
- return SDValue();
-
-- DEBUG(dbgs() << "Trying to simplify shl: "; N->dump());
--
- APInt C2Int = C2->getAPIntValue();
- APInt C1Int = C1ShlC2->getAPIntValue();
-
-@@ -10238,12 +10243,12 @@ static SDValue PerformSHLSimplify(SDNode *N,
- C1Int.lshrInPlace(C2Int);
-
- // The immediates are encoded as an 8-bit value that can be rotated.
-- unsigned Zeros = C1Int.countLeadingZeros() + C1Int.countTrailingZeros();
-- if (C1Int.getBitWidth() - Zeros > 8)
-- return SDValue();
-+ auto LargeImm = [](const APInt &Imm) {
-+ unsigned Zeros = Imm.countLeadingZeros() + Imm.countTrailingZeros();
-+ return Imm.getBitWidth() - Zeros > 8;
-+ };
-
-- Zeros = C2Int.countLeadingZeros() + C2Int.countTrailingZeros();
-- if (C2Int.getBitWidth() - Zeros > 8)
-+ if (LargeImm(C1Int) || LargeImm(C2Int))
- return SDValue();
-
- SelectionDAG &DAG = DCI.DAG;
-@@ -10254,6 +10259,10 @@ static SDValue PerformSHLSimplify(SDNode *N,
- // Shift left to compensate for the lshr of C1Int.
- SDValue Res = DAG.getNode(ISD::SHL, dl, MVT::i32, BinOp, SHL.getOperand(1));
-
-+ DEBUG(dbgs() << "Simplify shl use:\n"; SHL.getOperand(0).dump(); SHL.dump();
-+ N->dump());
-+ DEBUG(dbgs() << "Into:\n"; X.dump(); BinOp.dump(); Res.dump());
-+
- DAG.ReplaceAllUsesWith(SDValue(N, 0), Res);
- return SDValue(N, 0);
- }
diff --git a/devel/llvm60/files/patch-head-r331065.diff b/devel/llvm60/files/patch-head-r331065.diff
deleted file mode 100644
index 6976ee83460f..000000000000
--- a/devel/llvm60/files/patch-head-r331065.diff
+++ /dev/null
@@ -1,88 +0,0 @@
-r331065 | dim | 2018-03-16 18:50:44 +0100 (Fri, 16 Mar 2018) | 17 lines
-
-Pull in r327638 from upstream llvm trunk (by Matthew Simpson):
-
- [ConstantFolding, InstSimplify] Handle more vector GEPs
-
- This patch addresses some additional cases where the compiler crashes
- upon encountering vector GEPs. This should fix PR36116.
-
- Differential Revision: https://reviews.llvm.org/D44219
- Reference: https://bugs.llvm.org/show_bug.cgi?id=36116
-
-This fixes an assertion when building the emulators/snes9x port.
-
-Reported by: jbeich
-PR: 225471
-MFC after: 3 months
-X-MFC-With: r327952
-
-Index: lib/Analysis/InstructionSimplify.cpp
-===================================================================
---- lib/Analysis/InstructionSimplify.cpp (revision 331064)
-+++ lib/Analysis/InstructionSimplify.cpp (revision 331065)
-@@ -3697,7 +3697,7 @@ static Value *SimplifyGEPInst(Type *SrcTy, ArrayRe
-
- if (Ops.size() == 2) {
- // getelementptr P, 0 -> P.
-- if (match(Ops[1], m_Zero()))
-+ if (match(Ops[1], m_Zero()) && Ops[0]->getType() == GEPTy)
- return Ops[0];
-
- Type *Ty = SrcTy;
-@@ -3706,7 +3706,7 @@ static Value *SimplifyGEPInst(Type *SrcTy, ArrayRe
- uint64_t C;
- uint64_t TyAllocSize = Q.DL.getTypeAllocSize(Ty);
- // getelementptr P, N -> P if P points to a type of zero size.
-- if (TyAllocSize == 0)
-+ if (TyAllocSize == 0 && Ops[0]->getType() == GEPTy)
- return Ops[0];
-
- // The following transforms are only safe if the ptrtoint cast
-Index: lib/IR/ConstantFold.cpp
-===================================================================
---- lib/IR/ConstantFold.cpp (revision 331064)
-+++ lib/IR/ConstantFold.cpp (revision 331065)
-@@ -2018,8 +2018,16 @@ static bool isInBoundsIndices(ArrayRef<IndexTy> Id
-
- // If the first index is one and all the rest are zero, it's in bounds,
- // by the one-past-the-end rule.
-- if (!cast<ConstantInt>(Idxs[0])->isOne())
-- return false;
-+ if (auto *CI = dyn_cast<ConstantInt>(Idxs[0])) {
-+ if (!CI->isOne())
-+ return false;
-+ } else {
-+ auto *CV = cast<ConstantDataVector>(Idxs[0]);
-+ CI = dyn_cast_or_null<ConstantInt>(CV->getSplatValue());
-+ if (!CI || !CI->isOne())
-+ return false;
-+ }
-+
- for (unsigned i = 1, e = Idxs.size(); i != e; ++i)
- if (!cast<Constant>(Idxs[i])->isNullValue())
- return false;
-@@ -2049,15 +2057,18 @@ Constant *llvm::ConstantFoldGetElementPtr(Type *Po
- ArrayRef<Value *> Idxs) {
- if (Idxs.empty()) return C;
-
-- if (isa<UndefValue>(C)) {
-- Type *GEPTy = GetElementPtrInst::getGEPReturnType(
-- C, makeArrayRef((Value * const *)Idxs.data(), Idxs.size()));
-+ Type *GEPTy = GetElementPtrInst::getGEPReturnType(
-+ C, makeArrayRef((Value *const *)Idxs.data(), Idxs.size()));
-+
-+ if (isa<UndefValue>(C))
- return UndefValue::get(GEPTy);
-- }
-
- Constant *Idx0 = cast<Constant>(Idxs[0]);
- if (Idxs.size() == 1 && (Idx0->isNullValue() || isa<UndefValue>(Idx0)))
-- return C;
-+ return GEPTy->isVectorTy() && !C->getType()->isVectorTy()
-+ ? ConstantVector::getSplat(
-+ cast<VectorType>(GEPTy)->getNumElements(), C)
-+ : C;
-
- if (C->isNullValue()) {
- bool isNull = true;
diff --git a/devel/llvm60/files/patch-head-r331366.diff b/devel/llvm60/files/patch-head-r331366.diff
deleted file mode 100644
index dccde7fb6bd6..000000000000
--- a/devel/llvm60/files/patch-head-r331366.diff
+++ /dev/null
@@ -1,609 +0,0 @@
-r331366 | dim | 2018-03-22 19:58:34 +0100 (Thu, 22 Mar 2018) | 61 lines
-
-Pull in r327101 from upstream llvm trunk (by Rafael Espindola):
-
- Don't treat .symver as a regular alias definition.
-
- This patch starts simplifying the handling of .symver.
-
- For now it just moves the responsibility for creating an alias down to
- the streamer. With that the asm streamer can pass a .symver unchanged,
- which is nice since gas cannot parse "foo@bar = zed".
-
- In a followup I hope to move the handling down to the writer so that
- we don't need special hacks for avoiding breaking names with @@@ on
- windows.
-
-Pull in r327160 from upstream llvm trunk (by Rafael Espindola):
-
- Delay creating an alias for @@@.
-
- With this we only create an alias for @@@ once we know if it should
- use @ or @@. This avoids last minutes renames and hacks to handle MS
- names.
-
- This only handles the ELF writer. LTO still has issues with @@@
- aliases.
-
-Pull in r327928 from upstream llvm trunk (by Vitaly Buka):
-
- Object: Move attribute calculation into RecordStreamer. NFC
-
- Summary: Preparation for D44274
-
- Reviewers: pcc, espindola
-
- Subscribers: hiraditya
-
- Differential Revision: https://reviews.llvm.org/D44276
-
-Pull in r327930 from upstream llvm trunk (by Vitaly Buka):
-
- Object: Fix handling of @@@ in .symver directive
-
- Summary:
- name@@@nodename is going to be replaced with name@@nodename if symbols is
- defined in the assembled file, or name@nodename if undefined.
- https://sourceware.org/binutils/docs/as/Symver.html
-
- Fixes PR36623
-
- Reviewers: pcc, espindola
-
- Subscribers: mehdi_amini, hiraditya
-
- Differential Revision: https://reviews.llvm.org/D44274
-
-Together, these changes fix handling of @@@ in .symver directives when
-doing Link Time Optimization.
-
-Reported by: Shawn Webb <shawn.webb@hardenedbsd.org>
-MFC after: 3 months
-X-MFC-With: r327952
-
-Index: include/llvm/MC/MCAssembler.h
-===================================================================
---- include/llvm/MC/MCAssembler.h (revision 331365)
-+++ include/llvm/MC/MCAssembler.h (revision 331366)
-@@ -206,6 +206,8 @@ class MCAssembler {
- handleFixup(const MCAsmLayout &Layout, MCFragment &F, const MCFixup &Fixup);
-
- public:
-+ std::vector<std::pair<StringRef, const MCSymbol *>> Symvers;
-+
- /// Construct a new assembler instance.
- //
- // FIXME: How are we going to parameterize this? Two obvious options are stay
-Index: include/llvm/MC/MCELFStreamer.h
-===================================================================
---- include/llvm/MC/MCELFStreamer.h (revision 331365)
-+++ include/llvm/MC/MCELFStreamer.h (revision 331366)
-@@ -51,6 +51,8 @@ class MCELFStreamer : public MCObjectStreamer {
- unsigned ByteAlignment) override;
-
- void emitELFSize(MCSymbol *Symbol, const MCExpr *Value) override;
-+ void emitELFSymverDirective(StringRef AliasName,
-+ const MCSymbol *Aliasee) override;
-
- void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
- unsigned ByteAlignment) override;
-Index: include/llvm/MC/MCStreamer.h
-===================================================================
---- include/llvm/MC/MCStreamer.h (revision 331365)
-+++ include/llvm/MC/MCStreamer.h (revision 331366)
-@@ -519,9 +519,10 @@ class MCStreamer {
- ///
- /// This corresponds to an assembler statement such as:
- /// .symver _start, foo@@SOME_VERSION
-- /// \param Alias - The versioned alias (i.e. "foo@@SOME_VERSION")
-+ /// \param AliasName - The versioned alias (i.e. "foo@@SOME_VERSION")
- /// \param Aliasee - The aliased symbol (i.e. "_start")
-- virtual void emitELFSymverDirective(MCSymbol *Alias, const MCSymbol *Aliasee);
-+ virtual void emitELFSymverDirective(StringRef AliasName,
-+ const MCSymbol *Aliasee);
-
- /// \brief Emit a Linker Optimization Hint (LOH) directive.
- /// \param Args - Arguments of the LOH.
-Index: lib/MC/ELFObjectWriter.cpp
-===================================================================
---- lib/MC/ELFObjectWriter.cpp (revision 331365)
-+++ lib/MC/ELFObjectWriter.cpp (revision 331366)
-@@ -128,8 +128,6 @@ class ELFObjectWriter : public MCObjectWriter {
- /// @name Symbol Table Data
- /// @{
-
-- BumpPtrAllocator Alloc;
-- StringSaver VersionSymSaver{Alloc};
- StringTableBuilder StrTabBuilder{StringTableBuilder::ELF};
-
- /// @}
-@@ -391,27 +389,29 @@ void ELFObjectWriter::executePostLayoutBinding(MCA
- const MCAsmLayout &Layout) {
- // The presence of symbol versions causes undefined symbols and
- // versions declared with @@@ to be renamed.
-- for (const MCSymbol &A : Asm.symbols()) {
-- const auto &Alias = cast<MCSymbolELF>(A);
-- // Not an alias.
-- if (!Alias.isVariable())
-- continue;
-- auto *Ref = dyn_cast<MCSymbolRefExpr>(Alias.getVariableValue());
-- if (!Ref)
-- continue;
-- const auto &Symbol = cast<MCSymbolELF>(Ref->getSymbol());
--
-- StringRef AliasName = Alias.getName();
-+ for (const std::pair<StringRef, const MCSymbol *> &P : Asm.Symvers) {
-+ StringRef AliasName = P.first;
-+ const auto &Symbol = cast<MCSymbolELF>(*P.second);
- size_t Pos = AliasName.find('@');
-- if (Pos == StringRef::npos)
-- continue;
-+ assert(Pos != StringRef::npos);
-
-+ StringRef Prefix = AliasName.substr(0, Pos);
-+ StringRef Rest = AliasName.substr(Pos);
-+ StringRef Tail = Rest;
-+ if (Rest.startswith("@@@"))
-+ Tail = Rest.substr(Symbol.isUndefined() ? 2 : 1);
-+
-+ auto *Alias =
-+ cast<MCSymbolELF>(Asm.getContext().getOrCreateSymbol(Prefix + Tail));
-+ Asm.registerSymbol(*Alias);
-+ const MCExpr *Value = MCSymbolRefExpr::create(&Symbol, Asm.getContext());
-+ Alias->setVariableValue(Value);
-+
- // Aliases defined with .symvar copy the binding from the symbol they alias.
- // This is the first place we are able to copy this information.
-- Alias.setExternal(Symbol.isExternal());
-- Alias.setBinding(Symbol.getBinding());
-+ Alias->setExternal(Symbol.isExternal());
-+ Alias->setBinding(Symbol.getBinding());
-
-- StringRef Rest = AliasName.substr(Pos);
- if (!Symbol.isUndefined() && !Rest.startswith("@@@"))
- continue;
-
-@@ -420,7 +420,7 @@ void ELFObjectWriter::executePostLayoutBinding(MCA
- !Rest.startswith("@@@"))
- report_fatal_error("A @@ version cannot be undefined");
-
-- Renames.insert(std::make_pair(&Symbol, &Alias));
-+ Renames.insert(std::make_pair(&Symbol, Alias));
- }
- }
-
-@@ -836,44 +836,7 @@ void ELFObjectWriter::computeSymbolTable(
- HasLargeSectionIndex = true;
- }
-
-- // The @@@ in symbol version is replaced with @ in undefined symbols and @@
-- // in defined ones.
-- //
-- // FIXME: All name handling should be done before we get to the writer,
-- // including dealing with GNU-style version suffixes. Fixing this isn't
-- // trivial.
-- //
-- // We thus have to be careful to not perform the symbol version replacement
-- // blindly:
-- //
-- // The ELF format is used on Windows by the MCJIT engine. Thus, on
-- // Windows, the ELFObjectWriter can encounter symbols mangled using the MS
-- // Visual Studio C++ name mangling scheme. Symbols mangled using the MSVC
-- // C++ name mangling can legally have "@@@" as a sub-string. In that case,
-- // the EFLObjectWriter should not interpret the "@@@" sub-string as
-- // specifying GNU-style symbol versioning. The ELFObjectWriter therefore
-- // checks for the MSVC C++ name mangling prefix which is either "?", "@?",
-- // "__imp_?" or "__imp_@?".
-- //
-- // It would have been interesting to perform the MS mangling prefix check
-- // only when the target triple is of the form *-pc-windows-elf. But, it
-- // seems that this information is not easily accessible from the
-- // ELFObjectWriter.
- StringRef Name = Symbol.getName();
-- SmallString<32> Buf;
-- if (!Name.startswith("?") && !Name.startswith("@?") &&
-- !Name.startswith("__imp_?") && !Name.startswith("__imp_@?")) {
-- // This symbol isn't following the MSVC C++ name mangling convention. We
-- // can thus safely interpret the @@@ in symbol names as specifying symbol
-- // versioning.
-- size_t Pos = Name.find("@@@");
-- if (Pos != StringRef::npos) {
-- Buf += Name.substr(0, Pos);
-- unsigned Skip = MSD.SectionIndex == ELF::SHN_UNDEF ? 2 : 1;
-- Buf += Name.substr(Pos + Skip);
-- Name = VersionSymSaver.save(Buf.c_str());
-- }
-- }
-
- // Sections have their own string table
- if (Symbol.getType() != ELF::STT_SECTION) {
-Index: lib/MC/MCAsmStreamer.cpp
-===================================================================
---- lib/MC/MCAsmStreamer.cpp (revision 331365)
-+++ lib/MC/MCAsmStreamer.cpp (revision 331366)
-@@ -129,6 +129,9 @@ class MCAsmStreamer final : public MCStreamer {
-
- void ChangeSection(MCSection *Section, const MCExpr *Subsection) override;
-
-+ void emitELFSymverDirective(StringRef AliasName,
-+ const MCSymbol *Aliasee) override;
-+
- void EmitLOHDirective(MCLOHType Kind, const MCLOHArgs &Args) override;
- void EmitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override;
-
-@@ -411,6 +414,14 @@ void MCAsmStreamer::ChangeSection(MCSection *Secti
- }
- }
-
-+void MCAsmStreamer::emitELFSymverDirective(StringRef AliasName,
-+ const MCSymbol *Aliasee) {
-+ OS << ".symver ";
-+ Aliasee->print(OS, MAI);
-+ OS << ", " << AliasName;
-+ EmitEOL();
-+}
-+
- void MCAsmStreamer::EmitLabel(MCSymbol *Symbol, SMLoc Loc) {
- MCStreamer::EmitLabel(Symbol, Loc);
-
-Index: lib/MC/MCELFStreamer.cpp
-===================================================================
---- lib/MC/MCELFStreamer.cpp (revision 331365)
-+++ lib/MC/MCELFStreamer.cpp (revision 331366)
-@@ -337,6 +337,11 @@ void MCELFStreamer::emitELFSize(MCSymbol *Symbol,
- cast<MCSymbolELF>(Symbol)->setSize(Value);
- }
-
-+void MCELFStreamer::emitELFSymverDirective(StringRef AliasName,
-+ const MCSymbol *Aliasee) {
-+ getAssembler().Symvers.push_back({AliasName, Aliasee});
-+}
-+
- void MCELFStreamer::EmitLocalCommonSymbol(MCSymbol *S, uint64_t Size,
- unsigned ByteAlignment) {
- auto *Symbol = cast<MCSymbolELF>(S);
-Index: lib/MC/MCParser/ELFAsmParser.cpp
-===================================================================
---- lib/MC/MCParser/ELFAsmParser.cpp (revision 331365)
-+++ lib/MC/MCParser/ELFAsmParser.cpp (revision 331366)
-@@ -767,12 +767,8 @@ bool ELFAsmParser::ParseDirectiveSymver(StringRef,
- if (AliasName.find('@') == StringRef::npos)
- return TokError("expected a '@' in the name");
-
-- MCSymbol *Alias = getContext().getOrCreateSymbol(AliasName);
- MCSymbol *Sym = getContext().getOrCreateSymbol(Name);
-- const MCExpr *Value = MCSymbolRefExpr::create(Sym, getContext());
--
-- getStreamer().EmitAssignment(Alias, Value);
-- getStreamer().emitELFSymverDirective(Alias, Sym);
-+ getStreamer().emitELFSymverDirective(AliasName, Sym);
- return false;
- }
-
-Index: lib/MC/MCStreamer.cpp
-===================================================================
---- lib/MC/MCStreamer.cpp (revision 331365)
-+++ lib/MC/MCStreamer.cpp (revision 331366)
-@@ -925,7 +925,7 @@ void MCStreamer::EmitCOFFSymbolType(int Type) {
- llvm_unreachable("this directive only supported on COFF targets");
- }
- void MCStreamer::emitELFSize(MCSymbol *Symbol, const MCExpr *Value) {}
--void MCStreamer::emitELFSymverDirective(MCSymbol *Alias,
-+void MCStreamer::emitELFSymverDirective(StringRef AliasName,
- const MCSymbol *Aliasee) {}
- void MCStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
- unsigned ByteAlignment) {}
-Index: lib/Object/ModuleSymbolTable.cpp
-===================================================================
---- lib/Object/ModuleSymbolTable.cpp (revision 331365)
-+++ lib/Object/ModuleSymbolTable.cpp (revision 331366)
-@@ -24,7 +24,6 @@
- #include "llvm/IR/GlobalAlias.h"
- #include "llvm/IR/GlobalValue.h"
- #include "llvm/IR/GlobalVariable.h"
--#include "llvm/IR/Mangler.h"
- #include "llvm/IR/Module.h"
- #include "llvm/MC/MCAsmInfo.h"
- #include "llvm/MC/MCContext.h"
-@@ -69,81 +68,6 @@ void ModuleSymbolTable::addModule(Module *M) {
- });
- }
-
--// Ensure ELF .symver aliases get the same binding as the defined symbol
--// they alias with.
--static void handleSymverAliases(const Module &M, RecordStreamer &Streamer) {
-- if (Streamer.symverAliases().empty())
-- return;
--
-- // The name in the assembler will be mangled, but the name in the IR
-- // might not, so we first compute a mapping from mangled name to GV.
-- Mangler Mang;
-- SmallString<64> MangledName;
-- StringMap<const GlobalValue *> MangledNameMap;
-- auto GetMangledName = [&](const GlobalValue &GV) {
-- if (!GV.hasName())
-- return;
--
-- MangledName.clear();
-- MangledName.reserve(GV.getName().size() + 1);
-- Mang.getNameWithPrefix(MangledName, &GV, /*CannotUsePrivateLabel=*/false);
-- MangledNameMap[MangledName] = &GV;
-- };
-- for (const Function &F : M)
-- GetMangledName(F);
-- for (const GlobalVariable &GV : M.globals())
-- GetMangledName(GV);
-- for (const GlobalAlias &GA : M.aliases())
-- GetMangledName(GA);
--
-- // Walk all the recorded .symver aliases, and set up the binding
-- // for each alias.
-- for (auto &Symver : Streamer.symverAliases()) {
-- const MCSymbol *Aliasee = Symver.first;
-- MCSymbolAttr Attr = MCSA_Invalid;
--
-- // First check if the aliasee binding was recorded in the asm.
-- RecordStreamer::State state = Streamer.getSymbolState(Aliasee);
-- switch (state) {
-- case RecordStreamer::Global:
-- case RecordStreamer::DefinedGlobal:
-- Attr = MCSA_Global;
-- break;
-- case RecordStreamer::UndefinedWeak:
-- case RecordStreamer::DefinedWeak:
-- Attr = MCSA_Weak;
-- break;
-- default:
-- break;
-- }
--
-- // If we don't have a symbol attribute from assembly, then check if
-- // the aliasee was defined in the IR.
-- if (Attr == MCSA_Invalid) {
-- const auto *GV = M.getNamedValue(Aliasee->getName());
-- if (!GV) {
-- auto MI = MangledNameMap.find(Aliasee->getName());
-- if (MI != MangledNameMap.end())
-- GV = MI->second;
-- else
-- continue;
-- }
-- if (GV->hasExternalLinkage())
-- Attr = MCSA_Global;
-- else if (GV->hasLocalLinkage())
-- Attr = MCSA_Local;
-- else if (GV->isWeakForLinker())
-- Attr = MCSA_Weak;
-- }
-- if (Attr == MCSA_Invalid)
-- continue;
--
-- // Set the detected binding on each alias with this aliasee.
-- for (auto &Alias : Symver.second)
-- Streamer.EmitSymbolAttribute(Alias, Attr);
-- }
--}
--
- void ModuleSymbolTable::CollectAsmSymbols(
- const Module &M,
- function_ref<void(StringRef, BasicSymbolRef::Flags)> AsmSymbol) {
-@@ -176,7 +100,7 @@ void ModuleSymbolTable::CollectAsmSymbols(
- MCObjectFileInfo MOFI;
- MCContext MCCtx(MAI.get(), MRI.get(), &MOFI);
- MOFI.InitMCObjectFileInfo(TT, /*PIC*/ false, MCCtx);
-- RecordStreamer Streamer(MCCtx);
-+ RecordStreamer Streamer(MCCtx, M);
- T->createNullTargetStreamer(Streamer);
-
- std::unique_ptr<MemoryBuffer> Buffer(MemoryBuffer::getMemBuffer(InlineAsm));
-@@ -195,7 +119,7 @@ void ModuleSymbolTable::CollectAsmSymbols(
- if (Parser->Run(false))
- return;
-
-- handleSymverAliases(M, Streamer);
-+ Streamer.flushSymverDirectives();
-
- for (auto &KV : Streamer) {
- StringRef Key = KV.first();
-Index: lib/Object/RecordStreamer.cpp
-===================================================================
---- lib/Object/RecordStreamer.cpp (revision 331365)
-+++ lib/Object/RecordStreamer.cpp (revision 331366)
-@@ -8,6 +8,9 @@
- //===----------------------------------------------------------------------===//
-
- #include "RecordStreamer.h"
-+#include "llvm/IR/Mangler.h"
-+#include "llvm/IR/Module.h"
-+#include "llvm/MC/MCContext.h"
- #include "llvm/MC/MCSymbol.h"
-
- using namespace llvm;
-@@ -70,7 +73,8 @@ void RecordStreamer::markUsed(const MCSymbol &Symb
-
- void RecordStreamer::visitUsedSymbol(const MCSymbol &Sym) { markUsed(Sym); }
-
--RecordStreamer::RecordStreamer(MCContext &Context) : MCStreamer(Context) {}
-+RecordStreamer::RecordStreamer(MCContext &Context, const Module &M)
-+ : MCStreamer(Context), M(M) {}
-
- RecordStreamer::const_iterator RecordStreamer::begin() {
- return Symbols.begin();
-@@ -112,7 +116,109 @@ void RecordStreamer::EmitCommonSymbol(MCSymbol *Sy
- markDefined(*Symbol);
- }
-
--void RecordStreamer::emitELFSymverDirective(MCSymbol *Alias,
-+RecordStreamer::State RecordStreamer::getSymbolState(const MCSymbol *Sym) {
-+ auto SI = Symbols.find(Sym->getName());
-+ if (SI == Symbols.end())
-+ return NeverSeen;
-+ return SI->second;
-+}
-+
-+void RecordStreamer::emitELFSymverDirective(StringRef AliasName,
- const MCSymbol *Aliasee) {
-- SymverAliasMap[Aliasee].push_back(Alias);
-+ SymverAliasMap[Aliasee].push_back(AliasName);
- }
-+
-+void RecordStreamer::flushSymverDirectives() {
-+ // Mapping from mangled name to GV.
-+ StringMap<const GlobalValue *> MangledNameMap;
-+ // The name in the assembler will be mangled, but the name in the IR
-+ // might not, so we first compute a mapping from mangled name to GV.
-+ Mangler Mang;
-+ SmallString<64> MangledName;
-+ for (const GlobalValue &GV : M.global_values()) {
-+ if (!GV.hasName())
-+ continue;
-+ MangledName.clear();
-+ MangledName.reserve(GV.getName().size() + 1);
-+ Mang.getNameWithPrefix(MangledName, &GV, /*CannotUsePrivateLabel=*/false);
-+ MangledNameMap[MangledName] = &GV;
-+ }
-+
-+ // Walk all the recorded .symver aliases, and set up the binding
-+ // for each alias.
-+ for (auto &Symver : SymverAliasMap) {
-+ const MCSymbol *Aliasee = Symver.first;
-+ MCSymbolAttr Attr = MCSA_Invalid;
-+ bool IsDefined = false;
-+
-+ // First check if the aliasee binding was recorded in the asm.
-+ RecordStreamer::State state = getSymbolState(Aliasee);
-+ switch (state) {
-+ case RecordStreamer::Global:
-+ case RecordStreamer::DefinedGlobal:
-+ Attr = MCSA_Global;
-+ break;
-+ case RecordStreamer::UndefinedWeak:
-+ case RecordStreamer::DefinedWeak:
-+ Attr = MCSA_Weak;
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ switch (state) {
-+ case RecordStreamer::Defined:
-+ case RecordStreamer::DefinedGlobal:
-+ case RecordStreamer::DefinedWeak:
-+ IsDefined = true;
-+ break;
-+ case RecordStreamer::NeverSeen:
-+ case RecordStreamer::Global:
-+ case RecordStreamer::Used:
-+ case RecordStreamer::UndefinedWeak:
-+ break;
-+ }
-+
-+ if (Attr == MCSA_Invalid || !IsDefined) {
-+ const GlobalValue *GV = M.getNamedValue(Aliasee->getName());
-+ if (!GV) {
-+ auto MI = MangledNameMap.find(Aliasee->getName());
-+ if (MI != MangledNameMap.end())
-+ GV = MI->second;
-+ }
-+ if (GV) {
-+ // If we don't have a symbol attribute from assembly, then check if
-+ // the aliasee was defined in the IR.
-+ if (Attr == MCSA_Invalid) {
-+ if (GV->hasExternalLinkage())
-+ Attr = MCSA_Global;
-+ else if (GV->hasLocalLinkage())
-+ Attr = MCSA_Local;
-+ else if (GV->isWeakForLinker())
-+ Attr = MCSA_Weak;
-+ }
-+ IsDefined = IsDefined || !GV->isDeclarationForLinker();
-+ }
-+ }
-+
-+ // Set the detected binding on each alias with this aliasee.
-+ for (auto AliasName : Symver.second) {
-+ std::pair<StringRef, StringRef> Split = AliasName.split("@@@");
-+ SmallString<128> NewName;
-+ if (!Split.second.empty() && !Split.second.startswith("@")) {
-+ // Special processing for "@@@" according
-+ // https://sourceware.org/binutils/docs/as/Symver.html
-+ const char *Separator = IsDefined ? "@@" : "@";
-+ AliasName =
-+ (Split.first + Separator + Split.second).toStringRef(NewName);
-+ }
-+ MCSymbol *Alias = getContext().getOrCreateSymbol(AliasName);
-+ // TODO: Handle "@@@". Depending on SymbolAttribute value it needs to be
-+ // converted into @ or @@.
-+ const MCExpr *Value = MCSymbolRefExpr::create(Aliasee, getContext());
-+ EmitAssignment(Alias, Value);
-+ if (Attr != MCSA_Invalid)
-+ EmitSymbolAttribute(Alias, Attr);
-+ }
-+ }
-+}
-Index: lib/Object/RecordStreamer.h
-===================================================================
---- lib/Object/RecordStreamer.h (revision 331365)
-+++ lib/Object/RecordStreamer.h (revision 331366)
-@@ -20,6 +20,9 @@
-
- namespace llvm {
-
-+class GlobalValue;
-+class Module;
-+
- class RecordStreamer : public MCStreamer {
- public:
- enum State { NeverSeen, Global, Defined, DefinedGlobal, DefinedWeak, Used,
-@@ -26,12 +29,16 @@ class RecordStreamer : public MCStreamer {
- UndefinedWeak};
-
- private:
-+ const Module &M;
- StringMap<State> Symbols;
- // Map of aliases created by .symver directives, saved so we can update
- // their symbol binding after parsing complete. This maps from each
- // aliasee to its list of aliases.
-- DenseMap<const MCSymbol *, std::vector<MCSymbol *>> SymverAliasMap;
-+ DenseMap<const MCSymbol *, std::vector<StringRef>> SymverAliasMap;
-
-+ /// Get the state recorded for the given symbol.
-+ State getSymbolState(const MCSymbol *Sym);
-+
- void markDefined(const MCSymbol &Symbol);
- void markGlobal(const MCSymbol &Symbol, MCSymbolAttr Attribute);
- void markUsed(const MCSymbol &Symbol);
-@@ -38,7 +45,7 @@ class RecordStreamer : public MCStreamer {
- void visitUsedSymbol(const MCSymbol &Sym) override;
-
- public:
-- RecordStreamer(MCContext &Context);
-+ RecordStreamer(MCContext &Context, const Module &M);
-
- using const_iterator = StringMap<State>::const_iterator;
-
-@@ -54,20 +61,11 @@ class RecordStreamer : public MCStreamer {
- void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,
- unsigned ByteAlignment) override;
- /// Record .symver aliases for later processing.
-- void emitELFSymverDirective(MCSymbol *Alias,
-+ void emitELFSymverDirective(StringRef AliasName,
- const MCSymbol *Aliasee) override;
-- /// Return the map of .symver aliasee to associated aliases.
-- DenseMap<const MCSymbol *, std::vector<MCSymbol *>> &symverAliases() {
-- return SymverAliasMap;
-- }
--
-- /// Get the state recorded for the given symbol.
-- State getSymbolState(const MCSymbol *Sym) {
-- auto SI = Symbols.find(Sym->getName());
-- if (SI == Symbols.end())
-- return NeverSeen;
-- return SI->second;
-- }
-+ // Emit ELF .symver aliases and ensure they have the same binding as the
-+ // defined symbol they alias with.
-+ void flushSymverDirectives();
- };
-
- } // end namespace llvm
diff --git a/devel/llvm60/files/patch-head-r336969.diff b/devel/llvm60/files/patch-head-r336969.diff
deleted file mode 100644
index 640b0d146c6c..000000000000
--- a/devel/llvm60/files/patch-head-r336969.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-r336969 | emaste | 2018-07-31 16:12:09 +0200 (Tue, 31 Jul 2018) | 13 lines
-
-llvm: [ELF][ARM] Add Arm ABI names for float ABI ELF Header flags
-
-The ELF for the Arm architecture document defines, for EF_ARM_EABI_VER5
-and above, the flags EF_ARM_ABI_FLOAT_HARD and EF_ARM_ABI_FLOAT_SOFT.
-These have been defined to be compatible with the existing
-EF_ARM_VFP_FLOAT and EF_ARM_SOFT_FLOAT used by gcc for
-EF_ARM_EABI_UNKNOWN.
-
-This patch adds the flags in addition to the existing ones so that any
-code depending on the old names will still work.
-
-Obtained from: llvm r338370 by Peter Smith
-
-Index: include/llvm/BinaryFormat/ELF.h
-===================================================================
---- include/llvm/BinaryFormat/ELF.h (revision 336968)
-+++ include/llvm/BinaryFormat/ELF.h (revision 336969)
-@@ -418,8 +418,10 @@ enum {
-
- // ARM Specific e_flags
- enum : unsigned {
-- EF_ARM_SOFT_FLOAT = 0x00000200U,
-- EF_ARM_VFP_FLOAT = 0x00000400U,
-+ EF_ARM_SOFT_FLOAT = 0x00000200U, // Legacy pre EABI_VER5
-+ EF_ARM_ABI_FLOAT_SOFT = 0x00000200U, // EABI_VER5
-+ EF_ARM_VFP_FLOAT = 0x00000400U, // Legacy pre EABI_VER5
-+ EF_ARM_ABI_FLOAT_HARD = 0x00000400U, // EABI_VER5
- EF_ARM_EABI_UNKNOWN = 0x00000000U,
- EF_ARM_EABI_VER1 = 0x01000000U,
- EF_ARM_EABI_VER2 = 0x02000000U,
diff --git a/devel/llvm60/files/patch-head-r336970.diff b/devel/llvm60/files/patch-head-r336970.diff
deleted file mode 100644
index d788914eb445..000000000000
--- a/devel/llvm60/files/patch-head-r336970.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-r336970 | emaste | 2018-07-31 16:14:41 +0200 (Tue, 31 Jul 2018) | 9 lines
-
-llvm: [ARM] Complete enumeration values for Tag_ABI_VFP_args
-
-The LLD implementation of Tag_ABI_VFP_args needs to check the rarely
-seen values of 3 (toolchain specific) and 4 compatible with both Base
-and VFP. Add the missing enumeration values so that LLD can refer to
-them without having to use the raw numbers.
-
-Obtained from: llvm r338373 by Peter Smith
-
-Index: include/llvm/Support/ARMBuildAttributes.h
-===================================================================
---- include/llvm/Support/ARMBuildAttributes.h (revision 336969)
-+++ include/llvm/Support/ARMBuildAttributes.h (revision 336970)
-@@ -213,6 +213,8 @@ enum {
- // Tag_ABI_VFP_args, (=28), uleb128
- BaseAAPCS = 0,
- HardFPAAPCS = 1,
-+ ToolChainFPPCS = 2,
-+ CompatibleFPAAPCS = 3,
-
- // Tag_FP_HP_extension, (=36), uleb128
- AllowHPFP = 1, // Allow use of Half Precision FP
diff --git a/devel/llvm60/files/patch-head-r337615.diff b/devel/llvm60/files/patch-head-r337615.diff
deleted file mode 100644
index 645240b71cf3..000000000000
--- a/devel/llvm60/files/patch-head-r337615.diff
+++ /dev/null
@@ -1,64 +0,0 @@
-r337615 | dim | 2018-08-11 12:42:12 +0200 (Sat, 11 Aug 2018) | 43 lines
-
-Pull in r338481 from upstream llvm trunk (by Chandler Carruth):
-
- [x86] Fix a really subtle miscompile due to a somewhat glaring bug in
- EFLAGS copy lowering.
-
- If you have a branch of LLVM, you may want to cherrypick this. It is
- extremely unlikely to hit this case empirically, but it will likely
- manifest as an "impossible" branch being taken somewhere, and will be
- ... very hard to debug.
-
- Hitting this requires complex conditions living across complex
- control flow combined with some interesting memory (non-stack)
- initialized with the results of a comparison. Also, because you have
- to arrange for an EFLAGS copy to be in *just* the right place, almost
- anything you do to the code will hide the bug. I was unable to reduce
- anything remotely resembling a "good" test case from the place where
- I hit it, and so instead I have constructed synthetic MIR testing
- that directly exercises the bug in question (as well as the good
- behavior for completeness).
-
- The issue is that we would mistakenly assume any SETcc with a valid
- condition and an initial operand that was a register and a virtual
- register at that to be a register *defining* SETcc...
-
- It isn't though....
-
- This would in turn cause us to test some other bizarre register,
- typically the base pointer of some memory. Now, testing this register
- and using that to branch on doesn't make any sense. It even fails the
- machine verifier (if you are running it) due to the wrong register
- class. But it will make it through LLVM, assemble, and it *looks*
- fine... But wow do you get a very unsual and surprising branch taken
- in your actual code.
-
- The fix is to actually check what kind of SETcc instruction we're
- dealing with. Because there are a bunch of them, I just test the
- may-store bit in the instruction. I've also added an assert for
- sanity that ensure we are, in fact, *defining* the register operand.
- =D
-
-Noticed by: kib
-MFC after: 1 week
-
-Index: lib/Target/X86/X86FlagsCopyLowering.cpp
-===================================================================
---- lib/Target/X86/X86FlagsCopyLowering.cpp (revision 337614)
-+++ lib/Target/X86/X86FlagsCopyLowering.cpp (revision 337615)
-@@ -608,9 +608,12 @@ X86FlagsCopyLoweringPass::collectCondsInRegs(Machi
- for (MachineInstr &MI : llvm::reverse(
- llvm::make_range(MBB.instr_begin(), CopyDefI.getIterator()))) {
- X86::CondCode Cond = X86::getCondFromSETOpc(MI.getOpcode());
-- if (Cond != X86::COND_INVALID && MI.getOperand(0).isReg() &&
-- TRI->isVirtualRegister(MI.getOperand(0).getReg()))
-+ if (Cond != X86::COND_INVALID && !MI.mayStore() && MI.getOperand(0).isReg() &&
-+ TRI->isVirtualRegister(MI.getOperand(0).getReg())) {
-+ assert(MI.getOperand(0).isDef() &&
-+ "A non-storing SETcc should always define a register!");
- CondRegs[Cond] = MI.getOperand(0).getReg();
-+ }
-
- // Stop scanning when we see the first definition of the EFLAGS as prior to
- // this we would potentially capture the wrong flag state.
diff --git a/devel/llvm60/files/patch-head-r338689.diff b/devel/llvm60/files/patch-head-r338689.diff
deleted file mode 100644
index c0a785e779ee..000000000000
--- a/devel/llvm60/files/patch-head-r338689.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-r338689 | dim | 2018-09-14 21:25:23 +0200 (Fri, 14 Sep 2018) | 12 lines
-
-Pull in r335365 from upstream llvm trunk (by Krzysztof Parzyszek):
-
- Initialize LiveRegs once in BranchFolder::mergeCommonTails
-
-This should fix '(TRI && "LivePhysRegs is not initialized."' assertions
-when building the lang/qt5-qml port in certain configurations.
-
-Approved by: re (kib)
-Reported by: Piotr Kubaj <pkubaj@anongoth.pl>
-PR: 231355
-MFC after: 3 days
-
-Index: lib/CodeGen/BranchFolding.cpp
-===================================================================
---- lib/CodeGen/BranchFolding.cpp (revision 338688)
-+++ lib/CodeGen/BranchFolding.cpp (revision 338689)
-@@ -884,11 +884,12 @@ void BranchFolder::mergeCommonTails(unsigned commo
- if (UpdateLiveIns) {
- LivePhysRegs NewLiveIns(*TRI);
- computeLiveIns(NewLiveIns, *MBB);
-+ LiveRegs.init(*TRI);
-
- // The flag merging may lead to some register uses no longer using the
- // <undef> flag, add IMPLICIT_DEFs in the predecessors as necessary.
- for (MachineBasicBlock *Pred : MBB->predecessors()) {
-- LiveRegs.init(*TRI);
-+ LiveRegs.clear();
- LiveRegs.addLiveOuts(*Pred);
- MachineBasicBlock::iterator InsertBefore = Pred->getFirstTerminator();
- for (unsigned Reg : NewLiveIns) {
diff --git a/devel/llvm60/files/patch-svn-r322325 b/devel/llvm60/files/patch-svn-r322325
deleted file mode 100644
index 3b0501e37022..000000000000
--- a/devel/llvm60/files/patch-svn-r322325
+++ /dev/null
@@ -1,1589 +0,0 @@
-r322325:
-
-PeepholeOpt cleanup/refactor; NFC
-
-- Less unnecessary use of `auto`
-- Add early `using RegSubRegPair(AndIdx) =` to avoid countless
- `TargetInstrInfo::` qualifications.
-- Use references instead of pointers where possible.
-- Remove unused parameters.
-- Rewrite the CopyRewriter class hierarchy:
- - Pull out uncoalescable copy rewriting functionality into
- PeepholeOptimizer class.
- - Use an abstract base class to make it clear that rewriters are
- independent.
-- Remove unnecessary \brief in doxygen comments.
-- Remove unused constructor and method from ValueTracker.
-- Replace UseAdvancedTracking of ValueTracker with DisableAdvCopyOpt use.
-
---- lib/CodeGen/PeepholeOptimizer.cpp.orig
-+++ lib/CodeGen/PeepholeOptimizer.cpp
-@@ -98,6 +98,8 @@
- #include <utility>
-
- using namespace llvm;
-+using RegSubRegPair = TargetInstrInfo::RegSubRegPair;
-+using RegSubRegPairAndIdx = TargetInstrInfo::RegSubRegPairAndIdx;
-
- #define DEBUG_TYPE "peephole-opt"
-
-@@ -110,6 +112,9 @@
- DisablePeephole("disable-peephole", cl::Hidden, cl::init(false),
- cl::desc("Disable the peephole optimizer"));
-
-+/// Specifiy whether or not the value tracking looks through
-+/// complex instructions. When this is true, the value tracker
-+/// bails on everything that is not a copy or a bitcast.
- static cl::opt<bool>
- DisableAdvCopyOpt("disable-adv-copy-opt", cl::Hidden, cl::init(false),
- cl::desc("Disable advanced copy optimization"));
-@@ -132,11 +137,11 @@
- "of commuting operands"));
-
-
--STATISTIC(NumReuse, "Number of extension results reused");
--STATISTIC(NumCmps, "Number of compares eliminated");
--STATISTIC(NumImmFold, "Number of move immediate folded");
--STATISTIC(NumLoadFold, "Number of loads folded");
--STATISTIC(NumSelects, "Number of selects optimized");
-+STATISTIC(NumReuse, "Number of extension results reused");
-+STATISTIC(NumCmps, "Number of compares eliminated");
-+STATISTIC(NumImmFold, "Number of move immediate folded");
-+STATISTIC(NumLoadFold, "Number of loads folded");
-+STATISTIC(NumSelects, "Number of selects optimized");
- STATISTIC(NumUncoalescableCopies, "Number of uncoalescable copies optimized");
- STATISTIC(NumRewrittenCopies, "Number of copies rewritten");
- STATISTIC(NumNAPhysCopies, "Number of non-allocatable physical copies removed");
-@@ -149,9 +154,9 @@
- class PeepholeOptimizer : public MachineFunctionPass {
- const TargetInstrInfo *TII;
- const TargetRegisterInfo *TRI;
-- MachineRegisterInfo *MRI;
-- MachineDominatorTree *DT; // Machine dominator tree
-- MachineLoopInfo *MLI;
-+ MachineRegisterInfo *MRI;
-+ MachineDominatorTree *DT; // Machine dominator tree
-+ MachineLoopInfo *MLI;
-
- public:
- static char ID; // Pass identification
-@@ -173,31 +178,28 @@
- }
- }
-
-- /// \brief Track Def -> Use info used for rewriting copies.
-- using RewriteMapTy =
-- SmallDenseMap<TargetInstrInfo::RegSubRegPair, ValueTrackerResult>;
-+ /// Track Def -> Use info used for rewriting copies.
-+ using RewriteMapTy = SmallDenseMap<RegSubRegPair, ValueTrackerResult>;
-
-- /// \brief Sequence of instructions that formulate recurrence cycle.
-+ /// Sequence of instructions that formulate recurrence cycle.
- using RecurrenceCycle = SmallVector<RecurrenceInstr, 4>;
-
- private:
-- bool optimizeCmpInstr(MachineInstr *MI, MachineBasicBlock *MBB);
-- bool optimizeExtInstr(MachineInstr *MI, MachineBasicBlock *MBB,
-+ bool optimizeCmpInstr(MachineInstr &MI);
-+ bool optimizeExtInstr(MachineInstr &MI, MachineBasicBlock &MBB,
- SmallPtrSetImpl<MachineInstr*> &LocalMIs);
-- bool optimizeSelect(MachineInstr *MI,
-+ bool optimizeSelect(MachineInstr &MI,
- SmallPtrSetImpl<MachineInstr *> &LocalMIs);
-- bool optimizeCondBranch(MachineInstr *MI);
-- bool optimizeCoalescableCopy(MachineInstr *MI);
-- bool optimizeUncoalescableCopy(MachineInstr *MI,
-+ bool optimizeCondBranch(MachineInstr &MI);
-+ bool optimizeCoalescableCopy(MachineInstr &MI);
-+ bool optimizeUncoalescableCopy(MachineInstr &MI,
- SmallPtrSetImpl<MachineInstr *> &LocalMIs);
- bool optimizeRecurrence(MachineInstr &PHI);
-- bool findNextSource(unsigned Reg, unsigned SubReg,
-- RewriteMapTy &RewriteMap);
-- bool isMoveImmediate(MachineInstr *MI,
-+ bool findNextSource(RegSubRegPair RegSubReg, RewriteMapTy &RewriteMap);
-+ bool isMoveImmediate(MachineInstr &MI,
- SmallSet<unsigned, 4> &ImmDefRegs,
- DenseMap<unsigned, MachineInstr*> &ImmDefMIs);
-- bool foldImmediate(MachineInstr *MI, MachineBasicBlock *MBB,
-- SmallSet<unsigned, 4> &ImmDefRegs,
-+ bool foldImmediate(MachineInstr &MI, SmallSet<unsigned, 4> &ImmDefRegs,
- DenseMap<unsigned, MachineInstr*> &ImmDefMIs);
-
- /// \brief Finds recurrence cycles, but only ones that formulated around
-@@ -212,11 +214,11 @@
- /// the set \p CopySrcRegs and \p CopyMIs. If this virtual register was
- /// previously seen as a copy, replace the uses of this copy with the
- /// previously seen copy's destination register.
-- bool foldRedundantCopy(MachineInstr *MI,
-+ bool foldRedundantCopy(MachineInstr &MI,
- SmallSet<unsigned, 4> &CopySrcRegs,
- DenseMap<unsigned, MachineInstr *> &CopyMIs);
-
-- /// \brief Is the register \p Reg a non-allocatable physical register?
-+ /// Is the register \p Reg a non-allocatable physical register?
- bool isNAPhysCopy(unsigned Reg);
-
- /// \brief If copy instruction \p MI is a non-allocatable virtual<->physical
-@@ -224,11 +226,10 @@
- /// non-allocatable physical register was previously copied to a virtual
- /// registered and hasn't been clobbered, the virt->phys copy can be
- /// deleted.
-- bool foldRedundantNAPhysCopy(
-- MachineInstr *MI,
-+ bool foldRedundantNAPhysCopy(MachineInstr &MI,
- DenseMap<unsigned, MachineInstr *> &NAPhysToVirtMIs);
-
-- bool isLoadFoldable(MachineInstr *MI,
-+ bool isLoadFoldable(MachineInstr &MI,
- SmallSet<unsigned, 16> &FoldAsLoadDefCandidates);
-
- /// \brief Check whether \p MI is understood by the register coalescer
-@@ -249,10 +250,13 @@
- (MI.isRegSequenceLike() || MI.isInsertSubregLike() ||
- MI.isExtractSubregLike()));
- }
-+
-+ MachineInstr &rewriteSource(MachineInstr &CopyLike,
-+ RegSubRegPair Def, RewriteMapTy &RewriteMap);
- };
-
-- /// \brief Helper class to hold instructions that are inside recurrence
-- /// cycles. The recurrence cycle is formulated around 1) a def operand and its
-+ /// Helper class to hold instructions that are inside recurrence cycles.
-+ /// The recurrence cycle is formulated around 1) a def operand and its
- /// tied use operand, or 2) a def operand and a use operand that is commutable
- /// with another use operand which is tied to the def operand. In the latter
- /// case, index of the tied use operand and the commutable use operand are
-@@ -273,13 +277,13 @@
- Optional<IndexPair> CommutePair;
- };
-
-- /// \brief Helper class to hold a reply for ValueTracker queries. Contains the
-- /// returned sources for a given search and the instructions where the sources
-- /// were tracked from.
-+ /// Helper class to hold a reply for ValueTracker queries.
-+ /// Contains the returned sources for a given search and the instructions
-+ /// where the sources were tracked from.
- class ValueTrackerResult {
- private:
- /// Track all sources found by one ValueTracker query.
-- SmallVector<TargetInstrInfo::RegSubRegPair, 2> RegSrcs;
-+ SmallVector<RegSubRegPair, 2> RegSrcs;
-
- /// Instruction using the sources in 'RegSrcs'.
- const MachineInstr *Inst = nullptr;
-@@ -302,16 +306,20 @@
- }
-
- void addSource(unsigned SrcReg, unsigned SrcSubReg) {
-- RegSrcs.push_back(TargetInstrInfo::RegSubRegPair(SrcReg, SrcSubReg));
-+ RegSrcs.push_back(RegSubRegPair(SrcReg, SrcSubReg));
- }
-
- void setSource(int Idx, unsigned SrcReg, unsigned SrcSubReg) {
- assert(Idx < getNumSources() && "Reg pair source out of index");
-- RegSrcs[Idx] = TargetInstrInfo::RegSubRegPair(SrcReg, SrcSubReg);
-+ RegSrcs[Idx] = RegSubRegPair(SrcReg, SrcSubReg);
- }
-
- int getNumSources() const { return RegSrcs.size(); }
-
-+ RegSubRegPair getSrc(int Idx) const {
-+ return RegSrcs[Idx];
-+ }
-+
- unsigned getSrcReg(int Idx) const {
- assert(Idx < getNumSources() && "Reg source out of index");
- return RegSrcs[Idx].Reg;
-@@ -367,59 +375,41 @@
- /// The register where the value can be found.
- unsigned Reg;
-
-- /// Specifiy whether or not the value tracking looks through
-- /// complex instructions. When this is false, the value tracker
-- /// bails on everything that is not a copy or a bitcast.
-- ///
-- /// Note: This could have been implemented as a specialized version of
-- /// the ValueTracker class but that would have complicated the code of
-- /// the users of this class.
-- bool UseAdvancedTracking;
--
- /// MachineRegisterInfo used to perform tracking.
- const MachineRegisterInfo &MRI;
-
-- /// Optional TargetInstrInfo used to perform some complex
-- /// tracking.
-+ /// Optional TargetInstrInfo used to perform some complex tracking.
- const TargetInstrInfo *TII;
-
-- /// \brief Dispatcher to the right underlying implementation of
-- /// getNextSource.
-+ /// Dispatcher to the right underlying implementation of getNextSource.
- ValueTrackerResult getNextSourceImpl();
-
-- /// \brief Specialized version of getNextSource for Copy instructions.
-+ /// Specialized version of getNextSource for Copy instructions.
- ValueTrackerResult getNextSourceFromCopy();
-
-- /// \brief Specialized version of getNextSource for Bitcast instructions.
-+ /// Specialized version of getNextSource for Bitcast instructions.
- ValueTrackerResult getNextSourceFromBitcast();
-
-- /// \brief Specialized version of getNextSource for RegSequence
-- /// instructions.
-+ /// Specialized version of getNextSource for RegSequence instructions.
- ValueTrackerResult getNextSourceFromRegSequence();
-
-- /// \brief Specialized version of getNextSource for InsertSubreg
-- /// instructions.
-+ /// Specialized version of getNextSource for InsertSubreg instructions.
- ValueTrackerResult getNextSourceFromInsertSubreg();
-
-- /// \brief Specialized version of getNextSource for ExtractSubreg
-- /// instructions.
-+ /// Specialized version of getNextSource for ExtractSubreg instructions.
- ValueTrackerResult getNextSourceFromExtractSubreg();
-
-- /// \brief Specialized version of getNextSource for SubregToReg
-- /// instructions.
-+ /// Specialized version of getNextSource for SubregToReg instructions.
- ValueTrackerResult getNextSourceFromSubregToReg();
-
-- /// \brief Specialized version of getNextSource for PHI instructions.
-+ /// Specialized version of getNextSource for PHI instructions.
- ValueTrackerResult getNextSourceFromPHI();
-
- public:
-- /// \brief Create a ValueTracker instance for the value defined by \p Reg.
-+ /// Create a ValueTracker instance for the value defined by \p Reg.
- /// \p DefSubReg represents the sub register index the value tracker will
- /// track. It does not need to match the sub register index used in the
- /// definition of \p Reg.
-- /// \p UseAdvancedTracking specifies whether or not the value tracker looks
-- /// through complex instructions. By default (false), it handles only copy
-- /// and bitcast instructions.
- /// If \p Reg is a physical register, a value tracker constructed with
- /// this constructor will not find any alternative source.
- /// Indeed, when \p Reg is a physical register that constructor does not
-@@ -427,46 +417,20 @@
- /// Use the next constructor to track a physical register.
- ValueTracker(unsigned Reg, unsigned DefSubReg,
- const MachineRegisterInfo &MRI,
-- bool UseAdvancedTracking = false,
- const TargetInstrInfo *TII = nullptr)
-- : DefSubReg(DefSubReg), Reg(Reg),
-- UseAdvancedTracking(UseAdvancedTracking), MRI(MRI), TII(TII) {
-+ : DefSubReg(DefSubReg), Reg(Reg), MRI(MRI), TII(TII) {
- if (!TargetRegisterInfo::isPhysicalRegister(Reg)) {
- Def = MRI.getVRegDef(Reg);
- DefIdx = MRI.def_begin(Reg).getOperandNo();
- }
- }
-
-- /// \brief Create a ValueTracker instance for the value defined by
-- /// the pair \p MI, \p DefIdx.
-- /// Unlike the other constructor, the value tracker produced by this one
-- /// may be able to find a new source when the definition is a physical
-- /// register.
-- /// This could be useful to rewrite target specific instructions into
-- /// generic copy instructions.
-- ValueTracker(const MachineInstr &MI, unsigned DefIdx, unsigned DefSubReg,
-- const MachineRegisterInfo &MRI,
-- bool UseAdvancedTracking = false,
-- const TargetInstrInfo *TII = nullptr)
-- : Def(&MI), DefIdx(DefIdx), DefSubReg(DefSubReg),
-- UseAdvancedTracking(UseAdvancedTracking), MRI(MRI), TII(TII) {
-- assert(DefIdx < Def->getDesc().getNumDefs() &&
-- Def->getOperand(DefIdx).isReg() && "Invalid definition");
-- Reg = Def->getOperand(DefIdx).getReg();
-- }
--
- /// \brief Following the use-def chain, get the next available source
- /// for the tracked value.
- /// \return A ValueTrackerResult containing a set of registers
- /// and sub registers with tracked values. A ValueTrackerResult with
- /// an empty set of registers means no source was found.
- ValueTrackerResult getNextSource();
--
-- /// \brief Get the last register where the initial value can be found.
-- /// Initially this is the register of the definition.
-- /// Then, after each successful call to getNextSource, this is the
-- /// register of the last source.
-- unsigned getReg() const { return Reg; }
- };
-
- } // end anonymous namespace
-@@ -476,11 +440,11 @@
- char &llvm::PeepholeOptimizerID = PeepholeOptimizer::ID;
-
- INITIALIZE_PASS_BEGIN(PeepholeOptimizer, DEBUG_TYPE,
-- "Peephole Optimizations", false, false)
-+ "Peephole Optimizations", false, false)
- INITIALIZE_PASS_DEPENDENCY(MachineDominatorTree)
- INITIALIZE_PASS_DEPENDENCY(MachineLoopInfo)
- INITIALIZE_PASS_END(PeepholeOptimizer, DEBUG_TYPE,
-- "Peephole Optimizations", false, false)
-+ "Peephole Optimizations", false, false)
-
- /// If instruction is a copy-like instruction, i.e. it reads a single register
- /// and writes a single register and it does not modify the source, and if the
-@@ -491,10 +455,10 @@
- /// the code. Since this code does not currently share EXTRACTs, just ignore all
- /// debug uses.
- bool PeepholeOptimizer::
--optimizeExtInstr(MachineInstr *MI, MachineBasicBlock *MBB,
-+optimizeExtInstr(MachineInstr &MI, MachineBasicBlock &MBB,
- SmallPtrSetImpl<MachineInstr*> &LocalMIs) {
- unsigned SrcReg, DstReg, SubIdx;
-- if (!TII->isCoalescableExtInstr(*MI, SrcReg, DstReg, SubIdx))
-+ if (!TII->isCoalescableExtInstr(MI, SrcReg, DstReg, SubIdx))
- return false;
-
- if (TargetRegisterInfo::isPhysicalRegister(DstReg) ||
-@@ -535,7 +499,7 @@
- bool ExtendLife = true;
- for (MachineOperand &UseMO : MRI->use_nodbg_operands(SrcReg)) {
- MachineInstr *UseMI = UseMO.getParent();
-- if (UseMI == MI)
-+ if (UseMI == &MI)
- continue;
-
- if (UseMI->isPHI()) {
-@@ -568,7 +532,7 @@
- continue;
-
- MachineBasicBlock *UseMBB = UseMI->getParent();
-- if (UseMBB == MBB) {
-+ if (UseMBB == &MBB) {
- // Local uses that come after the extension.
- if (!LocalMIs.count(UseMI))
- Uses.push_back(&UseMO);
-@@ -576,7 +540,7 @@
- // Non-local uses where the result of the extension is used. Always
- // replace these unless it's a PHI.
- Uses.push_back(&UseMO);
-- } else if (Aggressive && DT->dominates(MBB, UseMBB)) {
-+ } else if (Aggressive && DT->dominates(&MBB, UseMBB)) {
- // We may want to extend the live range of the extension result in order
- // to replace these uses.
- ExtendedUses.push_back(&UseMO);
-@@ -640,19 +604,18 @@
- /// against already sets (or could be modified to set) the same flag as the
- /// compare, then we can remove the comparison and use the flag from the
- /// previous instruction.
--bool PeepholeOptimizer::optimizeCmpInstr(MachineInstr *MI,
-- MachineBasicBlock *MBB) {
-+bool PeepholeOptimizer::optimizeCmpInstr(MachineInstr &MI) {
- // If this instruction is a comparison against zero and isn't comparing a
- // physical register, we can try to optimize it.
- unsigned SrcReg, SrcReg2;
- int CmpMask, CmpValue;
-- if (!TII->analyzeCompare(*MI, SrcReg, SrcReg2, CmpMask, CmpValue) ||
-+ if (!TII->analyzeCompare(MI, SrcReg, SrcReg2, CmpMask, CmpValue) ||
- TargetRegisterInfo::isPhysicalRegister(SrcReg) ||
- (SrcReg2 != 0 && TargetRegisterInfo::isPhysicalRegister(SrcReg2)))
- return false;
-
- // Attempt to optimize the comparison instruction.
-- if (TII->optimizeCompareInstr(*MI, SrcReg, SrcReg2, CmpMask, CmpValue, MRI)) {
-+ if (TII->optimizeCompareInstr(MI, SrcReg, SrcReg2, CmpMask, CmpValue, MRI)) {
- ++NumCmps;
- return true;
- }
-@@ -661,27 +624,26 @@
- }
-
- /// Optimize a select instruction.
--bool PeepholeOptimizer::optimizeSelect(MachineInstr *MI,
-+bool PeepholeOptimizer::optimizeSelect(MachineInstr &MI,
- SmallPtrSetImpl<MachineInstr *> &LocalMIs) {
- unsigned TrueOp = 0;
- unsigned FalseOp = 0;
- bool Optimizable = false;
- SmallVector<MachineOperand, 4> Cond;
-- if (TII->analyzeSelect(*MI, Cond, TrueOp, FalseOp, Optimizable))
-+ if (TII->analyzeSelect(MI, Cond, TrueOp, FalseOp, Optimizable))
- return false;
- if (!Optimizable)
- return false;
-- if (!TII->optimizeSelect(*MI, LocalMIs))
-+ if (!TII->optimizeSelect(MI, LocalMIs))
- return false;
-- MI->eraseFromParent();
-+ MI.eraseFromParent();
- ++NumSelects;
- return true;
- }
-
--/// \brief Check if a simpler conditional branch can be
--/// generated
--bool PeepholeOptimizer::optimizeCondBranch(MachineInstr *MI) {
-- return TII->optimizeCondBranch(*MI);
-+/// Check if a simpler conditional branch can be generated.
-+bool PeepholeOptimizer::optimizeCondBranch(MachineInstr &MI) {
-+ return TII->optimizeCondBranch(MI);
- }
-
- /// \brief Try to find the next source that share the same register file
-@@ -695,30 +657,29 @@
- /// share the same register file as \p Reg and \p SubReg. The client should
- /// then be capable to rewrite all intermediate PHIs to get the next source.
- /// \return False if no alternative sources are available. True otherwise.
--bool PeepholeOptimizer::findNextSource(unsigned Reg, unsigned SubReg,
-+bool PeepholeOptimizer::findNextSource(RegSubRegPair RegSubReg,
- RewriteMapTy &RewriteMap) {
- // Do not try to find a new source for a physical register.
- // So far we do not have any motivating example for doing that.
- // Thus, instead of maintaining untested code, we will revisit that if
- // that changes at some point.
-+ unsigned Reg = RegSubReg.Reg;
- if (TargetRegisterInfo::isPhysicalRegister(Reg))
- return false;
- const TargetRegisterClass *DefRC = MRI->getRegClass(Reg);
-
-- SmallVector<TargetInstrInfo::RegSubRegPair, 4> SrcToLook;
-- TargetInstrInfo::RegSubRegPair CurSrcPair(Reg, SubReg);
-+ SmallVector<RegSubRegPair, 4> SrcToLook;
-+ RegSubRegPair CurSrcPair = RegSubReg;
- SrcToLook.push_back(CurSrcPair);
-
- unsigned PHICount = 0;
-- while (!SrcToLook.empty() && PHICount < RewritePHILimit) {
-- TargetInstrInfo::RegSubRegPair Pair = SrcToLook.pop_back_val();
-+ do {
-+ CurSrcPair = SrcToLook.pop_back_val();
- // As explained above, do not handle physical registers
-- if (TargetRegisterInfo::isPhysicalRegister(Pair.Reg))
-+ if (TargetRegisterInfo::isPhysicalRegister(CurSrcPair.Reg))
- return false;
-
-- CurSrcPair = Pair;
-- ValueTracker ValTracker(CurSrcPair.Reg, CurSrcPair.SubReg, *MRI,
-- !DisableAdvCopyOpt, TII);
-+ ValueTracker ValTracker(CurSrcPair.Reg, CurSrcPair.SubReg, *MRI, TII);
-
- // Follow the chain of copies until we find a more suitable source, a phi
- // or have to abort.
-@@ -747,14 +708,17 @@
- unsigned NumSrcs = Res.getNumSources();
- if (NumSrcs > 1) {
- PHICount++;
-+ if (PHICount >= RewritePHILimit) {
-+ DEBUG(dbgs() << "findNextSource: PHI limit reached\n");
-+ return false;
-+ }
-+
- for (unsigned i = 0; i < NumSrcs; ++i)
-- SrcToLook.push_back(TargetInstrInfo::RegSubRegPair(
-- Res.getSrcReg(i), Res.getSrcSubReg(i)));
-+ SrcToLook.push_back(Res.getSrc(i));
- break;
- }
-
-- CurSrcPair.Reg = Res.getSrcReg(0);
-- CurSrcPair.SubReg = Res.getSrcSubReg(0);
-+ CurSrcPair = Res.getSrc(0);
- // Do not extend the live-ranges of physical registers as they add
- // constraints to the register allocator. Moreover, if we want to extend
- // the live-range of a physical register, unlike SSA virtual register,
-@@ -764,7 +728,8 @@
-
- // Keep following the chain if the value isn't any better yet.
- const TargetRegisterClass *SrcRC = MRI->getRegClass(CurSrcPair.Reg);
-- if (!TRI->shouldRewriteCopySrc(DefRC, SubReg, SrcRC, CurSrcPair.SubReg))
-+ if (!TRI->shouldRewriteCopySrc(DefRC, RegSubReg.SubReg, SrcRC,
-+ CurSrcPair.SubReg))
- continue;
-
- // We currently cannot deal with subreg operands on PHI instructions
-@@ -775,7 +740,7 @@
- // We found a suitable source, and are done with this chain.
- break;
- }
-- }
-+ } while (!SrcToLook.empty());
-
- // If we did not find a more suitable source, there is nothing to optimize.
- return CurSrcPair.Reg != Reg;
-@@ -786,54 +751,50 @@
- /// successfully traverse a PHI instruction and find suitable sources coming
- /// from its edges. By inserting a new PHI, we provide a rewritten PHI def
- /// suitable to be used in a new COPY instruction.
--static MachineInstr *
--insertPHI(MachineRegisterInfo *MRI, const TargetInstrInfo *TII,
-- const SmallVectorImpl<TargetInstrInfo::RegSubRegPair> &SrcRegs,
-- MachineInstr *OrigPHI) {
-+static MachineInstr &
-+insertPHI(MachineRegisterInfo &MRI, const TargetInstrInfo &TII,
-+ const SmallVectorImpl<RegSubRegPair> &SrcRegs,
-+ MachineInstr &OrigPHI) {
- assert(!SrcRegs.empty() && "No sources to create a PHI instruction?");
-
-- const TargetRegisterClass *NewRC = MRI->getRegClass(SrcRegs[0].Reg);
-+ const TargetRegisterClass *NewRC = MRI.getRegClass(SrcRegs[0].Reg);
- // NewRC is only correct if no subregisters are involved. findNextSource()
- // should have rejected those cases already.
- assert(SrcRegs[0].SubReg == 0 && "should not have subreg operand");
-- unsigned NewVR = MRI->createVirtualRegister(NewRC);
-- MachineBasicBlock *MBB = OrigPHI->getParent();
-- MachineInstrBuilder MIB = BuildMI(*MBB, OrigPHI, OrigPHI->getDebugLoc(),
-- TII->get(TargetOpcode::PHI), NewVR);
-+ unsigned NewVR = MRI.createVirtualRegister(NewRC);
-+ MachineBasicBlock *MBB = OrigPHI.getParent();
-+ MachineInstrBuilder MIB = BuildMI(*MBB, &OrigPHI, OrigPHI.getDebugLoc(),
-+ TII.get(TargetOpcode::PHI), NewVR);
-
- unsigned MBBOpIdx = 2;
-- for (auto RegPair : SrcRegs) {
-+ for (const RegSubRegPair &RegPair : SrcRegs) {
- MIB.addReg(RegPair.Reg, 0, RegPair.SubReg);
-- MIB.addMBB(OrigPHI->getOperand(MBBOpIdx).getMBB());
-+ MIB.addMBB(OrigPHI.getOperand(MBBOpIdx).getMBB());
- // Since we're extended the lifetime of RegPair.Reg, clear the
- // kill flags to account for that and make RegPair.Reg reaches
- // the new PHI.
-- MRI->clearKillFlags(RegPair.Reg);
-+ MRI.clearKillFlags(RegPair.Reg);
- MBBOpIdx += 2;
- }
-
-- return MIB;
-+ return *MIB;
- }
-
- namespace {
-
--/// \brief Helper class to rewrite the arguments of a copy-like instruction.
--class CopyRewriter {
-+/// Interface to query instructions amenable to copy rewriting.
-+class Rewriter {
- protected:
-- /// The copy-like instruction.
- MachineInstr &CopyLike;
--
-- /// The index of the source being rewritten.
-- unsigned CurrentSrcIdx = 0;
--
-+ unsigned CurrentSrcIdx = 0; ///< The index of the source being rewritten.
- public:
-- CopyRewriter(MachineInstr &MI) : CopyLike(MI) {}
-- virtual ~CopyRewriter() = default;
-+ Rewriter(MachineInstr &CopyLike) : CopyLike(CopyLike) {}
-+ virtual ~Rewriter() {}
-
- /// \brief Get the next rewritable source (SrcReg, SrcSubReg) and
-- /// the related value that it affects (TrackReg, TrackSubReg).
-+ /// the related value that it affects (DstReg, DstSubReg).
- /// A source is considered rewritable if its register class and the
-- /// register class of the related TrackReg may not be register
-+ /// register class of the related DstReg may not be register
- /// coalescer friendly. In other words, given a copy-like instruction
- /// not all the arguments may be returned at rewritable source, since
- /// some arguments are none to be register coalescer friendly.
-@@ -848,137 +809,72 @@
- /// the only source this instruction has:
- /// (SrcReg, SrcSubReg) = (src, srcSubIdx).
- /// This source defines the whole definition, i.e.,
-- /// (TrackReg, TrackSubReg) = (dst, dstSubIdx).
-+ /// (DstReg, DstSubReg) = (dst, dstSubIdx).
- ///
- /// The second and subsequent calls will return false, as there is only one
- /// rewritable source.
- ///
- /// \return True if a rewritable source has been found, false otherwise.
- /// The output arguments are valid if and only if true is returned.
-- virtual bool getNextRewritableSource(unsigned &SrcReg, unsigned &SrcSubReg,
-- unsigned &TrackReg,
-- unsigned &TrackSubReg) {
-- // If CurrentSrcIdx == 1, this means this function has already been called
-- // once. CopyLike has one definition and one argument, thus, there is
-- // nothing else to rewrite.
-- if (!CopyLike.isCopy() || CurrentSrcIdx == 1)
-+ virtual bool getNextRewritableSource(RegSubRegPair &Src,
-+ RegSubRegPair &Dst) = 0;
-+
-+ /// Rewrite the current source with \p NewReg and \p NewSubReg if possible.
-+ /// \return True if the rewriting was possible, false otherwise.
-+ virtual bool RewriteCurrentSource(unsigned NewReg, unsigned NewSubReg) = 0;
-+};
-+
-+/// Rewriter for COPY instructions.
-+class CopyRewriter : public Rewriter {
-+public:
-+ CopyRewriter(MachineInstr &MI) : Rewriter(MI) {
-+ assert(MI.isCopy() && "Expected copy instruction");
-+ }
-+ virtual ~CopyRewriter() = default;
-+
-+ bool getNextRewritableSource(RegSubRegPair &Src,
-+ RegSubRegPair &Dst) override {
-+ // CurrentSrcIdx > 0 means this function has already been called.
-+ if (CurrentSrcIdx > 0)
- return false;
- // This is the first call to getNextRewritableSource.
- // Move the CurrentSrcIdx to remember that we made that call.
- CurrentSrcIdx = 1;
- // The rewritable source is the argument.
- const MachineOperand &MOSrc = CopyLike.getOperand(1);
-- SrcReg = MOSrc.getReg();
-- SrcSubReg = MOSrc.getSubReg();
-+ Src = RegSubRegPair(MOSrc.getReg(), MOSrc.getSubReg());
- // What we track are the alternative sources of the definition.
- const MachineOperand &MODef = CopyLike.getOperand(0);
-- TrackReg = MODef.getReg();
-- TrackSubReg = MODef.getSubReg();
-+ Dst = RegSubRegPair(MODef.getReg(), MODef.getSubReg());
- return true;
- }
-
-- /// \brief Rewrite the current source with \p NewReg and \p NewSubReg
-- /// if possible.
-- /// \return True if the rewriting was possible, false otherwise.
-- virtual bool RewriteCurrentSource(unsigned NewReg, unsigned NewSubReg) {
-- if (!CopyLike.isCopy() || CurrentSrcIdx != 1)
-+ bool RewriteCurrentSource(unsigned NewReg, unsigned NewSubReg) override {
-+ if (CurrentSrcIdx != 1)
- return false;
- MachineOperand &MOSrc = CopyLike.getOperand(CurrentSrcIdx);
- MOSrc.setReg(NewReg);
- MOSrc.setSubReg(NewSubReg);
- return true;
- }
--
-- /// \brief Given a \p Def.Reg and Def.SubReg pair, use \p RewriteMap to find
-- /// the new source to use for rewrite. If \p HandleMultipleSources is true and
-- /// multiple sources for a given \p Def are found along the way, we found a
-- /// PHI instructions that needs to be rewritten.
-- /// TODO: HandleMultipleSources should be removed once we test PHI handling
-- /// with coalescable copies.
-- TargetInstrInfo::RegSubRegPair
-- getNewSource(MachineRegisterInfo *MRI, const TargetInstrInfo *TII,
-- TargetInstrInfo::RegSubRegPair Def,
-- PeepholeOptimizer::RewriteMapTy &RewriteMap,
-- bool HandleMultipleSources = true) {
-- TargetInstrInfo::RegSubRegPair LookupSrc(Def.Reg, Def.SubReg);
-- do {
-- ValueTrackerResult Res = RewriteMap.lookup(LookupSrc);
-- // If there are no entries on the map, LookupSrc is the new source.
-- if (!Res.isValid())
-- return LookupSrc;
--
-- // There's only one source for this definition, keep searching...
-- unsigned NumSrcs = Res.getNumSources();
-- if (NumSrcs == 1) {
-- LookupSrc.Reg = Res.getSrcReg(0);
-- LookupSrc.SubReg = Res.getSrcSubReg(0);
-- continue;
-- }
--
-- // TODO: Remove once multiple srcs w/ coalescable copies are supported.
-- if (!HandleMultipleSources)
-- break;
--
-- // Multiple sources, recurse into each source to find a new source
-- // for it. Then, rewrite the PHI accordingly to its new edges.
-- SmallVector<TargetInstrInfo::RegSubRegPair, 4> NewPHISrcs;
-- for (unsigned i = 0; i < NumSrcs; ++i) {
-- TargetInstrInfo::RegSubRegPair PHISrc(Res.getSrcReg(i),
-- Res.getSrcSubReg(i));
-- NewPHISrcs.push_back(
-- getNewSource(MRI, TII, PHISrc, RewriteMap, HandleMultipleSources));
-- }
--
-- // Build the new PHI node and return its def register as the new source.
-- MachineInstr *OrigPHI = const_cast<MachineInstr *>(Res.getInst());
-- MachineInstr *NewPHI = insertPHI(MRI, TII, NewPHISrcs, OrigPHI);
-- DEBUG(dbgs() << "-- getNewSource\n");
-- DEBUG(dbgs() << " Replacing: " << *OrigPHI);
-- DEBUG(dbgs() << " With: " << *NewPHI);
-- const MachineOperand &MODef = NewPHI->getOperand(0);
-- return TargetInstrInfo::RegSubRegPair(MODef.getReg(), MODef.getSubReg());
--
-- } while (true);
--
-- return TargetInstrInfo::RegSubRegPair(0, 0);
-- }
--
-- /// \brief Rewrite the source found through \p Def, by using the \p RewriteMap
-- /// and create a new COPY instruction. More info about RewriteMap in
-- /// PeepholeOptimizer::findNextSource. Right now this is only used to handle
-- /// Uncoalescable copies, since they are copy like instructions that aren't
-- /// recognized by the register allocator.
-- virtual MachineInstr *
-- RewriteSource(TargetInstrInfo::RegSubRegPair Def,
-- PeepholeOptimizer::RewriteMapTy &RewriteMap) {
-- return nullptr;
-- }
- };
-
- /// \brief Helper class to rewrite uncoalescable copy like instructions
- /// into new COPY (coalescable friendly) instructions.
--class UncoalescableRewriter : public CopyRewriter {
--protected:
-- const TargetInstrInfo &TII;
-- MachineRegisterInfo &MRI;
--
-- /// The number of defs in the bitcast
-- unsigned NumDefs;
-+class UncoalescableRewriter : public Rewriter {
-+ unsigned NumDefs; ///< Number of defs in the bitcast.
-
- public:
-- UncoalescableRewriter(MachineInstr &MI, const TargetInstrInfo &TII,
-- MachineRegisterInfo &MRI)
-- : CopyRewriter(MI), TII(TII), MRI(MRI) {
-+ UncoalescableRewriter(MachineInstr &MI) : Rewriter(MI) {
- NumDefs = MI.getDesc().getNumDefs();
- }
-
-- /// \brief Get the next rewritable def source (TrackReg, TrackSubReg)
-+ /// \see See Rewriter::getNextRewritableSource()
- /// All such sources need to be considered rewritable in order to
- /// rewrite a uncoalescable copy-like instruction. This method return
- /// each definition that must be checked if rewritable.
-- bool getNextRewritableSource(unsigned &SrcReg, unsigned &SrcSubReg,
-- unsigned &TrackReg,
-- unsigned &TrackSubReg) override {
-+ bool getNextRewritableSource(RegSubRegPair &Src,
-+ RegSubRegPair &Dst) override {
- // Find the next non-dead definition and continue from there.
- if (CurrentSrcIdx == NumDefs)
- return false;
-@@ -990,64 +886,27 @@
- }
-
- // What we track are the alternative sources of the definition.
-+ Src = RegSubRegPair(0, 0);
- const MachineOperand &MODef = CopyLike.getOperand(CurrentSrcIdx);
-- TrackReg = MODef.getReg();
-- TrackSubReg = MODef.getSubReg();
-+ Dst = RegSubRegPair(MODef.getReg(), MODef.getSubReg());
-
- CurrentSrcIdx++;
- return true;
- }
-
-- /// \brief Rewrite the source found through \p Def, by using the \p RewriteMap
-- /// and create a new COPY instruction. More info about RewriteMap in
-- /// PeepholeOptimizer::findNextSource. Right now this is only used to handle
-- /// Uncoalescable copies, since they are copy like instructions that aren't
-- /// recognized by the register allocator.
-- MachineInstr *
-- RewriteSource(TargetInstrInfo::RegSubRegPair Def,
-- PeepholeOptimizer::RewriteMapTy &RewriteMap) override {
-- assert(!TargetRegisterInfo::isPhysicalRegister(Def.Reg) &&
-- "We do not rewrite physical registers");
--
-- // Find the new source to use in the COPY rewrite.
-- TargetInstrInfo::RegSubRegPair NewSrc =
-- getNewSource(&MRI, &TII, Def, RewriteMap);
--
-- // Insert the COPY.
-- const TargetRegisterClass *DefRC = MRI.getRegClass(Def.Reg);
-- unsigned NewVR = MRI.createVirtualRegister(DefRC);
--
-- MachineInstr *NewCopy =
-- BuildMI(*CopyLike.getParent(), &CopyLike, CopyLike.getDebugLoc(),
-- TII.get(TargetOpcode::COPY), NewVR)
-- .addReg(NewSrc.Reg, 0, NewSrc.SubReg);
--
-- NewCopy->getOperand(0).setSubReg(Def.SubReg);
-- if (Def.SubReg)
-- NewCopy->getOperand(0).setIsUndef();
--
-- DEBUG(dbgs() << "-- RewriteSource\n");
-- DEBUG(dbgs() << " Replacing: " << CopyLike);
-- DEBUG(dbgs() << " With: " << *NewCopy);
-- MRI.replaceRegWith(Def.Reg, NewVR);
-- MRI.clearKillFlags(NewVR);
--
-- // We extended the lifetime of NewSrc.Reg, clear the kill flags to
-- // account for that.
-- MRI.clearKillFlags(NewSrc.Reg);
--
-- return NewCopy;
-+ bool RewriteCurrentSource(unsigned NewReg, unsigned NewSubReg) override {
-+ return false;
- }
- };
-
--/// \brief Specialized rewriter for INSERT_SUBREG instruction.
--class InsertSubregRewriter : public CopyRewriter {
-+/// Specialized rewriter for INSERT_SUBREG instruction.
-+class InsertSubregRewriter : public Rewriter {
- public:
-- InsertSubregRewriter(MachineInstr &MI) : CopyRewriter(MI) {
-+ InsertSubregRewriter(MachineInstr &MI) : Rewriter(MI) {
- assert(MI.isInsertSubreg() && "Invalid instruction");
- }
-
-- /// \brief See CopyRewriter::getNextRewritableSource.
-+ /// \see See Rewriter::getNextRewritableSource()
- /// Here CopyLike has the following form:
- /// dst = INSERT_SUBREG Src1, Src2.src2SubIdx, subIdx.
- /// Src1 has the same register class has dst, hence, there is
-@@ -1055,29 +914,27 @@
- /// Src2.src2SubIdx, may not be register coalescer friendly.
- /// Therefore, the first call to this method returns:
- /// (SrcReg, SrcSubReg) = (Src2, src2SubIdx).
-- /// (TrackReg, TrackSubReg) = (dst, subIdx).
-+ /// (DstReg, DstSubReg) = (dst, subIdx).
- ///
- /// Subsequence calls will return false.
-- bool getNextRewritableSource(unsigned &SrcReg, unsigned &SrcSubReg,
-- unsigned &TrackReg,
-- unsigned &TrackSubReg) override {
-+ bool getNextRewritableSource(RegSubRegPair &Src,
-+ RegSubRegPair &Dst) override {
- // If we already get the only source we can rewrite, return false.
- if (CurrentSrcIdx == 2)
- return false;
- // We are looking at v2 = INSERT_SUBREG v0, v1, sub0.
- CurrentSrcIdx = 2;
- const MachineOperand &MOInsertedReg = CopyLike.getOperand(2);
-- SrcReg = MOInsertedReg.getReg();
-- SrcSubReg = MOInsertedReg.getSubReg();
-+ Src = RegSubRegPair(MOInsertedReg.getReg(), MOInsertedReg.getSubReg());
- const MachineOperand &MODef = CopyLike.getOperand(0);
-
- // We want to track something that is compatible with the
- // partial definition.
-- TrackReg = MODef.getReg();
- if (MODef.getSubReg())
- // Bail if we have to compose sub-register indices.
- return false;
-- TrackSubReg = (unsigned)CopyLike.getOperand(3).getImm();
-+ Dst = RegSubRegPair(MODef.getReg(),
-+ (unsigned)CopyLike.getOperand(3).getImm());
- return true;
- }
-
-@@ -1092,41 +949,39 @@
- }
- };
-
--/// \brief Specialized rewriter for EXTRACT_SUBREG instruction.
--class ExtractSubregRewriter : public CopyRewriter {
-+/// Specialized rewriter for EXTRACT_SUBREG instruction.
-+class ExtractSubregRewriter : public Rewriter {
- const TargetInstrInfo &TII;
-
- public:
- ExtractSubregRewriter(MachineInstr &MI, const TargetInstrInfo &TII)
-- : CopyRewriter(MI), TII(TII) {
-+ : Rewriter(MI), TII(TII) {
- assert(MI.isExtractSubreg() && "Invalid instruction");
- }
-
-- /// \brief See CopyRewriter::getNextRewritableSource.
-+ /// \see Rewriter::getNextRewritableSource()
- /// Here CopyLike has the following form:
- /// dst.dstSubIdx = EXTRACT_SUBREG Src, subIdx.
- /// There is only one rewritable source: Src.subIdx,
- /// which defines dst.dstSubIdx.
-- bool getNextRewritableSource(unsigned &SrcReg, unsigned &SrcSubReg,
-- unsigned &TrackReg,
-- unsigned &TrackSubReg) override {
-+ bool getNextRewritableSource(RegSubRegPair &Src,
-+ RegSubRegPair &Dst) override {
- // If we already get the only source we can rewrite, return false.
- if (CurrentSrcIdx == 1)
- return false;
- // We are looking at v1 = EXTRACT_SUBREG v0, sub0.
- CurrentSrcIdx = 1;
- const MachineOperand &MOExtractedReg = CopyLike.getOperand(1);
-- SrcReg = MOExtractedReg.getReg();
- // If we have to compose sub-register indices, bail out.
- if (MOExtractedReg.getSubReg())
- return false;
-
-- SrcSubReg = CopyLike.getOperand(2).getImm();
-+ Src = RegSubRegPair(MOExtractedReg.getReg(),
-+ CopyLike.getOperand(2).getImm());
-
- // We want to track something that is compatible with the definition.
- const MachineOperand &MODef = CopyLike.getOperand(0);
-- TrackReg = MODef.getReg();
-- TrackSubReg = MODef.getSubReg();
-+ Dst = RegSubRegPair(MODef.getReg(), MODef.getSubReg());
- return true;
- }
-
-@@ -1156,14 +1011,14 @@
- }
- };
-
--/// \brief Specialized rewriter for REG_SEQUENCE instruction.
--class RegSequenceRewriter : public CopyRewriter {
-+/// Specialized rewriter for REG_SEQUENCE instruction.
-+class RegSequenceRewriter : public Rewriter {
- public:
-- RegSequenceRewriter(MachineInstr &MI) : CopyRewriter(MI) {
-+ RegSequenceRewriter(MachineInstr &MI) : Rewriter(MI) {
- assert(MI.isRegSequence() && "Invalid instruction");
- }
-
-- /// \brief See CopyRewriter::getNextRewritableSource.
-+ /// \see Rewriter::getNextRewritableSource()
- /// Here CopyLike has the following form:
- /// dst = REG_SEQUENCE Src1.src1SubIdx, subIdx1, Src2.src2SubIdx, subIdx2.
- /// Each call will return a different source, walking all the available
-@@ -1171,17 +1026,16 @@
- ///
- /// The first call returns:
- /// (SrcReg, SrcSubReg) = (Src1, src1SubIdx).
-- /// (TrackReg, TrackSubReg) = (dst, subIdx1).
-+ /// (DstReg, DstSubReg) = (dst, subIdx1).
- ///
- /// The second call returns:
- /// (SrcReg, SrcSubReg) = (Src2, src2SubIdx).
-- /// (TrackReg, TrackSubReg) = (dst, subIdx2).
-+ /// (DstReg, DstSubReg) = (dst, subIdx2).
- ///
- /// And so on, until all the sources have been traversed, then
- /// it returns false.
-- bool getNextRewritableSource(unsigned &SrcReg, unsigned &SrcSubReg,
-- unsigned &TrackReg,
-- unsigned &TrackSubReg) override {
-+ bool getNextRewritableSource(RegSubRegPair &Src,
-+ RegSubRegPair &Dst) override {
- // We are looking at v0 = REG_SEQUENCE v1, sub1, v2, sub2, etc.
-
- // If this is the first call, move to the first argument.
-@@ -1194,17 +1048,17 @@
- return false;
- }
- const MachineOperand &MOInsertedReg = CopyLike.getOperand(CurrentSrcIdx);
-- SrcReg = MOInsertedReg.getReg();
-+ Src.Reg = MOInsertedReg.getReg();
- // If we have to compose sub-register indices, bail out.
-- if ((SrcSubReg = MOInsertedReg.getSubReg()))
-+ if ((Src.SubReg = MOInsertedReg.getSubReg()))
- return false;
-
- // We want to track something that is compatible with the related
- // partial definition.
-- TrackSubReg = CopyLike.getOperand(CurrentSrcIdx + 1).getImm();
-+ Dst.SubReg = CopyLike.getOperand(CurrentSrcIdx + 1).getImm();
-
- const MachineOperand &MODef = CopyLike.getOperand(0);
-- TrackReg = MODef.getReg();
-+ Dst.Reg = MODef.getReg();
- // If we have to compose sub-registers, bail.
- return MODef.getSubReg() == 0;
- }
-@@ -1224,16 +1078,14 @@
-
- } // end anonymous namespace
-
--/// \brief Get the appropriated CopyRewriter for \p MI.
--/// \return A pointer to a dynamically allocated CopyRewriter or nullptr
--/// if no rewriter works for \p MI.
--static CopyRewriter *getCopyRewriter(MachineInstr &MI,
-- const TargetInstrInfo &TII,
-- MachineRegisterInfo &MRI) {
-+/// Get the appropriated Rewriter for \p MI.
-+/// \return A pointer to a dynamically allocated Rewriter or nullptr if no
-+/// rewriter works for \p MI.
-+static Rewriter *getCopyRewriter(MachineInstr &MI, const TargetInstrInfo &TII) {
- // Handle uncoalescable copy-like instructions.
-- if (MI.isBitcast() || (MI.isRegSequenceLike() || MI.isInsertSubregLike() ||
-- MI.isExtractSubregLike()))
-- return new UncoalescableRewriter(MI, TII, MRI);
-+ if (MI.isBitcast() || MI.isRegSequenceLike() || MI.isInsertSubregLike() ||
-+ MI.isExtractSubregLike())
-+ return new UncoalescableRewriter(MI);
-
- switch (MI.getOpcode()) {
- default:
-@@ -1247,53 +1099,102 @@
- case TargetOpcode::REG_SEQUENCE:
- return new RegSequenceRewriter(MI);
- }
-- llvm_unreachable(nullptr);
- }
-
--/// \brief Optimize generic copy instructions to avoid cross
--/// register bank copy. The optimization looks through a chain of
--/// copies and tries to find a source that has a compatible register
--/// class.
--/// Two register classes are considered to be compatible if they share
--/// the same register bank.
-+/// \brief Given a \p Def.Reg and Def.SubReg pair, use \p RewriteMap to find
-+/// the new source to use for rewrite. If \p HandleMultipleSources is true and
-+/// multiple sources for a given \p Def are found along the way, we found a
-+/// PHI instructions that needs to be rewritten.
-+/// TODO: HandleMultipleSources should be removed once we test PHI handling
-+/// with coalescable copies.
-+static RegSubRegPair
-+getNewSource(MachineRegisterInfo *MRI, const TargetInstrInfo *TII,
-+ RegSubRegPair Def,
-+ const PeepholeOptimizer::RewriteMapTy &RewriteMap,
-+ bool HandleMultipleSources = true) {
-+ RegSubRegPair LookupSrc(Def.Reg, Def.SubReg);
-+ while (true) {
-+ ValueTrackerResult Res = RewriteMap.lookup(LookupSrc);
-+ // If there are no entries on the map, LookupSrc is the new source.
-+ if (!Res.isValid())
-+ return LookupSrc;
-+
-+ // There's only one source for this definition, keep searching...
-+ unsigned NumSrcs = Res.getNumSources();
-+ if (NumSrcs == 1) {
-+ LookupSrc.Reg = Res.getSrcReg(0);
-+ LookupSrc.SubReg = Res.getSrcSubReg(0);
-+ continue;
-+ }
-+
-+ // TODO: Remove once multiple srcs w/ coalescable copies are supported.
-+ if (!HandleMultipleSources)
-+ break;
-+
-+ // Multiple sources, recurse into each source to find a new source
-+ // for it. Then, rewrite the PHI accordingly to its new edges.
-+ SmallVector<RegSubRegPair, 4> NewPHISrcs;
-+ for (unsigned i = 0; i < NumSrcs; ++i) {
-+ RegSubRegPair PHISrc(Res.getSrcReg(i), Res.getSrcSubReg(i));
-+ NewPHISrcs.push_back(
-+ getNewSource(MRI, TII, PHISrc, RewriteMap, HandleMultipleSources));
-+ }
-+
-+ // Build the new PHI node and return its def register as the new source.
-+ MachineInstr &OrigPHI = const_cast<MachineInstr &>(*Res.getInst());
-+ MachineInstr &NewPHI = insertPHI(*MRI, *TII, NewPHISrcs, OrigPHI);
-+ DEBUG(dbgs() << "-- getNewSource\n");
-+ DEBUG(dbgs() << " Replacing: " << OrigPHI);
-+ DEBUG(dbgs() << " With: " << NewPHI);
-+ const MachineOperand &MODef = NewPHI.getOperand(0);
-+ return RegSubRegPair(MODef.getReg(), MODef.getSubReg());
-+ }
-+
-+ return RegSubRegPair(0, 0);
-+}
-+
-+/// Optimize generic copy instructions to avoid cross register bank copy.
-+/// The optimization looks through a chain of copies and tries to find a source
-+/// that has a compatible register class.
-+/// Two register classes are considered to be compatible if they share the same
-+/// register bank.
- /// New copies issued by this optimization are register allocator
- /// friendly. This optimization does not remove any copy as it may
- /// overconstrain the register allocator, but replaces some operands
- /// when possible.
- /// \pre isCoalescableCopy(*MI) is true.
- /// \return True, when \p MI has been rewritten. False otherwise.
--bool PeepholeOptimizer::optimizeCoalescableCopy(MachineInstr *MI) {
-- assert(MI && isCoalescableCopy(*MI) && "Invalid argument");
-- assert(MI->getDesc().getNumDefs() == 1 &&
-+bool PeepholeOptimizer::optimizeCoalescableCopy(MachineInstr &MI) {
-+ assert(isCoalescableCopy(MI) && "Invalid argument");
-+ assert(MI.getDesc().getNumDefs() == 1 &&
- "Coalescer can understand multiple defs?!");
-- const MachineOperand &MODef = MI->getOperand(0);
-+ const MachineOperand &MODef = MI.getOperand(0);
- // Do not rewrite physical definitions.
- if (TargetRegisterInfo::isPhysicalRegister(MODef.getReg()))
- return false;
-
- bool Changed = false;
- // Get the right rewriter for the current copy.
-- std::unique_ptr<CopyRewriter> CpyRewriter(getCopyRewriter(*MI, *TII, *MRI));
-+ std::unique_ptr<Rewriter> CpyRewriter(getCopyRewriter(MI, *TII));
- // If none exists, bail out.
- if (!CpyRewriter)
- return false;
- // Rewrite each rewritable source.
-- unsigned SrcReg, SrcSubReg, TrackReg, TrackSubReg;
-- while (CpyRewriter->getNextRewritableSource(SrcReg, SrcSubReg, TrackReg,
-- TrackSubReg)) {
-+ RegSubRegPair Src;
-+ RegSubRegPair TrackPair;
-+ while (CpyRewriter->getNextRewritableSource(Src, TrackPair)) {
- // Keep track of PHI nodes and its incoming edges when looking for sources.
- RewriteMapTy RewriteMap;
- // Try to find a more suitable source. If we failed to do so, or get the
- // actual source, move to the next source.
-- if (!findNextSource(TrackReg, TrackSubReg, RewriteMap))
-+ if (!findNextSource(TrackPair, RewriteMap))
- continue;
-
- // Get the new source to rewrite. TODO: Only enable handling of multiple
- // sources (PHIs) once we have a motivating example and testcases for it.
-- TargetInstrInfo::RegSubRegPair TrackPair(TrackReg, TrackSubReg);
-- TargetInstrInfo::RegSubRegPair NewSrc = CpyRewriter->getNewSource(
-- MRI, TII, TrackPair, RewriteMap, false /* multiple sources */);
-- if (SrcReg == NewSrc.Reg || NewSrc.Reg == 0)
-+ RegSubRegPair NewSrc = getNewSource(MRI, TII, TrackPair, RewriteMap,
-+ /*HandleMultipleSources=*/false);
-+ if (Src.Reg == NewSrc.Reg || NewSrc.Reg == 0)
- continue;
-
- // Rewrite source.
-@@ -1312,6 +1213,47 @@
- return Changed;
- }
-
-+/// \brief Rewrite the source found through \p Def, by using the \p RewriteMap
-+/// and create a new COPY instruction. More info about RewriteMap in
-+/// PeepholeOptimizer::findNextSource. Right now this is only used to handle
-+/// Uncoalescable copies, since they are copy like instructions that aren't
-+/// recognized by the register allocator.
-+MachineInstr &
-+PeepholeOptimizer::rewriteSource(MachineInstr &CopyLike,
-+ RegSubRegPair Def, RewriteMapTy &RewriteMap) {
-+ assert(!TargetRegisterInfo::isPhysicalRegister(Def.Reg) &&
-+ "We do not rewrite physical registers");
-+
-+ // Find the new source to use in the COPY rewrite.
-+ RegSubRegPair NewSrc = getNewSource(MRI, TII, Def, RewriteMap);
-+
-+ // Insert the COPY.
-+ const TargetRegisterClass *DefRC = MRI->getRegClass(Def.Reg);
-+ unsigned NewVReg = MRI->createVirtualRegister(DefRC);
-+
-+ MachineInstr *NewCopy =
-+ BuildMI(*CopyLike.getParent(), &CopyLike, CopyLike.getDebugLoc(),
-+ TII->get(TargetOpcode::COPY), NewVReg)
-+ .addReg(NewSrc.Reg, 0, NewSrc.SubReg);
-+
-+ if (Def.SubReg) {
-+ NewCopy->getOperand(0).setSubReg(Def.SubReg);
-+ NewCopy->getOperand(0).setIsUndef();
-+ }
-+
-+ DEBUG(dbgs() << "-- RewriteSource\n");
-+ DEBUG(dbgs() << " Replacing: " << CopyLike);
-+ DEBUG(dbgs() << " With: " << *NewCopy);
-+ MRI->replaceRegWith(Def.Reg, NewVReg);
-+ MRI->clearKillFlags(NewVReg);
-+
-+ // We extended the lifetime of NewSrc.Reg, clear the kill flags to
-+ // account for that.
-+ MRI->clearKillFlags(NewSrc.Reg);
-+
-+ return *NewCopy;
-+}
-+
- /// \brief Optimize copy-like instructions to create
- /// register coalescer friendly instruction.
- /// The optimization tries to kill-off the \p MI by looking
-@@ -1324,48 +1266,40 @@
- /// been removed from its parent.
- /// All COPY instructions created, are inserted in \p LocalMIs.
- bool PeepholeOptimizer::optimizeUncoalescableCopy(
-- MachineInstr *MI, SmallPtrSetImpl<MachineInstr *> &LocalMIs) {
-- assert(MI && isUncoalescableCopy(*MI) && "Invalid argument");
--
-- // Check if we can rewrite all the values defined by this instruction.
-- SmallVector<TargetInstrInfo::RegSubRegPair, 4> RewritePairs;
-- // Get the right rewriter for the current copy.
-- std::unique_ptr<CopyRewriter> CpyRewriter(getCopyRewriter(*MI, *TII, *MRI));
-- // If none exists, bail out.
-- if (!CpyRewriter)
-- return false;
-+ MachineInstr &MI, SmallPtrSetImpl<MachineInstr *> &LocalMIs) {
-+ assert(isUncoalescableCopy(MI) && "Invalid argument");
-+ UncoalescableRewriter CpyRewriter(MI);
-
- // Rewrite each rewritable source by generating new COPYs. This works
- // differently from optimizeCoalescableCopy since it first makes sure that all
- // definitions can be rewritten.
- RewriteMapTy RewriteMap;
-- unsigned Reg, SubReg, CopyDefReg, CopyDefSubReg;
-- while (CpyRewriter->getNextRewritableSource(Reg, SubReg, CopyDefReg,
-- CopyDefSubReg)) {
-+ RegSubRegPair Src;
-+ RegSubRegPair Def;
-+ SmallVector<RegSubRegPair, 4> RewritePairs;
-+ while (CpyRewriter.getNextRewritableSource(Src, Def)) {
- // If a physical register is here, this is probably for a good reason.
- // Do not rewrite that.
-- if (TargetRegisterInfo::isPhysicalRegister(CopyDefReg))
-+ if (TargetRegisterInfo::isPhysicalRegister(Def.Reg))
- return false;
-
- // If we do not know how to rewrite this definition, there is no point
- // in trying to kill this instruction.
-- TargetInstrInfo::RegSubRegPair Def(CopyDefReg, CopyDefSubReg);
-- if (!findNextSource(Def.Reg, Def.SubReg, RewriteMap))
-+ if (!findNextSource(Def, RewriteMap))
- return false;
-
- RewritePairs.push_back(Def);
- }
-
- // The change is possible for all defs, do it.
-- for (const auto &Def : RewritePairs) {
-+ for (const RegSubRegPair &Def : RewritePairs) {
- // Rewrite the "copy" in a way the register coalescer understands.
-- MachineInstr *NewCopy = CpyRewriter->RewriteSource(Def, RewriteMap);
-- assert(NewCopy && "Should be able to always generate a new copy");
-- LocalMIs.insert(NewCopy);
-+ MachineInstr &NewCopy = rewriteSource(MI, Def, RewriteMap);
-+ LocalMIs.insert(&NewCopy);
- }
-
- // MI is now dead.
-- MI->eraseFromParent();
-+ MI.eraseFromParent();
- ++NumUncoalescableCopies;
- return true;
- }
-@@ -1374,18 +1308,18 @@
- /// We only fold loads to virtual registers and the virtual register defined
- /// has a single use.
- bool PeepholeOptimizer::isLoadFoldable(
-- MachineInstr *MI, SmallSet<unsigned, 16> &FoldAsLoadDefCandidates) {
-- if (!MI->canFoldAsLoad() || !MI->mayLoad())
-+ MachineInstr &MI, SmallSet<unsigned, 16> &FoldAsLoadDefCandidates) {
-+ if (!MI.canFoldAsLoad() || !MI.mayLoad())
- return false;
-- const MCInstrDesc &MCID = MI->getDesc();
-+ const MCInstrDesc &MCID = MI.getDesc();
- if (MCID.getNumDefs() != 1)
- return false;
-
-- unsigned Reg = MI->getOperand(0).getReg();
-+ unsigned Reg = MI.getOperand(0).getReg();
- // To reduce compilation time, we check MRI->hasOneNonDBGUse when inserting
- // loads. It should be checked when processing uses of the load, since
- // uses can be removed during peephole.
-- if (!MI->getOperand(0).getSubReg() &&
-+ if (!MI.getOperand(0).getSubReg() &&
- TargetRegisterInfo::isVirtualRegister(Reg) &&
- MRI->hasOneNonDBGUse(Reg)) {
- FoldAsLoadDefCandidates.insert(Reg);
-@@ -1395,16 +1329,16 @@
- }
-
- bool PeepholeOptimizer::isMoveImmediate(
-- MachineInstr *MI, SmallSet<unsigned, 4> &ImmDefRegs,
-+ MachineInstr &MI, SmallSet<unsigned, 4> &ImmDefRegs,
- DenseMap<unsigned, MachineInstr *> &ImmDefMIs) {
-- const MCInstrDesc &MCID = MI->getDesc();
-- if (!MI->isMoveImmediate())
-+ const MCInstrDesc &MCID = MI.getDesc();
-+ if (!MI.isMoveImmediate())
- return false;
- if (MCID.getNumDefs() != 1)
- return false;
-- unsigned Reg = MI->getOperand(0).getReg();
-+ unsigned Reg = MI.getOperand(0).getReg();
- if (TargetRegisterInfo::isVirtualRegister(Reg)) {
-- ImmDefMIs.insert(std::make_pair(Reg, MI));
-+ ImmDefMIs.insert(std::make_pair(Reg, &MI));
- ImmDefRegs.insert(Reg);
- return true;
- }
-@@ -1415,11 +1349,11 @@
- /// Try folding register operands that are defined by move immediate
- /// instructions, i.e. a trivial constant folding optimization, if
- /// and only if the def and use are in the same BB.
--bool PeepholeOptimizer::foldImmediate(
-- MachineInstr *MI, MachineBasicBlock *MBB, SmallSet<unsigned, 4> &ImmDefRegs,
-+bool PeepholeOptimizer::foldImmediate(MachineInstr &MI,
-+ SmallSet<unsigned, 4> &ImmDefRegs,
- DenseMap<unsigned, MachineInstr *> &ImmDefMIs) {
-- for (unsigned i = 0, e = MI->getDesc().getNumOperands(); i != e; ++i) {
-- MachineOperand &MO = MI->getOperand(i);
-+ for (unsigned i = 0, e = MI.getDesc().getNumOperands(); i != e; ++i) {
-+ MachineOperand &MO = MI.getOperand(i);
- if (!MO.isReg() || MO.isDef())
- continue;
- // Ignore dead implicit defs.
-@@ -1432,7 +1366,7 @@
- continue;
- DenseMap<unsigned, MachineInstr*>::iterator II = ImmDefMIs.find(Reg);
- assert(II != ImmDefMIs.end() && "couldn't find immediate definition");
-- if (TII->FoldImmediate(*MI, *II->second, Reg, MRI)) {
-+ if (TII->FoldImmediate(MI, *II->second, Reg, MRI)) {
- ++NumImmFold;
- return true;
- }
-@@ -1454,28 +1388,28 @@
- // %2 = COPY %0:sub1
- //
- // Should replace %2 uses with %1:sub1
--bool PeepholeOptimizer::foldRedundantCopy(
-- MachineInstr *MI, SmallSet<unsigned, 4> &CopySrcRegs,
-+bool PeepholeOptimizer::foldRedundantCopy(MachineInstr &MI,
-+ SmallSet<unsigned, 4> &CopySrcRegs,
- DenseMap<unsigned, MachineInstr *> &CopyMIs) {
-- assert(MI->isCopy() && "expected a COPY machine instruction");
-+ assert(MI.isCopy() && "expected a COPY machine instruction");
-
-- unsigned SrcReg = MI->getOperand(1).getReg();
-+ unsigned SrcReg = MI.getOperand(1).getReg();
- if (!TargetRegisterInfo::isVirtualRegister(SrcReg))
- return false;
-
-- unsigned DstReg = MI->getOperand(0).getReg();
-+ unsigned DstReg = MI.getOperand(0).getReg();
- if (!TargetRegisterInfo::isVirtualRegister(DstReg))
- return false;
-
- if (CopySrcRegs.insert(SrcReg).second) {
- // First copy of this reg seen.
-- CopyMIs.insert(std::make_pair(SrcReg, MI));
-+ CopyMIs.insert(std::make_pair(SrcReg, &MI));
- return false;
- }
-
- MachineInstr *PrevCopy = CopyMIs.find(SrcReg)->second;
-
-- unsigned SrcSubReg = MI->getOperand(1).getSubReg();
-+ unsigned SrcSubReg = MI.getOperand(1).getSubReg();
- unsigned PrevSrcSubReg = PrevCopy->getOperand(1).getSubReg();
-
- // Can't replace different subregister extracts.
-@@ -1504,19 +1438,19 @@
- }
-
- bool PeepholeOptimizer::foldRedundantNAPhysCopy(
-- MachineInstr *MI, DenseMap<unsigned, MachineInstr *> &NAPhysToVirtMIs) {
-- assert(MI->isCopy() && "expected a COPY machine instruction");
-+ MachineInstr &MI, DenseMap<unsigned, MachineInstr *> &NAPhysToVirtMIs) {
-+ assert(MI.isCopy() && "expected a COPY machine instruction");
-
- if (DisableNAPhysCopyOpt)
- return false;
-
-- unsigned DstReg = MI->getOperand(0).getReg();
-- unsigned SrcReg = MI->getOperand(1).getReg();
-+ unsigned DstReg = MI.getOperand(0).getReg();
-+ unsigned SrcReg = MI.getOperand(1).getReg();
- if (isNAPhysCopy(SrcReg) && TargetRegisterInfo::isVirtualRegister(DstReg)) {
- // %vreg = COPY %physreg
- // Avoid using a datastructure which can track multiple live non-allocatable
- // phys->virt copies since LLVM doesn't seem to do this.
-- NAPhysToVirtMIs.insert({SrcReg, MI});
-+ NAPhysToVirtMIs.insert({SrcReg, &MI});
- return false;
- }
-
-@@ -1528,8 +1462,7 @@
- if (PrevCopy == NAPhysToVirtMIs.end()) {
- // We can't remove the copy: there was an intervening clobber of the
- // non-allocatable physical register after the copy to virtual.
-- DEBUG(dbgs() << "NAPhysCopy: intervening clobber forbids erasing " << *MI
-- << '\n');
-+ DEBUG(dbgs() << "NAPhysCopy: intervening clobber forbids erasing " << MI);
- return false;
- }
-
-@@ -1537,7 +1470,7 @@
- if (PrevDstReg == SrcReg) {
- // Remove the virt->phys copy: we saw the virtual register definition, and
- // the non-allocatable physical register's state hasn't changed since then.
-- DEBUG(dbgs() << "NAPhysCopy: erasing " << *MI << '\n');
-+ DEBUG(dbgs() << "NAPhysCopy: erasing " << MI);
- ++NumNAPhysCopies;
- return true;
- }
-@@ -1546,7 +1479,7 @@
- // register get a copy of the non-allocatable physical register, and we only
- // track one such copy. Avoid getting confused by this new non-allocatable
- // physical register definition, and remove it from the tracked copies.
-- DEBUG(dbgs() << "NAPhysCopy: missed opportunity " << *MI << '\n');
-+ DEBUG(dbgs() << "NAPhysCopy: missed opportunity " << MI);
- NAPhysToVirtMIs.erase(PrevCopy);
- return false;
- }
-@@ -1611,11 +1544,11 @@
- return false;
- }
-
--/// \brief Phi instructions will eventually be lowered to copy instructions. If
--/// phi is in a loop header, a recurrence may formulated around the source and
--/// destination of the phi. For such case commuting operands of the instructions
--/// in the recurrence may enable coalescing of the copy instruction generated
--/// from the phi. For example, if there is a recurrence of
-+/// Phi instructions will eventually be lowered to copy instructions.
-+/// If phi is in a loop header, a recurrence may formulated around the source
-+/// and destination of the phi. For such case commuting operands of the
-+/// instructions in the recurrence may enable coalescing of the copy instruction
-+/// generated from the phi. For example, if there is a recurrence of
- ///
- /// LoopHeader:
- /// %1 = phi(%0, %100)
-@@ -1725,27 +1658,25 @@
- }
-
- if (!MI->isCopy()) {
-- for (const auto &Op : MI->operands()) {
-+ for (const MachineOperand &MO : MI->operands()) {
- // Visit all operands: definitions can be implicit or explicit.
-- if (Op.isReg()) {
-- unsigned Reg = Op.getReg();
-- if (Op.isDef() && isNAPhysCopy(Reg)) {
-+ if (MO.isReg()) {
-+ unsigned Reg = MO.getReg();
-+ if (MO.isDef() && isNAPhysCopy(Reg)) {
- const auto &Def = NAPhysToVirtMIs.find(Reg);
- if (Def != NAPhysToVirtMIs.end()) {
- // A new definition of the non-allocatable physical register
- // invalidates previous copies.
-- DEBUG(dbgs() << "NAPhysCopy: invalidating because of " << *MI
-- << '\n');
-+ DEBUG(dbgs() << "NAPhysCopy: invalidating because of " << *MI);
- NAPhysToVirtMIs.erase(Def);
- }
- }
-- } else if (Op.isRegMask()) {
-- const uint32_t *RegMask = Op.getRegMask();
-+ } else if (MO.isRegMask()) {
-+ const uint32_t *RegMask = MO.getRegMask();
- for (auto &RegMI : NAPhysToVirtMIs) {
- unsigned Def = RegMI.first;
- if (MachineOperand::clobbersPhysReg(RegMask, Def)) {
-- DEBUG(dbgs() << "NAPhysCopy: invalidating because of " << *MI
-- << '\n');
-+ DEBUG(dbgs() << "NAPhysCopy: invalidating because of " << *MI);
- NAPhysToVirtMIs.erase(Def);
- }
- }
-@@ -1761,58 +1692,57 @@
- // don't know what's correct anymore.
- //
- // FIXME: handle explicit asm clobbers.
-- DEBUG(dbgs() << "NAPhysCopy: blowing away all info due to " << *MI
-- << '\n');
-+ DEBUG(dbgs() << "NAPhysCopy: blowing away all info due to " << *MI);
- NAPhysToVirtMIs.clear();
- }
-
- if ((isUncoalescableCopy(*MI) &&
-- optimizeUncoalescableCopy(MI, LocalMIs)) ||
-- (MI->isCompare() && optimizeCmpInstr(MI, &MBB)) ||
-- (MI->isSelect() && optimizeSelect(MI, LocalMIs))) {
-+ optimizeUncoalescableCopy(*MI, LocalMIs)) ||
-+ (MI->isCompare() && optimizeCmpInstr(*MI)) ||
-+ (MI->isSelect() && optimizeSelect(*MI, LocalMIs))) {
- // MI is deleted.
- LocalMIs.erase(MI);
- Changed = true;
- continue;
- }
-
-- if (MI->isConditionalBranch() && optimizeCondBranch(MI)) {
-+ if (MI->isConditionalBranch() && optimizeCondBranch(*MI)) {
- Changed = true;
- continue;
- }
-
-- if (isCoalescableCopy(*MI) && optimizeCoalescableCopy(MI)) {
-+ if (isCoalescableCopy(*MI) && optimizeCoalescableCopy(*MI)) {
- // MI is just rewritten.
- Changed = true;
- continue;
- }
-
- if (MI->isCopy() &&
-- (foldRedundantCopy(MI, CopySrcRegs, CopySrcMIs) ||
-- foldRedundantNAPhysCopy(MI, NAPhysToVirtMIs))) {
-+ (foldRedundantCopy(*MI, CopySrcRegs, CopySrcMIs) ||
-+ foldRedundantNAPhysCopy(*MI, NAPhysToVirtMIs))) {
- LocalMIs.erase(MI);
- MI->eraseFromParent();
- Changed = true;
- continue;
- }
-
-- if (isMoveImmediate(MI, ImmDefRegs, ImmDefMIs)) {
-+ if (isMoveImmediate(*MI, ImmDefRegs, ImmDefMIs)) {
- SeenMoveImm = true;
- } else {
-- Changed |= optimizeExtInstr(MI, &MBB, LocalMIs);
-+ Changed |= optimizeExtInstr(*MI, MBB, LocalMIs);
- // optimizeExtInstr might have created new instructions after MI
- // and before the already incremented MII. Adjust MII so that the
- // next iteration sees the new instructions.
- MII = MI;
- ++MII;
- if (SeenMoveImm)
-- Changed |= foldImmediate(MI, &MBB, ImmDefRegs, ImmDefMIs);
-+ Changed |= foldImmediate(*MI, ImmDefRegs, ImmDefMIs);
- }
-
- // Check whether MI is a load candidate for folding into a later
- // instruction. If MI is not a candidate, check whether we can fold an
- // earlier load into MI.
-- if (!isLoadFoldable(MI, FoldAsLoadDefCandidates) &&
-+ if (!isLoadFoldable(*MI, FoldAsLoadDefCandidates) &&
- !FoldAsLoadDefCandidates.empty()) {
-
- // We visit each operand even after successfully folding a previous
-@@ -1861,7 +1791,7 @@
- // the load candidates. Note: We might be able to fold *into* this
- // instruction, so this needs to be after the folding logic.
- if (MI->isLoadFoldBarrier()) {
-- DEBUG(dbgs() << "Encountered load fold barrier on " << *MI << "\n");
-+ DEBUG(dbgs() << "Encountered load fold barrier on " << *MI);
- FoldAsLoadDefCandidates.clear();
- }
- }
-@@ -1958,14 +1888,14 @@
- // duplicate the code from the generic TII.
- return ValueTrackerResult();
-
-- SmallVector<TargetInstrInfo::RegSubRegPairAndIdx, 8> RegSeqInputRegs;
-+ SmallVector<RegSubRegPairAndIdx, 8> RegSeqInputRegs;
- if (!TII->getRegSequenceInputs(*Def, DefIdx, RegSeqInputRegs))
- return ValueTrackerResult();
-
- // We are looking at:
- // Def = REG_SEQUENCE v0, sub0, v1, sub1, ...
- // Check if one of the operand defines the subreg we are interested in.
-- for (auto &RegSeqInput : RegSeqInputRegs) {
-+ for (const RegSubRegPairAndIdx &RegSeqInput : RegSeqInputRegs) {
- if (RegSeqInput.SubIdx == DefSubReg) {
- if (RegSeqInput.SubReg)
- // Bail if we have to compose sub registers.
-@@ -1996,8 +1926,8 @@
- // duplicate the code from the generic TII.
- return ValueTrackerResult();
-
-- TargetInstrInfo::RegSubRegPair BaseReg;
-- TargetInstrInfo::RegSubRegPairAndIdx InsertedReg;
-+ RegSubRegPair BaseReg;
-+ RegSubRegPairAndIdx InsertedReg;
- if (!TII->getInsertSubregInputs(*Def, DefIdx, BaseReg, InsertedReg))
- return ValueTrackerResult();
-
-@@ -2050,7 +1980,7 @@
- // duplicate the code from the generic TII.
- return ValueTrackerResult();
-
-- TargetInstrInfo::RegSubRegPairAndIdx ExtractSubregInputReg;
-+ RegSubRegPairAndIdx ExtractSubregInputReg;
- if (!TII->getExtractSubregInputs(*Def, DefIdx, ExtractSubregInputReg))
- return ValueTrackerResult();
-
-@@ -2083,7 +2013,7 @@
- Def->getOperand(3).getImm());
- }
-
--/// \brief Explore each PHI incoming operand and return its sources
-+/// Explore each PHI incoming operand and return its sources.
- ValueTrackerResult ValueTracker::getNextSourceFromPHI() {
- assert(Def->isPHI() && "Invalid definition");
- ValueTrackerResult Res;
-@@ -2095,7 +2025,7 @@
-
- // Return all register sources for PHI instructions.
- for (unsigned i = 1, e = Def->getNumOperands(); i < e; i += 2) {
-- auto &MO = Def->getOperand(i);
-+ const MachineOperand &MO = Def->getOperand(i);
- assert(MO.isReg() && "Invalid PHI instruction");
- // We have no code to deal with undef operands. They shouldn't happen in
- // normal programs anyway.
-@@ -2121,7 +2051,7 @@
- return getNextSourceFromBitcast();
- // All the remaining cases involve "complex" instructions.
- // Bail if we did not ask for the advanced tracking.
-- if (!UseAdvancedTracking)
-+ if (DisableAdvCopyOpt)
- return ValueTrackerResult();
- if (Def->isRegSequence() || Def->isRegSequenceLike())
- return getNextSourceFromRegSequence();
diff --git a/devel/llvm60/pkg-descr b/devel/llvm60/pkg-descr
deleted file mode 100644
index d252f07c6790..000000000000
--- a/devel/llvm60/pkg-descr
+++ /dev/null
@@ -1,8 +0,0 @@
-The LLVM Project is a collection of modular and reusable compiler and
-toolchain technologies.
-
-This port includes Clang (a C/C++/Objective-C compiler), LLD (a linker),
-LLDB (a debugger), an OpenMP runtime library, and the LLVM infrastructure
-these are built on.
-
-WWW: http://llvm.org/
diff --git a/devel/llvm60/pkg-plist b/devel/llvm60/pkg-plist
deleted file mode 100644
index 02cb1d865866..000000000000
--- a/devel/llvm60/pkg-plist
+++ /dev/null
@@ -1,2899 +0,0 @@
-@comment >>>>> GENERATED FILE, DO NOT EDIT <<<<<
-@comment Alter build-plist target and regenerate as required
-bin/bugpoint%%LLVM_SUFFIX%%
-bin/llc%%LLVM_SUFFIX%%
-bin/lli%%LLVM_SUFFIX%%
-bin/llvm-ar%%LLVM_SUFFIX%%
-bin/llvm-as%%LLVM_SUFFIX%%
-bin/llvm-bcanalyzer%%LLVM_SUFFIX%%
-bin/llvm-cat%%LLVM_SUFFIX%%
-bin/llvm-cfi-verify%%LLVM_SUFFIX%%
-bin/llvm-config%%LLVM_SUFFIX%%
-bin/llvm-cov%%LLVM_SUFFIX%%
-bin/llvm-cvtres%%LLVM_SUFFIX%%
-bin/llvm-diff%%LLVM_SUFFIX%%
-bin/llvm-dis%%LLVM_SUFFIX%%
-bin/llvm-dlltool%%LLVM_SUFFIX%%
-bin/llvm-dwarfdump%%LLVM_SUFFIX%%
-bin/llvm-dwp%%LLVM_SUFFIX%%
-bin/llvm-extract%%LLVM_SUFFIX%%
-bin/llvm-link%%LLVM_SUFFIX%%
-bin/llvm-mc%%LLVM_SUFFIX%%
-bin/llvm-mcmarkup%%LLVM_SUFFIX%%
-bin/llvm-modextract%%LLVM_SUFFIX%%
-bin/llvm-mt%%LLVM_SUFFIX%%
-bin/llvm-nm%%LLVM_SUFFIX%%
-bin/llvm-objcopy%%LLVM_SUFFIX%%
-bin/llvm-objdump%%LLVM_SUFFIX%%
-bin/llvm-opt-report%%LLVM_SUFFIX%%
-bin/llvm-pdbutil%%LLVM_SUFFIX%%
-bin/llvm-profdata%%LLVM_SUFFIX%%
-bin/llvm-ranlib%%LLVM_SUFFIX%%
-bin/llvm-rc%%LLVM_SUFFIX%%
-bin/llvm-readelf%%LLVM_SUFFIX%%
-bin/llvm-readobj%%LLVM_SUFFIX%%
-bin/llvm-rtdyld%%LLVM_SUFFIX%%
-bin/llvm-size%%LLVM_SUFFIX%%
-bin/llvm-split%%LLVM_SUFFIX%%
-bin/llvm-stress%%LLVM_SUFFIX%%
-bin/llvm-strings%%LLVM_SUFFIX%%
-bin/llvm-symbolizer%%LLVM_SUFFIX%%
-bin/llvm-tblgen%%LLVM_SUFFIX%%
-bin/macho-dump%%LLVM_SUFFIX%%
-bin/opt%%LLVM_SUFFIX%%
-bin/sancov%%LLVM_SUFFIX%%
-%%CLANG%%bin/c-index-test%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang++%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang-check%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang-cpp%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang-format%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang-func-mapping%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang-import-test%%LLVM_SUFFIX%%
-%%CLANG%%bin/clang-offload-bundler%%LLVM_SUFFIX%%
-%%CLANG%%bin/scan-build%%LLVM_SUFFIX%%
-%%CLANG%%bin/scan-view%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-apply-replacements%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-change-namespace%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-include-fixer%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-modernize%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-query%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-rename%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-reorder-fields%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clang-tidy%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/clangd%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/find-all-symbols%%LLVM_SUFFIX%%
-%%EXTRAS%%bin/modularize%%LLVM_SUFFIX%%
-%%LLD%%bin/ld.lld%%LLVM_SUFFIX%%
-%%LLD%%bin/ld64.lld%%LLVM_SUFFIX%%
-%%LLD%%bin/lld%%LLVM_SUFFIX%%
-%%LLD%%bin/lld-link%%LLVM_SUFFIX%%
-%%LLD%%bin/wasm-ld%%LLVM_SUFFIX%%
-%%LLDB%%bin/lldb%%LLVM_SUFFIX%%
-%%LLDB%%bin/lldb-argdumper%%LLVM_SUFFIX%%
-%%LLDB%%bin/lldb-mi%%LLVM_SUFFIX%%
-%%LLDB%%bin/lldb-server%%LLVM_SUFFIX%%
-%%LLDB%%bin/lldb-test%%LLVM_SUFFIX%%
-%%LIT%%bin/FileCheck%%LLVM_SUFFIX%%
-%%LIT%%llvm%%LLVM_SUFFIX%%/bin/FileCheck
-%%LIT%%bin/lit%%LLVM_SUFFIX%%
-%%LIT%%llvm%%LLVM_SUFFIX%%/bin/lit
-%%LIT%%bin/llvm-lit%%LLVM_SUFFIX%%
-%%LIT%%llvm%%LLVM_SUFFIX%%/bin/llvm-lit
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/__init__.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/_lldb.so
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/embedded_interpreter.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/Logger.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/__init__.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/attrib_fromdict.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/cache.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/cpp/__init__.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/cpp/gnu_libstdcpp.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/cpp/libcxx.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/metrics.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/formatters/synth.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/lldb-argdumper
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/runtime/__init__.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/utils/__init__.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/lldb/utils/symbolication.py
-%%LLDB%%llvm%%LLVM_LIB_VER%%/%%PYTHON_SITELIBDIR%%/six.py
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/asan_blacklist.txt
-llvm%%LLVM_LIB_VER%%/bin/bugpoint
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/c-index-test
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang++
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-%%LLVM_MAJOR%%
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clang-apply-replacements
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clang-change-namespace
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-check
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-cl
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-cpp
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-format
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-func-mapping
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-import-test
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clang-include-fixer
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-offload-bundler
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clang-query
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-refactor
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clang-rename
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clang-reorder-fields
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/clang-tblgen
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clang-tidy
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/clangd
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/find-all-symbols
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/git-clang-format
-%%LLD%%llvm%%LLVM_LIB_VER%%/bin/ld.lld
-%%LLD%%llvm%%LLVM_LIB_VER%%/bin/ld64.lld
-llvm%%LLVM_LIB_VER%%/bin/llc
-%%LLD%%llvm%%LLVM_LIB_VER%%/bin/lld
-%%LLD%%llvm%%LLVM_LIB_VER%%/bin/lld-link
-%%LLDB%%llvm%%LLVM_LIB_VER%%/bin/lldb
-%%LLDB%%llvm%%LLVM_LIB_VER%%/bin/lldb-argdumper
-%%LLDB%%llvm%%LLVM_LIB_VER%%/bin/lldb-mi
-%%LLDB%%llvm%%LLVM_LIB_VER%%/bin/lldb-server
-%%LLDB%%llvm%%LLVM_LIB_VER%%/bin/lldb-test
-llvm%%LLVM_LIB_VER%%/bin/lli
-llvm%%LLVM_LIB_VER%%/bin/llvm-ar
-llvm%%LLVM_LIB_VER%%/bin/llvm-as
-llvm%%LLVM_LIB_VER%%/bin/llvm-bcanalyzer
-llvm%%LLVM_LIB_VER%%/bin/llvm-c-test
-llvm%%LLVM_LIB_VER%%/bin/llvm-cat
-llvm%%LLVM_LIB_VER%%/bin/llvm-cfi-verify
-llvm%%LLVM_LIB_VER%%/bin/llvm-config
-llvm%%LLVM_LIB_VER%%/bin/llvm-cov
-llvm%%LLVM_LIB_VER%%/bin/llvm-cvtres
-llvm%%LLVM_LIB_VER%%/bin/llvm-cxxdump
-llvm%%LLVM_LIB_VER%%/bin/llvm-cxxfilt
-llvm%%LLVM_LIB_VER%%/bin/llvm-diff
-llvm%%LLVM_LIB_VER%%/bin/llvm-dis
-llvm%%LLVM_LIB_VER%%/bin/llvm-dlltool
-llvm%%LLVM_LIB_VER%%/bin/llvm-dsymutil
-llvm%%LLVM_LIB_VER%%/bin/llvm-dwarfdump
-llvm%%LLVM_LIB_VER%%/bin/llvm-dwp
-llvm%%LLVM_LIB_VER%%/bin/llvm-extract
-llvm%%LLVM_LIB_VER%%/bin/llvm-lib
-llvm%%LLVM_LIB_VER%%/bin/llvm-link
-llvm%%LLVM_LIB_VER%%/bin/llvm-lto
-llvm%%LLVM_LIB_VER%%/bin/llvm-lto2
-llvm%%LLVM_LIB_VER%%/bin/llvm-mc
-llvm%%LLVM_LIB_VER%%/bin/llvm-mcmarkup
-llvm%%LLVM_LIB_VER%%/bin/llvm-modextract
-llvm%%LLVM_LIB_VER%%/bin/llvm-mt
-llvm%%LLVM_LIB_VER%%/bin/llvm-nm
-llvm%%LLVM_LIB_VER%%/bin/llvm-objcopy
-llvm%%LLVM_LIB_VER%%/bin/llvm-objdump
-llvm%%LLVM_LIB_VER%%/bin/llvm-opt-report
-llvm%%LLVM_LIB_VER%%/bin/llvm-pdbutil
-llvm%%LLVM_LIB_VER%%/bin/llvm-profdata
-llvm%%LLVM_LIB_VER%%/bin/llvm-ranlib
-llvm%%LLVM_LIB_VER%%/bin/llvm-rc
-llvm%%LLVM_LIB_VER%%/bin/llvm-readelf
-llvm%%LLVM_LIB_VER%%/bin/llvm-readobj
-llvm%%LLVM_LIB_VER%%/bin/llvm-rtdyld
-llvm%%LLVM_LIB_VER%%/bin/llvm-size
-llvm%%LLVM_LIB_VER%%/bin/llvm-split
-llvm%%LLVM_LIB_VER%%/bin/llvm-stress
-llvm%%LLVM_LIB_VER%%/bin/llvm-strings
-llvm%%LLVM_LIB_VER%%/bin/llvm-symbolizer
-llvm%%LLVM_LIB_VER%%/bin/llvm-tblgen
-llvm%%LLVM_LIB_VER%%/bin/llvm-xray
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/bin/modularize
-llvm%%LLVM_LIB_VER%%/bin/obj2yaml
-llvm%%LLVM_LIB_VER%%/bin/opt
-llvm%%LLVM_LIB_VER%%/bin/sancov
-llvm%%LLVM_LIB_VER%%/bin/sanstats
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/scan-build
-%%CLANG%%llvm%%LLVM_LIB_VER%%/bin/scan-view
-llvm%%LLVM_LIB_VER%%/bin/verify-uselistorder
-%%LLD%%llvm%%LLVM_LIB_VER%%/bin/wasm-ld
-llvm%%LLVM_LIB_VER%%/bin/yaml2obj
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/cfi_blacklist.txt
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang-c/BuildSystem.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang-c/CXCompilationDatabase.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang-c/CXErrorCode.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang-c/CXString.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang-c/Documentation.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang-c/Index.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang-c/Platform.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ARCMigrate/ARCMT.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ARCMigrate/ARCMTActions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ARCMigrate/FileRemapper.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/APValue.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/AST.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTContext.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTFwd.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTImporter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTLambda.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTMutationListener.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTStructuralEquivalence.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTTypeTraits.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTUnresolvedSet.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ASTVector.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Attr.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/AttrDump.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/AttrImpl.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/AttrIterator.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/AttrVisitor.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Attrs.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Availability.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/BaseSubobject.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/BuiltinTypes.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CXXInheritance.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CanonicalType.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CharUnits.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Comment.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentBriefParser.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentCommandInfo.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentCommandList.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentCommandTraits.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentHTMLNamedCharacterReferences.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentHTMLTags.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentHTMLTagsProperties.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentLexer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentNodes.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentParser.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentSema.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/CommentVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DataCollection.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Decl.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclAccessPair.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclBase.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclCXX.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclContextInternals.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclFriend.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclGroup.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclLookups.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclNodes.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclObjC.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclOpenMP.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclTemplate.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DeclarationName.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/DependentDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/EvaluatedExprVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Expr.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ExprCXX.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ExprObjC.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ExprOpenMP.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ExternalASTMerger.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ExternalASTSource.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/GlobalDecl.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/LambdaCapture.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/LocInfoType.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Mangle.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/MangleNumberingContext.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/NSAPI.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/NestedNameSpecifier.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ODRHash.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/OpenMPClause.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/OperationKinds.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/OperationKinds.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/ParentMap.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/PrettyPrinter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/QualTypeNames.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/RawCommentList.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/RecordLayout.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/RecursiveASTVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Redeclarable.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/SelectorLocationsKind.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Stmt.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtCXX.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtDataCollectors.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtGraphTraits.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtIterator.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtNodes.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtObjC.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtOpenMP.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/StmtVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TemplateBase.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TemplateName.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/Type.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TypeLoc.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TypeLocNodes.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TypeLocVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TypeNodes.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TypeOrdering.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/TypeVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/UnresolvedSet.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/VTTBuilder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/AST/VTableBuilder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/ASTMatchFinder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/ASTMatchers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/ASTMatchersInternal.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/ASTMatchersMacros.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/Dynamic/Diagnostics.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/Dynamic/Parser.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/Dynamic/Registry.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/ASTMatchers/Dynamic/VariantValue.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/Consumed.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/Dominators.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/FormatString.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/LiveVariables.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/OSLog.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/PostOrderCFGView.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ReachableCode.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ThreadSafety.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ThreadSafetyCommon.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ThreadSafetyOps.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/ThreadSafetyUtil.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Analyses/UninitializedValues.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/AnalysisDeclContext.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/AnalysisDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/BodyFarm.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/CFG.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/CFGStmtMap.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/CallGraph.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/CloneDetection.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/CodeInjector.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/DomainSpecific/CocoaConventions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/FlowSensitive/DataflowValues.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/ProgramPoint.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Analysis/Support/BumpVector.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/ABI.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AddressSpaces.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AlignedAllocation.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AllDiagnostics.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AttrHasAttributeImpl.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AttrKinds.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AttrList.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AttrSubMatchRulesList.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/AttrSubjectMatchRules.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Attributes.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Builtins.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Builtins.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsAArch64.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsAMDGPU.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsARM.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsHexagon.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsLe64.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsMips.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsNEON.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsNVPTX.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsNios2.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsPPC.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsSystemZ.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsWebAssembly.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsX86.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsX86_64.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/BuiltinsXCore.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/CapturedStmt.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/CharInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/CommentOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Cuda.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DebugInfoOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Diagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticASTKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticAnalysisKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticCategories.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticCommentKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticCommonKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticCrossTUKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticDriverKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticError.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticFrontendKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticGroups.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticIDs.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticIndexName.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticLexKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticOptions.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticParseKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticRefactoringKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticSemaKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/DiagnosticSerializationKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/ExceptionSpecificationType.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/ExpressionTraits.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/FileManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/FileSystemOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/FileSystemStatCache.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/IdentifierTable.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/LLVM.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Lambda.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/LangOptions.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/LangOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Linkage.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/MacroBuilder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/MemoryBufferCache.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Module.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/ObjCRuntime.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OpenCLExtensions.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OpenCLImageTypes.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OpenCLOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OpenMPKinds.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OpenMPKinds.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OperatorKinds.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OperatorKinds.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/OperatorPrecedence.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/PartialDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/PlistSupport.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/PragmaKinds.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/PrettyStackTrace.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/SanitizerBlacklist.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/SanitizerSpecialCaseList.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Sanitizers.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Sanitizers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/SourceLocation.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/SourceManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/SourceManagerInternals.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Specifiers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/SyncScope.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TargetBuiltins.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TargetCXXABI.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TargetInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TargetOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TemplateKinds.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TokenKinds.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TokenKinds.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/TypeTraits.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Version.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Version.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/VersionTuple.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/VirtualFileSystem.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/Visibility.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/X86Target.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/XRayLists.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Basic/arm_neon.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/BackendUtil.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/CGFunctionInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/CodeGenABITypes.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/CodeGenAction.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/ConstantInitBuilder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/ConstantInitFuture.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/ModuleBuilder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/ObjectFilePCHContainerOperations.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CodeGen/SwiftCallingConv.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Config/config.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CrossTU/CrossTUDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/CrossTU/CrossTranslationUnit.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Action.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Compilation.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Distro.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Driver.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/DriverDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Job.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Multilib.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Options.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Options.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Phases.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/SanitizerArgs.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Tool.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/ToolChain.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Types.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Types.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/Util.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Driver/XRayArgs.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Edit/Commit.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Edit/EditedSource.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Edit/EditsReceiver.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Edit/FileOffset.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Edit/Rewriters.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Format/Format.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/ASTConsumers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/ASTUnit.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/ChainedDiagnosticConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/CodeGenOptions.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/CodeGenOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/CommandLineSourceLoc.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/CompilerInstance.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/CompilerInvocation.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/DependencyOutputOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/DiagnosticRenderer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/FrontendAction.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/FrontendActions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/FrontendDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/FrontendOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/FrontendPluginRegistry.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/LangStandard.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/LangStandards.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/LayoutOverrideSource.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/LogDiagnosticPrinter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/MigratorOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/MultiplexConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/PCHContainerOperations.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/PrecompiledPreamble.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/PreprocessorOutputOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/SerializedDiagnosticPrinter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/SerializedDiagnosticReader.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/SerializedDiagnostics.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/TextDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/TextDiagnosticBuffer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/TextDiagnosticPrinter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/Utils.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Frontend/VerifyDiagnosticConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/FrontendTool/Utils.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Index/CodegenNameGenerator.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Index/CommentToXML.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Index/IndexDataConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Index/IndexSymbol.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Index/IndexingAction.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Index/USRGeneration.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/CodeCompletionHandler.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/DirectoryLookup.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/ExternalPreprocessorSource.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/HeaderMap.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/HeaderMapTypes.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/HeaderSearch.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/HeaderSearchOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/LexDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/Lexer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/LiteralSupport.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/MacroArgs.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/MacroInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/ModuleLoader.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/ModuleMap.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/MultipleIncludeOpt.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/PPCallbacks.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/PPConditionalDirectiveRecord.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/PTHLexer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/PTHManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/Pragma.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/PreprocessingRecord.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/Preprocessor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/PreprocessorLexer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/PreprocessorOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/ScratchBuffer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/Token.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/TokenConcatenation.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/TokenLexer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Lex/VariadicMacroSupport.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Parse/AttrParserStringSwitches.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Parse/AttrSubMatchRulesParserStringSwitches.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Parse/ParseAST.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Parse/ParseDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Parse/Parser.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Parse/RAIIObjectsForParser.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Core/DeltaTree.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Core/HTMLRewrite.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Core/RewriteBuffer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Core/RewriteRope.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Core/Rewriter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Core/TokenRewriter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Frontend/ASTConsumers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Frontend/FixItRewriter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Frontend/FrontendActions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Rewrite/Frontend/Rewriters.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/AnalysisBasedWarnings.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/AttrParsedAttrImpl.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/AttrParsedAttrKinds.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/AttrParsedAttrList.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/AttrSpellingListIndex.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/AttrTemplateInstantiate.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/AttributeList.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/CXXFieldCollector.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/CleanupInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/CodeCompleteConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/CodeCompleteOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/DeclSpec.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/DelayedDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Designator.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/ExternalSemaSource.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/IdentifierResolver.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Initialization.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Lookup.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/LoopHint.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/MultiplexExternalSemaSource.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/ObjCMethodList.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Overload.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Ownership.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/ParsedTemplate.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/PrettyDeclStackTrace.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Scope.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/ScopeInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Sema.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/SemaConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/SemaDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/SemaFixItUtils.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/SemaInternal.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/SemaLambda.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Template.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/TemplateDeduction.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/TypoCorrection.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Sema/Weak.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/ASTBitCodes.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/ASTDeserializationListener.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/ASTReader.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/ASTWriter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/AttrPCHRead.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/AttrPCHWrite.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/ContinuousRangeMap.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/GlobalModuleIndex.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/Module.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/ModuleFileExtension.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/ModuleManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Serialization/SerializationDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Checkers/Checkers.inc
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Checkers/MPIFunctionClassifier.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Checkers/SValExplainer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/Analyses.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/Checker.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/CheckerManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/CheckerRegistry.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/IssueHash.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeMap.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/LoopWidening.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/Regions.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/Symbols.def
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/ASTDiff/ASTDiff.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/ASTDiff/ASTDiffInternal.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/ArgumentsAdjusters.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/CommonOptionsParser.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/CompilationDatabase.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/CompilationDatabasePluginRegistry.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Core/Diagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Core/Lookup.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Core/Replacement.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/DiagnosticsYaml.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Execution.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/FileMatchTrie.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/FixIt.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/JSONCompilationDatabase.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/ASTSelection.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/AtomicChange.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/Extract/Extract.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringAction.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringActionRule.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringActionRules.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringOption.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringOptions.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/RefactoringRuleContext.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/Rename/RenamingAction.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/Rename/SymbolName.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/Rename/USRFinder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/RefactoringCallbacks.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/ReplacementsYaml.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/StandaloneExecution.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/ToolExecutorPluginRegistry.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/include/clang/Tooling/Tooling.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/Args.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/Driver.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/ErrorHandler.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/LLVM.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/Memory.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/Reproduce.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/Strings.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/TargetOptionsCommandFlags.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/Threads.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Common/Version.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/AbsoluteAtom.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/ArchiveLibraryFile.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Atom.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/DefinedAtom.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Error.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/File.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Instrumentation.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/LinkingContext.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Node.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Pass.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/PassManager.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Reader.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Reference.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Resolver.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/SharedLibraryAtom.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/SharedLibraryFile.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Simple.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/SymbolTable.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/UndefinedAtom.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/Core/Writer.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/ReaderWriter/MachOLinkingContext.h
-%%LLD%%llvm%%LLVM_LIB_VER%%/include/lld/ReaderWriter/YamlContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/LLDB.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBAddress.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBAttachInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBBlock.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBBreakpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBBreakpointLocation.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBBreakpointName.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBBroadcaster.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBCommandInterpreter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBCommandReturnObject.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBCommunication.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBCompileUnit.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBData.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBDebugger.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBDeclaration.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBDefines.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBError.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBEvent.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBExecutionContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBExpressionOptions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBFileSpec.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBFileSpecList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBFrame.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBFunction.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBHostOS.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBInstruction.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBInstructionList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBLanguageRuntime.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBLaunchInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBLineEntry.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBListener.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBMemoryRegionInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBMemoryRegionInfoList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBModule.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBModuleSpec.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBPlatform.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBProcess.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBProcessInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBQueue.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBQueueItem.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBSection.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBSourceManager.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBStream.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBStringList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBStructuredData.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBSymbol.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBSymbolContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBSymbolContextList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTarget.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBThread.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBThreadCollection.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBThreadPlan.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTrace.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTraceOptions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBType.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTypeCategory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTypeEnumMember.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTypeFilter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTypeFormat.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTypeNameSpecifier.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTypeSummary.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBTypeSynthetic.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBUnixSignals.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBValue.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBValueList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBVariablesOptions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SBWatchpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/API/SystemInitializerFull.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/Breakpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointID.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointIDList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointLocation.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointLocationCollection.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointLocationList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointName.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointOptions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointResolver.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointResolverAddress.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointResolverFileLine.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointResolverFileRegex.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointResolverName.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointSite.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/BreakpointSiteList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/Stoppoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/StoppointCallbackContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/StoppointLocation.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/Watchpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/WatchpointList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Breakpoint/WatchpointOptions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Address.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/AddressRange.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/AddressResolver.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/AddressResolverFileLine.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/AddressResolverName.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Architecture.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Broadcaster.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ClangForward.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Communication.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Debugger.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Disassembler.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/DumpDataExtractor.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/EmulateInstruction.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Event.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/FileLineResolver.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/FileSpecList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/FormatEntity.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/IOHandler.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/IOStreamMacros.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Listener.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/LoadedModuleInfoList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Mangled.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/MappedHash.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Module.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ModuleChild.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ModuleList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ModuleSpec.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Opcode.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/PluginInterface.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/PluginManager.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/RangeMap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/RegisterValue.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/STLUtils.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Scalar.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/SearchFilter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Section.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/SourceManager.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/State.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/StreamAsynchronousIO.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/StreamBuffer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/StreamFile.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/StructuredDataImpl.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ThreadSafeDenseMap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ThreadSafeDenseSet.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ThreadSafeSTLMap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ThreadSafeSTLVector.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ThreadSafeValue.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/UniqueCStringMap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/UserSettingsController.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/Value.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObject.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectCast.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectChild.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectConstResult.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectConstResultCast.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectConstResultChild.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectConstResultImpl.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectDynamicValue.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectMemory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectRegister.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectSyntheticFilter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/ValueObjectVariable.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Core/dwarf.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/CXXFunctionPointer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/DataVisualization.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/DumpValueObjectOptions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/FormatCache.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/FormatClasses.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/FormatManager.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/FormattersContainer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/FormattersHelpers.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/LanguageCategory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/StringPrinter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/TypeCategory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/TypeCategoryMap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/TypeFormat.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/TypeSummary.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/TypeSynthetic.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/TypeValidator.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/ValueObjectPrinter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/VectorIterator.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/DataFormatters/VectorType.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/DWARFExpression.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/DiagnosticManager.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/Expression.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/ExpressionParser.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/ExpressionSourceCode.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/ExpressionTypeSystemHelper.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/ExpressionVariable.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/FunctionCaller.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/IRDynamicChecks.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/IRExecutionUnit.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/IRInterpreter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/IRMemoryMap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/LLVMUserExpression.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/Materializer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/REPL.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/UserExpression.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Expression/UtilityFunction.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Config.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/ConnectionFileDescriptor.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Debug.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Editline.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/File.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/FileCache.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/FileSystem.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Host.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostGetOpt.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostInfoBase.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostNativeProcess.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostNativeProcessBase.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostNativeThread.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostNativeThreadBase.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostNativeThreadForward.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostProcess.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/HostThread.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/LockFile.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/LockFileBase.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/MainLoop.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/MainLoopBase.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/MonitoringProcessLauncher.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/OptionParser.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Pipe.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/PipeBase.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/PosixApi.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Predicate.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/ProcessLauncher.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/ProcessRunLock.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/PseudoTerminal.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Socket.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/SocketAddress.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/StringConvert.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Symbols.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/TaskPool.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Terminal.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/ThreadLauncher.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/Time.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/XML.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/android/HostInfoAndroid.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/GetOptInc.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/NativeBreakpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/NativeBreakpointList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/NativeProcessProtocol.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/NativeRegisterContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/NativeThreadProtocol.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/NativeWatchpointList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/SoftwareBreakpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/TCPSocket.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/common/UDPSocket.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/freebsd/HostInfoFreeBSD.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/linux/AbstractSocket.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/linux/HostInfoLinux.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/linux/Ptrace.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/linux/Support.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/linux/Uio.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/macosx/HostInfoMacOSX.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/macosx/HostThreadMacOSX.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/netbsd/HostInfoNetBSD.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/openbsd/HostInfoOpenBSD.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/DomainSocket.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/Fcntl.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/HostInfoPosix.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/HostProcessPosix.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/HostThreadPosix.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/LockFilePosix.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/PipePosix.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/posix/ProcessLauncherPosixFork.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/AutoHandle.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/ConnectionGenericFileWindows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/HostInfoWindows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/HostProcessWindows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/HostThreadWindows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/LockFileWindows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/PipeWindows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/PosixApi.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/ProcessLauncherWindows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/editlinewin.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Host/windows/windows.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Initialization/SystemInitializer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Initialization/SystemInitializerCommon.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Initialization/SystemLifetimeManager.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/Args.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandAlias.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandCompletions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandHistory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandInterpreter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandObject.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandObjectMultiword.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandObjectRegexCommand.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandOptionValidators.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/CommandReturnObject.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupArchitecture.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupBoolean.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupFile.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupFormat.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupOutputFile.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupPlatform.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupString.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupUInt64.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupUUID.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupVariable.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionGroupWatchpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValue.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueArch.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueArgs.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueArray.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueBoolean.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueChar.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueDictionary.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueEnumeration.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueFileSpec.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueFileSpecList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueFormat.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueFormatEntity.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueLanguage.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValuePathMappings.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueProperties.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueRegex.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueSInt64.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueString.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueUInt64.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValueUUID.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/OptionValues.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/Options.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/Property.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Interpreter/ScriptInterpreter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ArmUnwindInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/Block.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ClangASTContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ClangASTImporter.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ClangExternalASTSourceCommon.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ClangUtil.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/CompactUnwindInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/CompileUnit.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/CompilerDecl.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/CompilerDeclContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/CompilerType.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/DWARFCallFrameInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/DebugMacros.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/DeclVendor.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/Declaration.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/FuncUnwinders.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/Function.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/GoASTContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/JavaASTContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/LineEntry.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/LineTable.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/OCamlASTContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ObjectContainer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/ObjectFile.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/Symbol.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/SymbolContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/SymbolContextScope.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/SymbolFile.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/SymbolVendor.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/Symtab.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/TaggedASTType.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/Type.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/TypeList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/TypeMap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/TypeSystem.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/UnwindPlan.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/UnwindTable.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/Variable.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/VariableList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Symbol/VerifyDecl.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ABI.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/CPPLanguageRuntime.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/DynamicLoader.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ExecutionContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ExecutionContextScope.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/FileAction.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/InstrumentationRuntime.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/InstrumentationRuntimeStopInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/JITLoader.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/JITLoaderList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Language.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/LanguageRuntime.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Memory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/MemoryHistory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/MemoryRegionInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ModuleCache.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ObjCLanguageRuntime.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/OperatingSystem.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/PathMappingList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Platform.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Process.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ProcessInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ProcessLaunchInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ProcessStructReader.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Queue.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/QueueItem.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/QueueList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/RegisterCheckpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/RegisterContext.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/RegisterNumber.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/SectionLoadHistory.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/SectionLoadList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/StackFrame.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/StackFrameList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/StackID.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/StopInfo.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/StructuredDataPlugin.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/SystemRuntime.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Target.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/TargetList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Thread.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadCollection.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlan.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanBase.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanCallFunction.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanCallOnFunctionExit.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanCallUserExpression.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanPython.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanRunToAddress.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanShouldStopHere.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepInRange.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepInstruction.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepOut.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepOverBreakpoint.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepOverRange.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepRange.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepThrough.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanStepUntil.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadPlanTracer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/ThreadSpec.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/UnixSignals.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/Unwind.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Target/UnwindAssembly.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/AnsiTerminal.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/ArchSpec.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Baton.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/CleanUp.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Connection.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/ConstString.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/DataBuffer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/DataBufferHeap.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/DataBufferLLVM.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/DataEncoder.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/DataExtractor.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Either.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Endian.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/FastDemangle.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/FileSpec.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Flags.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/History.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/IOObject.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Iterable.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/JSON.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/LLDBAssert.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Log.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Logging.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/NameMatches.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Range.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/RegularExpression.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/SafeMachO.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/SelectHelper.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/SharedCluster.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/SharingPtr.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Status.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Stream.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StreamCallback.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StreamGDBRemote.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StreamString.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StreamTee.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StringExtractor.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StringLexer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StringList.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/StructuredData.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/TildeExpressionResolver.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Timeout.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/Timer.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/TraceOptions.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/UUID.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/UriParser.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/UserID.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/VASPrintf.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/Utility/VMRange.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-defines.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-enumerations.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-forward.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-private-defines.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-private-enumerations.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-private-forward.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-private-interfaces.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-private-types.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-private.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-public.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-types.h
-%%LLDB%%llvm%%LLVM_LIB_VER%%/include/lldb/lldb-versioning.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Analysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/BitReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/BitWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Core.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/DebugInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Disassembler.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/ErrorHandling.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/ExecutionEngine.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/IRReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Initialization.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/LinkTimeOptimizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Linker.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Object.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/OrcBindings.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Support.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Target.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/TargetMachine.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Transforms/IPO.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Transforms/PassManagerBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Transforms/Scalar.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Transforms/Vectorize.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/Types.h
-llvm%%LLVM_LIB_VER%%/include/llvm-c/lto.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/APFloat.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/APInt.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/APSInt.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/AllocatorList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ArrayRef.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/BitVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/BitmaskEnum.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/BreadthFirstIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/CachedHashString.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/DAGDeltaAlgorithm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/DeltaAlgorithm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/DenseMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/DenseMapInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/DenseSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/DepthFirstIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/EpochTracker.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/EquivalenceClasses.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/FoldingSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/GraphTraits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/Hashing.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ImmutableList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ImmutableMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ImmutableSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/IndexedMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/IntEqClasses.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/IntervalMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/IntrusiveRefCntPtr.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/MapVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/None.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/Optional.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PackedVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PointerEmbeddedInt.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PointerIntPair.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PointerSumType.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PointerUnion.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PostOrderIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PriorityQueue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/PriorityWorklist.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SCCIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/STLExtras.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ScopeExit.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ScopedHashTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/Sequence.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SetOperations.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SetVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SmallBitVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SmallPtrSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SmallSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SmallString.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SmallVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SparseBitVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SparseMultiSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/SparseSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/Statistic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/StringExtras.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/StringMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/StringRef.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/StringSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/StringSwitch.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/TinyPtrVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/Triple.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/Twine.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/UniqueVector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/VariadicFunction.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/edit_distance.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ilist.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ilist_base.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ilist_iterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ilist_node.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ilist_node_base.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/ilist_node_options.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/iterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/iterator_range.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ADT/simple_ilist.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/AliasAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/AliasAnalysisEvaluator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/AliasSetTracker.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/AssumptionCache.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/BasicAliasAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/BlockFrequencyInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/BlockFrequencyInfoImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/BranchProbabilityInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CFG.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CFGPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CFLAliasAnalysisUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CFLAndersAliasAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CFLSteensAliasAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CGSCCPassManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CallGraph.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CallGraphSCCPass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CallPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CaptureTracking.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CmpInstAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/CodeMetrics.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ConstantFolding.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/DOTGraphTraitsPass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/DemandedBits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/DependenceAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/DivergenceAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/DomPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/DominanceFrontier.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/DominanceFrontierImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/EHPersonalities.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/GlobalsModRef.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/IVUsers.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/IndirectCallSiteVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/InlineCost.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/InstructionSimplify.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/Interval.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/IntervalIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/IntervalPartition.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/IteratedDominanceFrontier.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LazyBlockFrequencyInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LazyBranchProbabilityInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LazyCallGraph.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LazyValueInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/Lint.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/Loads.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LoopAccessAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LoopAnalysisManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LoopInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LoopInfoImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LoopIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LoopPass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/LoopUnrollAnalyzer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/MemoryBuiltins.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/MemoryDependenceAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/MemoryLocation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/MemorySSA.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/MemorySSAUpdater.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ModuleSummaryAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ObjCARCAliasAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ObjCARCAnalysisUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ObjCARCInstKind.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ObjectUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/OptimizationRemarkEmitter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/OrderedBasicBlock.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/PHITransAddr.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/Passes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/PostDominators.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ProfileSummaryInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/PtrUseVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/RegionInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/RegionInfoImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/RegionIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/RegionPass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/RegionPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ScalarEvolution.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ScalarEvolutionExpander.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ScalarEvolutionExpressions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ScalarEvolutionNormalization.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ScopedNoAliasAA.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/SparsePropagation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/TargetFolder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/TargetLibraryInfo.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/TargetLibraryInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/TargetTransformInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/TargetTransformInfoImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/Trace.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/TypeBasedAliasAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/TypeMetadataUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ValueLattice.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ValueLatticeUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/ValueTracking.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Analysis/VectorUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/AsmParser/Parser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/AsmParser/SlotMapping.h
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/COFF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/Dwarf.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/Dwarf.h
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/ARC.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/ARM.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/AVR.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/BPF.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/Hexagon.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/Lanai.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/Mips.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/PowerPC.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/PowerPC64.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/RISCV.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/Sparc.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/SystemZ.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/WebAssembly.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/i386.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/ELFRelocs/x86_64.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/MachO.def
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/MachO.h
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/Magic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/Wasm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/BinaryFormat/WasmRelocs.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Bitcode/BitCodes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Bitcode/BitcodeReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Bitcode/BitcodeWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Bitcode/BitcodeWriterPass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Bitcode/BitstreamReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Bitcode/BitstreamWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Bitcode/LLVMBitCodes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/Analysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/AsmPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/AtomicExpandUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/BasicTTIImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/CalcSpillWeights.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/CallingConvLower.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/CommandFlags.def
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/CostTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/DAGCombine.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/DFAPacketizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/DIE.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/DIEValue.def
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/DwarfStringPoolEntry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/EdgeBundles.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ExecutionDepsFix.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ExpandReductions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/FastISel.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/FaultMaps.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/FunctionLoweringInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GCMetadata.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GCMetadataPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GCStrategy.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GCs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/CallLowering.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/IRTranslator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/InstructionSelect.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/Legalizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/Localizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/RegisterBank.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/Types.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/GlobalISel/Utils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ISDOpcodes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/IntrinsicLowering.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LatencyPriorityQueue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LexicalScopes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LinkAllAsmWriterComponents.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LinkAllCodegenComponents.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveInterval.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveIntervalUnion.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveIntervals.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LivePhysRegs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveRangeEdit.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveRegMatrix.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveRegUnits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveStacks.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LiveVariables.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/LowLevelType.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MIRParser/MIRParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MIRPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MIRYamlMapping.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachORelocation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineBasicBlock.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineCombinerPattern.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineConstantPool.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineDominanceFrontier.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineDominators.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineFrameInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineFunction.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineFunctionPass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineInstr.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineInstrBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineInstrBundle.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineInstrBundleIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineJumpTableInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineLoopInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineMemOperand.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineModuleInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineModuleInfoImpls.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineOperand.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachinePassRegistry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachinePostDominators.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineRegionInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineRegisterInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineSSAUpdater.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineScheduler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineTraceMetrics.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MachineValueType.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/MacroFusion.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PBQP/CostAllocator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PBQP/Graph.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PBQP/Math.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PBQP/ReductionRules.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PBQP/Solution.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PBQPRAConstraint.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ParallelCG.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/Passes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PreISelIntrinsicLowering.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/PseudoSourceValue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RegAllocPBQP.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RegAllocRegistry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RegisterClassInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RegisterPressure.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RegisterScavenging.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RegisterUsageInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ResourcePriorityQueue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RuntimeLibcalls.def
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/RuntimeLibcalls.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SDNodeProperties.td
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ScheduleDAG.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ScheduleDAGInstrs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ScheduleDAGMutation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ScheduleDFS.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ScheduleHazardRecognizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SchedulerRegistry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SelectionDAG.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SelectionDAGISel.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SelectionDAGNodes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SelectionDAGTargetInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/SlotIndexes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/StackMaps.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/StackProtector.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TailDuplicator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetCallingConv.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetFrameLowering.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetInstrInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetLowering.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetLoweringObjectFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetOpcodes.def
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetOpcodes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetPassConfig.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetRegisterInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetSchedule.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/TargetSubtargetInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/UnreachableBlockElim.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ValueTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/ValueTypes.td
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/VirtRegMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/CodeGen/WinEHFuncInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Config/AsmParsers.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Config/AsmPrinters.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Config/Disassemblers.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Config/Targets.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Config/abi-breaking.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Config/llvm-config.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CVDebugRecord.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CVRecord.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CodeView.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CodeViewError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/CodeViewTypes.def
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/EnumTables.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/Formatters.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/FunctionId.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/GUID.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/Line.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/RecordName.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/RecordSerialization.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolDumper.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolRecord.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolSerializer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeCollection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeDeserializer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeHashing.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeIndex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeRecord.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeSymbolEmitter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeTableCollection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DIContext.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFAttribute.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFContext.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFDie.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFExpression.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFObject.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFSection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFUnit.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/MSF/IMSFFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/MSF/MSFBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/MSF/MSFCommon.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/MSF/MSFError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/MSF/MappedBlockStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIAError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIASession.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIASupport.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/DIA/DIATable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/GenericError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/IPDBDataStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/IPDBLineNumber.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/IPDBSession.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/IPDBTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/DbiStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/EnumTables.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/Formatters.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/Hash.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/HashTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/InfoStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeBuiltinSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/NativeSession.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/PDBFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/PublicsStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/RawConstants.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/RawError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/RawTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/SymbolStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/TpiHashing.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/TpiStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDB.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBContext.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBExtras.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymDumper.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolData.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/PDBTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/PDB/UDTLayout.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/Symbolize/DIPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h
-llvm%%LLVM_LIB_VER%%/include/llvm/DebugInfo/Symbolize/Symbolize.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Demangle/Demangle.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/ExecutionEngine.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/GenericValue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Interpreter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/JITEventListener.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/JITSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/MCJIT.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/OProfileWrapper.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/ObjectCache.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/CompileUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/LambdaResolver.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/NullResolver.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/OrcError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/RPCSerialization.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/RPCUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/RawByteChannel.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/OrcMCJITReplacement.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/RuntimeDyld.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ExecutionEngine/SectionMemoryManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/FuzzMutate/FuzzerCLI.h
-llvm%%LLVM_LIB_VER%%/include/llvm/FuzzMutate/IRMutator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/FuzzMutate/OpDescriptor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/FuzzMutate/Operations.h
-llvm%%LLVM_LIB_VER%%/include/llvm/FuzzMutate/Random.h
-llvm%%LLVM_LIB_VER%%/include/llvm/FuzzMutate/RandomIRBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Argument.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/AssemblyAnnotationWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Attributes.gen
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Attributes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Attributes.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/AutoUpgrade.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/BasicBlock.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/CFG.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/CallSite.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/CallingConv.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Comdat.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Constant.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ConstantFolder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ConstantRange.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Constants.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DIBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DataLayout.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DebugInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DebugInfoFlags.def
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DebugInfoMetadata.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DebugLoc.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DerivedTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DerivedUser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DiagnosticHandler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DiagnosticInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/DiagnosticPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Dominators.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Function.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GVMaterializer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GetElementPtrTypeIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GlobalAlias.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GlobalIFunc.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GlobalIndirectSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GlobalObject.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GlobalValue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/GlobalVariable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IRBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IRPrintingPasses.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/InlineAsm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/InstIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/InstVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/InstrTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Instruction.def
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Instruction.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Instructions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicInst.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Intrinsics.gen
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Intrinsics.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Intrinsics.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsAArch64.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsAMDGPU.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsARM.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsBPF.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsHexagon.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsMips.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsNVVM.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsPowerPC.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsSystemZ.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsWebAssembly.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsX86.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/IntrinsicsXCore.td
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/LLVMContext.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/LegacyPassManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/LegacyPassManagers.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/LegacyPassNameParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/MDBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Mangler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Metadata.def
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Metadata.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Module.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ModuleSlotTracker.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ModuleSummaryIndex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ModuleSummaryIndexYAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/NoFolder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/OperandTraits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Operator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/OptBisect.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/PassManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/PassManagerInternal.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/PatternMatch.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/PredIteratorCache.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ProfileSummary.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/SafepointIRVerifier.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Statepoint.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/SymbolTableListTraits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/TrackingMDRef.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Type.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/TypeBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/TypeFinder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Use.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/UseListOrder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/User.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Value.def
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Value.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ValueHandle.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ValueMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/ValueSymbolTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IR/Verifier.h
-llvm%%LLVM_LIB_VER%%/include/llvm/IRReader/IRReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/InitializePasses.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/Caching.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/Config.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/LTO.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/LTOBackend.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/legacy/LTOCodeGenerator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/legacy/LTOModule.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LTO/legacy/UpdateCompilerUsed.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LineEditor/LineEditor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LinkAllIR.h
-llvm%%LLVM_LIB_VER%%/include/llvm/LinkAllPasses.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Linker/IRMover.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Linker/Linker.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/ConstantPools.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/LaneBitmask.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmBackend.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmInfoCOFF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmInfoDarwin.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmInfoELF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmInfoWasm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmLayout.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAsmMacro.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCAssembler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCCodeEmitter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCCodePadder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCCodeView.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCContext.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCDirectives.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCDisassembler/MCDisassembler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCDisassembler/MCSymbolizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCDwarf.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCELFObjectWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCELFStreamer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCExpr.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCFixedLenDisassembler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCFixup.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCFixupKindInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCFragment.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCInst.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCInstBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCInstPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCInstrAnalysis.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCInstrDesc.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCInstrInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCInstrItineraries.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCLabel.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCLinkerOptimizationHint.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCMachObjectWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCObjectFileInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCObjectStreamer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCObjectWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/AsmCond.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/AsmLexer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/MCAsmLexer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/MCAsmParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/MCAsmParserExtension.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/MCAsmParserUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/MCParsedAsmOperand.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCParser/MCTargetAsmParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCRegisterInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSchedule.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSection.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSectionCOFF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSectionELF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSectionMachO.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSectionWasm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCStreamer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSubtargetInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSymbol.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSymbolCOFF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSymbolELF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSymbolMachO.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCSymbolWasm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCTargetOptions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCTargetOptionsCommandFlags.def
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCValue.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCWasmObjectWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCWasmStreamer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCWin64EH.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCWinCOFFObjectWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCWinCOFFStreamer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MCWinEH.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/MachineLocation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/SectionKind.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/StringTableBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/MC/SubtargetFeature.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/Archive.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/ArchiveWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/Binary.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/COFF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/COFFImportFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/COFFModuleDefinition.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/Decompressor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/ELF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/ELFObjectFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/ELFTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/Error.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/IRObjectFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/IRSymtab.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/MachO.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/MachOUniversal.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/ModuleSymbolTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/ObjectFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/RelocVisitor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/StackMapParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/SymbolSize.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/SymbolicFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/Wasm.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Object/WindowsResource.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/COFFYAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/DWARFEmitter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/DWARFYAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/ELFYAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/MachOYAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/ObjectYAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/WasmYAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ObjectYAML/YAML.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Option/Arg.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Option/ArgList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Option/OptParser.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Option/OptSpecifier.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Option/OptTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Option/Option.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Pass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/PassAnalysisSupport.h
-llvm%%LLVM_LIB_VER%%/include/llvm/PassInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/PassRegistry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/PassSupport.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Passes/PassBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/Coverage/CoverageMapping.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/GCOV.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/InstrProf.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/InstrProfData.inc
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/InstrProfReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/InstrProfWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/ProfileCommon.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/SampleProf.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/SampleProfReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ProfileData/SampleProfWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/AArch64TargetParser.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/AMDGPUKernelDescriptor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/AMDGPUMetadata.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ARMAttributeParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ARMBuildAttributes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ARMEHABI.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ARMTargetParser.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ARMWinEH.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/AlignOf.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Allocator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ArrayRecycler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Atomic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/AtomicOrdering.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryByteStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryItemStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryStreamArray.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryStreamError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryStreamReader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryStreamRef.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BinaryStreamWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BlockFrequency.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/BranchProbability.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/CBindingWrapping.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/COM.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/CachePruning.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Capacity.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Casting.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Chrono.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/CodeGen.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/CodeGenCWrappers.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/CodeGenCoverage.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/CommandLine.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Compiler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Compression.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ConvertUTF.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/CrashRecoveryContext.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/DOTGraphTraits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/DataExtractor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/DataTypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Debug.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/DebugCounter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/DynamicLibrary.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Endian.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/EndianStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Errc.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Errno.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Error.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ErrorHandling.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ErrorOr.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FileOutputBuffer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FileSystem.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FileUtilities.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Format.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FormatAdapters.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FormatCommon.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FormatProviders.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FormatVariadic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FormatVariadicDetails.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/FormattedStream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/GenericDomTree.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/GenericDomTreeConstruction.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/GlobPattern.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/GraphWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Host.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/JamCRC.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/KnownBits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/LEB128.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/LICENSE.TXT
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/LineIterator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Locale.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/LockFileManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/LowLevelTypeImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/MD5.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ManagedStatic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/MathExtras.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Memory.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/MemoryBuffer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/MipsABIFlags.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Mutex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/MutexGuard.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/NativeFormatting.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/OnDiskHashTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Options.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Parallel.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Path.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/PluginLoader.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/PointerLikeTypeTraits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/PrettyStackTrace.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Printable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Process.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Program.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/RWMutex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/RandomNumberGenerator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Recycler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/RecyclingAllocator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Regex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Registry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ReverseIteration.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/SHA1.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/SMLoc.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/SaveAndRestore.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ScaledNumber.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ScopedPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Signals.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Solaris/sys/regset.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/SourceMgr.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/SpecialCaseList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/StringPool.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/StringSaver.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/SwapByteOrder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/SystemUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/TarWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/TargetParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/TargetRegistry.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/TargetSelect.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ThreadLocal.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ThreadPool.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Threading.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Timer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/ToolOutputFile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/TrailingObjects.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/TrigramIndex.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/TypeName.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Unicode.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/UnicodeCharRanges.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/UniqueLock.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/VCSRevision.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Valgrind.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Watchdog.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/Win64EH.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/WindowsError.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/X86TargetParser.def
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/YAMLParser.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/YAMLTraits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/circular_raw_ostream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/raw_os_ostream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/raw_ostream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/raw_sha1_ostream.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/thread.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/type_traits.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Support/xxhash.h
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/Error.h
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/Main.h
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/Record.h
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/SearchableTable.td
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/SetTheory.h
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/StringMatcher.h
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/StringToOffsetTable.h
-llvm%%LLVM_LIB_VER%%/include/llvm/TableGen/TableGenBackend.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/GenericOpcodes.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/GlobalISel/RegisterBank.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/GlobalISel/Target.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/Target.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/TargetCallingConv.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/TargetIntrinsicInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/TargetItinerary.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/TargetMachine.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/TargetOptions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/TargetSchedule.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Target/TargetSelectionDAG.td
-llvm%%LLVM_LIB_VER%%/include/llvm/Testing/Support/Error.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Testing/Support/SupportHelpers.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
-llvm%%LLVM_LIB_VER%%/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Coroutines.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/GCOVProfiler.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/AlwaysInliner.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/ArgumentPromotion.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/CalledValuePropagation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/ConstantMerge.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/CrossDSOCFI.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/DeadArgumentElimination.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/ElimAvailExtern.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/FunctionAttrs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/FunctionImport.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/GlobalDCE.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/GlobalOpt.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/GlobalSplit.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/InferFunctionAttrs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/Inliner.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/Internalize.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/LowerTypeTests.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/PartialInlining.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/PassManagerBuilder.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/SCCP.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/StripDeadPrototypes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/IPO/WholeProgramDevirt.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/InstCombine/InstCombine.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/InstCombine/InstCombineWorklist.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/InstrProfiling.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Instrumentation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Instrumentation/BoundsChecking.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/ObjCARC.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/PGOInstrumentation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/SampleProfile.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/ADCE.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/BDCE.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/CallSiteSplitting.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/ConstantHoisting.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/DCE.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/DeadStoreElimination.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/DivRemPairs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/EarlyCSE.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/Float2Int.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/GVN.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/GVNExpression.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/GuardWidening.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/IVUsersPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/IndVarSimplify.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/JumpThreading.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LICM.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopDeletion.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopDistribute.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopInstSimplify.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopLoadElimination.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopPassManager.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopPredication.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopRotation.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopSink.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LoopUnrollPass.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LowerAtomic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/MemCpyOptimizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/NaryReassociate.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/NewGVN.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/Reassociate.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/SCCP.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/SROA.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/SimplifyCFG.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/Sink.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/SpeculativeExecution.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Scalar/TailRecursionElimination.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/ASanStackFrameLayout.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/AddDiscriminators.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/BasicBlockUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/BreakCriticalEdges.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/BuildLibCalls.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/BypassSlowDivision.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/CallPromotionUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/Cloning.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/CodeExtractor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/CtorUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/EntryExitInstrumenter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/EscapeEnumerator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/Evaluator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/FunctionComparator.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/FunctionImportUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/GlobalStatus.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/ImportedFunctionsInliningStatistics.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/IntegerDivision.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/LCSSA.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/Local.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/LoopSimplify.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/LoopUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/LoopVersioning.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/LowerInvoke.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/LowerMemIntrinsics.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/Mem2Reg.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/ModuleUtils.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/NameAnonGlobals.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/OrderedInstructions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/PredicateInfo.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/PromoteMemToReg.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SSAUpdater.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SanitizerStats.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SimplifyIndVar.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SimplifyInstructions.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SimplifyLibCalls.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SplitModule.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/SymbolRewriter.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/UnrollLoop.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/VNCoercion.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Utils/ValueMapper.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Vectorize.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Vectorize/LoopVectorize.h
-llvm%%LLVM_LIB_VER%%/include/llvm/Transforms/Vectorize/SLPVectorizer.h
-llvm%%LLVM_LIB_VER%%/include/llvm/WindowsManifest/WindowsManifestMerger.h
-llvm%%LLVM_LIB_VER%%/include/llvm/WindowsResource/ResourceProcessor.h
-llvm%%LLVM_LIB_VER%%/include/llvm/WindowsResource/ResourceScriptToken.h
-llvm%%LLVM_LIB_VER%%/include/llvm/WindowsResource/ResourceScriptTokenList.h
-llvm%%LLVM_LIB_VER%%/include/llvm/XRay/Graph.h
-llvm%%LLVM_LIB_VER%%/include/llvm/XRay/InstrumentationMap.h
-llvm%%LLVM_LIB_VER%%/include/llvm/XRay/Trace.h
-llvm%%LLVM_LIB_VER%%/include/llvm/XRay/XRayRecord.h
-llvm%%LLVM_LIB_VER%%/include/llvm/XRay/YAMLXRayRecord.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/allocator_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/asan_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/common_interface_defs.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/coverage_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/dfsan_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/esan_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/hwasan_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/linux_syscall_hooks.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/lsan_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/msan_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/scudo_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/tsan_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/sanitizer/tsan_interface_atomic.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/xray/xray_interface.h
-%%COMPILER_RT%%llvm%%LLVM_LIB_VER%%/include/xray/xray_log_interface.h
-llvm%%LLVM_LIB_VER%%/lib/BugpointPasses.so
-llvm%%LLVM_LIB_VER%%/lib/LLVMHello.so
-%%GOLD%%llvm%%LLVM_LIB_VER%%/lib/LLVMgold.so
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__clang_cuda_builtin_vars.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__clang_cuda_cmath.h
-%%CLANG%%%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__clang_cuda_complex_builtins.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__clang_cuda_intrinsics.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__clang_cuda_math_forward_declares.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__clang_cuda_runtime_wrapper.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__stddef_max_align_t.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__wmmintrin_aes.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/__wmmintrin_pclmul.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/adxintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/altivec.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/ammintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/arm64intr.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/arm_acle.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/arm_neon.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/armintr.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx2intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512bitalgintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512bwintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512cdintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512dqintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512erintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512fintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512ifmaintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512ifmavlintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512pfintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vbmi2intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vbmiintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vbmivlintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vlbitalgintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vlbwintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vlcdintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vldqintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vlintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vlvbmi2intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vlvnniintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vnniintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vpopcntdqintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avx512vpopcntdqvlintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/avxintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/bmi2intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/bmiintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/cetintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/clflushoptintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/clwbintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/clzerointrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/cpuid.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/cuda_wrappers/algorithm
-%%CLANG%%%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/cuda_wrappers/complex
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/cuda_wrappers/new
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/emmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/f16cintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/float.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/fma4intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/fmaintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/fxsrintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/gfniintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/htmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/htmxlintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/ia32intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/immintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/inttypes.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/iso646.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/lwpintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/lzcntintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/mm3dnow.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/mm_malloc.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/mmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/module.modulemap
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/msa.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/mwaitxintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/nmmintrin.h
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/omp.h
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/ompt.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/opencl-c.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/pkuintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/pmmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/popcntintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/prfchwintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/rdseedintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/rtmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/s390intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/shaintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/smmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/tbmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/tgmath.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/tmmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/unwind.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/vadefs.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/vaesintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/vecintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/vpclmulqdqintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/wmmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/x86intrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/xmmintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/xopintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/xsavecintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/xsaveintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/xsaveoptintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/xsavesintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/clang/%%LLVM_RELEASE%%/include/xtestintrin.h
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/cmake/clang/ClangConfig.cmake
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/cmake/clang/ClangTargets-%%CMAKE_BUILD_TYPE%%.cmake
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/cmake/clang/ClangTargets.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/AddLLVM.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/AddLLVMDefinitions.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/AddOCaml.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/AddSphinxTarget.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/CheckAtomic.cmake
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/CheckCompilerVersion.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/CheckLinkerFlag.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/ChooseMSVCCRT.cmake
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/CrossCompile.cmake
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/DetermineGCCCompatible.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/FindOCaml.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/FindSphinx.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/GenerateVersionFromCVS.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/GetSVN.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/HandleLLVMOptions.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/HandleLLVMStdlib.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVM-Config.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVMConfig.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVMConfigVersion.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVMExports-%%CMAKE_BUILD_TYPE%%.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVMExports.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVMExternalProjectUtils.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVMInstallSymlink.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/LLVMProcessSources.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/TableGen.cmake
-llvm%%LLVM_LIB_VER%%/lib/cmake/llvm/VersionFromVCS.cmake
-llvm%%LLVM_LIB_VER%%/lib/libLLVM-%%LLVM_MAJOR%%.so
-llvm%%LLVM_LIB_VER%%/lib/libLLVM-%%LLVM_RELEASE%%.so
-llvm%%LLVM_LIB_VER%%/lib/libLLVM.so
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAArch64AsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAArch64AsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAArch64CodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAArch64Desc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAArch64Disassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAArch64Info.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAArch64Utils.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAMDGPUAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAMDGPUAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAMDGPUCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAMDGPUDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAMDGPUDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAMDGPUInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAMDGPUUtils.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMARMAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMARMAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMARMCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMARMDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMARMDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMARMInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMARMUtils.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAnalysis.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBPFAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBPFAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBPFCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBPFDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBPFDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBPFInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBinaryFormat.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBitReader.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMBitWriter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMCore.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMCoroutines.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMCoverage.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMDebugInfoCodeView.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMDebugInfoDWARF.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMDebugInfoMSF.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMDebugInfoPDB.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMDemangle.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMDlltoolDriver.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMExecutionEngine.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMFuzzMutate.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMGlobalISel.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMHexagonAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMHexagonCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMHexagonDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMHexagonDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMHexagonInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMIRReader.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMInstCombine.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMInstrumentation.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMInterpreter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLTO.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLanaiAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLanaiAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLanaiCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLanaiDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLanaiDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLanaiInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLibDriver.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLineEditor.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMLinker.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMC.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMCDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMCJIT.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMCParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMIRParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMSP430AsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMSP430CodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMSP430Desc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMSP430Info.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMipsAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMipsAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMipsCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMipsDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMipsDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMMipsInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMNVPTXAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMNVPTXCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMNVPTXDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMNVPTXInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMObjCARCOpts.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMObject.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMObjectYAML.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMOption.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMOrcJIT.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMPasses.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMPowerPCAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMPowerPCAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMPowerPCCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMPowerPCDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMPowerPCDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMPowerPCInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMProfileData.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMRuntimeDyld.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMScalarOpts.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSelectionDAG.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSparcAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSparcAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSparcCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSparcDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSparcDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSparcInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSupport.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSymbolize.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSystemZAsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSystemZAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSystemZCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSystemZDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSystemZDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMSystemZInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMTableGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMTarget.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMTransformUtils.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMVectorize.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMWindowsManifest.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMX86AsmParser.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMX86AsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMX86CodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMX86Desc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMX86Disassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMX86Info.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMX86Utils.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMXCoreAsmPrinter.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMXCoreCodeGen.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMXCoreDesc.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMXCoreDisassembler.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMXCoreInfo.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMXRay.a
-llvm%%LLVM_LIB_VER%%/lib/libLLVMipo.a
-llvm%%LLVM_LIB_VER%%/lib/libLTO.so
-llvm%%LLVM_LIB_VER%%/lib/libLTO.so.%%LLVM_RELEASE%%
-llvm%%LLVM_LIB_VER%%/lib/libLTO.so.6
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclang.so
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclang.so.%%LLVM_MAJOR%%
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclang.so.6
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangARCMigrate.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangAST.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangASTMatchers.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangAnalysis.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangApplyReplacements.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangBasic.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangChangeNamespace.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangCodeGen.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangCrossTU.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangDaemon.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangDriver.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangDynamicASTMatchers.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangEdit.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangFormat.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangFrontend.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangFrontendTool.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangHandleCXX.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangIncludeFixer.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangIncludeFixerPlugin.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangIndex.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangLex.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangMove.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangParse.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangQuery.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangReorderFields.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangRewrite.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangRewriteFrontend.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangSema.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangSerialization.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangStaticAnalyzerCheckers.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangStaticAnalyzerCore.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangStaticAnalyzerFrontend.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidy.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyAndroidModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyBoostModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyBugproneModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyCERTModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyCppCoreGuidelinesModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyFuchsiaModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyGoogleModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyHICPPModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyLLVMModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyMPIModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyMiscModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyModernizeModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyObjCModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyPerformanceModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyPlugin.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyReadabilityModule.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libclangTidyUtils.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangTooling.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangToolingASTDiff.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangToolingCore.a
-%%CLANG%%llvm%%LLVM_LIB_VER%%/lib/libclangToolingRefactor.a
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/lib/libfindAllSymbols.a
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/libgomp.so
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/libiomp5.so
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldCOFF.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldCommon.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldCore.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldDriver.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldELF.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldMachO.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldMinGW.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldReaderWriter.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldWasm.a
-%%LLD%%llvm%%LLVM_LIB_VER%%/lib/liblldYAML.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldb.so
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldb.so.%%LLVM_RELEASE%%
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldb.so.6
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbBase.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbBreakpoint.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbCommands.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbCore.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbDataFormatters.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbExpression.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbHost.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbInitialization.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbInterpreter.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABIMacOSX_arm.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABIMacOSX_arm64.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABIMacOSX_i386.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_arm.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_arm64.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_hexagon.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_i386.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_mips.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_mips64.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_ppc.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_ppc64.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_s390x.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginABISysV_x86_64.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginAppleObjCRuntime.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginArchitectureArm.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginCPlusPlusLanguage.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginCXXItaniumABI.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginDisassemblerLLVM.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginDynamicLoaderHexagonDYLD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginDynamicLoaderMacOSXDYLD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginDynamicLoaderPosixDYLD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginDynamicLoaderStatic.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginDynamicLoaderWindowsDYLD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginExpressionParserClang.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginExpressionParserGo.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginGoLanguage.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstructionARM.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstructionARM64.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstructionMIPS.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstructionMIPS64.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstrumentationRuntimeASan.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstrumentationRuntimeMainThreadChecker.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstrumentationRuntimeTSan.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginInstrumentationRuntimeUBSan.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginJITLoaderGDB.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginJavaLanguage.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginLanguageRuntimeGo.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginLanguageRuntimeJava.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginMemoryHistoryASan.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginOCamlLanguage.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginOSGo.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginOSPython.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjCLanguage.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjCPlusPlusLanguage.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjectContainerBSDArchive.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjectContainerMachOArchive.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjectFileELF.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjectFileJIT.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjectFileMachO.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginObjectFilePECOFF.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformAndroid.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformFreeBSD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformGDB.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformKalimba.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformLinux.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformMacOSX.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformNetBSD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformOpenBSD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformPOSIX.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginPlatformWindows.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginProcessElfCore.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginProcessFreeBSD.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginProcessGDBRemote.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginProcessMinidump.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginProcessPOSIX.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginProcessUtility.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginRenderScriptRuntime.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginScriptInterpreterNone.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginScriptInterpreterPython.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginStructuredDataDarwinLog.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginSymbolFileDWARF.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginSymbolFilePDB.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginSymbolFileSymtab.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginSymbolVendorELF.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginSystemRuntimeMacOSX.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginUnwindAssemblyInstEmulation.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbPluginUnwindAssemblyX86.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbSymbol.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbTarget.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbUtility.a
-%%LLDB%%llvm%%LLVM_LIB_VER%%/lib/liblldbUtilityHelpers.a
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/libomp.so
-%%OPENMP%%llvm%%LLVM_LIB_VER%%/lib/libomptarget.so
-%%CLANG%%llvm%%LLVM_LIB_VER%%/libexec/c++-analyzer
-%%CLANG%%llvm%%LLVM_LIB_VER%%/libexec/ccc-analyzer
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/clang/bash-autocomplete.sh
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/clang/clang-format-bbedit.applescript
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/clang/clang-format-diff.py
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/clang/clang-format-sublime.py
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/clang/clang-format.el
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/clang/clang-format.py
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/share/clang/clang-include-fixer.el
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/share/clang/clang-include-fixer.py
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/share/clang/clang-rename.el
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/share/clang/clang-rename.py
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/share/clang/clang-tidy-diff.py
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/share/clang/run-clang-tidy.py
-%%EXTRAS%%llvm%%LLVM_LIB_VER%%/share/clang/run-find-all-symbols.py
-llvm%%LLVM_LIB_VER%%/share/opt-viewer/opt-diff.py
-llvm%%LLVM_LIB_VER%%/share/opt-viewer/opt-stats.py
-llvm%%LLVM_LIB_VER%%/share/opt-viewer/opt-viewer.py
-llvm%%LLVM_LIB_VER%%/share/opt-viewer/optpmap.py
-llvm%%LLVM_LIB_VER%%/share/opt-viewer/optrecord.py
-llvm%%LLVM_LIB_VER%%/share/opt-viewer/style.css
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-build/scanview.css
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-build/sorttable.js
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-view/FileRadar.scpt
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-view/GetRadarVersion.scpt
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-view/Reporter.py
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-view/ScanView.py
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-view/bugcatcher.ico
-%%CLANG%%llvm%%LLVM_LIB_VER%%/share/scan-view/startfile.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/BooleanExpression.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/LitConfig.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/LitTestCase.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/ProgressBar.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/ShCommands.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/ShUtil.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/Test.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/TestRunner.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/TestingConfig.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/__init__.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/discovery.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/formats/__init__.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/formats/base.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/formats/googletest.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/formats/shtest.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/main.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/run.py
-%%LIT%%%%PYTHON_SITELIBDIR%%/lit%%LLVM_SUFFIX%%/util.py
-@postexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi
-@postunexec if type ccache-update-links >/dev/null 2>&1; then ccache-update-links -v; fi