Merge llvm-project release/15.x llvmorg-15.0.2-10-gf3c5289e7846

This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-15.0.2-10-gf3c5289e7846.

PR:		265425
MFC after:	2 weeks
This commit is contained in:
Dimitry Andric 2022-10-16 21:03:40 +02:00
commit 6246ae0b85
47 changed files with 777 additions and 561 deletions

View File

@ -52,7 +52,7 @@
# xargs -n1 | sort | uniq -d;
# done
# 20230208: new clang import which bumps version from 14.0.5 to 15.0.0
# 20230208: new clang import which bumps version from 14.0.5 to 15.0.3
OLD_FILES+=usr/lib/clang/14.0.5/include/cuda_wrappers/algorithm
OLD_FILES+=usr/lib/clang/14.0.5/include/cuda_wrappers/complex
OLD_FILES+=usr/lib/clang/14.0.5/include/cuda_wrappers/new
@ -363,7 +363,7 @@ OLD_FILES+=usr/lib/clang/14.0.5/share/msan_ignorelist.txt
OLD_DIRS+=usr/lib/clang/14.0.5/share
OLD_DIRS+=usr/lib/clang/14.0.5
# 20230208: new libc++ import which bumps version from 14.0.5 to 15.0.0
# 20230208: new libc++ import which bumps version from 14.0.5 to 15.0.3
OLD_FILES+=usr/include/c++/v1/__functional_base
OLD_FILES+=usr/include/c++/v1/__libcpp_version
OLD_FILES+=usr/include/c++/v1/__nullptr

View File

@ -419,7 +419,7 @@ def warn_implicit_function_decl : Warning<
InGroup<ImplicitFunctionDeclare>, DefaultIgnore;
def ext_implicit_function_decl_c99 : ExtWarn<
"call to undeclared function %0; ISO C99 and later do not support implicit "
"function declarations">, InGroup<ImplicitFunctionDeclare>, DefaultError;
"function declarations">, InGroup<ImplicitFunctionDeclare>;
def note_function_suggestion : Note<"did you mean %0?">;
def err_ellipsis_first_param : Error<
@ -705,7 +705,7 @@ def ext_implicit_lib_function_decl : ExtWarn<
def ext_implicit_lib_function_decl_c99 : ExtWarn<
"call to undeclared library function '%0' with type %1; ISO C99 and later "
"do not support implicit function declarations">,
InGroup<ImplicitFunctionDeclare>, DefaultError;
InGroup<ImplicitFunctionDeclare>;
def note_include_header_or_declare : Note<
"include the header <%0> or explicitly provide a declaration for '%1'">;
def note_previous_builtin_declaration : Note<"%0 is a builtin with type %1">;
@ -4359,7 +4359,7 @@ def err_ident_list_in_fn_declaration : Error<
"a parameter list without types is only allowed in a function definition">;
def ext_param_not_declared : ExtWarn<
"parameter %0 was not declared, defaults to 'int'; ISO C99 and later do not "
"support implicit int">, InGroup<ImplicitInt>, DefaultError;
"support implicit int">, InGroup<ImplicitInt>;
def err_param_default_argument : Error<
"C does not support default arguments">;
def err_param_default_argument_redefinition : Error<
@ -10029,7 +10029,7 @@ def warn_receiver_forward_class : Warning<
def note_method_sent_forward_class : Note<"method %0 is used for the forward class">;
def ext_missing_type_specifier : ExtWarn<
"type specifier missing, defaults to 'int'; ISO C99 and later do not support "
"implicit int">, InGroup<ImplicitInt>, DefaultError;
"implicit int">, InGroup<ImplicitInt>;
def err_missing_type_specifier : Error<
"a type specifier is required for all declarations">;
def err_decimal_unsupported : Error<

View File

