-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[clang][analyzer] fix false positive of BlockInCriticalSectionChecker #126752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-clang-static-analyzer-1 @llvm/pr-subscribers-clang Author: None (flovent) Changesthis PR close #124474 Full diff: https://github.com/llvm/llvm-project/pull/126752.diff 2 Files Affected:
diff --git a/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
index 7460781799d08a..cfff5a25e7a50f 100644
--- a/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
@@ -145,6 +145,92 @@ using MutexDescriptor =
std::variant<FirstArgMutexDescriptor, MemberMutexDescriptor,
RAIIMutexDescriptor>;
+class NonBlockOpenVisitor : public BugReporterVisitor {
+private:
+ const VarRegion *VR;
+ const CallExpr *OpenCallExpr;
+ int O_NONBLOCKV;
+ bool Satisfied;
+ CallDescription OpenFunction{CDM::CLibrary, {"open"}, 2};
+
+public:
+ NonBlockOpenVisitor(const VarRegion *VR, int O_NONBLOCKV)
+ : VR(VR), OpenCallExpr(nullptr), O_NONBLOCKV(O_NONBLOCKV),
+ Satisfied(false) {}
+
+ static void *getTag() {
+ static int Tag = 0;
+ return static_cast<void *>(&Tag);
+ }
+
+ void Profile(llvm::FoldingSetNodeID &ID) const override {
+ ID.AddPointer(getTag());
+ ID.AddPointer(VR);
+ }
+
+ PathDiagnosticPieceRef VisitNode(const ExplodedNode *N,
+ BugReporterContext &BRC,
+ PathSensitiveBugReport &BR) override {
+ if (Satisfied)
+ return nullptr;
+
+ // check for open call's 2th argument
+ if (std::optional<StmtPoint> P = N->getLocationAs<StmtPoint>()) {
+ if (OpenCallExpr && OpenCallExpr == P->getStmtAs<CallExpr>()) {
+ Satisfied = true;
+ const auto *openFlagExpr = OpenCallExpr->getArg(1);
+ SVal flagSV = N->getSVal(openFlagExpr);
+ const llvm::APSInt *flagV = flagSV.getAsInteger();
+ if (!flagV)
+ return nullptr;
+
+ if ((*flagV & O_NONBLOCKV) != 0)
+ BR.markInvalid(getTag(), nullptr);
+
+ return nullptr;
+ }
+ }
+
+ const ExplodedNode *Pred = N->getFirstPred();
+ SVal presv = Pred->getState()->getSVal(VR);
+ SVal sv = N->getState()->getSVal(VR);
+
+ // check if file descirptor's SVal changed between nodes
+ if (sv == presv)
+ return nullptr;
+
+ std::optional<PostStore> P = N->getLocationAs<PostStore>();
+ if (!P)
+ return nullptr;
+
+ if (const auto *DS = P->getStmtAs<DeclStmt>()) {
+ // variable initialization
+ // int fd = open(...)
+ const VarDecl *VD = VR->getDecl();
+ if (DS->getSingleDecl() == VR->getDecl()) {
+ const auto *InitCall = dyn_cast_if_present<CallExpr>(VD->getInit());
+ if (!InitCall || !OpenFunction.matchesAsWritten(*InitCall))
+ return nullptr;
+
+ OpenCallExpr = InitCall;
+ }
+ } else if (const auto *BO = P->getStmtAs<BinaryOperator>()) {
+ // assignment
+ // fd = open(...)
+ const auto *DRE = dyn_cast<DeclRefExpr>(BO->getLHS());
+ if (DRE && DRE->getDecl() == VR->getDecl()) {
+ const auto *InitCall = dyn_cast<CallExpr>(BO->getRHS());
+ if (!InitCall || !OpenFunction.matchesAsWritten(*InitCall))
+ return nullptr;
+
+ OpenCallExpr = InitCall;
+ }
+ }
+
+ return nullptr;
+ }
+};
+
class BlockInCriticalSectionChecker : public Checker<check::PostCall> {
private:
const std::array<MutexDescriptor, 8> MutexDescriptors{
@@ -339,6 +425,36 @@ void BlockInCriticalSectionChecker::reportBlockInCritSection(
os.str(), ErrNode);
R->addRange(Call.getSourceRange());
R->markInteresting(Call.getReturnValue());
+ // for 'read' call, check whether it's file descriptor(first argument) is
+ // created by 'open' API with O_NONBLOCK flag and don't report for this
+ // situation.
+ if (Call.getCalleeIdentifier()->getName() == "read") {
+ do {
+ const auto *arg = Call.getArgExpr(0);
+ if (!arg)
+ break;
+
+ const auto *DRE = dyn_cast<DeclRefExpr>(arg->IgnoreImpCasts());
+ if (!DRE)
+ break;
+
+ const auto *VD = dyn_cast_if_present<VarDecl>(DRE->getDecl());
+ if (!VD)
+ break;
+
+ const VarRegion *VR = C.getState()->getRegion(VD, C.getLocationContext());
+ if (!VR)
+ break;
+
+ std::optional<int> O_NONBLOCKV = tryExpandAsInteger(
+ "O_NONBLOCK", C.getBugReporter().getPreprocessor());
+ if (!O_NONBLOCKV)
+ break;
+
+ R->addVisitor(
+ std::make_unique<NonBlockOpenVisitor>(VR, O_NONBLOCKV.value()));
+ } while (false);
+ }
C.emitReport(std::move(R));
}
diff --git a/clang/test/Analysis/issue-124474.cpp b/clang/test/Analysis/issue-124474.cpp
new file mode 100644
index 00000000000000..f6d67ae967af98
--- /dev/null
+++ b/clang/test/Analysis/issue-124474.cpp
@@ -0,0 +1,49 @@
+// RUN: %clang_analyze_cc1 \
+// RUN: -analyzer-checker=unix.BlockInCriticalSection \
+// RUN: -std=c++11 \
+// RUN: -analyzer-output text \
+// RUN: -verify %s
+
+// expected-no-diagnostics
+
+namespace std {
+ struct mutex {
+ void lock() {}
+ void unlock() {}
+ };
+ template<typename T>
+ struct lock_guard {
+ lock_guard<T>(std::mutex) {}
+ ~lock_guard<T>() {}
+ };
+ template<typename T>
+ struct unique_lock {
+ unique_lock<T>(std::mutex) {}
+ ~unique_lock<T>() {}
+ };
+ template<typename T>
+ struct not_real_lock {
+ not_real_lock<T>(std::mutex) {}
+ };
+ } // namespace std
+
+std::mutex mtx;
+using ssize_t = long long;
+using size_t = unsigned long long;
+int open (const char *__file, int __oflag, ...);
+ssize_t read(int fd, void *buf, size_t count);
+void close(int fd);
+#define O_RDONLY 00
+# define O_NONBLOCK 04000
+
+void foo()
+{
+ std::lock_guard<std::mutex> lock(mtx);
+
+ const char *filename = "example.txt";
+ int fd = open(filename, O_RDONLY | O_NONBLOCK);
+
+ char buffer[200] = {};
+ read(fd, buffer, 199); // no-warning: fd is a non-block file descriptor
+ close(fd);
+}
\ No newline at end of file
|
Could you summarize the problem and the fix in the PR description? This will help people a lot when they read the git log. |
private: | ||
const VarRegion *VR; | ||
const CallExpr *OpenCallExpr; | ||
int O_NONBLOCKV; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These POSIX constants are often defined as preprocessor macros, so I don't think it's a good idea to use these as symbol names where they could expand to their definition.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i am not sure if i understand you comment right.
To avoid get it every time we need it, O_NONBLOCK
's value is got for marco using tryExpandAsInteger
API in reportBlockInCritSection
, passed to NonBlockOpenVisitor
and stored to this class member O_NONBLOCKV
.
And it may not exists in current TU(didn't include certain header or some other reason), when we can't get it's value, the NonBlockOpenVisitor
will not be needed then.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My suggestion is to call this int
here something else. Maybe int ValueOfONonBlockVFlag; or just
int ValueO_NONBLOCKV;. Something that prevents an accidental expansion to invalid code
int 8;` or something in this file.
Getting the value at runtime from the target architecture and putting it behind this variable is not a problem to do. The only concern here is the name of this variable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i understand now, thank you for explaining, i will change it in the subsequent modification
description is updated @Xazax-hun |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is read the only operation that is non-blocking in this case?
Alternatively, instead of using a BugReporterVisitor, we could maintain a set of file handles that are OK to use.
clang/test/Analysis/issue-124474.cpp
Outdated
char buffer[200] = {}; | ||
read(fd, buffer, 199); // no-warning: fd is a non-block file descriptor | ||
close(fd); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: missing new line at the end of the file.
clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp
Outdated
Show resolved
Hide resolved
// situation. | ||
if (Call.getCalleeIdentifier()->getName() == "read") { | ||
do { | ||
const auto *arg = Call.getArgExpr(0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: I know the function is not consistent at the moment but the coding convention requires variable names to start with an uppercase letter.
if (!arg) | ||
break; | ||
|
||
const auto *DRE = dyn_cast<DeclRefExpr>(arg->IgnoreImpCasts()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Matching the AST is not a good idea. What if the user writes something like cond ? val1 : val2
as the argument? Any reason to not use CallEvent::getArgSVal
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i am hoping to get the MemRegion of file descriptor here and compare its corresponding SVal between pred node and current node in VisitNode
, i can't use getArgSVal
to get SVal as region because open
call is evaluated to a symbol or a literal int value(-1), i need to recognize this two situation.
is there a way to check binding for SVal between nodes or i should do some other operations to check changed node position?
Alternatively, instead of using a BugReporterVisitor, we could maintain a set of file handles that are OK to use.
this is the same reason i didn't use set
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. Unfortunately, matching on the memory region might not be the most reliable.
Having things like int a = b;
would move the value in a new memory region. Also, matching the AST in the bug reporter visitor is fragile as there are many ways to express something.
E.g., imagine if someone has some logging and does something like int fd = LOG(open(...))
where the LOG
macro inserts some extra code? In general, we should try to do as little matching on the AST as possible and should rely in the symbols when we can.
So my proposal would be to maintain a set of symbols in the analysis state. After each open
call look at the returned symbol, and in case it was returning a non-blocking file descriptor put that symbol in the set.
When we report a problem check if the file descriptor we use to report the problem is in the set.
This works great for symbolic file descriptors. Unfortunately, this might break down for concrete integers like 1. But I am wondering if that is a rare edge case enough that we might not need to support. I'd expect open to almost always return a symbolic value. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you for your detailed explanation, I did overlook some complex scenarios.
And I agree with your point, Checking for open
's return value before calling read
is very necessary in a real project, this is a modified testcase with checking for file descirptor,in that case we can ignore concrete integers situation.
void foo()
{
std::lock_guard<std::mutex> lock(mtx);
const char *filename = "example.txt";
int fd = open(filename, O_RDONLY | O_NONBLOCK);
char buffer[200] = {};
if (fd == -1)
return;
read(fd, buffer, 199); // no-warning: fd is a non-block file descriptor
close(fd);
}
this checker checks |
I want to review this PR before anyone would approve and merge this, as I was the one who plotted a potential solution in the linked issue. I hope I can get to this on the weekend. |
i have implemented the way using set successfully in my local development environment as @Xazax-hun suggested.
it's different with your solution in the related issue, and it doesn't handle situation when open return -1. have any thoughts for the discussion above? @steakhal |
Thanks a lot! Actually, I think you can also make the BugReporterVisitor approach work similarly. When you create the visitor, you would pass the symbol associated with the filedescriptor to the visitor and the visitor would track back to the function that created the said symbol. I am fine with both the set and the visitor approach I just want it to be symbol based as opposed to matching the AST. |
I thought about the case when file descriptor equals to -1, which is modeled by |
Oh, for functions that are documented to not block on invalid |
This PR llvm#125646 added this test and it was failing in Android's compiler and on my machine locally. I removed the "Build config" check and it passes now.
When the loop induction variable implicit private clause was being generated, the name was left empty. The intent is that the data clause operation holds the source language variable name. Thus, add the missing name now.
…#126096) Move the code that computes `NumNegativeBits` and `NumPositiveBits` for an enum to a separate function in `ASTContext.h`. This function needs to be called from LLDB as well (llvm#115005)
When optimization is disabled, set `optnone` attribute all module entry functions. Updated test in accordance with the change. Closes llvm#124796
When cross compiling the libc-stdbit-tests, the existing tests trigger numerous instances of -Wimplicit-int-conversion. The truncation of these implicit promotions is intentional.
i have some wrong operations about git here ... i feel very sorry |
You can test this locally with the following command:git-clang-format --diff 9387fd96314c59fc9aff1a82e478f9b89a97c20a 551b04136a9296b3983635cb0e9e846a53d98a08 --extensions ,inc,cpp,c,h -- clang/test/Analysis/issue-124474.cpp clang/test/OpenMP/spirv_variant_match.cpp libc/src/math/generic/atan2f_float.h libc/src/stdfix/countlshk.cpp libc/src/stdfix/countlshk.h libc/src/stdfix/countlshr.cpp libc/src/stdfix/countlshr.h libc/src/stdfix/countlsk.cpp libc/src/stdfix/countlsk.h libc/src/stdfix/countlslk.cpp libc/src/stdfix/countlslk.h libc/src/stdfix/countlslr.cpp libc/src/stdfix/countlslr.h libc/src/stdfix/countlsr.cpp libc/src/stdfix/countlsr.h libc/src/stdfix/countlsuhk.cpp libc/src/stdfix/countlsuhk.h libc/src/stdfix/countlsuhr.cpp libc/src/stdfix/countlsuhr.h libc/src/stdfix/countlsuk.cpp libc/src/stdfix/countlsuk.h libc/src/stdfix/countlsulk.cpp libc/src/stdfix/countlsulk.h libc/src/stdfix/countlsulr.cpp libc/src/stdfix/countlsulr.h libc/src/stdfix/countlsur.cpp libc/src/stdfix/countlsur.h libc/test/src/stdfix/CountlsTest.h libc/test/src/stdfix/countlshk_test.cpp libc/test/src/stdfix/countlshr_test.cpp libc/test/src/stdfix/countlsk_test.cpp libc/test/src/stdfix/countlslk_test.cpp libc/test/src/stdfix/countlslr_test.cpp libc/test/src/stdfix/countlsr_test.cpp libc/test/src/stdfix/countlsuhk_test.cpp libc/test/src/stdfix/countlsuhr_test.cpp libc/test/src/stdfix/countlsuk_test.cpp libc/test/src/stdfix/countlsulk_test.cpp libc/test/src/stdfix/countlsulr_test.cpp libc/test/src/stdfix/countlsur_test.cpp libclc/clc/include/clc/clc_convert.h libclc/clc/include/clc/float/definitions.h lldb/test/API/functionalities/thread/finish-from-empty-func/main.c llvm/include/llvm/CodeGen/DroppedVariableStatsMIR.h llvm/lib/CodeGen/DroppedVariableStatsMIR.cpp llvm/lib/IR/DroppedVariableStats.cpp llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.h llvm/lib/Target/RISCV/RISCVVMV0Elimination.cpp llvm/unittests/CodeGen/DroppedVariableStatsMIRTest.cpp mlir/include/mlir/Dialect/Arith/Transforms/ShardingInterfaceImpl.h mlir/lib/Dialect/Arith/Transforms/ShardingInterfaceImpl.cpp openmp/runtime/test/misc_bugs/simd_conservative_ordered.c bolt/include/bolt/Core/BinarySection.h bolt/tools/driver/llvm-bolt.cpp bolt/unittests/Core/BinaryContext.cpp clang/include/clang/AST/ASTContext.h clang/include/clang/AST/JSONNodeDumper.h clang/include/clang/AST/Mangle.h clang/include/clang/AST/TextNodeDumper.h clang/include/clang/Basic/LangOptions.h clang/lib/AST/ASTContext.cpp clang/lib/AST/ByteCode/InterpBuiltin.cpp clang/lib/AST/ExprConstant.cpp clang/lib/AST/JSONNodeDumper.cpp clang/lib/AST/TextNodeDumper.cpp clang/lib/Analysis/LiveVariables.cpp clang/lib/CodeGen/CGDebugInfo.cpp clang/lib/CodeGen/CGHLSLRuntime.cpp clang/lib/CodeGen/CGObjCMac.cpp clang/lib/CodeGen/CGObjCRuntime.h clang/lib/CodeGen/CGOpenMPRuntime.cpp clang/lib/CodeGen/CGStmtOpenMP.cpp clang/lib/CodeGen/CodeGenFunction.h clang/lib/CodeGen/CodeGenModule.h clang/lib/CodeGen/Targets/NVPTX.cpp clang/lib/Driver/ToolChains/AMDGPU.cpp clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ROCm.h clang/lib/Format/UnwrappedLineFormatter.cpp clang/lib/Frontend/PrintPreprocessedOutput.cpp clang/lib/Sema/HeuristicResolver.cpp clang/lib/Sema/SemaDecl.cpp clang/lib/Sema/SemaOpenMP.cpp clang/lib/Sema/SemaTemplateDeductionGuide.cpp clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp clang/lib/StaticAnalyzer/Core/ExprEngine.cpp clang/test/AST/ByteCode/new-delete.cpp clang/test/AST/ast-dump-templates.cpp clang/test/Analysis/Checkers/WebKit/call-args-counted-const-member.cpp clang/test/Analysis/Checkers/WebKit/mock-types.h clang/test/Analysis/analyzer-config.c clang/test/Analysis/live-stmts.cpp clang/test/Analysis/loop-assumptions.c clang/test/Analysis/out-of-bounds-constraint-check.c clang/test/Analysis/out-of-bounds.c clang/test/CodeGen/allow-ubsan-check.c clang/test/CodeGenCXX/RelativeVTablesABI/dynamic-cast.cpp clang/test/CodeGenCXX/RelativeVTablesABI/type-info.cpp clang/test/Driver/amdgpu-openmp-sanitize-options.c clang/test/OpenMP/ordered_codegen.cpp clang/test/Preprocessor/embed_preprocess_to_file.c clang/test/SemaCXX/cxx20-ctad-type-alias.cpp clang/test/Tooling/clang-linker-wrapper-spirv-elf.cpp clang/tools/clang-installapi/Options.cpp clang/tools/libclang/CXString.cpp clang/unittests/Format/TokenAnnotatorTest.cpp clang/unittests/Sema/HeuristicResolverTest.cpp compiler-rt/lib/profile/InstrProfiling.h compiler-rt/lib/profile/InstrProfilingFile.c compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h compiler-rt/lib/scudo/standalone/chunk.h compiler-rt/lib/scudo/standalone/report.cpp compiler-rt/lib/scudo/standalone/report.h compiler-rt/lib/scudo/standalone/tests/report_test.cpp flang/include/flang/Optimizer/Dialect/FIRType.h flang/include/flang/Optimizer/OpenACC/FIROpenACCTypeInterfaces.h flang/include/flang/Semantics/openmp-directive-sets.h flang/include/flang/Tools/PointerModels.h flang/lib/Frontend/FrontendActions.cpp flang/lib/Lower/OpenACC.cpp flang/lib/Lower/OpenMP/PrivateReductionUtils.cpp flang/lib/Optimizer/Analysis/AliasAnalysis.cpp flang/lib/Optimizer/CodeGen/CodeGen.cpp flang/lib/Optimizer/CodeGen/TargetRewrite.cpp flang/lib/Optimizer/Dialect/FIROps.cpp flang/lib/Optimizer/Dialect/FIRType.cpp flang/lib/Optimizer/OpenACC/FIROpenACCTypeInterfaces.cpp flang/lib/Optimizer/OpenACC/RegisterOpenACCExtensions.cpp flang/lib/Optimizer/Passes/Pipelines.cpp flang/lib/Optimizer/Transforms/AddDebugInfo.cpp flang/lib/Semantics/check-omp-structure.cpp flang/test/lib/OpenACC/TestOpenACCInterfaces.cpp libc/include/__llvm-libc-common.h libc/include/llvm-libc-macros/endian-macros.h libc/include/llvm-libc-macros/features-macros.h libc/include/llvm-libc-macros/pthread-macros.h libc/include/llvm-libc-types/struct_tm.h libc/src/__support/CPP/bit.h libc/src/__support/FPUtil/double_double.h libc/src/__support/fixed_point/fx_bits.h libc/src/__support/fixed_point/fx_rep.h libc/src/__support/macros/optimization.h libc/src/math/generic/atan2f.cpp libc/src/math/generic/pow.cpp libc/src/math/generic/range_reduction_double_common.h libc/src/math/generic/range_reduction_double_fma.h libc/src/math/generic/range_reduction_double_nofma.h libc/src/time/mktime.cpp libc/src/time/time_constants.h libc/src/time/time_utils.cpp libc/src/time/time_utils.h libc/test/integration/src/pthread/pthread_mutex_test.cpp libc/test/src/__support/CPP/bit_test.cpp libc/test/src/stdbit/stdc_bit_ceil_uc_test.cpp libc/test/src/stdbit/stdc_bit_ceil_us_test.cpp libc/test/src/stdbit/stdc_first_leading_one_uc_test.cpp libc/test/src/stdbit/stdc_first_leading_one_us_test.cpp libc/test/src/stdbit/stdc_first_leading_zero_uc_test.cpp libc/test/src/stdbit/stdc_first_leading_zero_us_test.cpp libc/test/src/stdbit/stdc_first_trailing_one_uc_test.cpp libc/test/src/stdbit/stdc_first_trailing_one_us_test.cpp libc/test/src/stdbit/stdc_first_trailing_zero_uc_test.cpp libc/test/src/stdbit/stdc_first_trailing_zero_us_test.cpp libc/test/src/stdbit/stdc_has_single_bit_uc_test.cpp libc/test/src/stdbit/stdc_has_single_bit_us_test.cpp libc/test/src/stdbit/stdc_leading_ones_uc_test.cpp libc/test/src/stdbit/stdc_leading_ones_us_test.cpp libc/test/src/stdbit/stdc_leading_zeros_uc_test.cpp libc/test/src/stdbit/stdc_leading_zeros_us_test.cpp libc/test/src/stdbit/stdc_trailing_ones_uc_test.cpp libc/test/src/stdbit/stdc_trailing_ones_us_test.cpp libc/test/src/stdbit/stdc_trailing_zeros_uc_test.cpp libc/test/src/stdbit/stdc_trailing_zeros_us_test.cpp libclc/generic/include/clc/convert.h libcxx/include/__config libcxx/include/__filesystem/path.h libcxx/include/__vector/vector_bool.h libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.pass.cpp libcxxabi/src/cxa_default_handlers.cpp lldb/include/lldb/API/SBTarget.h lldb/include/lldb/API/SBType.h lldb/include/lldb/API/SBValue.h lldb/include/lldb/Core/Debugger.h lldb/include/lldb/Core/UserSettingsController.h lldb/source/API/SBDebugger.cpp lldb/source/API/SBType.cpp lldb/source/Commands/CommandObjectDisassemble.cpp lldb/source/Commands/CommandObjectDisassemble.h lldb/source/Core/Debugger.cpp lldb/source/Core/DynamicLoader.cpp lldb/source/Core/Telemetry.cpp lldb/source/Core/UserSettingsController.cpp lldb/source/Interpreter/ScriptInterpreter.cpp lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp lldb/source/Symbol/Block.cpp lldb/source/Symbol/SymbolContext.cpp lldb/source/Target/Process.cpp lldb/source/Target/Target.cpp lldb/source/Target/ThreadPlanStepOut.cpp lldb/source/Target/ThreadPlanTracer.cpp lldb/test/API/lang/cpp/template-arguments/main.cpp lldb/test/Shell/SymbolFile/DWARF/x86/simplified-template-names.cpp llvm/include/llvm/Analysis/CaptureTracking.h llvm/include/llvm/Analysis/DDG.h llvm/include/llvm/Analysis/DependenceAnalysis.h llvm/include/llvm/Analysis/LoopAccessAnalysis.h llvm/include/llvm/Analysis/SparsePropagation.h llvm/include/llvm/AsmParser/LLToken.h llvm/include/llvm/CodeGen/MachinePipeliner.h llvm/include/llvm/CodeGen/MachineScheduler.h llvm/include/llvm/CodeGen/SelectionDAGNodes.h llvm/include/llvm/CodeGen/TargetFrameLowering.h llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h llvm/include/llvm/IR/DIBuilder.h llvm/include/llvm/IR/IRBuilder.h llvm/include/llvm/InitializePasses.h llvm/include/llvm/MC/MCContext.h llvm/include/llvm/MC/MCELFStreamer.h llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h llvm/include/llvm/Passes/CodeGenPassBuilder.h llvm/include/llvm/Passes/StandardInstrumentations.h llvm/include/llvm/Support/ModRef.h llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h llvm/lib/Analysis/CaptureTracking.cpp llvm/lib/Analysis/DDG.cpp llvm/lib/Analysis/DependenceAnalysis.cpp llvm/lib/Analysis/DependenceGraphBuilder.cpp llvm/lib/Analysis/InstructionSimplify.cpp llvm/lib/Analysis/LoopAccessAnalysis.cpp llvm/lib/Analysis/LoopCacheAnalysis.cpp llvm/lib/Analysis/ValueTracking.cpp llvm/lib/AsmParser/LLLexer.cpp llvm/lib/AsmParser/LLParser.cpp llvm/lib/Bitcode/Reader/BitcodeReader.cpp llvm/lib/Bitcode/Writer/BitcodeWriter.cpp llvm/lib/CodeGen/CFIFixup.cpp llvm/lib/CodeGen/CodeGen.cpp llvm/lib/CodeGen/MachineFunctionPass.cpp llvm/lib/CodeGen/MachineScheduler.cpp llvm/lib/CodeGen/RegAllocBasic.cpp llvm/lib/CodeGen/RegAllocGreedy.cpp llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp llvm/lib/ExecutionEngine/Orc/LLJIT.cpp llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp llvm/lib/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.cpp llvm/lib/Frontend/OpenMP/OMPContext.cpp llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp llvm/lib/IR/Attributes.cpp llvm/lib/IR/AutoUpgrade.cpp llvm/lib/IR/Constants.cpp llvm/lib/IR/DIBuilder.cpp llvm/lib/IR/DebugInfo.cpp llvm/lib/MC/MCContext.cpp llvm/lib/MC/MCObjectFileInfo.cpp llvm/lib/MC/MCParser/WasmAsmParser.cpp llvm/lib/Object/GOFFObjectFile.cpp llvm/lib/Passes/PassBuilder.cpp llvm/lib/Passes/PassBuilderPipelines.cpp llvm/lib/Support/ModRef.cpp llvm/lib/Support/Unix/Process.inc llvm/lib/Target/AArch64/AArch64FrameLowering.cpp llvm/lib/Target/AArch64/AArch64FrameLowering.h llvm/lib/Target/AArch64/AArch64ISelLowering.cpp llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp llvm/lib/Target/AMDGPU/AMDGPU.h llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp llvm/lib/Target/AMDGPU/AMDGPUMemoryUtils.cpp llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.h llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.h llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp llvm/lib/Target/AMDGPU/R600InstrInfo.cpp llvm/lib/Target/AMDGPU/R600InstrInfo.h llvm/lib/Target/AMDGPU/R600Packetizer.cpp llvm/lib/Target/AMDGPU/SIFoldOperands.cpp llvm/lib/Target/AMDGPU/SIISelLowering.cpp llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp llvm/lib/Target/AMDGPU/SIInstrInfo.cpp llvm/lib/Target/AMDGPU/SIInstrInfo.h llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h llvm/lib/Target/ARM/ARMCallingConv.cpp llvm/lib/Target/ARM/ARMISelLowering.cpp llvm/lib/Target/DirectX/DXILShaderFlags.cpp llvm/lib/Target/DirectX/DXILShaderFlags.h llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp llvm/lib/Target/Hexagon/HexagonLoopAlign.cpp llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h llvm/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp llvm/lib/Target/NVPTX/NVPTXISelLowering.h llvm/lib/Target/NVPTX/NVPTXUtilities.cpp llvm/lib/Target/RISCV/RISCV.h llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp llvm/lib/Target/RISCV/RISCVISelLowering.cpp llvm/lib/Target/RISCV/RISCVInstrInfo.h llvm/lib/Target/RISCV/RISCVTargetMachine.cpp llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h llvm/lib/Target/X86/X86DomainReassignment.cpp llvm/lib/Target/X86/X86ISelLowering.cpp llvm/lib/Transforms/Coroutines/CoroFrame.cpp llvm/lib/Transforms/IPO/AttributorAttributes.cpp llvm/lib/Transforms/IPO/FunctionAttrs.cpp llvm/lib/Transforms/IPO/SCCP.cpp llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp llvm/lib/Transforms/Scalar/LoopFuse.cpp llvm/lib/Transforms/Scalar/LoopInterchange.cpp llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp llvm/lib/Transforms/Scalar/SROA.cpp llvm/lib/Transforms/Utils/CodeMoverUtils.cpp llvm/lib/Transforms/Utils/Debugify.cpp llvm/lib/Transforms/Utils/Local.cpp llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp llvm/lib/Transforms/Vectorize/LoopVectorize.cpp llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp llvm/lib/Transforms/Vectorize/VPlan.h llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp llvm/tools/llvm-jitlink/llvm-jitlink.cpp llvm/unittests/Analysis/CaptureTrackingTest.cpp llvm/unittests/IR/IRBuilderTest.cpp llvm/unittests/Support/ModRefTest.cpp llvm/unittests/Transforms/Utils/CloningTest.cpp llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp llvm/unittests/Transforms/Vectorize/SandboxVectorizer/InstrMapsTest.cpp llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp llvm/utils/TableGen/InstrInfoEmitter.cpp llvm/utils/TableGen/RegisterInfoEmitter.cpp mlir/include/mlir-c/IR.h mlir/include/mlir/Dialect/Affine/Passes.h mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h mlir/include/mlir/Dialect/DLTI/DLTI.h mlir/include/mlir/Dialect/Mesh/IR/MeshOps.h mlir/include/mlir/Dialect/Mesh/Interfaces/ShardingInterface.h mlir/include/mlir/Dialect/Tensor/IR/Tensor.h mlir/include/mlir/InitAllDialects.h mlir/lib/Analysis/DataFlow/IntegerRangeAnalysis.cpp mlir/lib/Bindings/Python/IRCore.cpp mlir/lib/Bytecode/Writer/BytecodeWriter.cpp mlir/lib/CAPI/IR/IR.cpp mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp mlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp mlir/lib/Dialect/DLTI/DLTI.cpp mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp mlir/lib/Dialect/Mesh/IR/MeshOps.cpp mlir/lib/Dialect/Mesh/Interfaces/ShardingInterface.cpp mlir/lib/Dialect/Mesh/Transforms/ShardingPropagation.cpp mlir/lib/Dialect/Mesh/Transforms/Spmdization.cpp mlir/lib/Dialect/Tensor/Extensions/MeshShardingExtensions.cpp mlir/lib/Dialect/Tensor/IR/TensorOps.cpp mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp mlir/lib/Dialect/Tosa/IR/TosaOps.cpp mlir/lib/Dialect/Tosa/Transforms/TosaReduceTransposes.cpp mlir/lib/Dialect/Vector/IR/VectorOps.cpp mlir/lib/IR/AsmPrinter.cpp mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp mlir/lib/Target/LLVMIR/ModuleTranslation.cpp mlir/tools/mlir-tblgen/OpDocGen.cpp mlir/tools/mlir-tblgen/OpInterfacesGen.cpp mlir/tools/mlir-tblgen/PassDocGen.cpp mlir/unittests/Bytecode/BytecodeTest.cpp offload/include/Shared/Environment.h offload/plugins-nextgen/common/include/GlobalHandler.h offload/plugins-nextgen/common/include/RPC.h offload/plugins-nextgen/common/src/GlobalHandler.cpp offload/plugins-nextgen/common/src/PluginInterface.cpp offload/plugins-nextgen/common/src/RPC.cpp offload/test/offloading/pgo1.c utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h llvm/include/llvm/IR/DroppedVariableStats.h llvm/include/llvm/IR/DroppedVariableStatsIR.h llvm/lib/IR/DroppedVariableStatsIR.cpp View the diff from clang-format here.diff --git a/lldb/source/Target/ThreadPlanStepOut.cpp b/lldb/source/Target/ThreadPlanStepOut.cpp
index a05c46db6b..49a40cf085 100644
--- a/lldb/source/Target/ThreadPlanStepOut.cpp
+++ b/lldb/source/Target/ThreadPlanStepOut.cpp
@@ -365,7 +365,8 @@ bool ThreadPlanStepOut::ShouldStop(Event *event_ptr) {
if (!done) {
StopInfoSP stop_info_sp = GetPrivateStopInfo();
- if (stop_info_sp && stop_info_sp->GetStopReason() == eStopReasonBreakpoint) {
+ if (stop_info_sp &&
+ stop_info_sp->GetStopReason() == eStopReasonBreakpoint) {
StackID frame_zero_id = GetThread().GetStackFrameAtIndex(0)->GetStackID();
done = !(frame_zero_id < m_step_out_to_id);
}
diff --git a/llvm/include/llvm/Analysis/DDG.h b/llvm/include/llvm/Analysis/DDG.h
index dfd84a9add..c08b6b7eab 100644
--- a/llvm/include/llvm/Analysis/DDG.h
+++ b/llvm/include/llvm/Analysis/DDG.h
@@ -452,8 +452,7 @@ bool DependenceGraphInfo<NodeType>::getDependencies(
for (auto *SrcI : SrcIList)
for (auto *DstI : DstIList)
- if (auto Dep =
- const_cast<DependenceInfo *>(&DI)->depends(SrcI, DstI))
+ if (auto Dep = const_cast<DependenceInfo *>(&DI)->depends(SrcI, DstI))
Deps.push_back(std::move(Dep));
return !Deps.empty();
diff --git a/llvm/include/llvm/Analysis/DependenceAnalysis.h b/llvm/include/llvm/Analysis/DependenceAnalysis.h
index 426ac757b4..5e1b3991c8 100644
--- a/llvm/include/llvm/Analysis/DependenceAnalysis.h
+++ b/llvm/include/llvm/Analysis/DependenceAnalysis.h
@@ -303,8 +303,7 @@ namespace llvm {
/// depends - Tests for a dependence between the Src and Dst instructions.
/// Returns NULL if no dependence; otherwise, returns a Dependence (or a
/// FullDependence) with as much information as can be gleaned.
- std::unique_ptr<Dependence> depends(Instruction *Src,
- Instruction *Dst);
+ std::unique_ptr<Dependence> depends(Instruction *Src, Instruction *Dst);
/// getSplitIteration - Give a dependence that's splittable at some
/// particular level, return the iteration that should be used to split
diff --git a/llvm/lib/Analysis/DependenceAnalysis.cpp b/llvm/lib/Analysis/DependenceAnalysis.cpp
index cd252c62ba..a62f996f82 100644
--- a/llvm/lib/Analysis/DependenceAnalysis.cpp
+++ b/llvm/lib/Analysis/DependenceAnalysis.cpp
@@ -199,8 +199,7 @@ static void dumpExampleDependence(raw_ostream &OS, DependenceInfo *DA,
OS << "!\n";
}
}
- }
- else
+ } else
OS << "none!\n";
}
}
@@ -3588,8 +3587,8 @@ bool DependenceInfo::invalidate(Function &F, const PreservedAnalyses &PA,
//
// Care is required to keep the routine below, getSplitIteration(),
// up to date with respect to this routine.
-std::unique_ptr<Dependence>
-DependenceInfo::depends(Instruction *Src, Instruction *Dst) {
+std::unique_ptr<Dependence> DependenceInfo::depends(Instruction *Src,
+ Instruction *Dst) {
bool PossiblyLoopIndependent = true;
if (Src == Dst)
PossiblyLoopIndependent = false;
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index 2bac1d0086..1fb210667a 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -8497,12 +8497,9 @@ bool ARMTargetLowering::isShuffleMaskLegal(ArrayRef<int> M, EVT VT) const {
unsigned Imm, WhichResult;
unsigned EltSize = VT.getScalarSizeInBits();
- if (EltSize >= 32 ||
- ShuffleVectorSDNode::isSplatMask(M) ||
- ShuffleVectorInst::isIdentityMask(M, M.size()) ||
- isVREVMask(M, VT, 64) ||
- isVREVMask(M, VT, 32) ||
- isVREVMask(M, VT, 16))
+ if (EltSize >= 32 || ShuffleVectorSDNode::isSplatMask(M) ||
+ ShuffleVectorInst::isIdentityMask(M, M.size()) || isVREVMask(M, VT, 64) ||
+ isVREVMask(M, VT, 32) || isVREVMask(M, VT, 16))
return true;
else if (Subtarget->hasNEON() &&
(isVEXTMask(M, VT, ReverseVEXT, Imm) ||
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index 829eef2e4d..1311edde4b 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -5356,8 +5356,7 @@ static bool isLocalRepeatingShuffle(ArrayRef<int> Mask, int Span) {
/// Is this mask only using elements from the first span of the input?
static bool isLowSourceShuffle(ArrayRef<int> Mask, int Span) {
- return all_of(Mask,
- [&](const auto &Idx) { return Idx == -1 || Idx < Span; });
+ return all_of(Mask, [&](const auto &Idx) { return Idx == -1 || Idx < Span; });
}
/// Try to widen element type to get a new mask value for a better permutation
@@ -5791,9 +5790,8 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG,
Gather = DAG.getUNDEF(ContainerVT);
SDValue SlideAmt =
DAG.getElementCount(DL, XLenVT, M1VT.getVectorElementCount());
- SDValue SubV1 =
- DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, M1VT, V1,
- DAG.getVectorIdxConstant(0, DL));
+ SDValue SubV1 = DAG.getNode(ISD::EXTRACT_SUBVECTOR, DL, M1VT, V1,
+ DAG.getVectorIdxConstant(0, DL));
for (int i = 0; i < N; i++) {
if (i != 0)
LHSIndices = getVSlidedown(DAG, Subtarget, DL, IndexContainerVT,
|
You can test this locally with the following command:git diff -U0 --pickaxe-regex -S '([^a-zA-Z0-9#_-]undef[^a-zA-Z0-9_-]|UndefValue::get)' 9387fd96314c59fc9aff1a82e478f9b89a97c20a 551b04136a9296b3983635cb0e9e846a53d98a08 clang/test/Analysis/issue-124474.cpp clang/test/OpenMP/spirv_variant_match.cpp libc/src/math/generic/atan2f_float.h libc/src/stdfix/countlshk.cpp libc/src/stdfix/countlshk.h libc/src/stdfix/countlshr.cpp libc/src/stdfix/countlshr.h libc/src/stdfix/countlsk.cpp libc/src/stdfix/countlsk.h libc/src/stdfix/countlslk.cpp libc/src/stdfix/countlslk.h libc/src/stdfix/countlslr.cpp libc/src/stdfix/countlslr.h libc/src/stdfix/countlsr.cpp libc/src/stdfix/countlsr.h libc/src/stdfix/countlsuhk.cpp libc/src/stdfix/countlsuhk.h libc/src/stdfix/countlsuhr.cpp libc/src/stdfix/countlsuhr.h libc/src/stdfix/countlsuk.cpp libc/src/stdfix/countlsuk.h libc/src/stdfix/countlsulk.cpp libc/src/stdfix/countlsulk.h libc/src/stdfix/countlsulr.cpp libc/src/stdfix/countlsulr.h libc/src/stdfix/countlsur.cpp libc/src/stdfix/countlsur.h libc/test/src/stdfix/CountlsTest.h libc/test/src/stdfix/countlshk_test.cpp libc/test/src/stdfix/countlshr_test.cpp libc/test/src/stdfix/countlsk_test.cpp libc/test/src/stdfix/countlslk_test.cpp libc/test/src/stdfix/countlslr_test.cpp libc/test/src/stdfix/countlsr_test.cpp libc/test/src/stdfix/countlsuhk_test.cpp libc/test/src/stdfix/countlsuhr_test.cpp libc/test/src/stdfix/countlsuk_test.cpp libc/test/src/stdfix/countlsulk_test.cpp libc/test/src/stdfix/countlsulr_test.cpp libc/test/src/stdfix/countlsur_test.cpp libclc/clc/include/clc/clc_convert.h libclc/clc/include/clc/float/definitions.h lldb/test/API/functionalities/thread/finish-from-empty-func/main.c llvm/include/llvm/CodeGen/DroppedVariableStatsMIR.h llvm/lib/CodeGen/DroppedVariableStatsMIR.cpp llvm/lib/IR/DroppedVariableStats.cpp llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.h llvm/lib/Target/RISCV/RISCVVMV0Elimination.cpp llvm/test/Analysis/LoopAccessAnalysis/retry-runtime-checks-after-dependence-analysis.ll llvm/test/Bitcode/memory-attribute-upgrade.ll llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lsfe.ll llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-v8a_fp.ll llvm/test/CodeGen/AArch64/Atomics/aarch64_be-atomicrmw-lsfe.ll llvm/test/CodeGen/AArch64/Atomics/aarch64_be-atomicrmw-v8a_fp.ll llvm/test/CodeGen/AMDGPU/dumpcode.ll llvm/test/CodeGen/AMDGPU/iglp-no-clobber.ll llvm/test/CodeGen/AMDGPU/llvm.amdgcn.workitem.id-unsupported-calling-convention.ll llvm/test/CodeGen/DirectX/ShaderFlags/disable-opt-cs.ll llvm/test/CodeGen/DirectX/ShaderFlags/disable-opt-lib.ll llvm/test/CodeGen/DirectX/ShaderFlags/lib-entry-attr-error.ll llvm/test/CodeGen/RISCV/rvv/vmv0-elimination.ll llvm/test/CodeGen/Thumb2/bf16-pcs.ll llvm/test/CodeGen/Thumb2/fp16-pcs.ll llvm/test/LTO/X86/coro.ll llvm/test/Transforms/FunctionAttrs/sendmsg-nocallback.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub.ll llvm/test/Transforms/PhaseOrdering/AArch64/udotabd.ll llvm/test/Transforms/SLPVectorizer/SystemZ/reuse-non-power-of-2-reorder.ll llvm/test/Transforms/Util/strip-nonlinetable-debuginfo-pr125116.ll llvm/unittests/CodeGen/DroppedVariableStatsMIRTest.cpp mlir/include/mlir/Dialect/Arith/Transforms/ShardingInterfaceImpl.h mlir/lib/Dialect/Arith/Transforms/ShardingInterfaceImpl.cpp openmp/runtime/test/misc_bugs/simd_conservative_ordered.c bolt/include/bolt/Core/BinarySection.h bolt/tools/driver/llvm-bolt.cpp bolt/unittests/Core/BinaryContext.cpp clang/include/clang/AST/ASTContext.h clang/include/clang/AST/JSONNodeDumper.h clang/include/clang/AST/Mangle.h clang/include/clang/AST/TextNodeDumper.h clang/include/clang/Basic/LangOptions.h clang/lib/AST/ASTContext.cpp clang/lib/AST/ByteCode/InterpBuiltin.cpp clang/lib/AST/ExprConstant.cpp clang/lib/AST/JSONNodeDumper.cpp clang/lib/AST/TextNodeDumper.cpp clang/lib/Analysis/LiveVariables.cpp clang/lib/CodeGen/CGDebugInfo.cpp clang/lib/CodeGen/CGHLSLRuntime.cpp clang/lib/CodeGen/CGObjCMac.cpp clang/lib/CodeGen/CGObjCRuntime.h clang/lib/CodeGen/CGOpenMPRuntime.cpp clang/lib/CodeGen/CGStmtOpenMP.cpp clang/lib/CodeGen/CodeGenFunction.h clang/lib/CodeGen/CodeGenModule.h clang/lib/CodeGen/Targets/NVPTX.cpp clang/lib/Driver/ToolChains/AMDGPU.cpp clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/ROCm.h clang/lib/Format/UnwrappedLineFormatter.cpp clang/lib/Frontend/PrintPreprocessedOutput.cpp clang/lib/Sema/HeuristicResolver.cpp clang/lib/Sema/SemaDecl.cpp clang/lib/Sema/SemaOpenMP.cpp clang/lib/Sema/SemaTemplateDeductionGuide.cpp clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp clang/lib/StaticAnalyzer/Checkers/WebKit/ASTUtils.cpp clang/lib/StaticAnalyzer/Core/ExprEngine.cpp clang/test/AST/ByteCode/new-delete.cpp clang/test/AST/ast-dump-templates.cpp clang/test/Analysis/Checkers/WebKit/call-args-counted-const-member.cpp clang/test/Analysis/Checkers/WebKit/mock-types.h clang/test/Analysis/analyzer-config.c clang/test/Analysis/live-stmts.cpp clang/test/Analysis/loop-assumptions.c clang/test/Analysis/out-of-bounds-constraint-check.c clang/test/Analysis/out-of-bounds.c clang/test/CodeGen/allow-ubsan-check.c clang/test/CodeGenCXX/RelativeVTablesABI/dynamic-cast.cpp clang/test/CodeGenCXX/RelativeVTablesABI/type-info.cpp clang/test/Driver/amdgpu-openmp-sanitize-options.c clang/test/OpenMP/ordered_codegen.cpp clang/test/Preprocessor/embed_preprocess_to_file.c clang/test/SemaCXX/cxx20-ctad-type-alias.cpp clang/test/Tooling/clang-linker-wrapper-spirv-elf.cpp clang/tools/clang-installapi/Options.cpp clang/tools/libclang/CXString.cpp clang/unittests/Format/TokenAnnotatorTest.cpp clang/unittests/Sema/HeuristicResolverTest.cpp compiler-rt/lib/profile/InstrProfiling.h compiler-rt/lib/profile/InstrProfilingFile.c compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h compiler-rt/lib/scudo/standalone/chunk.h compiler-rt/lib/scudo/standalone/report.cpp compiler-rt/lib/scudo/standalone/report.h compiler-rt/lib/scudo/standalone/tests/report_test.cpp flang/include/flang/Optimizer/Dialect/FIRType.h flang/include/flang/Optimizer/OpenACC/FIROpenACCTypeInterfaces.h flang/include/flang/Semantics/openmp-directive-sets.h flang/include/flang/Tools/PointerModels.h flang/lib/Frontend/FrontendActions.cpp flang/lib/Lower/OpenACC.cpp flang/lib/Lower/OpenMP/PrivateReductionUtils.cpp flang/lib/Optimizer/Analysis/AliasAnalysis.cpp flang/lib/Optimizer/CodeGen/CodeGen.cpp flang/lib/Optimizer/CodeGen/TargetRewrite.cpp flang/lib/Optimizer/Dialect/FIROps.cpp flang/lib/Optimizer/Dialect/FIRType.cpp flang/lib/Optimizer/OpenACC/FIROpenACCTypeInterfaces.cpp flang/lib/Optimizer/OpenACC/RegisterOpenACCExtensions.cpp flang/lib/Optimizer/Passes/Pipelines.cpp flang/lib/Optimizer/Transforms/AddDebugInfo.cpp flang/lib/Semantics/check-omp-structure.cpp flang/test/lib/OpenACC/TestOpenACCInterfaces.cpp libc/include/__llvm-libc-common.h libc/include/llvm-libc-macros/endian-macros.h libc/include/llvm-libc-macros/features-macros.h libc/include/llvm-libc-macros/pthread-macros.h libc/include/llvm-libc-types/struct_tm.h libc/src/__support/CPP/bit.h libc/src/__support/FPUtil/double_double.h libc/src/__support/fixed_point/fx_bits.h libc/src/__support/fixed_point/fx_rep.h libc/src/__support/macros/optimization.h libc/src/math/generic/atan2f.cpp libc/src/math/generic/pow.cpp libc/src/math/generic/range_reduction_double_common.h libc/src/math/generic/range_reduction_double_fma.h libc/src/math/generic/range_reduction_double_nofma.h libc/src/time/mktime.cpp libc/src/time/time_constants.h libc/src/time/time_utils.cpp libc/src/time/time_utils.h libc/test/integration/src/pthread/pthread_mutex_test.cpp libc/test/src/__support/CPP/bit_test.cpp libc/test/src/stdbit/stdc_bit_ceil_uc_test.cpp libc/test/src/stdbit/stdc_bit_ceil_us_test.cpp libc/test/src/stdbit/stdc_first_leading_one_uc_test.cpp libc/test/src/stdbit/stdc_first_leading_one_us_test.cpp libc/test/src/stdbit/stdc_first_leading_zero_uc_test.cpp libc/test/src/stdbit/stdc_first_leading_zero_us_test.cpp libc/test/src/stdbit/stdc_first_trailing_one_uc_test.cpp libc/test/src/stdbit/stdc_first_trailing_one_us_test.cpp libc/test/src/stdbit/stdc_first_trailing_zero_uc_test.cpp libc/test/src/stdbit/stdc_first_trailing_zero_us_test.cpp libc/test/src/stdbit/stdc_has_single_bit_uc_test.cpp libc/test/src/stdbit/stdc_has_single_bit_us_test.cpp libc/test/src/stdbit/stdc_leading_ones_uc_test.cpp libc/test/src/stdbit/stdc_leading_ones_us_test.cpp libc/test/src/stdbit/stdc_leading_zeros_uc_test.cpp libc/test/src/stdbit/stdc_leading_zeros_us_test.cpp libc/test/src/stdbit/stdc_trailing_ones_uc_test.cpp libc/test/src/stdbit/stdc_trailing_ones_us_test.cpp libc/test/src/stdbit/stdc_trailing_zeros_uc_test.cpp libc/test/src/stdbit/stdc_trailing_zeros_us_test.cpp libclc/generic/include/clc/convert.h libcxx/include/__filesystem/path.h libcxx/include/__vector/vector_bool.h libcxx/test/std/algorithms/alg.nonmodifying/alg.find/find.pass.cpp libcxx/test/std/algorithms/alg.nonmodifying/alg.find/ranges.find.pass.cpp libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each.pass.cpp libcxxabi/src/cxa_default_handlers.cpp lldb/include/lldb/API/SBTarget.h lldb/include/lldb/API/SBType.h lldb/include/lldb/API/SBValue.h lldb/include/lldb/Core/Debugger.h lldb/include/lldb/Core/UserSettingsController.h lldb/source/API/SBDebugger.cpp lldb/source/API/SBType.cpp lldb/source/Commands/CommandObjectDisassemble.cpp lldb/source/Commands/CommandObjectDisassemble.h lldb/source/Core/Debugger.cpp lldb/source/Core/DynamicLoader.cpp lldb/source/Core/Telemetry.cpp lldb/source/Core/UserSettingsController.cpp lldb/source/Interpreter/ScriptInterpreter.cpp lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp lldb/source/Plugins/DynamicLoader/FreeBSD-Kernel/DynamicLoaderFreeBSDKernel.cpp lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp lldb/source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp lldb/source/Symbol/Block.cpp lldb/source/Symbol/SymbolContext.cpp lldb/source/Target/Process.cpp lldb/source/Target/Target.cpp lldb/source/Target/ThreadPlanStepOut.cpp lldb/source/Target/ThreadPlanTracer.cpp lldb/test/API/lang/cpp/template-arguments/main.cpp lldb/test/Shell/SymbolFile/DWARF/x86/simplified-template-names.cpp llvm/include/llvm/Analysis/CaptureTracking.h llvm/include/llvm/Analysis/DDG.h llvm/include/llvm/Analysis/DependenceAnalysis.h llvm/include/llvm/Analysis/LoopAccessAnalysis.h llvm/include/llvm/Analysis/SparsePropagation.h llvm/include/llvm/AsmParser/LLToken.h llvm/include/llvm/CodeGen/MachinePipeliner.h llvm/include/llvm/CodeGen/MachineScheduler.h llvm/include/llvm/CodeGen/SelectionDAGNodes.h llvm/include/llvm/CodeGen/TargetFrameLowering.h llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.h llvm/include/llvm/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.h llvm/include/llvm/IR/DIBuilder.h llvm/include/llvm/IR/IRBuilder.h llvm/include/llvm/InitializePasses.h llvm/include/llvm/MC/MCContext.h llvm/include/llvm/MC/MCELFStreamer.h llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h llvm/include/llvm/Passes/CodeGenPassBuilder.h llvm/include/llvm/Passes/StandardInstrumentations.h llvm/include/llvm/Support/ModRef.h llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Scheduler.h llvm/lib/Analysis/CaptureTracking.cpp llvm/lib/Analysis/DDG.cpp llvm/lib/Analysis/DependenceAnalysis.cpp llvm/lib/Analysis/DependenceGraphBuilder.cpp llvm/lib/Analysis/InstructionSimplify.cpp llvm/lib/Analysis/LoopAccessAnalysis.cpp llvm/lib/Analysis/LoopCacheAnalysis.cpp llvm/lib/Analysis/ValueTracking.cpp llvm/lib/AsmParser/LLLexer.cpp llvm/lib/AsmParser/LLParser.cpp llvm/lib/Bitcode/Reader/BitcodeReader.cpp llvm/lib/Bitcode/Writer/BitcodeWriter.cpp llvm/lib/CodeGen/CFIFixup.cpp llvm/lib/CodeGen/CodeGen.cpp llvm/lib/CodeGen/MachineFunctionPass.cpp llvm/lib/CodeGen/MachineScheduler.cpp llvm/lib/CodeGen/RegAllocBasic.cpp llvm/lib/CodeGen/RegAllocGreedy.cpp llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp llvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp llvm/lib/ExecutionEngine/Orc/LLJIT.cpp llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp llvm/lib/ExecutionEngine/Orc/UnwindInfoRegistrationPlugin.cpp llvm/lib/Frontend/OpenMP/OMPContext.cpp llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp llvm/lib/IR/Attributes.cpp llvm/lib/IR/AutoUpgrade.cpp llvm/lib/IR/Constants.cpp llvm/lib/IR/DIBuilder.cpp llvm/lib/IR/DebugInfo.cpp llvm/lib/MC/MCContext.cpp llvm/lib/MC/MCObjectFileInfo.cpp llvm/lib/MC/MCParser/WasmAsmParser.cpp llvm/lib/Object/GOFFObjectFile.cpp llvm/lib/Passes/PassBuilder.cpp llvm/lib/Passes/PassBuilderPipelines.cpp llvm/lib/Support/ModRef.cpp llvm/lib/Support/Unix/Process.inc llvm/lib/Target/AArch64/AArch64FrameLowering.cpp llvm/lib/Target/AArch64/AArch64FrameLowering.h llvm/lib/Target/AArch64/AArch64ISelLowering.cpp llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp llvm/lib/Target/AMDGPU/AMDGPU.h llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp llvm/lib/Target/AMDGPU/AMDGPUMemoryUtils.cpp llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.cpp llvm/lib/Target/AMDGPU/MCA/AMDGPUCustomBehaviour.h llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCTargetDesc.h llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp llvm/lib/Target/AMDGPU/R600InstrInfo.cpp llvm/lib/Target/AMDGPU/R600InstrInfo.h llvm/lib/Target/AMDGPU/R600Packetizer.cpp llvm/lib/Target/AMDGPU/SIFoldOperands.cpp llvm/lib/Target/AMDGPU/SIISelLowering.cpp llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp llvm/lib/Target/AMDGPU/SIInstrInfo.cpp llvm/lib/Target/AMDGPU/SIInstrInfo.h llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h llvm/lib/Target/ARM/ARMCallingConv.cpp llvm/lib/Target/ARM/ARMISelLowering.cpp llvm/lib/Target/DirectX/DXILShaderFlags.cpp llvm/lib/Target/DirectX/DXILShaderFlags.h llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp llvm/lib/Target/Hexagon/HexagonLoopAlign.cpp llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h llvm/lib/Target/NVPTX/NVPTXCtorDtorLowering.cpp llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp llvm/lib/Target/NVPTX/NVPTXISelLowering.h llvm/lib/Target/NVPTX/NVPTXUtilities.cpp llvm/lib/Target/RISCV/RISCV.h llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp llvm/lib/Target/RISCV/RISCVISelLowering.cpp llvm/lib/Target/RISCV/RISCVInstrInfo.h llvm/lib/Target/RISCV/RISCVTargetMachine.cpp llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h llvm/lib/Target/X86/X86DomainReassignment.cpp llvm/lib/Target/X86/X86ISelLowering.cpp llvm/lib/Transforms/Coroutines/CoroFrame.cpp llvm/lib/Transforms/IPO/AttributorAttributes.cpp llvm/lib/Transforms/IPO/FunctionAttrs.cpp llvm/lib/Transforms/IPO/SCCP.cpp llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp llvm/lib/Transforms/Scalar/LoopFuse.cpp llvm/lib/Transforms/Scalar/LoopInterchange.cpp llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp llvm/lib/Transforms/Scalar/SROA.cpp llvm/lib/Transforms/Utils/CodeMoverUtils.cpp llvm/lib/Transforms/Utils/Debugify.cpp llvm/lib/Transforms/Utils/Local.cpp llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp llvm/lib/Transforms/Vectorize/LoopVectorize.cpp llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/Legality.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.cpp llvm/lib/Transforms/Vectorize/VPlan.h llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp llvm/test/Analysis/BasicAA/fallback-mayalias.ll llvm/test/Analysis/KernelInfo/launch-bounds/nvptx.ll llvm/test/Analysis/LoopAccessAnalysis/multiple-strides-rt-memory-checks.ll llvm/test/Analysis/LoopAccessAnalysis/non-constant-distance-backward.ll llvm/test/Assembler/memory-attribute-errors.ll llvm/test/Assembler/memory-attribute.ll llvm/test/CodeGen/AArch64/align-down.ll llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.bf16.ll llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll llvm/test/CodeGen/AMDGPU/llvm.amdgcn.smfmac.gfx950.ll llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-pointer-ops.ll llvm/test/CodeGen/AMDGPU/mad-mix-hi.ll llvm/test/CodeGen/AMDGPU/mad-mix-lo.ll llvm/test/CodeGen/AMDGPU/mad-mix.ll llvm/test/CodeGen/DirectX/llc-pipeline.ll llvm/test/CodeGen/NVPTX/addrspacecast.ll llvm/test/CodeGen/NVPTX/annotations.ll llvm/test/CodeGen/NVPTX/lower-ctor-dtor.ll llvm/test/CodeGen/NVPTX/maxclusterrank.ll llvm/test/CodeGen/NVPTX/upgrade-nvvm-annotations.ll llvm/test/CodeGen/RISCV/GlobalISel/add-imm.ll llvm/test/CodeGen/RISCV/GlobalISel/combine-neg-abs.ll llvm/test/CodeGen/RISCV/GlobalISel/double-arith.ll llvm/test/CodeGen/RISCV/GlobalISel/float-arith.ll llvm/test/CodeGen/RISCV/GlobalISel/freeze.ll llvm/test/CodeGen/RISCV/GlobalISel/rotl-rotr.ll llvm/test/CodeGen/RISCV/GlobalISel/rv64zbb.ll llvm/test/CodeGen/RISCV/GlobalISel/rv64zbkb.ll llvm/test/CodeGen/RISCV/GlobalISel/shifts.ll llvm/test/CodeGen/RISCV/GlobalISel/stacksave-stackrestore.ll llvm/test/CodeGen/RISCV/GlobalISel/vararg.ll llvm/test/CodeGen/RISCV/GlobalISel/wide-scalar-shift-by-byte-multiple-legalization.ll llvm/test/CodeGen/RISCV/O0-pipeline.ll llvm/test/CodeGen/RISCV/O3-pipeline.ll llvm/test/CodeGen/RISCV/abds-neg.ll llvm/test/CodeGen/RISCV/abds.ll llvm/test/CodeGen/RISCV/abdu-neg.ll llvm/test/CodeGen/RISCV/abdu.ll llvm/test/CodeGen/RISCV/add-before-shl.ll llvm/test/CodeGen/RISCV/add-imm.ll llvm/test/CodeGen/RISCV/alloca.ll llvm/test/CodeGen/RISCV/alu64.ll llvm/test/CodeGen/RISCV/atomic-rmw-discard.ll llvm/test/CodeGen/RISCV/atomic-rmw.ll llvm/test/CodeGen/RISCV/atomic-signext.ll llvm/test/CodeGen/RISCV/atomicrmw-cond-sub-clamp.ll llvm/test/CodeGen/RISCV/atomicrmw-uinc-udec-wrap.ll llvm/test/CodeGen/RISCV/bf16-promote.ll llvm/test/CodeGen/RISCV/bfloat-convert.ll llvm/test/CodeGen/RISCV/bfloat-mem.ll llvm/test/CodeGen/RISCV/bfloat.ll llvm/test/CodeGen/RISCV/bittest.ll llvm/test/CodeGen/RISCV/branch-on-zero.ll llvm/test/CodeGen/RISCV/callee-saved-fpr32s.ll llvm/test/CodeGen/RISCV/callee-saved-fpr64s.ll llvm/test/CodeGen/RISCV/callee-saved-gprs.ll llvm/test/CodeGen/RISCV/calling-conv-half.ll llvm/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-common.ll llvm/test/CodeGen/RISCV/calling-conv-ilp32-ilp32f-ilp32d-common.ll llvm/test/CodeGen/RISCV/calling-conv-ilp32.ll llvm/test/CodeGen/RISCV/calling-conv-ilp32d.ll llvm/test/CodeGen/RISCV/calling-conv-ilp32e.ll llvm/test/CodeGen/RISCV/calling-conv-ilp32f-ilp32d-common.ll llvm/test/CodeGen/RISCV/calling-conv-lp64-lp64f-lp64d-common.ll llvm/test/CodeGen/RISCV/calling-conv-lp64.ll llvm/test/CodeGen/RISCV/calling-conv-lp64e.ll llvm/test/CodeGen/RISCV/calling-conv-rv32f-ilp32.ll llvm/test/CodeGen/RISCV/calling-conv-rv32f-ilp32e.ll llvm/test/CodeGen/RISCV/calls.ll llvm/test/CodeGen/RISCV/codemodel-lowering.ll llvm/test/CodeGen/RISCV/condbinops.ll llvm/test/CodeGen/RISCV/condops.ll llvm/test/CodeGen/RISCV/copysign-casts.ll llvm/test/CodeGen/RISCV/ctlz-cttz-ctpop.ll llvm/test/CodeGen/RISCV/double-calling-conv.ll llvm/test/CodeGen/RISCV/double-convert.ll llvm/test/CodeGen/RISCV/double-fcmp-strict.ll llvm/test/CodeGen/RISCV/double-imm.ll llvm/test/CodeGen/RISCV/double-mem.ll llvm/test/CodeGen/RISCV/double-round-conv-sat.ll llvm/test/CodeGen/RISCV/double-select-fcmp.ll llvm/test/CodeGen/RISCV/double-stack-spill-restore.ll llvm/test/CodeGen/RISCV/fastcc-bf16.ll llvm/test/CodeGen/RISCV/fastcc-float.ll llvm/test/CodeGen/RISCV/fastcc-half.ll llvm/test/CodeGen/RISCV/fastcc-without-f-reg.ll llvm/test/CodeGen/RISCV/float-convert.ll llvm/test/CodeGen/RISCV/float-fcmp-strict.ll llvm/test/CodeGen/RISCV/float-select-fcmp.ll llvm/test/CodeGen/RISCV/fold-addi-loadstore.ll llvm/test/CodeGen/RISCV/forced-atomics.ll llvm/test/CodeGen/RISCV/fp-fcanonicalize.ll llvm/test/CodeGen/RISCV/fp128.ll llvm/test/CodeGen/RISCV/fpclamptosat.ll llvm/test/CodeGen/RISCV/get-setcc-result-type.ll llvm/test/CodeGen/RISCV/half-arith.ll llvm/test/CodeGen/RISCV/half-convert-strict.ll llvm/test/CodeGen/RISCV/half-convert.ll llvm/test/CodeGen/RISCV/half-fcmp-strict.ll llvm/test/CodeGen/RISCV/half-intrinsics.ll llvm/test/CodeGen/RISCV/half-mem.ll llvm/test/CodeGen/RISCV/half-select-fcmp.ll llvm/test/CodeGen/RISCV/iabs.ll llvm/test/CodeGen/RISCV/inline-asm-d-constraint-f.ll llvm/test/CodeGen/RISCV/inline-asm-d-modifier-N.ll llvm/test/CodeGen/RISCV/inline-asm-f-constraint-f.ll llvm/test/CodeGen/RISCV/inline-asm-f-modifier-N.ll llvm/test/CodeGen/RISCV/inline-asm-zfinx-constraint-r.ll llvm/test/CodeGen/RISCV/inline-asm-zhinx-constraint-r.ll llvm/test/CodeGen/RISCV/inline-asm.ll llvm/test/CodeGen/RISCV/intrinsic-cttz-elts-vscale.ll llvm/test/CodeGen/RISCV/legalize-fneg.ll llvm/test/CodeGen/RISCV/llvm.exp10.ll llvm/test/CodeGen/RISCV/llvm.frexp.ll llvm/test/CodeGen/RISCV/loop-strength-reduce-add-cheaper-than-mul.ll llvm/test/CodeGen/RISCV/machine-sink-load-immediate.ll llvm/test/CodeGen/RISCV/machinelicm-address-pseudos.ll llvm/test/CodeGen/RISCV/macro-fusion-lui-addi.ll llvm/test/CodeGen/RISCV/mem.ll llvm/test/CodeGen/RISCV/mem64.ll llvm/test/CodeGen/RISCV/memcmp-optsize.ll llvm/test/CodeGen/RISCV/memcmp.ll llvm/test/CodeGen/RISCV/memmove.ll llvm/test/CodeGen/RISCV/memset-pattern.ll llvm/test/CodeGen/RISCV/mul.ll llvm/test/CodeGen/RISCV/neg-abs.ll llvm/test/CodeGen/RISCV/orc-b-patterns.ll llvm/test/CodeGen/RISCV/overflow-intrinsics.ll llvm/test/CodeGen/RISCV/pr51206.ll llvm/test/CodeGen/RISCV/pr58511.ll llvm/test/CodeGen/RISCV/pr63816.ll llvm/test/CodeGen/RISCV/pr69586.ll llvm/test/CodeGen/RISCV/push-pop-popret.ll llvm/test/CodeGen/RISCV/riscv-codegenprepare-asm.ll llvm/test/CodeGen/RISCV/rotl-rotr.ll llvm/test/CodeGen/RISCV/rv32-inline-asm-pairs.ll llvm/test/CodeGen/RISCV/rv32zbb.ll llvm/test/CodeGen/RISCV/rv32zbs.ll llvm/test/CodeGen/RISCV/rv64-double-convert.ll llvm/test/CodeGen/RISCV/rv64-half-convert.ll llvm/test/CodeGen/RISCV/rv64-inline-asm-pairs.ll llvm/test/CodeGen/RISCV/rv64-trampoline.ll llvm/test/CodeGen/RISCV/rv64i-demanded-bits.ll llvm/test/CodeGen/RISCV/rv64zbkb.ll llvm/test/CodeGen/RISCV/rvv/active_lane_mask.ll llvm/test/CodeGen/RISCV/rvv/alloca-load-store-scalable-array.ll llvm/test/CodeGen/RISCV/rvv/alloca-load-store-scalable-struct.ll llvm/test/CodeGen/RISCV/rvv/bitreverse-sdnode.ll llvm/test/CodeGen/RISCV/rvv/bitreverse-vp.ll llvm/test/CodeGen/RISCV/rvv/bswap-sdnode.ll llvm/test/CodeGen/RISCV/rvv/bswap-vp.ll llvm/test/CodeGen/RISCV/rvv/calling-conv-fastcc.ll llvm/test/CodeGen/RISCV/rvv/calling-conv.ll llvm/test/CodeGen/RISCV/rvv/ceil-vp.ll llvm/test/CodeGen/RISCV/rvv/combine-store-extract-crash.ll llvm/test/CodeGen/RISCV/rvv/concat-vector-insert-elt.ll llvm/test/CodeGen/RISCV/rvv/constant-folding-crash.ll llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll llvm/test/CodeGen/RISCV/rvv/ctlz-vp.ll llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll llvm/test/CodeGen/RISCV/rvv/cttz-vp.ll llvm/test/CodeGen/RISCV/rvv/dont-sink-splat-operands.ll llvm/test/CodeGen/RISCV/rvv/double-round-conv.ll llvm/test/CodeGen/RISCV/rvv/expandload.ll llvm/test/CodeGen/RISCV/rvv/extractelt-fp.ll llvm/test/CodeGen/RISCV/rvv/extractelt-i1.ll llvm/test/CodeGen/RISCV/rvv/extractelt-int-rv64.ll llvm/test/CodeGen/RISCV/rvv/fceil-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fceil-sdnode.ll llvm/test/CodeGen/RISCV/rvv/ffloor-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/ffloor-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fixed-vector-i8-index-cornercase.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitcast-large-vector.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitreverse-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-buildvec-of-binop.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv-fastcc.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-calling-conv.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ceil-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctpop-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctpop.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-deinterleave-load.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-elen.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extload-truncstore.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract-i1.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract-subvector.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fceil-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ffloor-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-floor-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmaximum-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmaximum.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fminimum-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fminimum.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fnearbyint-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-interleave.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-setcc.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-shuffles.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-vrgather.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fpext-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fpowi.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptosi-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptoui-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptrunc-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fround-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fround.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-froundeven-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-froundeven.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-interleave.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-vrgather.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access-zve32x.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-llrint.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-lrint.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-buildvec.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-splat.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-load-fp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-load-int.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-fp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-int.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-nearbyint-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-formation.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-rint-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-round-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-roundeven-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-roundtozero-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-select-addsub.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-fp-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sext-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-changes-length.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-concat.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-deinterleave.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-exact-vlen.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-reverse.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-rotate.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shufflevector-vnsrl.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sitofp-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-store-merge-crash.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-load-store-asm.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpstore.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-trunc-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-uitofp-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-unaligned.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vcopysign-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfabs-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfma-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmax-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmin-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmuladd-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfneg-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsqrt-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmax-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmaxu-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmin-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vminu-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpgather.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpload.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpmerge.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpstore.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsadd-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsaddu-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vscale-range.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssub-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssubu-vp.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd-mask.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwadd.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwaddu.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmul.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmulsu.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwmulu.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub-mask.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsub.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsubu.ll llvm/test/CodeGen/RISCV/rvv/fixed-vectors-zext-vp.ll llvm/test/CodeGen/RISCV/rvv/float-round-conv.ll llvm/test/CodeGen/RISCV/rvv/floor-vp.ll llvm/test/CodeGen/RISCV/rvv/fmaximum-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll llvm/test/CodeGen/RISCV/rvv/fminimum-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fminimum-vp.ll llvm/test/CodeGen/RISCV/rvv/fnearbyint-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fnearbyint-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fold-scalar-load-crash.ll llvm/test/CodeGen/RISCV/rvv/fold-vector-cmp.ll llvm/test/CodeGen/RISCV/rvv/fpclamptosat_vec.ll llvm/test/CodeGen/RISCV/rvv/frm-insert.ll llvm/test/CodeGen/RISCV/rvv/fround-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fround-sdnode.ll llvm/test/CodeGen/RISCV/rvv/froundeven-constrained-sdnode.ll llvm/test/CodeGen/RISCV/rvv/froundeven-sdnode.ll llvm/test/CodeGen/RISCV/rvv/fshr-fshl-vp.ll llvm/test/CodeGen/RISCV/rvv/half-round-conv.ll llvm/test/CodeGen/RISCV/rvv/implicit-def-copy.ll llvm/test/CodeGen/RISCV/rvv/localvar.ll llvm/test/CodeGen/RISCV/rvv/memcpy-inline.ll llvm/test/CodeGen/RISCV/rvv/memory-args.ll llvm/test/CodeGen/RISCV/rvv/mgather-sdnode.ll llvm/test/CodeGen/RISCV/rvv/mscatter-sdnode.ll llvm/test/CodeGen/RISCV/rvv/mutate-prior-vsetvli-avl.ll llvm/test/CodeGen/RISCV/rvv/named-vector-shuffle-reverse.ll llvm/test/CodeGen/RISCV/rvv/nearbyint-vp.ll llvm/test/CodeGen/RISCV/rvv/no-reserved-frame.ll llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.ll llvm/test/CodeGen/RISCV/rvv/pr125306.ll llvm/test/CodeGen/RISCV/rvv/pr63596.ll llvm/test/CodeGen/RISCV/rvv/pr95865.ll llvm/test/CodeGen/RISCV/rvv/reg-alloc-reserve-bp.ll llvm/test/CodeGen/RISCV/rvv/round-vp.ll llvm/test/CodeGen/RISCV/rvv/roundeven-vp.ll llvm/test/CodeGen/RISCV/rvv/roundtozero-vp.ll llvm/test/CodeGen/RISCV/rvv/rvv-args-by-mem.ll llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops-mir.ll llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll llvm/test/CodeGen/RISCV/rvv/setcc-int-vp.ll llvm/test/CodeGen/RISCV/rvv/shrinkwrap.ll llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll llvm/test/CodeGen/RISCV/rvv/stepvector.ll llvm/test/CodeGen/RISCV/rvv/strided-vpload-vpstore-output.ll llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll llvm/test/CodeGen/RISCV/rvv/strided-vpstore.ll llvm/test/CodeGen/RISCV/rvv/umulo-sdnode.ll llvm/test/CodeGen/RISCV/rvv/urem-seteq-vec.ll llvm/test/CodeGen/RISCV/rvv/vadd-vp.ll llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-load.ll llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll llvm/test/CodeGen/RISCV/rvv/vector-extract-last-active.ll llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll llvm/test/CodeGen/RISCV/rvv/vfma-vp-combine.ll llvm/test/CodeGen/RISCV/rvv/vfma-vp.ll llvm/test/CodeGen/RISCV/rvv/vfmuladd-vp.ll llvm/test/CodeGen/RISCV/rvv/vfptrunc-vp.ll llvm/test/CodeGen/RISCV/rvv/vfsqrt-vp.ll llvm/test/CodeGen/RISCV/rvv/vl-opt-instrs.ll llvm/test/CodeGen/RISCV/rvv/vleff-vlseg2ff-output.ll llvm/test/CodeGen/RISCV/rvv/vmax-vp.ll llvm/test/CodeGen/RISCV/rvv/vmaxu-vp.ll llvm/test/CodeGen/RISCV/rvv/vmin-vp.ll llvm/test/CodeGen/RISCV/rvv/vminu-vp.ll llvm/test/CodeGen/RISCV/rvv/vmseq.ll llvm/test/CodeGen/RISCV/rvv/vmsge.ll llvm/test/CodeGen/RISCV/rvv/vmsgeu.ll llvm/test/CodeGen/RISCV/rvv/vmsgt.ll llvm/test/CodeGen/RISCV/rvv/vmsgtu.ll llvm/test/CodeGen/RISCV/rvv/vmsle.ll llvm/test/CodeGen/RISCV/rvv/vmsleu.ll llvm/test/CodeGen/RISCV/rvv/vmslt.ll llvm/test/CodeGen/RISCV/rvv/vmsltu.ll llvm/test/CodeGen/RISCV/rvv/vmsne.ll llvm/test/CodeGen/RISCV/rvv/vmv.s.x.ll llvm/test/CodeGen/RISCV/rvv/vp-combine-store-reverse.ll llvm/test/CodeGen/RISCV/rvv/vp-cttz-elts.ll llvm/test/CodeGen/RISCV/rvv/vp-vector-interleaved-access.ll llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll llvm/test/CodeGen/RISCV/rvv/vpload.ll llvm/test/CodeGen/RISCV/rvv/vpmerge-sdnode.ll llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll llvm/test/CodeGen/RISCV/rvv/vpstore.ll llvm/test/CodeGen/RISCV/rvv/vreductions-fp-sdnode.ll llvm/test/CodeGen/RISCV/rvv/vrgatherei16-subreg-liveness.ll llvm/test/CodeGen/RISCV/rvv/vscale-vw-web-simplification.ll llvm/test/CodeGen/RISCV/rvv/vselect-fp.ll llvm/test/CodeGen/RISCV/rvv/vselect-vp.ll llvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll llvm/test/CodeGen/RISCV/rvv/vsetvli-insert.ll llvm/test/CodeGen/RISCV/rvv/vsetvli-regression.ll llvm/test/CodeGen/RISCV/rvv/vtrunc-vp.ll llvm/test/CodeGen/RISCV/rvv/vwadd-mask-sdnode.ll llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll llvm/test/CodeGen/RISCV/rvv/vwsub-mask-sdnode.ll llvm/test/CodeGen/RISCV/rvv/vxrm-insert-out-of-loop.ll llvm/test/CodeGen/RISCV/rvv/vxrm-insert.ll llvm/test/CodeGen/RISCV/rvv/wrong-chain-fixed-load.ll llvm/test/CodeGen/RISCV/scmp.ll llvm/test/CodeGen/RISCV/select-and.ll llvm/test/CodeGen/RISCV/select-bare.ll llvm/test/CodeGen/RISCV/select-cc.ll llvm/test/CodeGen/RISCV/select-constant-xor.ll llvm/test/CodeGen/RISCV/select-optimize-multiple.ll llvm/test/CodeGen/RISCV/select-or.ll llvm/test/CodeGen/RISCV/sextw-removal.ll llvm/test/CodeGen/RISCV/shift-amount-mod.ll llvm/test/CodeGen/RISCV/shifts.ll llvm/test/CodeGen/RISCV/shl-cttz.ll llvm/test/CodeGen/RISCV/split-offsets.ll llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll llvm/test/CodeGen/RISCV/srem-vector-lkk.ll llvm/test/CodeGen/RISCV/stack-slot-size.ll llvm/test/CodeGen/RISCV/stack-store-check.ll llvm/test/CodeGen/RISCV/tail-calls.ll llvm/test/CodeGen/RISCV/ucmp.ll llvm/test/CodeGen/RISCV/unaligned-load-store.ll llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll llvm/test/CodeGen/RISCV/urem-vector-lkk.ll llvm/test/CodeGen/RISCV/vararg.ll llvm/test/CodeGen/RISCV/wide-scalar-shift-by-byte-multiple-legalization.ll llvm/test/CodeGen/RISCV/wide-scalar-shift-legalization.ll llvm/test/CodeGen/RISCV/xaluo.ll llvm/test/CodeGen/RISCV/xtheadmemidx.ll llvm/test/CodeGen/RISCV/xtheadmempair.ll llvm/test/CodeGen/RISCV/zbb-logic-neg-imm.ll llvm/test/CodeGen/RISCV/zdinx-asm-constraint.ll llvm/test/CodeGen/RISCV/zdinx-boundary-check.ll llvm/test/CodeGen/X86/2011-10-27-tstore.ll llvm/test/CodeGen/X86/align-down.ll llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast_from_memory.ll llvm/test/CodeGen/X86/avx512fp16-mov.ll llvm/test/CodeGen/X86/coalescer-subreg.ll llvm/test/CodeGen/X86/code_placement_eh.ll llvm/test/CodeGen/X86/codegen-prepare-cast.ll llvm/test/CodeGen/X86/copy-low-subvec-elt-to-high-subvec-elt.ll llvm/test/CodeGen/X86/discontiguous-loops.ll llvm/test/CodeGen/X86/early-ifcvt-crash.ll llvm/test/CodeGen/X86/expand-vp-cast-intrinsics.ll llvm/test/CodeGen/X86/fast-isel-stackcheck.ll llvm/test/CodeGen/X86/fp-fold.ll llvm/test/CodeGen/X86/fp-stack-O0-crash.ll llvm/test/CodeGen/X86/fp-stack.ll llvm/test/CodeGen/X86/insert-positions.ll llvm/test/CodeGen/X86/legalize-sub-zero-2.ll llvm/test/CodeGen/X86/licm-symbol.ll llvm/test/CodeGen/X86/liveness-local-regalloc.ll llvm/test/CodeGen/X86/lsr-overflow.ll llvm/test/CodeGen/X86/matrix-multiply.ll llvm/test/CodeGen/X86/not-of-dec.ll llvm/test/CodeGen/X86/pr51615.ll llvm/test/CodeGen/X86/vec-strict-cmp-128-fp16.ll llvm/test/CodeGen/X86/vec-strict-cmp-512-skx.ll llvm/test/CodeGen/X86/vec-strict-fptoint-128.ll llvm/test/CodeGen/X86/vec-strict-fptoint-256.ll llvm/test/CodeGen/X86/vec-strict-fptoint-512.ll llvm/test/CodeGen/X86/vector-half-conversions.ll llvm/test/CodeGen/X86/vector-interleaved-load-i32-stride-6.ll llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll llvm/test/CodeGen/X86/vector-shuffle-256-v16.ll llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll llvm/test/CodeGen/X86/vselect-avx.ll llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll llvm/test/CodeGen/XCore/2010-02-25-LSR-Crash.ll llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-cvt.ll llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vadd.ll llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vcvt.ll llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vmovn.ll llvm/test/Instrumentation/MemorySanitizer/AArch64/arm64-vshift.ll llvm/test/Instrumentation/MemorySanitizer/AArch64/qshrn.ll llvm/test/Instrumentation/MemorySanitizer/scmp.ll llvm/test/Instrumentation/MemorySanitizer/ucmp.ll llvm/test/Other/new-pm-O0-defaults.ll llvm/test/Other/new-pm-lto-defaults.ll llvm/test/Transforms/FunctionAttrs/2009-01-02-LocalStores.ll llvm/test/Transforms/FunctionAttrs/arg_returned.ll llvm/test/Transforms/FunctionAttrs/nocapture.ll llvm/test/Transforms/FunctionAttrs/nonnull.ll llvm/test/Transforms/FunctionAttrs/noundef.ll llvm/test/Transforms/FunctionAttrs/readattrs.ll llvm/test/Transforms/FunctionAttrs/stats.ll llvm/test/Transforms/InstCombine/add2.ll llvm/test/Transforms/InstCombine/ashr-lshr.ll llvm/test/Transforms/InstCombine/icmp-dom.ll llvm/test/Transforms/InstCombine/known-bits.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-chained.ll llvm/test/Transforms/NewGVN/2009-11-12-MemDepMallocBitCast.ll llvm/test/Transforms/PhaseOrdering/AArch64/block_scaling_decompr_8bit.ll llvm/test/Transforms/PhaseOrdering/bitcast-store-branch.ll llvm/test/Transforms/PhaseOrdering/dce-after-argument-promotion-loads.ll llvm/test/Transforms/PhaseOrdering/enable-loop-header-duplication-oz.ll llvm/test/Transforms/SandboxVectorizer/bottomup_basic.ll llvm/test/Transforms/SandboxVectorizer/bottomup_seed_slice_pow2.ll llvm/test/Transforms/SandboxVectorizer/repeated_instrs.ll llvm/test/Transforms/SandboxVectorizer/scheduler.ll llvm/tools/llvm-jitlink/llvm-jitlink-executor/llvm-jitlink-executor.cpp llvm/tools/llvm-jitlink/llvm-jitlink.cpp llvm/unittests/Analysis/CaptureTrackingTest.cpp llvm/unittests/IR/IRBuilderTest.cpp llvm/unittests/Support/ModRefTest.cpp llvm/unittests/Transforms/Utils/CloningTest.cpp llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp llvm/unittests/Transforms/Vectorize/SandboxVectorizer/InstrMapsTest.cpp llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp llvm/utils/TableGen/InstrInfoEmitter.cpp llvm/utils/TableGen/RegisterInfoEmitter.cpp mlir/include/mlir-c/IR.h mlir/include/mlir/Dialect/Affine/Passes.h mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h mlir/include/mlir/Dialect/DLTI/DLTI.h mlir/include/mlir/Dialect/Mesh/IR/MeshOps.h mlir/include/mlir/Dialect/Mesh/Interfaces/ShardingInterface.h mlir/include/mlir/Dialect/Tensor/IR/Tensor.h mlir/include/mlir/InitAllDialects.h mlir/lib/Analysis/DataFlow/IntegerRangeAnalysis.cpp mlir/lib/Bindings/Python/IRCore.cpp mlir/lib/Bytecode/Writer/BytecodeWriter.cpp mlir/lib/CAPI/IR/IR.cpp mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp mlir/lib/Dialect/Affine/Transforms/LoopUnroll.cpp mlir/lib/Dialect/DLTI/DLTI.cpp mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp mlir/lib/Dialect/Mesh/IR/MeshOps.cpp mlir/lib/Dialect/Mesh/Interfaces/ShardingInterface.cpp mlir/lib/Dialect/Mesh/Transforms/ShardingPropagation.cpp mlir/lib/Dialect/Mesh/Transforms/Spmdization.cpp mlir/lib/Dialect/Tensor/Extensions/MeshShardingExtensions.cpp mlir/lib/Dialect/Tensor/IR/TensorOps.cpp mlir/lib/Dialect/Tosa/IR/TosaCanonicalizations.cpp mlir/lib/Dialect/Tosa/IR/TosaOps.cpp mlir/lib/Dialect/Tosa/Transforms/TosaReduceTransposes.cpp mlir/lib/Dialect/Vector/IR/VectorOps.cpp mlir/lib/IR/AsmPrinter.cpp mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp mlir/lib/Target/LLVMIR/ModuleTranslation.cpp mlir/tools/mlir-tblgen/OpDocGen.cpp mlir/tools/mlir-tblgen/OpInterfacesGen.cpp mlir/tools/mlir-tblgen/PassDocGen.cpp mlir/unittests/Bytecode/BytecodeTest.cpp offload/include/Shared/Environment.h offload/plugins-nextgen/common/include/GlobalHandler.h offload/plugins-nextgen/common/include/RPC.h offload/plugins-nextgen/common/src/GlobalHandler.cpp offload/plugins-nextgen/common/src/PluginInterface.cpp offload/plugins-nextgen/common/src/RPC.cpp offload/test/offloading/pgo1.c utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h llvm/include/llvm/IR/DroppedVariableStats.h llvm/include/llvm/IR/DroppedVariableStatsIR.h llvm/lib/IR/DroppedVariableStatsIR.cpp The following files introduce new uses of undef:
Undef is now deprecated and should only be used in the rare cases where no replacement is possible. For example, a load of uninitialized memory yields In tests, avoid using For example, this is considered a bad practice: define void @fn() {
...
br i1 undef, ...
} Please use the following instead: define void @fn(i1 %cond) {
...
br i1 %cond, ...
} Please refer to the Undefined Behavior Manual for more information. |
new PR: #127049 |
this PR close #124474
when calling
read
function for a non-block file descriptor(first argument), it will not cause block inside a critical section.this commit checks for non-block file descriptor assigned by
open
function with O_NONBLOCK flag(second argument).