@ -1993,7 +1993,7 @@ void StmtPrinter::VisitUserDefinedLiteral(UserDefinedLiteral *Node) {
cast<FunctionDecl>(DRE->getDecl())->getTemplateSpecializationArgs();
assert(Args);
if (Args->size() != 1) {
if (Args->size() != 1 || Args->get(0).getKind() != TemplateArgument::Pack) {
const TemplateParameterList *TPL = nullptr;
if (!DRE->hadMultipleCandidates())
if (const auto *TD = dyn_cast<TemplateDecl>(DRE->getDecl()))

View File

@ -1509,6 +1509,21 @@ void CodeGenFunction::EmitCaseStmt(const CaseStmt &S,
llvm::ConstantInt *CaseVal =
Builder.getInt(S.getLHS()->EvaluateKnownConstInt(getContext()));
// Emit debuginfo for the case value if it is an enum value.
const ConstantExpr *CE;
if (auto ICE = dyn_cast<ImplicitCastExpr>(S.getLHS()))
CE = dyn_cast<ConstantExpr>(ICE->getSubExpr());
else
CE = dyn_cast<ConstantExpr>(S.getLHS());
if (CE) {
if (auto DE = dyn_cast<DeclRefExpr>(CE->getSubExpr()))
if (CGDebugInfo *Dbg = getDebugInfo())
if (CGM.getCodeGenOpts().hasReducedDebugInfo())
Dbg->EmitGlobalVariable(DE->getDecl(),
APValue(llvm::APSInt(CaseVal->getValue())));
}
if (SwitchLikelihood)
SwitchLikelihood->push_back(Stmt::getLikelihood(Attrs));

View File

@ -1377,19 +1377,23 @@ struct CounterCoverageMappingBuilder
// Extend into the condition before we propagate through it below - this is
// needed to handle macros that generate the "if" but not the condition.
extendRegion(S->getCond());
if (!S->isConsteval())
extendRegion(S->getCond());
Counter ParentCount = getRegion().getCounter();
Counter ThenCount = getRegionCounter(S);
// Emitting a counter for the condition makes it easier to interpret the
// counter for the body when looking at the coverage.
propagateCounts(ParentCount, S->getCond());
if (!S->isConsteval()) {
// Emitting a counter for the condition makes it easier to interpret the
// counter for the body when looking at the coverage.
propagateCounts(ParentCount, S->getCond());
// The 'then' count applies to the area immediately after the condition.
auto Gap = findGapAreaBetween(S->getRParenLoc(), getStart(S->getThen()));
if (Gap)
fillGapAreaWithCount(Gap->getBegin(), Gap->getEnd(), ThenCount);
// The 'then' count applies to the area immediately after the condition.
Optional<SourceRange> Gap =
findGapAreaBetween(S->getRParenLoc(), getStart(S->getThen()));
if (Gap)
fillGapAreaWithCount(Gap->getBegin(), Gap->getEnd(), ThenCount);
}
extendRegion(S->getThen());
Counter OutCount = propagateCounts(ThenCount, S->getThen());
@ -1398,9 +1402,9 @@ struct CounterCoverageMappingBuilder
if (const Stmt *Else = S->getElse()) {
bool ThenHasTerminateStmt = HasTerminateStmt;
HasTerminateStmt = false;
// The 'else' count applies to the area immediately after the 'then'.
Gap = findGapAreaBetween(getEnd(S->getThen()), getStart(Else));
Optional<SourceRange> Gap =
findGapAreaBetween(getEnd(S->getThen()), getStart(Else));
if (Gap)
fillGapAreaWithCount(Gap->getBegin(), Gap->getEnd(), ElseCount);
extendRegion(Else);
@ -1416,9 +1420,11 @@ struct CounterCoverageMappingBuilder
GapRegionCounter = OutCount;
}
// Create Branch Region around condition.
createBranchRegion(S->getCond(), ThenCount,
subtractCounters(ParentCount, ThenCount));
if (!S->isConsteval()) {
// Create Branch Region around condition.
createBranchRegion(S->getCond(), ThenCount,
subtractCounters(ParentCount, ThenCount));
}
}
void VisitCXXTryStmt(const CXXTryStmt *S) {

View File

@ -695,10 +695,10 @@ void InitListChecker::FillInEmptyInitForField(unsigned Init, FieldDecl *Field,
// member of reference type uninitialized, the program is
// ill-formed.
SemaRef.Diag(Loc, diag::err_init_reference_member_uninitialized)
<< Field->getType()
<< ILE->getSyntacticForm()->getSourceRange();
SemaRef.Diag(Field->getLocation(),
diag::note_uninit_reference_member);
<< Field->getType()
<< (ILE->isSyntacticForm() ? ILE : ILE->getSyntacticForm())
->getSourceRange();
SemaRef.Diag(Field->getLocation(), diag::note_uninit_reference_member);
}
hadError = true;
return;

View File

@ -165,8 +165,8 @@ struct TransferableCommand {
const unsigned OldPos = Pos;
std::unique_ptr<llvm::opt::Arg> Arg(OptTable.ParseOneArg(
ArgList, Pos,
/* Include */ ClangCLMode ? CoreOption | CLOption : 0,
/* Exclude */ ClangCLMode ? 0 : CLOption));
/* Include */ ClangCLMode ? CoreOption | CLOption | CLDXCOption : 0,
/* Exclude */ ClangCLMode ? 0 : CLOption | CLDXCOption));
if (!Arg)
continue;

View File

@ -55,45 +55,140 @@ getTokensCovering(llvm::ArrayRef<syntax::Token> Toks, SourceRange R,
return {Begin, End};
}
// Finds the smallest expansion range that contains expanded tokens First and
// Last, e.g.:
// Finds the range within FID corresponding to expanded tokens [First, Last].
// Prev precedes First and Next follows Last, these must *not* be included.
// If no range satisfies the criteria, returns an invalid range.
//
// #define ID(x) x
// ID(ID(ID(a1) a2))
// ~~ -> a1
// ~~ -> a2
// ~~~~~~~~~ -> a1 a2
SourceRange findCommonRangeForMacroArgs(const syntax::Token &First,
const syntax::Token &Last,
const SourceManager &SM) {
SourceRange Res;
auto FirstLoc = First.location(), LastLoc = Last.location();
// Keep traversing up the spelling chain as longs as tokens are part of the
// same expansion.
while (!FirstLoc.isFileID() && !LastLoc.isFileID()) {
auto ExpInfoFirst = SM.getSLocEntry(SM.getFileID(FirstLoc)).getExpansion();
auto ExpInfoLast = SM.getSLocEntry(SM.getFileID(LastLoc)).getExpansion();
// Stop if expansions have diverged.
if (ExpInfoFirst.getExpansionLocStart() !=
ExpInfoLast.getExpansionLocStart())
SourceRange spelledForExpandedSlow(SourceLocation First, SourceLocation Last,
SourceLocation Prev, SourceLocation Next,
FileID TargetFile,
const SourceManager &SM) {
// There are two main parts to this algorithm:
// - identifying which spelled range covers the expanded tokens
// - validating that this range doesn't cover any extra tokens (First/Last)
//
// We do these in order. However as we transform the expanded range into the
// spelled one, we adjust First/Last so the validation remains simple.
assert(SM.getSLocEntry(TargetFile).isFile());
// In most cases, to select First and Last we must return their expansion
// range, i.e. the whole of any macros they are included in.
//
// When First and Last are part of the *same macro arg* of a macro written
// in TargetFile, we that slice of the arg, i.e. their spelling range.
//
// Unwrap such macro calls. If the target file has A(B(C)), the
// SourceLocation stack of a token inside C shows us the expansion of A first,
// then B, then any macros inside C's body, then C itself.
// (This is the reverse of the order the PP applies the expansions in).
while (First.isMacroID() && Last.isMacroID()) {
auto DecFirst = SM.getDecomposedLoc(First);
auto DecLast = SM.getDecomposedLoc(Last);
auto &ExpFirst = SM.getSLocEntry(DecFirst.first).getExpansion();
auto &ExpLast = SM.getSLocEntry(DecLast.first).getExpansion();
if (!ExpFirst.isMacroArgExpansion() || !ExpLast.isMacroArgExpansion())
break;
// Do not continue into macro bodies.
if (!ExpInfoFirst.isMacroArgExpansion() ||
!ExpInfoLast.isMacroArgExpansion())
// Locations are in the same macro arg if they expand to the same place.
// (They may still have different FileIDs - an arg can have >1 chunks!)
if (ExpFirst.getExpansionLocStart() != ExpLast.getExpansionLocStart())
break;
FirstLoc = SM.getImmediateSpellingLoc(FirstLoc);
LastLoc = SM.getImmediateSpellingLoc(LastLoc);
// Update the result afterwards, as we want the tokens that triggered the
// expansion.
Res = {FirstLoc, LastLoc};
// Careful, given:
// #define HIDE ID(ID(a))
// ID(ID(HIDE))
// The token `a` is wrapped in 4 arg-expansions, we only want to unwrap 2.
// We distinguish them by whether the macro expands into the target file.
// Fortunately, the target file ones will always appear first.
auto &ExpMacro =
SM.getSLocEntry(SM.getFileID(ExpFirst.getExpansionLocStart()))
.getExpansion();
if (ExpMacro.getExpansionLocStart().isMacroID())
break;
// Replace each endpoint with its spelling inside the macro arg.
// (This is getImmediateSpellingLoc without repeating lookups).
First = ExpFirst.getSpellingLoc().getLocWithOffset(DecFirst.second);
Last = ExpLast.getSpellingLoc().getLocWithOffset(DecLast.second);
// Now: how do we adjust the previous/next bounds? Three cases:
// A) If they are also part of the same macro arg, we translate them too.
// This will ensure that we don't select any macros nested within the
// macro arg that cover extra tokens. Critical case:
// #define ID(X) X
// ID(prev target) // selecting 'target' succeeds
// #define LARGE ID(prev target)
// LARGE // selecting 'target' fails.
// B) They are not in the macro at all, then their expansion range is a
// sibling to it, and we can safely substitute that.
// #define PREV prev
// #define ID(X) X
// PREV ID(target) // selecting 'target' succeeds.
// #define LARGE PREV ID(target)
// LARGE // selecting 'target' fails.
// C) They are in a different arg of this macro, or the macro body.
// Now selecting the whole macro arg is fine, but the whole macro is not.
// Model this by setting using the edge of the macro call as the bound.
// #define ID2(X, Y) X Y
// ID2(prev, target) // selecting 'target' succeeds
// #define LARGE ID2(prev, target)
// LARGE // selecting 'target' fails
auto AdjustBound = [&](SourceLocation &Bound) {
if (Bound.isInvalid() || !Bound.isMacroID()) // Non-macro must be case B.
return;
auto DecBound = SM.getDecomposedLoc(Bound);
auto &ExpBound = SM.getSLocEntry(DecBound.first).getExpansion();
if (ExpBound.isMacroArgExpansion() &&
ExpBound.getExpansionLocStart() == ExpFirst.getExpansionLocStart()) {
// Case A: translate to (spelling) loc within the macro arg.
Bound = ExpBound.getSpellingLoc().getLocWithOffset(DecBound.second);
return;
}
while (Bound.isMacroID()) {
SourceRange Exp = SM.getImmediateExpansionRange(Bound).getAsRange();
if (Exp.getBegin() == ExpMacro.getExpansionLocStart()) {
// Case B: bounds become the macro call itself.
Bound = (&Bound == &Prev) ? Exp.getBegin() : Exp.getEnd();
return;
}
// Either case C, or expansion location will later find case B.
// We choose the upper bound for Prev and the lower one for Next:
// ID(prev) target ID(next)
// ^ ^
// new-prev new-next
Bound = (&Bound == &Prev) ? Exp.getEnd() : Exp.getBegin();
}
};
AdjustBound(Prev);
AdjustBound(Next);
}
// Normally mapping back to expansion location here only changes FileID, as
// we've already found some tokens expanded from the same macro argument, and
// they should map to a consecutive subset of spelled tokens. Unfortunately
// SourceManager::isBeforeInTranslationUnit discriminates sourcelocations
// based on their FileID in addition to offsets. So even though we are
// referring to same tokens, SourceManager might tell us that one is before
// the other if they've got different FileIDs.
return SM.getExpansionRange(CharSourceRange(Res, true)).getAsRange();
// In all remaining cases we need the full containing macros.
// If this overlaps Prev or Next, then no range is possible.
SourceRange Candidate =
SM.getExpansionRange(SourceRange(First, Last)).getAsRange();
auto DecFirst = SM.getDecomposedExpansionLoc(Candidate.getBegin());
auto DecLast = SM.getDecomposedLoc(Candidate.getEnd());
// Can end up in the wrong file due to bad input or token-pasting shenanigans.
if (Candidate.isInvalid() || DecFirst.first != TargetFile || DecLast.first != TargetFile)
return SourceRange();
// Check bounds, which may still be inside macros.
if (Prev.isValid()) {
auto Dec = SM.getDecomposedLoc(SM.getExpansionRange(Prev).getBegin());
if (Dec.first != DecFirst.first || Dec.second >= DecFirst.second)
return SourceRange();
}
if (Next.isValid()) {
auto Dec = SM.getDecomposedLoc(SM.getExpansionRange(Next).getEnd());
if (Dec.first != DecLast.first || Dec.second <= DecLast.second)
return SourceRange();
}
// Now we know that Candidate is a file range that covers [First, Last]
// without encroaching on {Prev, Next}. Ship it!
return Candidate;
}
} // namespace
@ -363,51 +458,50 @@ TokenBuffer::spelledForExpanded(llvm::ArrayRef<syntax::Token> Expanded) const {
// of the range, bail out in that case.
if (Expanded.empty())
return llvm::None;
const syntax::Token *First = &Expanded.front();
const syntax::Token *Last = &Expanded.back();
const syntax::Token *FirstSpelled, *LastSpelled;
const TokenBuffer::Mapping *FirstMapping, *LastMapping;
std::tie(FirstSpelled, FirstMapping) = spelledForExpandedToken(First);
std::tie(LastSpelled, LastMapping) = spelledForExpandedToken(Last);
const syntax::Token *BeginSpelled;
const Mapping *BeginMapping;
std::tie(BeginSpelled, BeginMapping) =
spelledForExpandedToken(&Expanded.front());
const syntax::Token *LastSpelled;
const Mapping *LastMapping;
std::tie(LastSpelled, LastMapping) =
spelledForExpandedToken(&Expanded.back());
FileID FID = SourceMgr->getFileID(BeginSpelled->location());
FileID FID = SourceMgr->getFileID(FirstSpelled->location());
// FIXME: Handle multi-file changes by trying to map onto a common root.
if (FID != SourceMgr->getFileID(LastSpelled->location()))
return llvm::None;
const MarkedFile &File = Files.find(FID)->second;
// If both tokens are coming from a macro argument expansion, try and map to
// smallest part of the macro argument. BeginMapping && LastMapping check is
// only for performance, they are a prerequisite for Expanded.front() and
// Expanded.back() being part of a macro arg expansion.
if (BeginMapping && LastMapping &&
SourceMgr->isMacroArgExpansion(Expanded.front().location()) &&
SourceMgr->isMacroArgExpansion(Expanded.back().location())) {
auto CommonRange = findCommonRangeForMacroArgs(Expanded.front(),
Expanded.back(), *SourceMgr);
// It might be the case that tokens are arguments of different macro calls,
// in that case we should continue with the logic below instead of returning
// an empty range.
if (CommonRange.isValid())
return getTokensCovering(File.SpelledTokens, CommonRange, *SourceMgr);
// If the range is within one macro argument, the result may be only part of a
// Mapping. We must use the general (SourceManager-based) algorithm.
if (FirstMapping && FirstMapping == LastMapping &&
SourceMgr->isMacroArgExpansion(First->location()) &&
SourceMgr->isMacroArgExpansion(Last->location())) {
// We use excluded Prev/Next token for bounds checking.
SourceLocation Prev = (First == &ExpandedTokens.front())
? SourceLocation()
: (First - 1)->location();
SourceLocation Next = (Last == &ExpandedTokens.back())
? SourceLocation()
: (Last + 1)->location();
SourceRange Range = spelledForExpandedSlow(
First->location(), Last->location(), Prev, Next, FID, *SourceMgr);
if (Range.isInvalid())
return llvm::None;
return getTokensCovering(File.SpelledTokens, Range, *SourceMgr);
}
// Otherwise, use the fast version based on Mappings.
// Do not allow changes that doesn't cover full expansion.
unsigned BeginExpanded = Expanded.begin() - ExpandedTokens.data();
unsigned EndExpanded = Expanded.end() - ExpandedTokens.data();
if (BeginMapping && BeginExpanded != BeginMapping->BeginExpanded)
unsigned FirstExpanded = Expanded.begin() - ExpandedTokens.data();
unsigned LastExpanded = Expanded.end() - ExpandedTokens.data();
if (FirstMapping && FirstExpanded != FirstMapping->BeginExpanded)
return llvm::None;
if (LastMapping && LastMapping->EndExpanded != EndExpanded)
if (LastMapping && LastMapping->EndExpanded != LastExpanded)
return llvm::None;
// All is good, return the result.
return llvm::makeArrayRef(
BeginMapping ? File.SpelledTokens.data() + BeginMapping->BeginSpelled
: BeginSpelled,
FirstMapping ? File.SpelledTokens.data() + FirstMapping->BeginSpelled
: FirstSpelled,
LastMapping ? File.SpelledTokens.data() + LastMapping->EndSpelled
: LastSpelled + 1);
}

View File

@ -22,9 +22,21 @@
# pragma GCC system_header
#endif
#if defined(__apple_build_version__)
# define _LIBCPP_COMPILER_CLANG_BASED
# define _LIBCPP_APPLE_CLANG_VER (__apple_build_version__ / 10000)
#elif defined(__clang__)
# define _LIBCPP_COMPILER_CLANG_BASED
# define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__)
#elif defined(__GNUC__)
# define _LIBCPP_COMPILER_GCC
#elif defined(_MSC_VER)
# define _LIBCPP_COMPILER_MSVC
#endif
#ifdef __cplusplus
# define _LIBCPP_VERSION 15000
# define _LIBCPP_VERSION 15003
# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
# define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)
@ -198,18 +210,6 @@
# define __has_include(...) 0
# endif
# if defined(__apple_build_version__)
# define _LIBCPP_COMPILER_CLANG_BASED
# define _LIBCPP_APPLE_CLANG_VER (__apple_build_version__ / 10000)
# elif defined(__clang__)
# define _LIBCPP_COMPILER_CLANG_BASED
# define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__)
# elif defined(__GNUC__)
# define _LIBCPP_COMPILER_GCC
# elif defined(_MSC_VER)
# define _LIBCPP_COMPILER_MSVC
# endif
# if !defined(_LIBCPP_COMPILER_CLANG_BASED) && __cplusplus < 201103L
# error "libc++ only supports C++03 with Clang-based compilers. Please enable C++11"
# endif
@ -1101,6 +1101,13 @@ _LIBCPP_BEGIN_NAMESPACE_STD _LIBCPP_END_NAMESPACE_STD
# define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION
# endif // _LIBCPP_ENABLE_CXX17_REMOVED_FEATURES
// Leave the deprecation notices in by default, but don't remove unary_function and
// binary_function entirely just yet. That way, folks will have one release to act
// on the deprecation warnings.
# ifndef _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION
# define _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION
# endif
# if defined(_LIBCPP_ENABLE_CXX20_REMOVED_FEATURES)
# define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_MEMBERS
# define _LIBCPP_ENABLE_CXX20_REMOVED_ALLOCATOR_VOID_SPECIALIZATION

View File

@ -1113,6 +1113,12 @@ _Tp kill_dependency(_Tp __y) _NOEXCEPT
# define ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE
#endif
template <class _Tp>
struct __libcpp_is_always_lock_free {
// __atomic_always_lock_free is available in all Standard modes
static const bool __value = __atomic_always_lock_free(sizeof(_Tp), 0);
};
#ifdef _LIBCPP_ATOMIC_ONLY_USE_BUILTINS
template<typename _Tp>
@ -1404,42 +1410,8 @@ _Tp __cxx_atomic_fetch_xor(__cxx_atomic_lock_impl<_Tp>* __a,
return __old;
}
#ifdef __cpp_lib_atomic_is_always_lock_free
template<typename _Tp> struct __cxx_is_always_lock_free {
enum { __value = __atomic_always_lock_free(sizeof(_Tp), 0) }; };
#else
template<typename _Tp> struct __cxx_is_always_lock_free { enum { __value = false }; };
// Implementations must match the C ATOMIC_*_LOCK_FREE macro values.
template<> struct __cxx_is_always_lock_free<bool> { enum { __value = 2 == ATOMIC_BOOL_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<char> { enum { __value = 2 == ATOMIC_CHAR_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<signed char> { enum { __value = 2 == ATOMIC_CHAR_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<unsigned char> { enum { __value = 2 == ATOMIC_CHAR_LOCK_FREE }; };
#ifndef _LIBCPP_HAS_NO_CHAR8_T
template<> struct __cxx_is_always_lock_free<char8_t> { enum { __value = 2 == ATOMIC_CHAR8_T_LOCK_FREE }; };
#endif
template<> struct __cxx_is_always_lock_free<char16_t> { enum { __value = 2 == ATOMIC_CHAR16_T_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<char32_t> { enum { __value = 2 == ATOMIC_CHAR32_T_LOCK_FREE }; };
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
template<> struct __cxx_is_always_lock_free<wchar_t> { enum { __value = 2 == ATOMIC_WCHAR_T_LOCK_FREE }; };
#endif
template<> struct __cxx_is_always_lock_free<short> { enum { __value = 2 == ATOMIC_SHORT_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<unsigned short> { enum { __value = 2 == ATOMIC_SHORT_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<int> { enum { __value = 2 == ATOMIC_INT_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<unsigned int> { enum { __value = 2 == ATOMIC_INT_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<long> { enum { __value = 2 == ATOMIC_LONG_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<unsigned long> { enum { __value = 2 == ATOMIC_LONG_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<long long> { enum { __value = 2 == ATOMIC_LLONG_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<unsigned long long> { enum { __value = 2 == ATOMIC_LLONG_LOCK_FREE }; };
template<typename _Tp> struct __cxx_is_always_lock_free<_Tp*> { enum { __value = 2 == ATOMIC_POINTER_LOCK_FREE }; };
template<> struct __cxx_is_always_lock_free<std::nullptr_t> { enum { __value = 2 == ATOMIC_POINTER_LOCK_FREE }; };
#endif //__cpp_lib_atomic_is_always_lock_free
template <typename _Tp,
typename _Base = typename conditional<__cxx_is_always_lock_free<_Tp>::__value,
typename _Base = typename conditional<__libcpp_is_always_lock_free<_Tp>::__value,
__cxx_atomic_base_impl<_Tp>,
__cxx_atomic_lock_impl<_Tp> >::type>
#else
@ -1562,7 +1534,7 @@ struct __atomic_base // false
mutable __cxx_atomic_impl<_Tp> __a_;
#if defined(__cpp_lib_atomic_is_always_lock_free)
static _LIBCPP_CONSTEXPR bool is_always_lock_free = __atomic_always_lock_free(sizeof(__a_), 0);
static _LIBCPP_CONSTEXPR bool is_always_lock_free = __libcpp_is_always_lock_free<__cxx_atomic_impl<_Tp> >::__value;
#endif
_LIBCPP_INLINE_VISIBILITY
@ -2665,7 +2637,7 @@ typedef atomic<uintmax_t> atomic_uintmax_t;
// atomic_*_lock_free : prefer the contention type most highly, then the largest lock-free type
#ifdef __cpp_lib_atomic_is_always_lock_free
# define _LIBCPP_CONTENTION_LOCK_FREE __atomic_always_lock_free(sizeof(__cxx_contention_t), 0)
# define _LIBCPP_CONTENTION_LOCK_FREE ::std::__libcpp_is_always_lock_free<__cxx_contention_t>::__value
#else
# define _LIBCPP_CONTENTION_LOCK_FREE false
#endif

View File

@ -121,7 +121,7 @@ using std::atomic_signal_fence // see below
# pragma GCC system_header
#endif
#if _LIBCPP_STD_VER > 20
#if defined(__cplusplus) && _LIBCPP_STD_VER > 20
#include <atomic>
#include <version>
@ -230,6 +230,6 @@ using std::atomic_thread_fence _LIBCPP_USING_IF_EXISTS;
# include_next <stdatomic.h>
# endif
#endif // _LIBCPP_STD_VER > 20
#endif // defined(__cplusplus) && _LIBCPP_STD_VER > 20
#endif // _LIBCPP_STDATOMIC_H

View File

@ -332,7 +332,7 @@ __cpp_lib_void_t 201411L <type_traits>
# undef __cpp_lib_execution
// # define __cpp_lib_execution 201902L
# if !defined(_LIBCPP_AVAILABILITY_DISABLE_FTM___cpp_lib_format) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)
# define __cpp_lib_format 202106L
// # define __cpp_lib_format 202106L
# endif
# define __cpp_lib_generic_unordered_lookup 201811L
# define __cpp_lib_int_pow2 202002L

View File

@ -106,7 +106,10 @@ class Symbol {
: symbolKind(k), isExternal(true), isCOMDAT(false),
writtenToSymtab(false), pendingArchiveLoad(false), isGCRoot(false),
isRuntimePseudoReloc(false), deferUndefined(false), canInline(true),
nameSize(n.size()), nameData(n.empty() ? nullptr : n.data()) {}
nameSize(n.size()), nameData(n.empty() ? nullptr : n.data()) {
assert((!n.empty() || k <= LastDefinedCOFFKind) &&
"If the name is empty, the Symbol must be a DefinedCOFF.");
}
const unsigned symbolKind : 8;
unsigned isExternal : 1;

View File

@ -395,7 +395,7 @@ getThunk(DenseMap<uint64_t, Defined *> &lastThunks, Defined *target, uint64_t p,
default:
llvm_unreachable("Unexpected architecture");
}
Defined *d = make<DefinedSynthetic>("", c);
Defined *d = make<DefinedSynthetic>("range_extension_thunk", c);
lastThunk = d;
return {d, true};
}

View File

@ -750,12 +750,13 @@ void elf::riscvFinalizeRelax(int passes) {
p += size;
// For R_RISCV_ALIGN, we will place `offset` in a location (among NOPs)
// to satisfy the alignment requirement. If `remove` is a multiple of 4,
// it is as if we have skipped some NOPs. Otherwise we are in the middle
// of a 4-byte NOP, and we need to rewrite the NOP sequence.
// to satisfy the alignment requirement. If both `remove` and r.addend
// are multiples of 4, it is as if we have skipped some NOPs. Otherwise
// we are in the middle of a 4-byte NOP, and we need to rewrite the NOP
// sequence.
int64_t skip = 0;
if (r.type == R_RISCV_ALIGN) {
if (remove % 4 != 0) {
if (remove % 4 || r.addend % 4) {
skip = r.addend - remove;
int64_t j = 0;
for (; j + 4 <= skip; j += 4)

View File

@ -1587,6 +1587,15 @@ void ObjFile::registerEhFrames(Section &ehFrameSection) {
funcSym->unwindEntry = isec;
ehRelocator.commit();
}
// __eh_frame is marked as S_ATTR_LIVE_SUPPORT in input files, because FDEs
// are normally required to be kept alive if they reference a live symbol.
// However, we've explicitly created a dependency from a symbol to its FDE, so
// dead-stripping will just work as usual, and S_ATTR_LIVE_SUPPORT will only
// serve to incorrectly prevent us from dead-stripping duplicate FDEs for a
// live symbol (e.g. if there were multiple weak copies). Remove this flag to
// let dead-stripping proceed correctly.
ehFrameSection.flags &= ~S_ATTR_LIVE_SUPPORT;
}
std::string ObjFile::sourceFile() const {

View File

@ -196,13 +196,13 @@ UnwindInfoSection::UnwindInfoSection()
// Record function symbols that may need entries emitted in __unwind_info, which
// stores unwind data for address ranges.
//
// Note that if several adjacent functions have the same unwind encoding, LSDA,
// and personality function, they share one unwind entry. For this to work,
// functions without unwind info need explicit "no unwind info" unwind entries
// -- else the unwinder would think they have the unwind info of the closest
// function with unwind info right before in the image. Thus, we add function
// symbols for each unique address regardless of whether they have associated
// unwind info.
// Note that if several adjacent functions have the same unwind encoding and
// personality function and no LSDA, they share one unwind entry. For this to
// work, functions without unwind info need explicit "no unwind info" unwind
// entries -- else the unwinder would think they have the unwind info of the
// closest function with unwind info right before in the image. Thus, we add
// function symbols for each unique address regardless of whether they have
// associated unwind info.
void UnwindInfoSection::addSymbol(const Defined *d) {
if (d->unwindEntry)
allEntriesAreOmitted = false;
@ -427,9 +427,9 @@ void UnwindInfoSectionImpl::finalize() {
// assigned, so we can relocate the __LD,__compact_unwind entries
// into a temporary buffer. Relocation is necessary in order to sort
// the CU entries by function address. Sorting is necessary so that
// we can fold adjacent CU entries with identical
// encoding+personality+lsda. Folding is necessary because it reduces
// the number of CU entries by as much as 3 orders of magnitude!
// we can fold adjacent CU entries with identical encoding+personality
// and without any LSDA. Folding is necessary because it reduces the
// number of CU entries by as much as 3 orders of magnitude!
cuEntries.resize(symbols.size());
// The "map" part of the symbols MapVector was only needed for deduplication
// in addSymbol(). Now that we are done adding, move the contents to a plain
@ -445,7 +445,7 @@ void UnwindInfoSectionImpl::finalize() {
return cuEntries[a].functionAddress < cuEntries[b].functionAddress;
});
// Fold adjacent entries with matching encoding+personality+lsda
// Fold adjacent entries with matching encoding+personality and without LSDA
// We use three iterators on the same cuIndices to fold in-situ:
// (1) `foldBegin` is the first of a potential sequence of matching entries
// (2) `foldEnd` is the first non-matching entry after `foldBegin`.
@ -455,11 +455,32 @@ void UnwindInfoSectionImpl::finalize() {
auto foldWrite = cuIndices.begin();
for (auto foldBegin = cuIndices.begin(); foldBegin < cuIndices.end();) {
auto foldEnd = foldBegin;
// Common LSDA encodings (e.g. for C++ and Objective-C) contain offsets from
// a base address. The base address is normally not contained directly in
// the LSDA, and in that case, the personality function treats the starting
// address of the function (which is computed by the unwinder) as the base
// address and interprets the LSDA accordingly. The unwinder computes the
// starting address of a function as the address associated with its CU
// entry. For this reason, we cannot fold adjacent entries if they have an
// LSDA, because folding would make the unwinder compute the wrong starting
// address for the functions with the folded entries, which in turn would
// cause the personality function to misinterpret the LSDA for those
// functions. In the very rare case where the base address is encoded
// directly in the LSDA, two functions at different addresses would
// necessarily have different LSDAs, so their CU entries would not have been
// folded anyway.
while (++foldEnd < cuIndices.end() &&
cuEntries[*foldBegin].encoding == cuEntries[*foldEnd].encoding &&
!cuEntries[*foldBegin].lsda && !cuEntries[*foldEnd].lsda &&
// If we've gotten to this point, we don't have an LSDA, which should
// also imply that we don't have a personality function, since in all
// likelihood a personality function needs the LSDA to do anything
// useful. It can be technically valid to have a personality function
// and no LSDA though (e.g. the C++ personality __gxx_personality_v0
// is just a no-op without LSDA), so we still check for personality
// function equivalence to handle that case.
cuEntries[*foldBegin].personality ==
cuEntries[*foldEnd].personality &&
cuEntries[*foldBegin].lsda == cuEntries[*foldEnd].lsda &&
canFoldEncoding(cuEntries[*foldEnd].encoding))
;
*foldWrite++ = *foldBegin;

View File

@ -144,8 +144,12 @@ template <typename ContextT> class GenericCycleInfoCompute {
};
template <typename ContextT>
auto GenericCycleInfo<ContextT>::getTopLevelParentCycle(
const BlockT *Block) const -> CycleT * {
auto GenericCycleInfo<ContextT>::getTopLevelParentCycle(BlockT *Block)
-> CycleT * {
auto Cycle = BlockMapTopLevel.find(Block);
if (Cycle != BlockMapTopLevel.end())
return Cycle->second;
auto MapIt = BlockMap.find(Block);
if (MapIt == BlockMap.end())
return nullptr;
@ -153,12 +157,15 @@ auto GenericCycleInfo<ContextT>::getTopLevelParentCycle(
auto *C = MapIt->second;
while (C->ParentCycle)
C = C->ParentCycle;
BlockMapTopLevel.try_emplace(Block, C);
return C;
}
template <typename ContextT>
void GenericCycleInfo<ContextT>::moveToNewParent(CycleT *NewParent,
CycleT *Child) {
void GenericCycleInfo<ContextT>::moveTopLevelCycleToNewParent(CycleT *NewParent,
CycleT *Child) {
assert((!Child->ParentCycle && !NewParent->ParentCycle) &&
"NewParent and Child must be both top level cycle!\n");
auto &CurrentContainer =
Child->ParentCycle ? Child->ParentCycle->Children : TopLevelCycles;
auto Pos = llvm::find_if(CurrentContainer, [=](const auto &Ptr) -> bool {
@ -169,6 +176,13 @@ void GenericCycleInfo<ContextT>::moveToNewParent(CycleT *NewParent,
*Pos = std::move(CurrentContainer.back());
CurrentContainer.pop_back();
Child->ParentCycle = NewParent;
NewParent->Blocks.insert(NewParent->Blocks.end(), Child->block_begin(),
Child->block_end());
for (auto &It : BlockMapTopLevel)
if (It.second == Child)
It.second = NewParent;
}
/// \brief Main function of the cycle info computations.
@ -240,10 +254,7 @@ void GenericCycleInfoCompute<ContextT>::run(BlockT *EntryBlock) {
<< "discovered child cycle "
<< Info.Context.print(BlockParent->getHeader()) << "\n");
// Make BlockParent the child of NewCycle.
Info.moveToNewParent(NewCycle.get(), BlockParent);
NewCycle->Blocks.insert(NewCycle->Blocks.end(),
BlockParent->block_begin(),
BlockParent->block_end());
Info.moveTopLevelCycleToNewParent(NewCycle.get(), BlockParent);
for (auto *ChildEntry : BlockParent->entries())
ProcessPredecessors(ChildEntry);
@ -257,6 +268,7 @@ void GenericCycleInfoCompute<ContextT>::run(BlockT *EntryBlock) {
assert(!is_contained(NewCycle->Blocks, Block));
NewCycle->Blocks.push_back(Block);
ProcessPredecessors(Block);
Info.BlockMapTopLevel.try_emplace(Block, NewCycle.get());
}
} while (!Worklist.empty());
@ -336,6 +348,7 @@ void GenericCycleInfoCompute<ContextT>::dfs(BlockT *EntryBlock) {
template <typename ContextT> void GenericCycleInfo<ContextT>::clear() {
TopLevelCycles.clear();
BlockMap.clear();
BlockMapTopLevel.clear();
}
/// \brief Compute the cycle info for a function.

View File

@ -232,15 +232,24 @@ template <typename ContextT> class GenericCycleInfo {
private:
ContextT Context;
/// Map basic blocks to their inner-most containing loop.
/// Map basic blocks to their inner-most containing cycle.
DenseMap<BlockT *, CycleT *> BlockMap;
/// Map basic blocks to their top level containing cycle.
DenseMap<BlockT *, CycleT *> BlockMapTopLevel;
/// Outermost cycles discovered by any DFS.
///
/// Note: The implementation treats the nullptr as the parent of
/// every top-level cycle. See \ref contains for an example.
std::vector<std::unique_ptr<CycleT>> TopLevelCycles;
/// Move \p Child to \p NewParent by manipulating Children vectors.
///
/// Note: This is an incomplete operation that does not update the depth of
/// the subtree.
void moveTopLevelCycleToNewParent(CycleT *NewParent, CycleT *Child);
public:
GenericCycleInfo() = default;
GenericCycleInfo(GenericCycleInfo &&) = default;
@ -254,13 +263,7 @@ template <typename ContextT> class GenericCycleInfo {
CycleT *getCycle(const BlockT *Block) const;
unsigned getCycleDepth(const BlockT *Block) const;
CycleT *getTopLevelParentCycle(const BlockT *Block) const;
/// Move \p Child to \p NewParent by manipulating Children vectors.
///
/// Note: This is an incomplete operation that does not update the
/// list of blocks in the new parent or the depth of the subtree.
void moveToNewParent(CycleT *NewParent, CycleT *Child);
CycleT *getTopLevelParentCycle(BlockT *Block);
/// Methods for debug and self-test.
//@{

View File

@ -1028,7 +1028,7 @@ ELFFile<ELFT>::getVersionDependencies(const Elf_Shdr &Sec,
VN.Offset = VerneedBuf - Start;
if (Verneed->vn_file < StrTab.size())
VN.File = std::string(StrTab.drop_front(Verneed->vn_file));
VN.File = std::string(StrTab.data() + Verneed->vn_file);
else
VN.File = ("<corrupt vn_file: " + Twine(Verneed->vn_file) + ">").str();

View File

@ -5917,8 +5917,13 @@ const SCEV *ScalarEvolution::createNodeForPHI(PHINode *PN) {
if (const SCEV *S = createNodeFromSelectLikePHI(PN))
return S;
// If the PHI has a single incoming value, follow that value, unless the
// PHI's incoming blocks are in a different loop, in which case doing so
// risks breaking LCSSA form. Instcombine would normally zap these, but
// it doesn't have DominatorTree information, so it may miss cases.
if (Value *V = simplifyInstruction(PN, {getDataLayout(), &TLI, &DT, &AC}))
return getSCEV(V);
if (LI.replacementPreservesLCSSAForm(PN, V))
return getSCEV(V);
// If it's not a loop phi, we can't handle it yet.
return getUnknown(PN);

View File

@ -3593,14 +3593,23 @@ static bool cannotBeOrderedLessThanZeroImpl(const Value *V,
// Unsigned integers are always nonnegative.
case Instruction::UIToFP:
return true;
case Instruction::FMul:
case Instruction::FDiv:
// X * X is always non-negative or a NaN.
// X / X is always exactly 1.0 or a NaN.
if (I->getOperand(0) == I->getOperand(1) &&
(!SignBitOnly || cast<FPMathOperator>(I)->hasNoNaNs()))
return true;
// Set SignBitOnly for RHS, because X / -0.0 is -Inf (or NaN).
return cannotBeOrderedLessThanZeroImpl(I->getOperand(0), TLI, SignBitOnly,
Depth + 1) &&
cannotBeOrderedLessThanZeroImpl(I->getOperand(1), TLI,
/*SignBitOnly*/ true, Depth + 1);
case Instruction::FMul:
// X * X is always non-negative or a NaN.
if (I->getOperand(0) == I->getOperand(1) &&
(!SignBitOnly || cast<FPMathOperator>(I)->hasNoNaNs()))
return true;
LLVM_FALLTHROUGH;
case Instruction::FAdd:
case Instruction::FRem:

View File

@ -25,6 +25,7 @@
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
@ -247,6 +248,13 @@ bool DwarfEHPrepare::InsertUnwindResumeCalls() {
// Call the rewind function.
CallInst *CI =
CallInst::Create(RewindFunction, RewindFunctionArgs, "", UnwindBB);
// The verifier requires that all calls of debug-info-bearing functions
// from debug-info-bearing functions have a debug location (for inlining
// purposes). Assign a dummy location to satisfy the constraint.
Function *RewindFn = dyn_cast<Function>(RewindFunction.getCallee());
if (RewindFn && RewindFn->getSubprogram())
if (DISubprogram *SP = F.getSubprogram())
CI->setDebugLoc(DILocation::get(SP->getContext(), 0, 0, SP));
CI->setCallingConv(RewindFunctionCallingConv);
// We never expect _Unwind_Resume to return.

View File

@ -1262,9 +1262,10 @@ void PEI::insertZeroCallUsedRegs(MachineFunction &MF) {
}
}
// Don't clear registers that are reset before exiting.
for (const CalleeSavedInfo &CSI : MF.getFrameInfo().getCalleeSavedInfo())
for (MCRegister Reg : TRI.sub_and_superregs_inclusive(CSI.getReg()))
// Don't clear registers that must be preserved.
for (const MCPhysReg *CSRegs = TRI.getCalleeSavedRegs(&MF);
MCPhysReg CSReg = *CSRegs; ++CSRegs)
for (MCRegister Reg : TRI.sub_and_superregs_inclusive(CSReg))
RegsToZero.reset(Reg);
const TargetFrameLowering &TFI = *MF.getSubtarget().getFrameLowering();

View File

@ -203,10 +203,10 @@ constexpr FeatureBitset FeaturesTigerlake =
FeatureCLWB | FeatureMOVDIRI | FeatureSHSTK | FeatureKL | FeatureWIDEKL;
constexpr FeatureBitset FeaturesSapphireRapids =
FeaturesICLServer | FeatureAMX_BF16 | FeatureAMX_INT8 | FeatureAMX_TILE |
FeatureAVX512BF16 | FeatureAVX512FP16 | FeatureAVX512VP2INTERSECT |
FeatureAVXVNNI | FeatureCLDEMOTE | FeatureENQCMD | FeatureMOVDIR64B |
FeatureMOVDIRI | FeaturePTWRITE | FeatureSERIALIZE | FeatureSHSTK |
FeatureTSXLDTRK | FeatureUINTR | FeatureWAITPKG;
FeatureAVX512BF16 | FeatureAVX512FP16 | FeatureAVXVNNI | FeatureCLDEMOTE |
FeatureENQCMD | FeatureMOVDIR64B | FeatureMOVDIRI | FeaturePTWRITE |
FeatureSERIALIZE | FeatureSHSTK | FeatureTSXLDTRK | FeatureUINTR |
FeatureWAITPKG;
// Intel Atom processors.
// Bonnell has feature parity with Core2 and adds MOVBE.
@ -367,7 +367,7 @@ constexpr ProcInfo Processors[] = {
// Tigerlake microarchitecture based processors.
{ {"tigerlake"}, CK_Tigerlake, FEATURE_AVX512VP2INTERSECT, FeaturesTigerlake },
// Sapphire Rapids microarchitecture based processors.
{ {"sapphirerapids"}, CK_SapphireRapids, FEATURE_AVX512VP2INTERSECT, FeaturesSapphireRapids },
{ {"sapphirerapids"}, CK_SapphireRapids, FEATURE_AVX512BF16, FeaturesSapphireRapids },
// Alderlake microarchitecture based processors.
{ {"alderlake"}, CK_Alderlake, FEATURE_AVX2, FeaturesAlderlake },
// Knights Landing processor.

View File

@ -149,6 +149,7 @@ class AlignVectors {
Align H)
: Inst(I), Addr(A), ValTy(T), HaveAlign(H),
NeedAlign(HVC.getTypeAlignment(ValTy)) {}
AddrInfo &operator=(const AddrInfo &) = default;
// XXX: add Size member?
Instruction *Inst;
@ -185,6 +186,7 @@ class AlignVectors {
Segment(Value *Val, int Begin, int Len)
: Val(Val), Start(Begin), Size(Len) {}
Segment(const Segment &Seg) = default;
Segment &operator=(const Segment &Seg) = default;
Value *Val; // Value representable as a sequence of bytes.
int Start; // First byte of the value that belongs to the segment.
int Size; // Number of bytes in the segment.
@ -195,6 +197,7 @@ class AlignVectors {
Block(Value *Val, int Off, int Len, int Pos)
: Seg(Val, Off, Len), Pos(Pos) {}
Block(const Block &Blk) = default;
Block &operator=(const Block &Blk) = default;
Segment Seg; // Value segment.
int Pos; // Position (offset) of the segment in the Block.
};

View File

@ -70,6 +70,7 @@ void SPIRVGeneralDuplicatesTracker::buildDepsGraph(
}
}
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
if (MMI) {
const Module *M = MMI->getModule();
for (auto F = M->begin(), E = M->end(); F != E; ++F) {
@ -92,4 +93,5 @@ void SPIRVGeneralDuplicatesTracker::buildDepsGraph(
}
}
}
#endif
}

View File

@ -909,7 +909,6 @@ def ProcessorFeatures {
FeatureTSXLDTRK,
FeatureENQCMD,
FeatureSHSTK,
FeatureVP2INTERSECT,
FeatureMOVDIRI,
FeatureMOVDIR64B,
FeatureUINTR];

View File

@ -137,8 +137,10 @@ void LoopVersioning::addPHINodes(
// See if we have a single-operand PHI with the value defined by the
// original loop.
for (auto I = PHIBlock->begin(); (PN = dyn_cast<PHINode>(I)); ++I) {
if (PN->getIncomingValue(0) == Inst)
if (PN->getIncomingValue(0) == Inst) {
SE->forgetValue(PN);
break;
}
}
// If not create it.
if (!PN) {

View File

@ -8149,9 +8149,15 @@ VPRecipeBase *VPRecipeBuilder::tryToOptimizeInductionPHI(
*PSE.getSE(), *OrigLoop, Range);
// Check if this is pointer induction. If so, build the recipe for it.
if (auto *II = Legal->getPointerInductionDescriptor(Phi))
return new VPWidenPointerInductionRecipe(Phi, Operands[0], *II,
*PSE.getSE());
if (auto *II = Legal->getPointerInductionDescriptor(Phi)) {
return new VPWidenPointerInductionRecipe(
Phi, Operands[0], *II, *PSE.getSE(),
LoopVectorizationPlanner::getDecisionAndClampRange(
[&](ElementCount VF) {
return CM.isScalarAfterVectorization(Phi, VF);
},
Range));
}
return nullptr;
}

View File

@ -1187,15 +1187,19 @@ class VPWidenPointerInductionRecipe : public VPHeaderPHIRecipe {
/// explicitly.
ScalarEvolution &SE;
bool IsScalarAfterVectorization;
public:
/// Create a new VPWidenPointerInductionRecipe for \p Phi with start value \p
/// Start.
VPWidenPointerInductionRecipe(PHINode *Phi, VPValue *Start,
const InductionDescriptor &IndDesc,
ScalarEvolution &SE)
ScalarEvolution &SE,
bool IsScalarAfterVectorization)
: VPHeaderPHIRecipe(VPVWidenPointerInductionSC, VPWidenPointerInductionSC,
Phi),
IndDesc(IndDesc), SE(SE) {
IndDesc(IndDesc), SE(SE),
IsScalarAfterVectorization(IsScalarAfterVectorization) {
addOperand(Start);
}

View File

@ -983,10 +983,8 @@ void VPCanonicalIVPHIRecipe::print(raw_ostream &O, const Twine &Indent,
#endif
bool VPWidenPointerInductionRecipe::onlyScalarsGenerated(ElementCount VF) {
bool IsUniform = vputils::onlyFirstLaneUsed(this);
return all_of(users(),
[&](const VPUser *U) { return U->usesScalars(this); }) &&
(IsUniform || !VF.isScalable());
return IsScalarAfterVectorization &&
(!VF.isScalable() || vputils::onlyFirstLaneUsed(this));
}
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)

View File

@ -282,27 +282,28 @@ static void printProgramHeaders(const ELFFile<ELFT> &Obj, StringRef FileName) {
}
template <class ELFT>
static void printSymbolVersionDependency(ArrayRef<uint8_t> Contents,
StringRef StrTab) {
static void printSymbolVersionDependency(StringRef FileName,
const ELFFile<ELFT> &Obj,
const typename ELFT::Shdr &Sec) {
outs() << "\nVersion References:\n";
const uint8_t *Buf = Contents.data();
while (Buf) {
auto *Verneed = reinterpret_cast<const typename ELFT::Verneed *>(Buf);
outs() << " required from "
<< StringRef(StrTab.drop_front(Verneed->vn_file).data()) << ":\n";
auto WarningHandler = [&](const Twine &Msg) {
reportWarning(Msg, FileName);
return Error::success();
};
Expected<std::vector<VerNeed>> V =
Obj.getVersionDependencies(Sec, WarningHandler);
if (!V) {
reportWarning(toString(V.takeError()), FileName);
return;
}
const uint8_t *BufAux = Buf + Verneed->vn_aux;
while (BufAux) {
auto *Vernaux = reinterpret_cast<const typename ELFT::Vernaux *>(BufAux);
outs() << " "
<< format("0x%08" PRIx32 " ", (uint32_t)Vernaux->vna_hash)
<< format("0x%02" PRIx16 " ", (uint16_t)Vernaux->vna_flags)
<< format("%02" PRIu16 " ", (uint16_t)Vernaux->vna_other)
<< StringRef(StrTab.drop_front(Vernaux->vna_name).data()) << '\n';
BufAux = Vernaux->vna_next ? BufAux + Vernaux->vna_next : nullptr;
}
Buf = Verneed->vn_next ? Buf + Verneed->vn_next : nullptr;
raw_fd_ostream &OS = outs();
for (const VerNeed &VN : *V) {
OS << " required from " << VN.File << ":\n";
for (const VernAux &Aux : VN.AuxV)
OS << format(" 0x%08x 0x%02x %02u %s\n", Aux.Hash, Aux.Flags,
Aux.Other, Aux.Name.c_str());
}
}
@ -355,7 +356,7 @@ static void printSymbolVersionInfo(const ELFFile<ELFT> &Elf,
StringRef StrTab = unwrapOrError(Elf.getStringTable(*StrTabSec), FileName);
if (Shdr.sh_type == ELF::SHT_GNU_verneed)
printSymbolVersionDependency<ELFT>(Contents, StrTab);
printSymbolVersionDependency<ELFT>(FileName, Elf, Shdr);
else
printSymbolVersionDefinition<ELFT>(Shdr, Contents, StrTab);
}

View File

@ -31,7 +31,7 @@
..
lib
clang
15.0.0
15.0.3
lib
freebsd
..

View File

@ -37,7 +37,7 @@
..
lib
clang
15.0.0
15.0.3
include
cuda_wrappers
..

View File

@ -5,7 +5,7 @@
.PATH: ${CLANG_SRCS}/lib/Headers
INCSGROUPS= INCS CUDA HLSL OMP PPC
INCSDIR= ${LIBDIR}/clang/15.0.0/include
INCSDIR= ${LIBDIR}/clang/15.0.3/include
CUDADIR= ${INCSDIR}/cuda_wrappers
HLSLDIR= ${INCSDIR}/hlsl
OMPDIR= ${INCSDIR}/openmp_wrappers

View File

@ -1,10 +1,10 @@
// $FreeBSD$
#define LLVM_REVISION "llvmorg-15.0.0-9-g1c73596d3454"
#define LLVM_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
#define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git"
#define CLANG_REVISION "llvmorg-15.0.0-9-g1c73596d3454"
#define CLANG_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
#define CLANG_REPOSITORY "https://github.com/llvm/llvm-project.git"
#define LLDB_REVISION "llvmorg-15.0.0-9-g1c73596d3454"
#define LLDB_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
#define LLDB_REPOSITORY "https://github.com/llvm/llvm-project.git"

View File

@ -1,9 +1,9 @@
/* $FreeBSD$ */
#define CLANG_VERSION 15.0.0
#define CLANG_VERSION_STRING "15.0.0"
#define CLANG_VERSION 15.0.3
#define CLANG_VERSION_STRING "15.0.3"
#define CLANG_VERSION_MAJOR 15
#define CLANG_VERSION_MINOR 0
#define CLANG_VERSION_PATCHLEVEL 0
#define CLANG_VERSION_PATCHLEVEL 3
#define CLANG_VENDOR "FreeBSD "

View File

@ -80,7 +80,7 @@
#define CLANG_HAVE_RLIMITS 1
/* The LLVM product name and version */
#define BACKEND_PACKAGE_STRING "LLVM 15.0.0"
#define BACKEND_PACKAGE_STRING "LLVM 15.0.3"
/* Linker version detected at compile time. */
/* #undef HOST_LINK_VERSION */

View File

@ -1,4 +1,4 @@
// Local identifier in __FreeBSD_version style
#define LLD_FREEBSD_VERSION 1400005
#define LLD_VERSION_STRING "15.0.0 (FreeBSD llvmorg-15.0.0-9-g1c73596d3454-" __XSTRING(LLD_FREEBSD_VERSION) ")"
#define LLD_VERSION_STRING "15.0.3 (FreeBSD llvmorg-15.0.2-10-gf3c5289e7846-" __XSTRING(LLD_FREEBSD_VERSION) ")"

View File

@ -1,6 +1,6 @@
#define LLDB_VERSION 15.0.0
#define LLDB_VERSION_STRING "15.0.0"
#define LLDB_VERSION 15.0.3
#define LLDB_VERSION_STRING "15.0.3"
#define LLDB_VERSION_MAJOR 15
#define LLDB_VERSION_MINOR 0
#define LLDB_VERSION_PATCH 0
#define LLDB_VERSION_PATCH 3
/* #undef LLDB_FULL_VERSION_STRING */

View File

@ -353,10 +353,10 @@
#define PACKAGE_NAME "LLVM"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "LLVM 15.0.0"
#define PACKAGE_STRING "LLVM 15.0.3"
/* Define to the version of this package. */
#define PACKAGE_VERSION "15.0.0"
#define PACKAGE_VERSION "15.0.3"
/* Define to the vendor of this package. */
/* #undef PACKAGE_VENDOR */

View File

@ -74,10 +74,10 @@
#define LLVM_VERSION_MINOR 0
/* Patch version of the LLVM API */
#define LLVM_VERSION_PATCH 0
#define LLVM_VERSION_PATCH 3
/* LLVM version string */
#define LLVM_VERSION_STRING "15.0.0"
#define LLVM_VERSION_STRING "15.0.3"
/* Whether LLVM records statistics for use with GetStatistics(),
* PrintStatistics() or PrintStatisticsJSON()

View File

@ -1,3 +1,3 @@
/* $FreeBSD$ */
#define LLVM_REVISION "llvmorg-15.0.0-9-g1c73596d3454"
#define LLVM_REVISION "llvmorg-15.0.2-10-gf3c5289e7846"
#define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git"

View File

@ -59,7 +59,10 @@ module std [system] {
// FIXME: <stdalign.h> is missing.
// <signal.h> provided by C library.
// <stdarg.h> provided by compiler.
// <stdbool.h> provided by compiler.
module stdbool_h {
// <stdbool.h>'s __bool_true_false_are_defined macro requires textual inclusion.
textual header "stdbool.h"
}
module stddef_h {
// <stddef.h>'s __need_* macros require textual inclusion.
textual header "stddef.h"
@ -311,6 +314,7 @@ module std [system] {
module ranges_all_of { private header "__algorithm/ranges_all_of.h" }
module ranges_any_of { private header "__algorithm/ranges_any_of.h" }
module ranges_binary_search { private header "__algorithm/ranges_binary_search.h" }
module ranges_clamp { private header "__algorithm/ranges_clamp.h" }
module ranges_copy { private header "__algorithm/ranges_copy.h" }
module ranges_copy_backward { private header "__algorithm/ranges_copy_backward.h" }
module ranges_copy_if { private header "__algorithm/ranges_copy_if.h" }
@ -335,6 +339,7 @@ module std [system] {
module ranges_is_heap { private header "__algorithm/ranges_is_heap.h" }
module ranges_is_heap_until { private header "__algorithm/ranges_is_heap_until.h" }
module ranges_is_partitioned { private header "__algorithm/ranges_is_partitioned.h" }
module ranges_is_permutation { private header "__algorithm/ranges_is_permutation.h" }
module ranges_is_sorted { private header "__algorithm/ranges_is_sorted.h" }
module ranges_is_sorted_until { private header "__algorithm/ranges_is_sorted_until.h" }
module ranges_iterator_concept { private header "__algorithm/ranges_iterator_concept.h" }
@ -351,6 +356,7 @@ module std [system] {
module ranges_mismatch { private header "__algorithm/ranges_mismatch.h" }
module ranges_move { private header "__algorithm/ranges_move.h" }
module ranges_move_backward { private header "__algorithm/ranges_move_backward.h" }
module ranges_next_permutation { private header "__algorithm/ranges_next_permutation.h" }
module ranges_none_of { private header "__algorithm/ranges_none_of.h" }
module ranges_nth_element { private header "__algorithm/ranges_nth_element.h" }
module ranges_partial_sort { private header "__algorithm/ranges_partial_sort.h" }
@ -359,6 +365,7 @@ module std [system] {
module ranges_partition_copy { private header "__algorithm/ranges_partition_copy.h" }
module ranges_partition_point { private header "__algorithm/ranges_partition_point.h" }
module ranges_pop_heap { private header "__algorithm/ranges_pop_heap.h" }
module ranges_prev_permutation { private header "__algorithm/ranges_prev_permutation.h" }
module ranges_push_heap { private header "__algorithm/ranges_push_heap.h" }
module ranges_remove { private header "__algorithm/ranges_remove.h" }
module ranges_remove_copy { private header "__algorithm/ranges_remove_copy.h" }
@ -370,7 +377,9 @@ module std [system] {
module ranges_replace_if { private header "__algorithm/ranges_replace_if.h" }
module ranges_reverse { private header "__algorithm/ranges_reverse.h" }
module ranges_reverse_copy { private header "__algorithm/ranges_reverse_copy.h" }
module ranges_rotate { private header "__algorithm/ranges_rotate.h" }
module ranges_rotate_copy { private header "__algorithm/ranges_rotate_copy.h" }
module ranges_sample { private header "__algorithm/ranges_sample.h" }
module ranges_search { private header "__algorithm/ranges_search.h" }
module ranges_search_n { private header "__algorithm/ranges_search_n.h" }
module ranges_set_difference { private header "__algorithm/ranges_set_difference.h" }
@ -384,6 +393,9 @@ module std [system] {
module ranges_stable_sort { private header "__algorithm/ranges_stable_sort.h" }
module ranges_swap_ranges { private header "__algorithm/ranges_swap_ranges.h" }
module ranges_transform { private header "__algorithm/ranges_transform.h" }
module uniform_random_bit_generator_adaptor {
private header "__algorithm/uniform_random_bit_generator_adaptor.h"
}
module ranges_unique { private header "__algorithm/ranges_unique.h" }
module ranges_unique_copy { private header "__algorithm/ranges_unique_copy.h" }
module ranges_upper_bound { private header "__algorithm/ranges_upper_bound.h" }
@ -419,6 +431,7 @@ module std [system] {
module unique { private header "__algorithm/unique.h" }
module unique_copy { private header "__algorithm/unique_copy.h" }
module unwrap_iter { private header "__algorithm/unwrap_iter.h" }
module unwrap_range { private header "__algorithm/unwrap_range.h" }
module upper_bound { private header "__algorithm/upper_bound.h" }
}
}
@ -832,6 +845,7 @@ module std [system] {
module ranges_uninitialized_algorithms { private header "__memory/ranges_uninitialized_algorithms.h" }
module raw_storage_iterator { private header "__memory/raw_storage_iterator.h" }
module shared_ptr { private header "__memory/shared_ptr.h" }
module swap_allocator { private header "__memory/swap_allocator.h" }
module temporary_buffer { private header "__memory/temporary_buffer.h" }
module uninitialized_algorithms { private header "__memory/uninitialized_algorithms.h" }
module unique_ptr { private header "__memory/unique_ptr.h" }
@ -1090,10 +1104,16 @@ module std [system] {
module add_pointer { private header "__type_traits/add_pointer.h" }
module add_rvalue_reference { private header "__type_traits/add_rvalue_reference.h" }
module add_volatile { private header "__type_traits/add_volatile.h" }
module aligned_storage { private header "__type_traits/aligned_storage.h" }
module aligned_union { private header "__type_traits/aligned_union.h" }
module alignment_of { private header "__type_traits/alignment_of.h" }
module apply_cv { private header "__type_traits/apply_cv.h" }
module common_reference { private header "__type_traits/common_reference.h" }
module common_type { private header "__type_traits/common_type.h" }
module conditional { private header "__type_traits/conditional.h" }
module conjunction { private header "__type_traits/conjunction.h" }
module copy_cv { private header "__type_traits/copy_cv.h" }
module copy_cvref { private header "__type_traits/copy_cvref.h" }
module decay { private header "__type_traits/decay.h" }
module disjunction { private header "__type_traits/disjunction.h" }
module enable_if { private header "__type_traits/enable_if.h" }
@ -1135,6 +1155,7 @@ module std [system] {
module is_move_constructible { private header "__type_traits/is_move_constructible.h" }
module is_nothrow_assignable { private header "__type_traits/is_nothrow_assignable.h" }
module is_nothrow_constructible { private header "__type_traits/is_nothrow_constructible.h" }
module is_nothrow_convertible { private header "__type_traits/is_nothrow_convertible.h" }
module is_nothrow_copy_assignable { private header "__type_traits/is_nothrow_copy_assignable.h" }
module is_nothrow_copy_constructible { private header "__type_traits/is_nothrow_copy_constructible.h" }
module is_nothrow_default_constructible { private header "__type_traits/is_nothrow_default_constructible.h" }
@ -1146,6 +1167,7 @@ module std [system] {
module is_pod { private header "__type_traits/is_pod.h" }
module is_pointer { private header "__type_traits/is_pointer.h" }
module is_polymorphic { private header "__type_traits/is_polymorphic.h" }
module is_primary_template { private header "__type_traits/is_primary_template.h" }
module is_reference { private header "__type_traits/is_reference.h" }
module is_reference_wrapper { private header "__type_traits/is_reference_wrapper.h" }
module is_referenceable { private header "__type_traits/is_referenceable.h" }
@ -1153,6 +1175,7 @@ module std [system] {
module is_scalar { private header "__type_traits/is_scalar.h" }
module is_scoped_enum { private header "__type_traits/is_scoped_enum.h" }
module is_signed { private header "__type_traits/is_signed.h" }
module is_signed_integer { private header "__type_traits/is_signed_integer.h" }
module is_standard_layout { private header "__type_traits/is_standard_layout.h" }
module is_trivial { private header "__type_traits/is_trivial.h" }
module is_trivially_assignable { private header "__type_traits/is_trivially_assignable.h" }
@ -1167,18 +1190,28 @@ module std [system] {
module is_unbounded_array { private header "__type_traits/is_unbounded_array.h" }
module is_union { private header "__type_traits/is_union.h" }
module is_unsigned { private header "__type_traits/is_unsigned.h" }
module is_unsigned_integer { private header "__type_traits/is_unsigned_integer.h" }
module is_valid_expansion { private header "__type_traits/is_valid_expansion.h" }
module is_void { private header "__type_traits/is_void.h" }
module is_volatile { private header "__type_traits/is_volatile.h" }
module lazy { private header "__type_traits/lazy.h" }
module make_32_64_or_128_bit { private header "__type_traits/make_32_64_or_128_bit.h" }
module make_signed { private header "__type_traits/make_signed.h" }
module make_unsigned { private header "__type_traits/make_unsigned.h" }
module nat { private header "__type_traits/nat.h" }
module negation { private header "__type_traits/negation.h" }
module promote { private header "__type_traits/promote.h" }
module rank { private header "__type_traits/rank.h" }
module remove_all_extents { private header "__type_traits/remove_all_extents.h" }
module remove_const { private header "__type_traits/remove_const.h" }
module remove_cv { private header "__type_traits/remove_cv.h" }
module remove_cvref { private header "__type_traits/remove_cvref.h" }
module remove_extent { private header "__type_traits/remove_extent.h" }
module remove_pointer { private header "__type_traits/remove_pointer.h" }
module remove_reference { private header "__type_traits/remove_reference.h" }
module remove_volatile { private header "__type_traits/remove_volatile.h" }
module type_identity { private header "__type_traits/type_identity.h" }
module type_list { private header "__type_traits/type_list.h" }
module underlying_type { private header "__type_traits/underlying_type.h" }
module void_t { private header "__type_traits/void_t.h" }
}
@ -1272,6 +1305,7 @@ module std [system] {
module __tree { header "__tree" export * }
module __tuple { private header "__tuple" export * }
module __undef_macros { header "__undef_macros" export * }
module __verbose_abort { header "__verbose_abort" export * }
module experimental {
requires cplusplus11

View File

@ -1,4 +1,4 @@
CLANG_SUBDIR=clang/15.0.0
CLANG_SUBDIR=clang/15.0.3
CLANGDIR= /usr/lib/${CLANG_SUBDIR}
SANITIZER_LIBDIR= ${CLANGDIR}/lib/freebsd
SANITIZER_SHAREDIR= ${CLANGDIR}/share

View File

@ -1200,328 +1200,328 @@ OLD_FILES+=usr/share/man/man1/objdump.1.gz
OLD_FILES+=usr/bin/clang
OLD_FILES+=usr/bin/clang++
OLD_FILES+=usr/bin/clang-cpp
OLD_FILES+=usr/lib/clang/15.0.0/include/cuda_wrappers/algorithm
OLD_FILES+=usr/lib/clang/15.0.0/include/cuda_wrappers/complex
OLD_FILES+=usr/lib/clang/15.0.0/include/cuda_wrappers/new
OLD_DIRS+=usr/lib/clang/15.0.0/include/cuda_wrappers
OLD_FILES+=usr/lib/clang/15.0.0/include/fuzzer/FuzzedDataProvider.h
OLD_DIRS+=usr/lib/clang/15.0.0/include/fuzzer
OLD_FILES+=usr/lib/clang/15.0.0/include/hlsl/hlsl_basic_types.h
OLD_FILES+=usr/lib/clang/15.0.0/include/hlsl/hlsl_intrinsics.h
OLD_DIRS+=usr/lib/clang/15.0.0/include/hlsl
OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/__clang_openmp_device_functions.h
OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/cmath
OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/complex
OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/complex.h
OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/complex_cmath.h
OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/math.h
OLD_FILES+=usr/lib/clang/15.0.0/include/openmp_wrappers/new
OLD_DIRS+=usr/lib/clang/15.0.0/include/openmp_wrappers
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/bmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/bmiintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/emmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/immintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/mm_malloc.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/mmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/pmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/smmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/tmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/x86gprintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/x86intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ppc_wrappers/xmmintrin.h
OLD_DIRS+=usr/lib/clang/15.0.0/include/ppc_wrappers
OLD_FILES+=usr/lib/clang/15.0.0/include/profile/InstrProfData.inc
OLD_FILES+=usr/lib/clang/15.0.0/include/profile/MemProfData.inc
OLD_DIRS+=usr/lib/clang/15.0.0/include/profile
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/allocator_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/asan_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/common_interface_defs.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/coverage_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/dfsan_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/hwasan_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/linux_syscall_hooks.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/lsan_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/memprof_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/msan_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/netbsd_syscall_hooks.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/scudo_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/tsan_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/tsan_interface_atomic.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sanitizer/ubsan_interface.h
OLD_DIRS+=usr/lib/clang/15.0.0/include/sanitizer
OLD_FILES+=usr/lib/clang/15.0.0/include/xray/xray_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xray/xray_log_interface.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xray/xray_records.h
OLD_DIRS+=usr/lib/clang/15.0.0/include/xray
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_builtin_vars.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_cmath.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_complex_builtins.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_device_functions.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_intrinsics.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_libdevice_declares.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_math.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_math_forward_declares.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_runtime_wrapper.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_cuda_texture_intrinsics.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_cmath.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_libdevice_declares.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_math.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__clang_hip_runtime_wrapper.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__stddef_max_align_t.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__wmmintrin_aes.h
OLD_FILES+=usr/lib/clang/15.0.0/include/__wmmintrin_pclmul.h
OLD_FILES+=usr/lib/clang/15.0.0/include/adxintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/altivec.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ammintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/amxintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm64intr.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_acle.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_bf16.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_cde.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_cmse.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_fp16.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_mve.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_neon.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_neon_sve_bridge.h
OLD_FILES+=usr/lib/clang/15.0.0/include/arm_sve.h
OLD_FILES+=usr/lib/clang/15.0.0/include/armintr.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx2intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512bf16intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512bitalgintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512bwintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512cdintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512dqintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512erintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512fintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512fp16intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512ifmaintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512ifmavlintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512pfintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vbmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vbmiintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vbmivlintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlbf16intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlbitalgintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlbwintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlcdintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vldqintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlfp16intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlvbmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlvnniintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vlvp2intersectintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vnniintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vp2intersectintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vpopcntdqintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avx512vpopcntdqvlintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avxintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/avxvnniintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/bmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/bmiintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/builtins.h
OLD_FILES+=usr/lib/clang/15.0.0/include/cet.h
OLD_FILES+=usr/lib/clang/15.0.0/include/cetintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/cldemoteintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/clflushoptintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/clwbintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/clzerointrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/cpuid.h
OLD_FILES+=usr/lib/clang/15.0.0/include/crc32intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/emmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/enqcmdintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/f16cintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/float.h
OLD_FILES+=usr/lib/clang/15.0.0/include/fma4intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/fmaintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/fxsrintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/gfniintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/hexagon_circ_brev_intrinsics.h
OLD_FILES+=usr/lib/clang/15.0.0/include/hexagon_protos.h
OLD_FILES+=usr/lib/clang/15.0.0/include/hexagon_types.h
OLD_FILES+=usr/lib/clang/15.0.0/include/hlsl.h
OLD_FILES+=usr/lib/clang/15.0.0/include/hresetintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/htmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/htmxlintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/hvx_hexagon_protos.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ia32intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/immintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/inttypes.h
OLD_FILES+=usr/lib/clang/15.0.0/include/invpcidintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/iso646.h
OLD_FILES+=usr/lib/clang/15.0.0/include/keylockerintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/limits.h
OLD_FILES+=usr/lib/clang/15.0.0/include/lwpintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/lzcntintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/mm3dnow.h
OLD_FILES+=usr/lib/clang/15.0.0/include/mm_malloc.h
OLD_FILES+=usr/lib/clang/15.0.0/include/mmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/module.modulemap
OLD_FILES+=usr/lib/clang/15.0.0/include/movdirintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/msa.h
OLD_FILES+=usr/lib/clang/15.0.0/include/mwaitxintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/nmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/omp-tools.h
OLD_FILES+=usr/lib/clang/15.0.0/include/omp.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ompt.h
OLD_FILES+=usr/lib/clang/15.0.0/include/opencl-c-base.h
OLD_FILES+=usr/lib/clang/15.0.0/include/opencl-c.h
OLD_FILES+=usr/lib/clang/15.0.0/include/pconfigintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/pkuintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/pmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/popcntintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/prfchwintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/ptwriteintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/rdpruintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/rdseedintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/riscv_vector.h
OLD_FILES+=usr/lib/clang/15.0.0/include/rtmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/s390intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/serializeintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/sgxintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/shaintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/smmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/stdalign.h
OLD_FILES+=usr/lib/clang/15.0.0/include/stdarg.h
OLD_FILES+=usr/lib/clang/15.0.0/include/stdatomic.h
OLD_FILES+=usr/lib/clang/15.0.0/include/stdbool.h
OLD_FILES+=usr/lib/clang/15.0.0/include/stddef.h
OLD_FILES+=usr/lib/clang/15.0.0/include/stdint.h
OLD_FILES+=usr/lib/clang/15.0.0/include/stdnoreturn.h
OLD_FILES+=usr/lib/clang/15.0.0/include/tbmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/tgmath.h
OLD_FILES+=usr/lib/clang/15.0.0/include/tmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/tsxldtrkintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/uintrintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/unwind.h
OLD_FILES+=usr/lib/clang/15.0.0/include/vadefs.h
OLD_FILES+=usr/lib/clang/15.0.0/include/vaesintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/varargs.h
OLD_FILES+=usr/lib/clang/15.0.0/include/vecintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/velintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/velintrin_approx.h
OLD_FILES+=usr/lib/clang/15.0.0/include/velintrin_gen.h
OLD_FILES+=usr/lib/clang/15.0.0/include/vpclmulqdqintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/waitpkgintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/wasm_simd128.h
OLD_FILES+=usr/lib/clang/15.0.0/include/wbnoinvdintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/wmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/x86gprintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/x86intrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xopintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xsavecintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xsaveintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xsaveoptintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xsavesintrin.h
OLD_FILES+=usr/lib/clang/15.0.0/include/xtestintrin.h
OLD_DIRS+=usr/lib/clang/15.0.0/include
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-aarch64.so
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-arm.so
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-armhf.so
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-i386.so
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan-x86_64.so
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_static-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.asan_static-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.cfi_diag-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.dd-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.dd-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-powerpc.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-powerpc64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-powerpc64le.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.profile-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.safestack-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.safestack-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-basic-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-fdr-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-arm.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-armhf.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-profiling-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.0/lib/freebsd/libclang_rt.xray-x86_64.a
OLD_DIRS+=usr/lib/clang/15.0.0/lib/freebsd
OLD_DIRS+=usr/lib/clang/15.0.0/lib
OLD_FILES+=usr/lib/clang/15.0.0/share/asan_ignorelist.txt
OLD_FILES+=usr/lib/clang/15.0.0/share/cfi_ignorelist.txt
OLD_FILES+=usr/lib/clang/15.0.0/share/msan_ignorelist.txt
OLD_DIRS+=usr/lib/clang/15.0.0/share
OLD_DIRS+=usr/lib/clang/15.0.0
OLD_FILES+=usr/lib/clang/15.0.3/include/cuda_wrappers/algorithm
OLD_FILES+=usr/lib/clang/15.0.3/include/cuda_wrappers/complex
OLD_FILES+=usr/lib/clang/15.0.3/include/cuda_wrappers/new
OLD_DIRS+=usr/lib/clang/15.0.3/include/cuda_wrappers
OLD_FILES+=usr/lib/clang/15.0.3/include/fuzzer/FuzzedDataProvider.h
OLD_DIRS+=usr/lib/clang/15.0.3/include/fuzzer
OLD_FILES+=usr/lib/clang/15.0.3/include/hlsl/hlsl_basic_types.h
OLD_FILES+=usr/lib/clang/15.0.3/include/hlsl/hlsl_intrinsics.h
OLD_DIRS+=usr/lib/clang/15.0.3/include/hlsl
OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/__clang_openmp_device_functions.h
OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/cmath
OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/complex
OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/complex.h
OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/complex_cmath.h
OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/math.h
OLD_FILES+=usr/lib/clang/15.0.3/include/openmp_wrappers/new
OLD_DIRS+=usr/lib/clang/15.0.3/include/openmp_wrappers
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/bmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/bmiintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/emmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/immintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/mm_malloc.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/mmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/pmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/smmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/tmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/x86gprintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/x86intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ppc_wrappers/xmmintrin.h
OLD_DIRS+=usr/lib/clang/15.0.3/include/ppc_wrappers
OLD_FILES+=usr/lib/clang/15.0.3/include/profile/InstrProfData.inc
OLD_FILES+=usr/lib/clang/15.0.3/include/profile/MemProfData.inc
OLD_DIRS+=usr/lib/clang/15.0.3/include/profile
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/allocator_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/asan_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/common_interface_defs.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/coverage_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/dfsan_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/hwasan_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/linux_syscall_hooks.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/lsan_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/memprof_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/msan_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/netbsd_syscall_hooks.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/scudo_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/tsan_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/tsan_interface_atomic.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sanitizer/ubsan_interface.h
OLD_DIRS+=usr/lib/clang/15.0.3/include/sanitizer
OLD_FILES+=usr/lib/clang/15.0.3/include/xray/xray_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xray/xray_log_interface.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xray/xray_records.h
OLD_DIRS+=usr/lib/clang/15.0.3/include/xray
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_builtin_vars.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_cmath.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_complex_builtins.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_device_functions.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_intrinsics.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_libdevice_declares.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_math.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_math_forward_declares.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_runtime_wrapper.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_cuda_texture_intrinsics.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_cmath.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_libdevice_declares.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_math.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__clang_hip_runtime_wrapper.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__stddef_max_align_t.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__wmmintrin_aes.h
OLD_FILES+=usr/lib/clang/15.0.3/include/__wmmintrin_pclmul.h
OLD_FILES+=usr/lib/clang/15.0.3/include/adxintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/altivec.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ammintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/amxintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm64intr.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_acle.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_bf16.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_cde.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_cmse.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_fp16.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_mve.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_neon.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_neon_sve_bridge.h
OLD_FILES+=usr/lib/clang/15.0.3/include/arm_sve.h
OLD_FILES+=usr/lib/clang/15.0.3/include/armintr.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx2intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512bf16intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512bitalgintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512bwintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512cdintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512dqintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512erintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512fintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512fp16intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512ifmaintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512ifmavlintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512pfintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vbmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vbmiintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vbmivlintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlbf16intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlbitalgintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlbwintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlcdintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vldqintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlfp16intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlvbmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlvnniintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vlvp2intersectintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vnniintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vp2intersectintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vpopcntdqintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avx512vpopcntdqvlintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avxintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/avxvnniintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/bmi2intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/bmiintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/builtins.h
OLD_FILES+=usr/lib/clang/15.0.3/include/cet.h
OLD_FILES+=usr/lib/clang/15.0.3/include/cetintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/cldemoteintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/clflushoptintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/clwbintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/clzerointrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/cpuid.h
OLD_FILES+=usr/lib/clang/15.0.3/include/crc32intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/emmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/enqcmdintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/f16cintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/float.h
OLD_FILES+=usr/lib/clang/15.0.3/include/fma4intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/fmaintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/fxsrintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/gfniintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/hexagon_circ_brev_intrinsics.h
OLD_FILES+=usr/lib/clang/15.0.3/include/hexagon_protos.h
OLD_FILES+=usr/lib/clang/15.0.3/include/hexagon_types.h
OLD_FILES+=usr/lib/clang/15.0.3/include/hlsl.h
OLD_FILES+=usr/lib/clang/15.0.3/include/hresetintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/htmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/htmxlintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/hvx_hexagon_protos.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ia32intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/immintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/inttypes.h
OLD_FILES+=usr/lib/clang/15.0.3/include/invpcidintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/iso646.h
OLD_FILES+=usr/lib/clang/15.0.3/include/keylockerintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/limits.h
OLD_FILES+=usr/lib/clang/15.0.3/include/lwpintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/lzcntintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/mm3dnow.h
OLD_FILES+=usr/lib/clang/15.0.3/include/mm_malloc.h
OLD_FILES+=usr/lib/clang/15.0.3/include/mmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/module.modulemap
OLD_FILES+=usr/lib/clang/15.0.3/include/movdirintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/msa.h
OLD_FILES+=usr/lib/clang/15.0.3/include/mwaitxintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/nmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/omp-tools.h
OLD_FILES+=usr/lib/clang/15.0.3/include/omp.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ompt.h
OLD_FILES+=usr/lib/clang/15.0.3/include/opencl-c-base.h
OLD_FILES+=usr/lib/clang/15.0.3/include/opencl-c.h
OLD_FILES+=usr/lib/clang/15.0.3/include/pconfigintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/pkuintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/pmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/popcntintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/prfchwintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/ptwriteintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/rdpruintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/rdseedintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/riscv_vector.h
OLD_FILES+=usr/lib/clang/15.0.3/include/rtmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/s390intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/serializeintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/sgxintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/shaintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/smmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/stdalign.h
OLD_FILES+=usr/lib/clang/15.0.3/include/stdarg.h
OLD_FILES+=usr/lib/clang/15.0.3/include/stdatomic.h
OLD_FILES+=usr/lib/clang/15.0.3/include/stdbool.h
OLD_FILES+=usr/lib/clang/15.0.3/include/stddef.h
OLD_FILES+=usr/lib/clang/15.0.3/include/stdint.h
OLD_FILES+=usr/lib/clang/15.0.3/include/stdnoreturn.h
OLD_FILES+=usr/lib/clang/15.0.3/include/tbmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/tgmath.h
OLD_FILES+=usr/lib/clang/15.0.3/include/tmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/tsxldtrkintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/uintrintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/unwind.h
OLD_FILES+=usr/lib/clang/15.0.3/include/vadefs.h
OLD_FILES+=usr/lib/clang/15.0.3/include/vaesintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/varargs.h
OLD_FILES+=usr/lib/clang/15.0.3/include/vecintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/velintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/velintrin_approx.h
OLD_FILES+=usr/lib/clang/15.0.3/include/velintrin_gen.h
OLD_FILES+=usr/lib/clang/15.0.3/include/vpclmulqdqintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/waitpkgintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/wasm_simd128.h
OLD_FILES+=usr/lib/clang/15.0.3/include/wbnoinvdintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/wmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/x86gprintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/x86intrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xmmintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xopintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xsavecintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xsaveintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xsaveoptintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xsavesintrin.h
OLD_FILES+=usr/lib/clang/15.0.3/include/xtestintrin.h
OLD_DIRS+=usr/lib/clang/15.0.3/include
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-aarch64.so
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-arm.so
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-armhf.so
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-i386.so
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan-x86_64.so
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_static-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.asan_static-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.cfi_diag-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.dd-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.dd-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-powerpc.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-powerpc64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-powerpc64le.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.profile-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.safestack-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.safestack-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.safestack-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.stats_client-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-basic-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-fdr-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-aarch64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-arm.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-armhf.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-profiling-x86_64.a
OLD_FILES+=usr/lib/clang/15.0.3/lib/freebsd/libclang_rt.xray-x86_64.a
OLD_DIRS+=usr/lib/clang/15.0.3/lib/freebsd
OLD_DIRS+=usr/lib/clang/15.0.3/lib
OLD_FILES+=usr/lib/clang/15.0.3/share/asan_ignorelist.txt
OLD_FILES+=usr/lib/clang/15.0.3/share/cfi_ignorelist.txt
OLD_FILES+=usr/lib/clang/15.0.3/share/msan_ignorelist.txt
OLD_DIRS+=usr/lib/clang/15.0.3/share
OLD_DIRS+=usr/lib/clang/15.0.3
OLD_DIRS+=usr/lib/clang
OLD_FILES+=usr/share/doc/llvm/clang/LICENSE.TXT
OLD_DIRS+=usr/share/doc/llvm/clang