-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[libc++] Have basic_string
call basic_string_view
's assume-valid constructor
#105441
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-libcxx Author: Christopher Di Bella (cjdb) Changes
Full diff: https://github.com/llvm/llvm-project/pull/105441.diff 2 Files Affected:
diff --git a/libcxx/include/string b/libcxx/include/string
index 6e93a6230cc2c0..cdc1afedbdf52f 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -1213,7 +1213,7 @@ public:
}
_LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 operator __self_view() const _NOEXCEPT {
- return __self_view(data(), size());
+ return __self_view(typename __self_view::__assume_valid(), data(), size());
}
_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_STRING_INTERNAL_MEMORY_ACCESS basic_string&
@@ -1822,7 +1822,7 @@ public:
#if _LIBCPP_STD_VER >= 20
constexpr _LIBCPP_HIDE_FROM_ABI bool starts_with(__self_view __sv) const noexcept {
- return __self_view(data(), size()).starts_with(__sv);
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).starts_with(__sv);
}
constexpr _LIBCPP_HIDE_FROM_ABI bool starts_with(value_type __c) const noexcept {
@@ -1834,7 +1834,7 @@ public:
}
constexpr _LIBCPP_HIDE_FROM_ABI bool ends_with(__self_view __sv) const noexcept {
- return __self_view(data(), size()).ends_with(__sv);
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).ends_with(__sv);
}
constexpr _LIBCPP_HIDE_FROM_ABI bool ends_with(value_type __c) const noexcept {
@@ -1848,15 +1848,15 @@ public:
#if _LIBCPP_STD_VER >= 23
constexpr _LIBCPP_HIDE_FROM_ABI bool contains(__self_view __sv) const noexcept {
- return __self_view(data(), size()).contains(__sv);
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).contains(__sv);
}
constexpr _LIBCPP_HIDE_FROM_ABI bool contains(value_type __c) const noexcept {
- return __self_view(data(), size()).contains(__c);
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).contains(__c);
}
constexpr _LIBCPP_HIDE_FROM_ABI bool contains(const value_type* __s) const {
- return __self_view(data(), size()).contains(__s);
+ return __self_view(typename __self_view::__assume_valid(), data(), size()).contains(__s);
}
#endif
diff --git a/libcxx/include/string_view b/libcxx/include/string_view
index 2a03ee99e9ab52..c468dc6fc0ab7c 100644
--- a/libcxx/include/string_view
+++ b/libcxx/include/string_view
@@ -689,6 +689,9 @@ private:
const value_type* __data_;
size_type __size_;
+
+ template<class, class, class>
+ friend class basic_string;
};
_LIBCPP_CTAD_SUPPORTED_FOR_TYPE(basic_string_view);
|
You can test this locally with the following command:git-clang-format --diff 5e6a1987a5d4574d3c3811f878ddbbbf7c35fa01 b625e4c2d39d4cab8b2b59478a909d152cae5aba --extensions ,cpp,cppm,h,inc,c -- clang/lib/AST/ByteCode/FunctionPointer.cpp clang/lib/Headers/avx10_2_512convertintrin.h clang/lib/Headers/avx10_2convertintrin.h clang/test/CodeGen/X86/avx10_2_512convert-builtins.c clang/test/CodeGen/X86/avx10_2convert-builtins.c clang/test/CodeGen/bpf-attr-bpf-fastcall-1.c clang/test/CodeGen/ffp-contract-fast-honor-pramga-option.cpp clang/test/CodeGen/ffp-contract-fhp-pragma-override.cpp clang/test/CodeGen/rtsan_attribute_inserted.c clang/test/CodeGen/rtsan_entry_exit_insertion.c clang/test/CodeGen/rtsan_no_attribute_sanitizer_disabled.c clang/test/Driver/mmapsyms.c clang/test/Driver/sparc-fix.c clang/test/Interpreter/assigment-with-implicit-ctor.cpp clang/test/Interpreter/preprocessor.cpp clang/test/Misc/cc1as-mmapsyms.c clang/test/Modules/warn-duplicated-decls-in-module-units.cppm clang/test/Parser/friend-concept.cpp clang/test/Parser/function-parameter-limit.cpp clang/test/Sema/bpf-attr-bpf-fastcall.c clang/test/SemaCXX/cxx2c-constexpr-placement-new.cpp flang/include/flang/Optimizer/OpenMP/Passes.h flang/lib/Optimizer/Transforms/CompilerGeneratedNames.cpp libc/hdr/types/locale_t.h libc/include/llvm-libc-macros/locale-macros.h libc/include/llvm-libc-types/locale_t.h libc/include/llvm-libc-types/struct_lconv.h libc/src/ctype/isalnum_l.cpp libc/src/ctype/isalnum_l.h libc/src/ctype/isalpha_l.cpp libc/src/ctype/isalpha_l.h libc/src/ctype/isblank_l.cpp libc/src/ctype/isblank_l.h libc/src/ctype/iscntrl_l.cpp libc/src/ctype/iscntrl_l.h libc/src/ctype/isdigit_l.cpp libc/src/ctype/isdigit_l.h libc/src/ctype/isgraph_l.cpp libc/src/ctype/isgraph_l.h libc/src/ctype/islower_l.cpp libc/src/ctype/islower_l.h libc/src/ctype/isprint_l.cpp libc/src/ctype/isprint_l.h libc/src/ctype/ispunct_l.cpp libc/src/ctype/ispunct_l.h libc/src/ctype/isspace_l.cpp libc/src/ctype/isspace_l.h libc/src/ctype/isupper_l.cpp libc/src/ctype/isupper_l.h libc/src/ctype/isxdigit_l.cpp libc/src/ctype/isxdigit_l.h libc/src/ctype/tolower_l.cpp libc/src/ctype/tolower_l.h libc/src/ctype/toupper_l.cpp libc/src/ctype/toupper_l.h libc/src/locale/duplocale.cpp libc/src/locale/duplocale.h libc/src/locale/freelocale.cpp libc/src/locale/freelocale.h libc/src/locale/locale.cpp libc/src/locale/locale.h libc/src/locale/localeconv.cpp libc/src/locale/localeconv.h libc/src/locale/newlocale.cpp libc/src/locale/newlocale.h libc/src/locale/setlocale.cpp libc/src/locale/setlocale.h libc/src/locale/uselocale.cpp libc/src/locale/uselocale.h libc/test/src/locale/locale_test.cpp libc/test/src/locale/localeconv_test.cpp libcxx/test/std/language.support/cmp/cmp.categories.pre/reject-other-than-literal-zero.verify.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/mutex.pass.cpp libcxx/test/support/checking_mutex.h lldb/test/API/functionalities/memory/big-read/main.c lldb/test/API/tools/lldb-dap/output/main.c llvm/include/llvm/Transforms/Utils/ControlFlowUtils.h llvm/lib/Support/ModRef.cpp llvm/lib/Target/AArch64/SMEPeepholeOpt.cpp llvm/lib/Target/AMDGPU/GCNSubtarget.cpp llvm/lib/Target/DirectX/DXILOpLowering.h llvm/lib/Target/DirectX/DXILPrettyPrinter.h llvm/lib/Target/DirectX/DXILTranslateMetadata.h llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp llvm/lib/Transforms/Utils/ControlFlowUtils.cpp mlir/include/mlir/Dialect/Tensor/Extensions/AllExtensions.h mlir/include/mlir/Dialect/Tensor/Extensions/MeshShardingExtensions.h mlir/lib/Dialect/Tensor/Extensions/AllExtensions.cpp offload/DeviceRTL/include/Profiling.h offload/DeviceRTL/src/Profiling.cpp offload/test/offloading/pgo1.c offload/test/sanitizer/ptr_outside_alloc_1.c offload/test/sanitizer/ptr_outside_alloc_2.c offload/test/sanitizer/use_after_free_1.c offload/test/sanitizer/use_after_free_2.c bolt/lib/Core/BinaryFunctionProfile.cpp bolt/test/X86/instrumentation-eh_frame_hdr.cpp clang-tools-extra/clangd/TUScheduler.cpp clang/include/clang/AST/ExprCXX.h clang/include/clang/AST/Type.h clang/include/clang/Driver/SanitizerArgs.h clang/include/clang/Format/Format.h clang/include/clang/Sema/Sema.h clang/include/clang/Serialization/ASTReader.h clang/lib/AST/ByteCode/Compiler.cpp clang/lib/AST/ByteCode/Descriptor.cpp clang/lib/AST/ByteCode/Descriptor.h clang/lib/AST/ByteCode/EvalEmitter.cpp clang/lib/AST/ByteCode/FunctionPointer.h clang/lib/AST/ByteCode/Interp.cpp clang/lib/AST/ByteCode/Interp.h clang/lib/AST/ByteCode/Pointer.h clang/lib/AST/ExprConstant.cpp clang/lib/Basic/Targets/AArch64.cpp clang/lib/Basic/Targets/AArch64.h clang/lib/Basic/Targets/WebAssembly.cpp clang/lib/Basic/Targets/WebAssembly.h clang/lib/CodeGen/BackendUtil.cpp clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CGCall.cpp clang/lib/CodeGen/CGClass.cpp clang/lib/CodeGen/CGExpr.cpp clang/lib/CodeGen/CGExprScalar.cpp clang/lib/CodeGen/CGHLSLRuntime.h clang/lib/CodeGen/CodeGenFunction.cpp clang/lib/CodeGen/CodeGenFunction.h clang/lib/CodeGen/CodeGenModule.cpp clang/lib/CodeGen/CodeGenModule.h clang/lib/CodeGen/CodeGenPGO.cpp clang/lib/CodeGen/CodeGenTBAA.cpp clang/lib/CodeGen/CodeGenTBAA.h clang/lib/CodeGen/CodeGenTypes.cpp clang/lib/CodeGen/CodeGenTypes.h clang/lib/CodeGen/MicrosoftCXXABI.cpp clang/lib/CodeGen/Targets/SPIR.cpp clang/lib/Driver/SanitizerArgs.cpp clang/lib/Driver/ToolChains/Arch/Sparc.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/CommonArgs.cpp clang/lib/Driver/ToolChains/Darwin.cpp clang/lib/Driver/ToolChains/Linux.cpp clang/lib/Driver/ToolChains/PS4CPU.cpp clang/lib/Format/ContinuationIndenter.cpp clang/lib/Format/Format.cpp clang/lib/Format/FormatToken.cpp clang/lib/Format/FormatToken.h clang/lib/Format/TokenAnnotator.cpp clang/lib/Frontend/InitPreprocessor.cpp clang/lib/Frontend/PrintPreprocessedOutput.cpp clang/lib/Headers/immintrin.h clang/lib/Parse/ParseDecl.cpp clang/lib/Parse/ParseDeclCXX.cpp clang/lib/Sema/CheckExprLifetime.cpp clang/lib/Sema/SemaAttr.cpp clang/lib/Sema/SemaDecl.cpp clang/lib/Sema/SemaExpr.cpp clang/lib/Sema/SemaExprCXX.cpp clang/lib/Sema/SemaInit.cpp clang/lib/Sema/SemaOverload.cpp clang/lib/Sema/SemaTemplate.cpp clang/lib/Sema/SemaTemplateInstantiate.cpp clang/lib/Sema/SemaTemplateInstantiateDecl.cpp clang/lib/Sema/SemaX86.cpp clang/lib/Serialization/ASTReader.cpp clang/lib/Serialization/ASTReaderDecl.cpp clang/lib/StaticAnalyzer/Checkers/Taint.cpp clang/test/AST/ByteCode/c.c clang/test/AST/ByteCode/invalid.cpp clang/test/AST/ByteCode/literals.cpp clang/test/AST/ByteCode/new-delete.cpp clang/test/Analysis/analyzer-config.c clang/test/Analysis/taint-generic.c clang/test/CXX/drs/cwg23xx.cpp clang/test/CXX/drs/cwg29xx.cpp clang/test/CXX/temp/temp.arg/temp.arg.nontype/p1-11.cpp clang/test/CXX/temp/temp.decls/temp.mem/p1.cpp clang/test/ClangScanDeps/pr61006.cppm clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sb.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sh.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sw.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1ub.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uh.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uw.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1b.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1h.c clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1w.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_loads.c clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_store.c clang/test/CodeGen/attr-counted-by.c clang/test/CodeGen/builtin-cpu-supports.c clang/test/CodeGen/builtins-wasm.c clang/test/CodeGen/fp-reassoc-pragma.cpp clang/test/CodeGen/fp-reciprocal-pragma.cpp clang/test/CodeGen/kcfi-normalize.c clang/test/CodeGen/ms-mixed-ptr-sizes.c clang/test/CodeGen/tls-maxalign-modflag.c clang/test/CodeGenCXX/cxx2b-consteval-if.cpp clang/test/CodeGenCXX/windows-itanium-init-guard.cpp clang/test/Driver/coverage.c clang/test/Driver/debug-options.c clang/test/Driver/fsanitize.c clang/test/Driver/print-supported-extensions-riscv.c clang/test/Driver/program-path-priority.c clang/test/Driver/ps5-linker.c clang/test/Driver/riscv-cpus.c clang/test/Driver/wasm-features.c clang/test/Headers/wasm.c clang/test/Lexer/cxx-features.cpp clang/test/Misc/target-invalid-cpu-note/riscv.c clang/test/Parser/parser_overflow.c clang/test/Preprocessor/aarch64-target-features.c clang/test/Preprocessor/riscv-target-features.c clang/test/Preprocessor/wasm-target-features.c clang/test/Sema/warn-lifetime-analysis-nocfg.cpp clang/test/SemaCXX/attr-annotate.cpp clang/test/SemaCXX/constant-expression-cxx2a.cpp clang/test/SemaCXX/cxx2a-constexpr-dynalloc.cpp clang/test/SemaCXX/cxx2a-explicit-bool.cpp clang/test/SemaCXX/matrix-index-operator-sign-conversion.cpp clang/test/SemaCXX/sugared-auto.cpp clang/test/SemaTemplate/concepts-friends.cpp clang/tools/driver/cc1as_main.cpp clang/unittests/Format/ConfigParseTest.cpp clang/unittests/Format/FormatTest.cpp clang/unittests/Format/FormatTestComments.cpp clang/unittests/Format/FormatTestObjC.cpp clang/unittests/Format/QualifierFixerTest.cpp clang/utils/TableGen/NeonEmitter.cpp compiler-rt/lib/asan/asan_flags.inc compiler-rt/lib/asan/asan_globals.cpp compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp compiler-rt/test/asan/TestCases/Darwin/cstring_section.c compiler-rt/test/asan/TestCases/Linux/initialization-nobug-lld.cpp compiler-rt/test/asan/TestCases/Linux/odr_indicator_unregister.cpp compiler-rt/test/asan/TestCases/Linux/odr_indicators.cpp compiler-rt/test/asan/TestCases/Windows/dll_global_dead_strip.c compiler-rt/test/asan/TestCases/Windows/dll_report_globals_symbolization_at_startup.cpp compiler-rt/test/asan/TestCases/Windows/global_dead_strip.c compiler-rt/test/asan/TestCases/Windows/report_globals_vs_freelibrary.cpp compiler-rt/test/asan/TestCases/initialization-nobug.cpp compiler-rt/test/metadata/uar.cpp flang/include/flang/Optimizer/CodeGen/CodeGen.h flang/include/flang/Optimizer/Support/InternalNames.h flang/include/flang/Optimizer/Transforms/Passes.h flang/include/flang/Tools/CLOptions.inc flang/lib/Lower/ConvertCall.cpp flang/lib/Lower/ConvertExpr.cpp flang/lib/Lower/OpenMP/Clauses.cpp flang/lib/Lower/OpenMP/Clauses.h flang/lib/Lower/OpenMP/ReductionProcessor.cpp flang/lib/Optimizer/Builder/IntrinsicCall.cpp flang/lib/Optimizer/CodeGen/CodeGen.cpp flang/lib/Optimizer/Dialect/FIRAttr.cpp flang/lib/Optimizer/Dialect/FIROps.cpp flang/lib/Optimizer/Support/InternalNames.cpp flang/lib/Optimizer/Transforms/AddDebugInfo.cpp flang/lib/Optimizer/Transforms/ConstantArgumentGlobalisation.cpp flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp flang/lib/Optimizer/Transforms/DebugTypeGenerator.h flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp flang/lib/Optimizer/Transforms/StackArrays.cpp flang/lib/Semantics/runtime-type-info.cpp flang/runtime/copy.cpp flang/runtime/edit-input.cpp flang/runtime/exceptions.cpp flang/runtime/numeric.cpp flang/runtime/stop.cpp flang/tools/fir-opt/fir-opt.cpp libc/src/ctype/isalnum.cpp libc/src/ctype/isalpha.cpp libc/src/ctype/isblank.cpp libc/src/ctype/iscntrl.cpp libc/src/ctype/isdigit.cpp libc/src/ctype/isgraph.cpp libc/src/ctype/islower.cpp libc/src/ctype/isprint.cpp libc/src/ctype/ispunct.cpp libc/src/ctype/isspace.cpp libc/src/ctype/isupper.cpp libc/src/ctype/isxdigit.cpp libc/src/ctype/tolower.cpp libc/src/ctype/toupper.cpp libc/src/stdio/scanf_core/vfscanf_internal.h libcxx/include/__compare/ordering.h libcxx/include/print libcxx/include/regex libcxx/include/string libcxx/include/string_view libcxx/test/libcxx/utilities/expected/expected.expected/transform_error.mandates.verify.cpp libcxx/test/libcxx/utilities/expected/expected.void/transform_error.mandates.verify.cpp libcxx/test/std/input.output/iostream.format/std.manip/setfill_wchar_max.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/copy_assign.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/copy_ctor.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/default.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_ctor.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_adopt_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_defer_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_duration.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_time_point.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex_try_to_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_for.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_until.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/unlock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.mod/member_swap.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.mod/nonmember_swap.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.mod/release.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.obs/mutex.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.obs/op_bool.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.obs/owns_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/types.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/try_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/try_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/try_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/try_lock_for.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/try_lock_until.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/try_lock.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/try_lock_for.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/try_lock_until.pass.cpp lld/COFF/Chunks.cpp lld/COFF/Chunks.h lld/COFF/Driver.cpp lld/COFF/Driver.h lld/COFF/SymbolTable.cpp lld/COFF/SymbolTable.h lld/COFF/Writer.cpp lld/ELF/AArch64ErrataFix.cpp lld/ELF/ARMErrataFix.cpp lld/ELF/Arch/AArch64.cpp lld/ELF/Arch/ARM.cpp lld/ELF/Arch/LoongArch.cpp lld/ELF/Arch/PPC.cpp lld/ELF/Arch/PPC64.cpp lld/ELF/Arch/RISCV.cpp lld/ELF/Arch/SystemZ.cpp lld/ELF/Arch/X86.cpp lld/ELF/Arch/X86_64.cpp lld/ELF/Config.h lld/ELF/Driver.cpp lld/ELF/ICF.cpp lld/ELF/InputSection.cpp lld/ELF/InputSection.h lld/ELF/LinkerScript.cpp lld/ELF/LinkerScript.h lld/ELF/MapFile.cpp lld/ELF/MarkLive.cpp lld/ELF/OutputSections.cpp lld/ELF/Relocations.cpp lld/ELF/ScriptParser.cpp lld/ELF/Symbols.cpp lld/ELF/SyntheticSections.cpp lld/ELF/SyntheticSections.h lld/ELF/Target.cpp lld/ELF/Target.h lld/ELF/Thunks.cpp lld/ELF/Writer.cpp lldb/include/lldb/Interpreter/Interfaces/ScriptedInterface.h lldb/include/lldb/lldb-private-enumerations.h lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp lldb/source/Plugins/Process/minidump/MinidumpParser.cpp lldb/source/Plugins/Process/minidump/MinidumpParser.h lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp lldb/source/Plugins/Process/minidump/MinidumpTypes.h lldb/source/Target/Target.cpp lldb/source/Utility/ArchSpec.cpp lldb/test/Shell/Expr/TestAnonNamespaceParamFunc.cpp lldb/tools/lldb-dap/DAP.cpp lldb/tools/lldb-dap/DAP.h lldb/tools/lldb-dap/OutputRedirector.cpp lldb/tools/lldb-dap/lldb-dap.cpp lldb/unittests/Process/elf-core/ThreadElfCoreTest.cpp lldb/unittests/Symbol/TestClangASTImporter.cpp llvm/include/llvm/ADT/APFloat.h llvm/include/llvm/ADT/APInt.h llvm/include/llvm/ADT/StringExtras.h llvm/include/llvm/ADT/StringRef.h llvm/include/llvm/Analysis/CtxProfAnalysis.h llvm/include/llvm/Analysis/LoopAccessAnalysis.h llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h llvm/include/llvm/ExecutionEngine/Orc/LoadRelocatableObject.h llvm/include/llvm/ExecutionEngine/Orc/MachO.h llvm/include/llvm/IR/DebugInfo.h llvm/include/llvm/IR/DebugProgramInstruction.h llvm/include/llvm/IR/IntrinsicInst.h llvm/include/llvm/LTO/LTO.h llvm/include/llvm/MC/MCAssembler.h llvm/include/llvm/MC/MCELFObjectWriter.h llvm/include/llvm/MC/MCTargetOptions.h llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h llvm/include/llvm/ProfileData/InstrProf.h llvm/include/llvm/SandboxIR/SandboxIR.h llvm/include/llvm/SandboxIR/Tracker.h llvm/include/llvm/Support/ModRef.h llvm/include/llvm/Support/float128.h llvm/include/llvm/TableGen/SetTheory.h llvm/include/llvm/TableGen/StringToOffsetTable.h llvm/include/llvm/TargetParser/RISCVISAInfo.h llvm/include/llvm/Transforms/IPO/FunctionImport.h llvm/include/llvm/Transforms/InstCombine/InstCombiner.h llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h llvm/include/llvm/Transforms/Utils/Local.h llvm/include/llvm/Transforms/Utils/SCCPSolver.h llvm/lib/Analysis/AliasAnalysis.cpp llvm/lib/Analysis/ConstantFolding.cpp llvm/lib/Analysis/CtxProfAnalysis.cpp llvm/lib/Analysis/LoopAccessAnalysis.cpp llvm/lib/Analysis/ScalarEvolution.cpp llvm/lib/CodeGen/DwarfEHPrepare.cpp llvm/lib/CodeGen/GlobalISel/CombinerHelperCasts.cpp llvm/lib/CodeGen/GlobalISel/GISelChangeObserver.cpp llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp llvm/lib/CodeGen/MachineSink.cpp llvm/lib/CodeGen/MachineStableHash.cpp llvm/lib/CodeGen/PrologEpilogInserter.cpp llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp llvm/lib/CodeGen/ShrinkWrap.cpp llvm/lib/CodeGen/TargetLoweringBase.cpp llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp llvm/lib/DebugInfo/Symbolize/Symbolize.cpp llvm/lib/ExecutionEngine/Orc/LoadRelocatableObject.cpp llvm/lib/ExecutionEngine/Orc/MachO.cpp llvm/lib/IR/AutoUpgrade.cpp llvm/lib/IR/Constants.cpp llvm/lib/IR/DebugInfo.cpp llvm/lib/IR/VectorBuilder.cpp llvm/lib/IR/Verifier.cpp llvm/lib/LTO/LTO.cpp llvm/lib/LTO/LTOBackend.cpp llvm/lib/LTO/ThinLTOCodeGenerator.cpp llvm/lib/MC/ELFObjectWriter.cpp llvm/lib/MC/MCTargetOptionsCommandFlags.cpp llvm/lib/ProfileData/InstrProf.cpp llvm/lib/SandboxIR/SandboxIR.cpp llvm/lib/SandboxIR/Tracker.cpp llvm/lib/Support/APFloat.cpp llvm/lib/TableGen/SetTheory.cpp llvm/lib/Target/AArch64/AArch64.h llvm/lib/Target/AArch64/AArch64FrameLowering.cpp llvm/lib/Target/AArch64/AArch64ISelLowering.cpp llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp llvm/lib/Target/AArch64/AArch64TargetMachine.cpp llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp llvm/lib/Target/AMDGPU/AMDGPU.h llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.cpp llvm/lib/Target/AMDGPU/AMDGPUAsanInstrumentation.h llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h llvm/lib/Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp llvm/lib/Target/AMDGPU/AMDGPUPreLegalizerCombiner.cpp llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp llvm/lib/Target/AMDGPU/GCNSubtarget.h 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/SIRegisterInfo.cpp llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp llvm/lib/Target/BPF/BPFISelLowering.cpp llvm/lib/Target/BPF/BPFMIPeephole.cpp llvm/lib/Target/BPF/BPFRegisterInfo.cpp llvm/lib/Target/BPF/BPFRegisterInfo.h llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp llvm/lib/Target/DirectX/DXILOpLowering.cpp llvm/lib/Target/DirectX/DXILPrettyPrinter.cpp llvm/lib/Target/DirectX/DXILResourceAnalysis.cpp llvm/lib/Target/DirectX/DXILResourceAnalysis.h llvm/lib/Target/DirectX/DXILTranslateMetadata.cpp llvm/lib/Target/DirectX/DirectX.h llvm/lib/Target/DirectX/DirectXTargetMachine.cpp llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp llvm/lib/Target/NVPTX/NVPTXProxyRegErasure.cpp llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp llvm/lib/Target/RISCV/GISel/RISCVCallLowering.h llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp llvm/lib/Target/RISCV/RISCVISelLowering.cpp llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp llvm/lib/Target/RISCV/RISCVVectorPeephole.cpp llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVMCCodeEmitter.cpp llvm/lib/Target/SPIRV/SPIRV.h llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp llvm/lib/Target/SPIRV/SPIRVInstrInfo.cpp llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.h llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp llvm/lib/Target/SPIRV/SPIRVSubtarget.h llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h llvm/lib/Target/X86/X86FrameLowering.cpp llvm/lib/Target/X86/X86ISelLowering.cpp llvm/lib/Target/X86/X86ISelLowering.h llvm/lib/Target/X86/X86IntrinsicsInfo.h llvm/lib/Target/X86/X86RegisterInfo.cpp llvm/lib/Target/X86/X86RegisterInfo.h llvm/lib/Target/X86/X86TargetTransformInfo.cpp llvm/lib/Target/Xtensa/XtensaISelDAGToDAG.cpp llvm/lib/Target/Xtensa/XtensaISelLowering.cpp llvm/lib/Target/Xtensa/XtensaISelLowering.h llvm/lib/Transforms/Coroutines/CoroFrame.cpp llvm/lib/Transforms/Coroutines/CoroInternal.h llvm/lib/Transforms/Coroutines/CoroSplit.cpp llvm/lib/Transforms/HipStdPar/HipStdPar.cpp llvm/lib/Transforms/IPO/AttributorAttributes.cpp llvm/lib/Transforms/IPO/FunctionAttrs.cpp llvm/lib/Transforms/IPO/FunctionImport.cpp llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp llvm/lib/Transforms/Scalar/ConstraintElimination.cpp llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp llvm/lib/Transforms/Scalar/SROA.cpp llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp llvm/lib/Transforms/Utils/BasicBlockUtils.cpp llvm/lib/Transforms/Utils/FixIrreducible.cpp llvm/lib/Transforms/Utils/Local.cpp llvm/lib/Transforms/Utils/ModuleUtils.cpp llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp llvm/lib/Transforms/Utils/SCCPSolver.cpp llvm/lib/Transforms/Utils/SimplifyCFG.cpp llvm/lib/Transforms/Utils/UnifyLoopExits.cpp llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h llvm/lib/Transforms/Vectorize/LoopVectorize.cpp llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp llvm/lib/Transforms/Vectorize/VPlan.cpp llvm/lib/Transforms/Vectorize/VPlan.h llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp llvm/test/TableGen/x86-fold-tables.inc llvm/tools/llvm-link/llvm-link.cpp llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp llvm/unittests/ADT/STLExtrasTest.cpp llvm/unittests/ADT/StringExtrasTest.cpp llvm/unittests/ADT/StringRefTest.cpp llvm/unittests/Analysis/CtxProfAnalysisTest.cpp llvm/unittests/Analysis/GraphWriterTest.cpp llvm/unittests/SandboxIR/SandboxIRTest.cpp llvm/unittests/SandboxIR/TrackerTest.cpp llvm/unittests/TargetParser/RISCVISAInfoTest.cpp llvm/utils/TableGen/Common/CodeGenRegisters.cpp llvm/utils/TableGen/Common/CodeGenSchedule.cpp llvm/utils/TableGen/IntrinsicEmitter.cpp llvm/utils/TableGen/TableGen.cpp mlir/include/mlir/Analysis/DataFlow/ConstantPropagationAnalysis.h mlir/include/mlir/Analysis/DataFlow/DenseAnalysis.h mlir/include/mlir/Analysis/DataFlow/IntegerRangeAnalysis.h mlir/include/mlir/Analysis/DataFlow/LivenessAnalysis.h mlir/include/mlir/Analysis/DataFlow/SparseAnalysis.h mlir/include/mlir/Dialect/Func/Extensions/MeshShardingExtensions.h mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h mlir/include/mlir/IR/BuiltinTypes.h mlir/include/mlir/IR/MLIRContext.h mlir/include/mlir/InitAllDialects.h mlir/include/mlir/InitAllExtensions.h mlir/include/mlir/TableGen/Constraint.h mlir/include/mlir/Transforms/DialectConversion.h mlir/lib/Analysis/DataFlow/ConstantPropagationAnalysis.cpp mlir/lib/Analysis/DataFlow/DenseAnalysis.cpp mlir/lib/Analysis/DataFlow/IntegerRangeAnalysis.cpp mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp mlir/lib/Analysis/DataFlow/SparseAnalysis.cpp mlir/lib/Conversion/MathToLibm/MathToLibm.cpp mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp mlir/lib/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.cpp mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp mlir/lib/Dialect/Math/Transforms/LegalizeToF32.cpp mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp mlir/lib/Dialect/SCF/Utils/Utils.cpp mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp mlir/lib/IR/BuiltinAttributes.cpp mlir/lib/IR/BuiltinTypes.cpp mlir/lib/TableGen/Constraint.cpp mlir/lib/TableGen/Operator.cpp mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp mlir/lib/Target/LLVMIR/ModuleTranslation.cpp mlir/lib/Transforms/Mem2Reg.cpp mlir/lib/Transforms/Utils/DialectConversion.cpp mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp mlir/test/lib/Analysis/DataFlow/TestDenseDataFlowAnalysis.h mlir/test/lib/Analysis/DataFlow/TestDenseForwardDataFlowAnalysis.cpp mlir/test/lib/Analysis/DataFlow/TestSparseBackwardDataFlowAnalysis.cpp mlir/test/lib/Dialect/Test/TestOpDefs.cpp mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp offload/plugins-nextgen/amdgpu/src/rtl.cpp offload/plugins-nextgen/common/include/ErrorReporting.h offload/plugins-nextgen/common/include/GlobalHandler.h offload/plugins-nextgen/common/include/PluginInterface.h offload/plugins-nextgen/common/src/GlobalHandler.cpp offload/plugins-nextgen/common/src/PluginInterface.cpp offload/test/sanitizer/double_free.c offload/test/sanitizer/double_free_racy.c offload/test/sanitizer/free_wrong_ptr_kind.c offload/test/sanitizer/free_wrong_ptr_kind.cpp flang/lib/Optimizer/OpenMP/FunctionFiltering.cpp flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp flang/lib/Optimizer/OpenMP/MarkDeclareTarget.cpp libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/implicit_ctad.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/assign.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/ctor.copy.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.class/ctor.default.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/assign.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/ctor.copy.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/ctor.default.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/assign.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/ctor.copy.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.class/ctor.default.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/assign.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/ctor.copy.compile.pass.cpp libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.timedmutex.requirements/thread.timedmutex.recursive/ctor.default.pass.cpp mlir/include/mlir/Dialect/Tensor/IR/ShardingInterfaceImpl.h mlir/lib/Dialect/Tensor/Extensions/MeshShardingExtensions.cpp View the diff from clang-format here.diff --git a/libcxx/include/string_view b/libcxx/include/string_view
index c81dbc9873..cf97e3a9be 100644
--- a/libcxx/include/string_view
+++ b/libcxx/include/string_view
@@ -211,8 +211,8 @@ namespace std {
#include <__functional/hash.h>
#include <__functional/unary_function.h>
#include <__fwd/ostream.h>
-#include <__fwd/string_view.h>
#include <__fwd/string.h>
+#include <__fwd/string_view.h>
#include <__iterator/bounded_iter.h>
#include <__iterator/concepts.h>
#include <__iterator/iterator_traits.h>
diff --git a/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp b/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp
index c099c28a62..7518332b0d 100644
--- a/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp
+++ b/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp
@@ -458,10 +458,12 @@ MinidumpParser::FindMemoryRange(lldb::addr_t addr) {
if (!GetStream(StreamType::Memory64List).empty()) {
llvm::Error err = llvm::Error::success();
- for (const auto &memory_desc : GetMinidumpFile().getMemory64List(err)) {
- if (memory_desc.first.StartOfMemoryRange <= addr
- && addr < memory_desc.first.StartOfMemoryRange + memory_desc.first.DataSize) {
- return minidump::Range(memory_desc.first.StartOfMemoryRange, memory_desc.second);
+ for (const auto &memory_desc : GetMinidumpFile().getMemory64List(err)) {
+ if (memory_desc.first.StartOfMemoryRange <= addr &&
+ addr < memory_desc.first.StartOfMemoryRange +
+ memory_desc.first.DataSize) {
+ return minidump::Range(memory_desc.first.StartOfMemoryRange,
+ memory_desc.second);
}
}
@@ -495,7 +497,8 @@ llvm::ArrayRef<uint8_t> MinidumpParser::GetMemory(lldb::addr_t addr,
return range->range_ref.slice(offset, overlap);
}
-llvm::iterator_range<FallibleMemory64Iterator> MinidumpParser::GetMemory64Iterator(llvm::Error &err) {
+llvm::iterator_range<FallibleMemory64Iterator>
+MinidumpParser::GetMemory64Iterator(llvm::Error &err) {
llvm::ErrorAsOutParameter ErrAsOutParam(&err);
return m_file->getMemory64List(err);
}
diff --git a/lldb/source/Plugins/Process/minidump/MinidumpParser.h b/lldb/source/Plugins/Process/minidump/MinidumpParser.h
index 222c0ef47f..46596081eb 100644
--- a/lldb/source/Plugins/Process/minidump/MinidumpParser.h
+++ b/lldb/source/Plugins/Process/minidump/MinidumpParser.h
@@ -47,7 +47,8 @@ struct Range {
}
};
-using FallibleMemory64Iterator = llvm::object::MinidumpFile::FallibleMemory64Iterator;
+using FallibleMemory64Iterator =
+ llvm::object::MinidumpFile::FallibleMemory64Iterator;
class MinidumpParser {
public:
@@ -94,7 +95,8 @@ public:
/// complete (includes all regions mapped into the process memory).
std::pair<MemoryRegionInfos, bool> BuildMemoryRegions();
- llvm::iterator_range<FallibleMemory64Iterator> GetMemory64Iterator(llvm::Error &err);
+ llvm::iterator_range<FallibleMemory64Iterator>
+ GetMemory64Iterator(llvm::Error &err);
static llvm::StringRef GetStreamTypeAsString(StreamType stream_type);
diff --git a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
index 64e8ee76e8..775a6aee15 100644
--- a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
+++ b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
@@ -288,16 +288,14 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
auto &LoadActions = getActionDefinitionsBuilder(G_LOAD);
auto &StoreActions = getActionDefinitionsBuilder(G_STORE);
- LoadActions
- .legalForTypesWithMemDesc({{s32, p0, s8, 8},
- {s32, p0, s16, 16},
- {s32, p0, s32, 32},
- {p0, p0, sXLen, XLen}});
- StoreActions
- .legalForTypesWithMemDesc({{s32, p0, s8, 8},
- {s32, p0, s16, 16},
- {s32, p0, s32, 32},
- {p0, p0, sXLen, XLen}});
+ LoadActions.legalForTypesWithMemDesc({{s32, p0, s8, 8},
+ {s32, p0, s16, 16},
+ {s32, p0, s32, 32},
+ {p0, p0, sXLen, XLen}});
+ StoreActions.legalForTypesWithMemDesc({{s32, p0, s8, 8},
+ {s32, p0, s16, 16},
+ {s32, p0, s32, 32},
+ {p0, p0, sXLen, XLen}});
auto &ExtLoadActions =
getActionDefinitionsBuilder({G_SEXTLOAD, G_ZEXTLOAD})
.legalForTypesWithMemDesc({{s32, p0, s8, 8}, {s32, p0, s16, 16}});
@@ -386,8 +384,7 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
.lowerIfMemSizeNotByteSizePow2()
.clampScalar(0, s32, sXLen)
.lower();
- StoreActions
- .clampScalar(0, s32, sXLen)
+ StoreActions.clampScalar(0, s32, sXLen)
.lowerIfMemSizeNotByteSizePow2()
.lower();
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
index cb9ee64a67..274a798620 100644
--- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -4206,104 +4206,106 @@ X86TTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA,
{ ISD::CTPOP, MVT::i16, { 1, 1, 2, 2 } }, // popcnt(zext())
{ ISD::CTPOP, MVT::i8, { 1, 1, 2, 2 } }, // popcnt(zext())
};
- static const CostKindTblEntry X64CostTbl[] = { // 64-bit targets
- { ISD::ABS, MVT::i64, { 1, 2, 3, 3 } }, // SUB+CMOV
- { ISD::BITREVERSE, MVT::i64, { 10, 12, 20, 22 } },
- { ISD::BSWAP, MVT::i64, { 1, 2, 1, 2 } },
- { ISD::CTLZ, MVT::i64, { 2, 2, 4, 5 } }, // BSR+XOR or BSR+XOR+CMOV
- { ISD::CTLZ_ZERO_UNDEF, MVT::i64,{ 1, 2, 2, 2 } }, // BSR+XOR
- { ISD::CTTZ, MVT::i64, { 2, 2, 3, 4 } }, // TEST+BSF+CMOV/BRANCH
- { ISD::CTTZ_ZERO_UNDEF, MVT::i64,{ 1, 2, 1, 2 } }, // BSF
- { ISD::CTPOP, MVT::i64, { 10, 6, 19, 19 } },
- { ISD::ROTL, MVT::i64, { 2, 3, 1, 3 } },
- { ISD::ROTR, MVT::i64, { 2, 3, 1, 3 } },
- { X86ISD::VROTLI, MVT::i64, { 1, 1, 1, 1 } },
- { ISD::FSHL, MVT::i64, { 4, 4, 1, 4 } },
- { ISD::SADDSAT, MVT::i64, { 4, 4, 7, 10 } },
- { ISD::SSUBSAT, MVT::i64, { 4, 5, 8, 11 } },
- { ISD::UADDSAT, MVT::i64, { 2, 3, 4, 7 } },
- { ISD::USUBSAT, MVT::i64, { 2, 3, 4, 7 } },
- { ISD::SMAX, MVT::i64, { 1, 3, 2, 3 } },
- { ISD::SMIN, MVT::i64, { 1, 3, 2, 3 } },
- { ISD::UMAX, MVT::i64, { 1, 3, 2, 3 } },
- { ISD::UMIN, MVT::i64, { 1, 3, 2, 3 } },
- { ISD::SADDO, MVT::i64, { 2, 2, 4, 6 } },
- { ISD::UADDO, MVT::i64, { 2, 2, 4, 6 } },
- { ISD::SMULO, MVT::i64, { 4, 4, 4, 6 } },
- { ISD::UMULO, MVT::i64, { 8, 8, 4, 7 } },
+ static const CostKindTblEntry X64CostTbl[] = {
+ // 64-bit targets
+ {ISD::ABS, MVT::i64, {1, 2, 3, 3}}, // SUB+CMOV
+ {ISD::BITREVERSE, MVT::i64, {10, 12, 20, 22}},
+ {ISD::BSWAP, MVT::i64, {1, 2, 1, 2}},
+ {ISD::CTLZ, MVT::i64, {2, 2, 4, 5}}, // BSR+XOR or BSR+XOR+CMOV
+ {ISD::CTLZ_ZERO_UNDEF, MVT::i64, {1, 2, 2, 2}}, // BSR+XOR
+ {ISD::CTTZ, MVT::i64, {2, 2, 3, 4}}, // TEST+BSF+CMOV/BRANCH
+ {ISD::CTTZ_ZERO_UNDEF, MVT::i64, {1, 2, 1, 2}}, // BSF
+ {ISD::CTPOP, MVT::i64, {10, 6, 19, 19}},
+ {ISD::ROTL, MVT::i64, {2, 3, 1, 3}},
+ {ISD::ROTR, MVT::i64, {2, 3, 1, 3}},
+ {X86ISD::VROTLI, MVT::i64, {1, 1, 1, 1}},
+ {ISD::FSHL, MVT::i64, {4, 4, 1, 4}},
+ {ISD::SADDSAT, MVT::i64, {4, 4, 7, 10}},
+ {ISD::SSUBSAT, MVT::i64, {4, 5, 8, 11}},
+ {ISD::UADDSAT, MVT::i64, {2, 3, 4, 7}},
+ {ISD::USUBSAT, MVT::i64, {2, 3, 4, 7}},
+ {ISD::SMAX, MVT::i64, {1, 3, 2, 3}},
+ {ISD::SMIN, MVT::i64, {1, 3, 2, 3}},
+ {ISD::UMAX, MVT::i64, {1, 3, 2, 3}},
+ {ISD::UMIN, MVT::i64, {1, 3, 2, 3}},
+ {ISD::SADDO, MVT::i64, {2, 2, 4, 6}},
+ {ISD::UADDO, MVT::i64, {2, 2, 4, 6}},
+ {ISD::SMULO, MVT::i64, {4, 4, 4, 6}},
+ {ISD::UMULO, MVT::i64, {8, 8, 4, 7}},
};
- static const CostKindTblEntry X86CostTbl[] = { // 32 or 64-bit targets
- { ISD::ABS, MVT::i32, { 1, 2, 3, 3 } }, // SUB+XOR+SRA or SUB+CMOV
- { ISD::ABS, MVT::i16, { 2, 2, 3, 3 } }, // SUB+XOR+SRA or SUB+CMOV
- { ISD::ABS, MVT::i8, { 2, 4, 4, 3 } }, // SUB+XOR+SRA
- { ISD::BITREVERSE, MVT::i32, { 9, 12, 17, 19 } },
- { ISD::BITREVERSE, MVT::i16, { 9, 12, 17, 19 } },
- { ISD::BITREVERSE, MVT::i8, { 7, 9, 13, 14 } },
- { ISD::BSWAP, MVT::i32, { 1, 1, 1, 1 } },
- { ISD::BSWAP, MVT::i16, { 1, 2, 1, 2 } }, // ROL
- { ISD::CTLZ, MVT::i32, { 2, 2, 4, 5 } }, // BSR+XOR or BSR+XOR+CMOV
- { ISD::CTLZ, MVT::i16, { 2, 2, 4, 5 } }, // BSR+XOR or BSR+XOR+CMOV
- { ISD::CTLZ, MVT::i8, { 2, 2, 5, 6 } }, // BSR+XOR or BSR+XOR+CMOV
- { ISD::CTLZ_ZERO_UNDEF, MVT::i32,{ 1, 2, 2, 2 } }, // BSR+XOR
- { ISD::CTLZ_ZERO_UNDEF, MVT::i16,{ 2, 2, 2, 2 } }, // BSR+XOR
- { ISD::CTLZ_ZERO_UNDEF, MVT::i8, { 2, 2, 3, 3 } }, // BSR+XOR
- { ISD::CTTZ, MVT::i32, { 2, 2, 3, 3 } }, // TEST+BSF+CMOV/BRANCH
- { ISD::CTTZ, MVT::i16, { 2, 2, 2, 3 } }, // TEST+BSF+CMOV/BRANCH
- { ISD::CTTZ, MVT::i8, { 2, 2, 2, 3 } }, // TEST+BSF+CMOV/BRANCH
- { ISD::CTTZ_ZERO_UNDEF, MVT::i32,{ 1, 2, 1, 2 } }, // BSF
- { ISD::CTTZ_ZERO_UNDEF, MVT::i16,{ 2, 2, 1, 2 } }, // BSF
- { ISD::CTTZ_ZERO_UNDEF, MVT::i8, { 2, 2, 1, 2 } }, // BSF
- { ISD::CTPOP, MVT::i32, { 8, 7, 15, 15 } },
- { ISD::CTPOP, MVT::i16, { 9, 8, 17, 17 } },
- { ISD::CTPOP, MVT::i8, { 7, 6, 6, 6 } },
- { ISD::ROTL, MVT::i32, { 2, 3, 1, 3 } },
- { ISD::ROTL, MVT::i16, { 2, 3, 1, 3 } },
- { ISD::ROTL, MVT::i8, { 2, 3, 1, 3 } },
- { ISD::ROTR, MVT::i32, { 2, 3, 1, 3 } },
- { ISD::ROTR, MVT::i16, { 2, 3, 1, 3 } },
- { ISD::ROTR, MVT::i8, { 2, 3, 1, 3 } },
- { X86ISD::VROTLI, MVT::i32, { 1, 1, 1, 1 } },
- { X86ISD::VROTLI, MVT::i16, { 1, 1, 1, 1 } },
- { X86ISD::VROTLI, MVT::i8, { 1, 1, 1, 1 } },
- { ISD::FSHL, MVT::i32, { 4, 4, 1, 4 } },
- { ISD::FSHL, MVT::i16, { 4, 4, 2, 5 } },
- { ISD::FSHL, MVT::i8, { 4, 4, 2, 5 } },
- { ISD::SADDSAT, MVT::i32, { 3, 4, 6, 9 } },
- { ISD::SADDSAT, MVT::i16, { 4, 4, 7, 10 } },
- { ISD::SADDSAT, MVT::i8, { 4, 5, 8, 11 } },
- { ISD::SSUBSAT, MVT::i32, { 4, 4, 7, 10 } },
- { ISD::SSUBSAT, MVT::i16, { 4, 4, 7, 10 } },
- { ISD::SSUBSAT, MVT::i8, { 4, 5, 8, 11 } },
- { ISD::UADDSAT, MVT::i32, { 2, 3, 4, 7 } },
- { ISD::UADDSAT, MVT::i16, { 2, 3, 4, 7 } },
- { ISD::UADDSAT, MVT::i8, { 3, 3, 5, 8 } },
- { ISD::USUBSAT, MVT::i32, { 2, 3, 4, 7 } },
- { ISD::USUBSAT, MVT::i16, { 2, 3, 4, 7 } },
- { ISD::USUBSAT, MVT::i8, { 3, 3, 5, 8 } },
- { ISD::SMAX, MVT::i32, { 1, 2, 2, 3 } },
- { ISD::SMAX, MVT::i16, { 1, 4, 2, 4 } },
- { ISD::SMAX, MVT::i8, { 1, 4, 2, 4 } },
- { ISD::SMIN, MVT::i32, { 1, 2, 2, 3 } },
- { ISD::SMIN, MVT::i16, { 1, 4, 2, 4 } },
- { ISD::SMIN, MVT::i8, { 1, 4, 2, 4 } },
- { ISD::UMAX, MVT::i32, { 1, 2, 2, 3 } },
- { ISD::UMAX, MVT::i16, { 1, 4, 2, 4 } },
- { ISD::UMAX, MVT::i8, { 1, 4, 2, 4 } },
- { ISD::UMIN, MVT::i32, { 1, 2, 2, 3 } },
- { ISD::UMIN, MVT::i16, { 1, 4, 2, 4 } },
- { ISD::UMIN, MVT::i8, { 1, 4, 2, 4 } },
- { ISD::SADDO, MVT::i32, { 2, 2, 4, 6 } },
- { ISD::SADDO, MVT::i16, { 2, 2, 4, 6 } },
- { ISD::SADDO, MVT::i8, { 2, 2, 4, 6 } },
- { ISD::UADDO, MVT::i32, { 2, 2, 4, 6 } },
- { ISD::UADDO, MVT::i16, { 2, 2, 4, 6 } },
- { ISD::UADDO, MVT::i8, { 2, 2, 4, 6 } },
- { ISD::SMULO, MVT::i32, { 2, 2, 4, 6 } },
- { ISD::SMULO, MVT::i16, { 5, 5, 4, 6 } },
- { ISD::SMULO, MVT::i8, { 6, 6, 4, 6 } },
- { ISD::UMULO, MVT::i32, { 6, 6, 4, 8 } },
- { ISD::UMULO, MVT::i16, { 6, 6, 4, 9 } },
- { ISD::UMULO, MVT::i8, { 6, 6, 4, 6 } },
+ static const CostKindTblEntry X86CostTbl[] = {
+ // 32 or 64-bit targets
+ {ISD::ABS, MVT::i32, {1, 2, 3, 3}}, // SUB+XOR+SRA or SUB+CMOV
+ {ISD::ABS, MVT::i16, {2, 2, 3, 3}}, // SUB+XOR+SRA or SUB+CMOV
+ {ISD::ABS, MVT::i8, {2, 4, 4, 3}}, // SUB+XOR+SRA
+ {ISD::BITREVERSE, MVT::i32, {9, 12, 17, 19}},
+ {ISD::BITREVERSE, MVT::i16, {9, 12, 17, 19}},
+ {ISD::BITREVERSE, MVT::i8, {7, 9, 13, 14}},
+ {ISD::BSWAP, MVT::i32, {1, 1, 1, 1}},
+ {ISD::BSWAP, MVT::i16, {1, 2, 1, 2}}, // ROL
+ {ISD::CTLZ, MVT::i32, {2, 2, 4, 5}}, // BSR+XOR or BSR+XOR+CMOV
+ {ISD::CTLZ, MVT::i16, {2, 2, 4, 5}}, // BSR+XOR or BSR+XOR+CMOV
+ {ISD::CTLZ, MVT::i8, {2, 2, 5, 6}}, // BSR+XOR or BSR+XOR+CMOV
+ {ISD::CTLZ_ZERO_UNDEF, MVT::i32, {1, 2, 2, 2}}, // BSR+XOR
+ {ISD::CTLZ_ZERO_UNDEF, MVT::i16, {2, 2, 2, 2}}, // BSR+XOR
+ {ISD::CTLZ_ZERO_UNDEF, MVT::i8, {2, 2, 3, 3}}, // BSR+XOR
+ {ISD::CTTZ, MVT::i32, {2, 2, 3, 3}}, // TEST+BSF+CMOV/BRANCH
+ {ISD::CTTZ, MVT::i16, {2, 2, 2, 3}}, // TEST+BSF+CMOV/BRANCH
+ {ISD::CTTZ, MVT::i8, {2, 2, 2, 3}}, // TEST+BSF+CMOV/BRANCH
+ {ISD::CTTZ_ZERO_UNDEF, MVT::i32, {1, 2, 1, 2}}, // BSF
+ {ISD::CTTZ_ZERO_UNDEF, MVT::i16, {2, 2, 1, 2}}, // BSF
+ {ISD::CTTZ_ZERO_UNDEF, MVT::i8, {2, 2, 1, 2}}, // BSF
+ {ISD::CTPOP, MVT::i32, {8, 7, 15, 15}},
+ {ISD::CTPOP, MVT::i16, {9, 8, 17, 17}},
+ {ISD::CTPOP, MVT::i8, {7, 6, 6, 6}},
+ {ISD::ROTL, MVT::i32, {2, 3, 1, 3}},
+ {ISD::ROTL, MVT::i16, {2, 3, 1, 3}},
+ {ISD::ROTL, MVT::i8, {2, 3, 1, 3}},
+ {ISD::ROTR, MVT::i32, {2, 3, 1, 3}},
+ {ISD::ROTR, MVT::i16, {2, 3, 1, 3}},
+ {ISD::ROTR, MVT::i8, {2, 3, 1, 3}},
+ {X86ISD::VROTLI, MVT::i32, {1, 1, 1, 1}},
+ {X86ISD::VROTLI, MVT::i16, {1, 1, 1, 1}},
+ {X86ISD::VROTLI, MVT::i8, {1, 1, 1, 1}},
+ {ISD::FSHL, MVT::i32, {4, 4, 1, 4}},
+ {ISD::FSHL, MVT::i16, {4, 4, 2, 5}},
+ {ISD::FSHL, MVT::i8, {4, 4, 2, 5}},
+ {ISD::SADDSAT, MVT::i32, {3, 4, 6, 9}},
+ {ISD::SADDSAT, MVT::i16, {4, 4, 7, 10}},
+ {ISD::SADDSAT, MVT::i8, {4, 5, 8, 11}},
+ {ISD::SSUBSAT, MVT::i32, {4, 4, 7, 10}},
+ {ISD::SSUBSAT, MVT::i16, {4, 4, 7, 10}},
+ {ISD::SSUBSAT, MVT::i8, {4, 5, 8, 11}},
+ {ISD::UADDSAT, MVT::i32, {2, 3, 4, 7}},
+ {ISD::UADDSAT, MVT::i16, {2, 3, 4, 7}},
+ {ISD::UADDSAT, MVT::i8, {3, 3, 5, 8}},
+ {ISD::USUBSAT, MVT::i32, {2, 3, 4, 7}},
+ {ISD::USUBSAT, MVT::i16, {2, 3, 4, 7}},
+ {ISD::USUBSAT, MVT::i8, {3, 3, 5, 8}},
+ {ISD::SMAX, MVT::i32, {1, 2, 2, 3}},
+ {ISD::SMAX, MVT::i16, {1, 4, 2, 4}},
+ {ISD::SMAX, MVT::i8, {1, 4, 2, 4}},
+ {ISD::SMIN, MVT::i32, {1, 2, 2, 3}},
+ {ISD::SMIN, MVT::i16, {1, 4, 2, 4}},
+ {ISD::SMIN, MVT::i8, {1, 4, 2, 4}},
+ {ISD::UMAX, MVT::i32, {1, 2, 2, 3}},
+ {ISD::UMAX, MVT::i16, {1, 4, 2, 4}},
+ {ISD::UMAX, MVT::i8, {1, 4, 2, 4}},
+ {ISD::UMIN, MVT::i32, {1, 2, 2, 3}},
+ {ISD::UMIN, MVT::i16, {1, 4, 2, 4}},
+ {ISD::UMIN, MVT::i8, {1, 4, 2, 4}},
+ {ISD::SADDO, MVT::i32, {2, 2, 4, 6}},
+ {ISD::SADDO, MVT::i16, {2, 2, 4, 6}},
+ {ISD::SADDO, MVT::i8, {2, 2, 4, 6}},
+ {ISD::UADDO, MVT::i32, {2, 2, 4, 6}},
+ {ISD::UADDO, MVT::i16, {2, 2, 4, 6}},
+ {ISD::UADDO, MVT::i8, {2, 2, 4, 6}},
+ {ISD::SMULO, MVT::i32, {2, 2, 4, 6}},
+ {ISD::SMULO, MVT::i16, {5, 5, 4, 6}},
+ {ISD::SMULO, MVT::i8, {6, 6, 4, 6}},
+ {ISD::UMULO, MVT::i32, {6, 6, 4, 8}},
+ {ISD::UMULO, MVT::i16, {6, 6, 4, 9}},
+ {ISD::UMULO, MVT::i8, {6, 6, 4, 6}},
};
Type *RetTy = ICA.getReturnType();
diff --git a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
index 603a1565e4..53568ae35d 100644
--- a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+++ b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
@@ -1746,7 +1746,6 @@ static bool canReturn(Function &F) {
return false;
}
-
// Set the noreturn function attribute if possible.
static void addNoReturnAttrs(const SCCNodeSet &SCCNodes,
SmallSet<Function *, 8> &Changed) {
diff --git a/llvm/unittests/Analysis/GraphWriterTest.cpp b/llvm/unittests/Analysis/GraphWriterTest.cpp
index 4017e63a8c..1fd86d0e05 100644
--- a/llvm/unittests/Analysis/GraphWriterTest.cpp
+++ b/llvm/unittests/Analysis/GraphWriterTest.cpp
@@ -12,9 +12,9 @@
#include "llvm/IR/Function.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
-#include "llvm/Testing/Support/SupportHelpers.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
+#include "llvm/Testing/Support/SupportHelpers.h"
#include "gtest/gtest.h"
#include <string>
diff --git a/offload/test/sanitizer/ptr_outside_alloc_2.c b/offload/test/sanitizer/ptr_outside_alloc_2.c
index ac47c8922f..af2460149b 100644
--- a/offload/test/sanitizer/ptr_outside_alloc_2.c
+++ b/offload/test/sanitizer/ptr_outside_alloc_2.c
@@ -22,5 +22,5 @@ int main() {
// CHECK: Device pointer [[PTR]] does not point into any (current or prior) host-issued allocation.
// CHECK: Closest host-issued allocation (distance 1 byte; might be by page):
// CHECK: Last allocation of size 1073741824
-// clang-format on
+ // clang-format on
}
|
basic_string
call basic_string_view
's assume-valid constructorbasic_string
call basic_string_view
's assume-valid constructor
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.
This looks sensible to me, with a nitpick comment.
The WebEx link will become invalid soon, we are switching to Google Meet. Also, changing the cadence from biweekly to monthly.
…#105464) VS Code requests the `instruction` stepping granularity if the assembly view is currently focused. By implementing `StepGranularity`, we can hence properly single-step through assembly code.
- Remove ostream << operators for StringRef and StringRef pair from StringTest. Both of these are natively supported by googletest framework.
Adjust the handling of a few of the new clauses.
This fixes a build issue for AIX -- llvm#101461.
The operands of the phi nodes should be vectorized in the same order, in which they were created, otherwise the compiler may crash when trying to correctly build dependency for nodes with non-schedulable instructions for gather/buildvector nodes. Fixes llvm#105120
…lock are vectorized. Before doing the vectorization of the PHI nodes, the compiler sorts them by the opcodes of the operands. If the scalar is replaced during the vectorization by extractelement, it breaks this sorting and prevent some further vectorization attempts. Patch tries to improve this by doing extra analysis of the scalars and tries to keep them, if it is found that this scalar is used in other (external) PHI node in the same block. Reviewers: RKSimon Reviewed By: RKSimon Pull Request: llvm#103923
This is missing tracking for `setShuffleMask`. I'll add it in a follow-up.
- Add `isPunct` to StringExtras.h. - Add unit test for `isPunct` to StringExtrasTest.
This enhances the Github - CSV synchronization script to understand some of the idioms we use in the CSV status files, like |Nothing To Do| and others.
…04859) This change addresses more "issues" as the one resolved in llvm#71338. Some targets (e.g. NVPTX) do not accept global names containing `.`. In particular, the global variables created to represent the runtime information of derived types use `.` in their names. A derived type's descriptor object may be used in the device code, e.g. to initialize a descriptor of a variable of this type. Thus, the runtime type info objects may need to be compiled for the device. Moreover, at least the derived types' descriptor objects may need to be registered (think of `omp declare target`) for the host-device association so that the addendum pointer can be properly mapped to the device for descriptors using a derived type's descriptor as their addendum pointer. The registration implies knowing the name of the global variable in the device image so that proper host code can be created. So it is better to name the globals the same way for the host and the device. CompilerGeneratedNamesConversion pass renames all uniqued globals such that the special symbols (currently `.`) are replaced with `X`. The pass is supposed to be run for the host and the device. An option is added to FIR-to-LLVM conversion pass to indicate whether the new pass has been run before or not. This setting affects how the codegen computes the names of the derived types' descriptors for FIR derived types. fir::NameUniquer now allows `X` to be part of a name, because the name deconstruction may be applied to the mangled names after CompilerGeneratedNamesConversion pass.
…parate lines. (llvm#105456) Previously, when output like `"hello\nworld\n"` was produced by lldb (or the process) the message would be sent as a single Output event. By being a single event this causes VS Code to treat this as a single message in the console when handling displaying and filtering in the Debug Console. Instead, with these changes we send each line as its own event. This results in VS Code representing each line of output from lldb-dap as an individual output message. Resolves llvm#105444
LWG3404 was implemented along with subrange. Closes llvm#104282
…5530) This getter can easily be confused with the similar named allowUnregisteredDialects setter
…es within optimizations" This reverts commit 522c253. This series of commits causes Clang crashes. The reproducer is posted on llvm@08a0dec.
This reverts commit d48b807. This series of commits causes Clang crashes. The reproducer is posted on llvm@08a0dec
…omise when constructing the debug varaible for __coro_frame" This reverts commit 08a0dec. This series of commits causes Clang crashes. The reproducer is posted on llvm@08a0dec.
…llvm#103833) This change also covers the fold of `zext(A > B) - zext(A < B)` since it is already being canonicalized into the aforementioned pattern. Proof: https://alive2.llvm.org/ce/z/AgnfMn
…lvm#105592) I accidentally created a dangling ArrayRef local variable. Use a SmallVector instead.
…lvm#105504) - Move global variables in TableGen.cpp out of anonymous namespace and make them static, per LLVM coding standards.
I have no idea what just happened. Closing PR and will re-open a new one that doesn't change 10k files. |
You can test this locally with the following command:darker --check --diff -r 5e6a1987a5d4574d3c3811f878ddbbbf7c35fa01...b625e4c2d39d4cab8b2b59478a909d152cae5aba lldb/test/API/functionalities/memory/big-read/TestMemoryReadMaximumSize.py lldb/test/API/tools/lldb-dap/output/TestDAP_output.py clang/tools/clang-format/clang-format-diff.py clang/tools/clang-format/clang-format-sublime.py clang/tools/clang-format/clang-format.py cross-project-tests/debuginfo-tests/dexter/dex/utils/Version.py libcxx/utils/libcxx/test/features.py libcxx/utils/synchronize_csv_status_files.py lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py lldb/packages/Python/lldbsuite/test/tools/lldb-dap/lldbdap_testcase.py lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/forward_list/TestDataFormatterGenericForwardList.py lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py lldb/test/API/tools/lldb-dap/step/TestDAP_step.py llvm/utils/lit/lit/TestRunner.py View the diff from darker here.--- libcxx/utils/synchronize_csv_status_files.py 2024-08-23 17:25:21.000000 +0000
+++ libcxx/utils/synchronize_csv_status_files.py 2024-08-23 17:30:25.486049 +0000
@@ -62,59 +62,65 @@
- '|Nothing To Do|'
Note that since we sometimes add additional notes after the status, we only check that the entry
starts with the above patterns.
"""
- if entry == '':
+ if entry == "":
return PaperStatus(PaperStatus.TODO, entry)
- elif entry.startswith('|In Progress|'):
+ elif entry.startswith("|In Progress|"):
return PaperStatus(PaperStatus.IN_PROGRESS, entry)
- elif entry.startswith('|Partial|'):
+ elif entry.startswith("|Partial|"):
return PaperStatus(PaperStatus.PARTIAL, entry)
- elif entry.startswith('|Complete|'):
+ elif entry.startswith("|Complete|"):
return PaperStatus(PaperStatus.DONE, entry)
- elif entry.startswith('|Nothing To Do|'):
+ elif entry.startswith("|Nothing To Do|"):
return PaperStatus(PaperStatus.NOTHING_TO_DO, entry)
else:
- raise RuntimeError(f'Unexpected CSV entry for status: {entry}')
+ raise RuntimeError(f"Unexpected CSV entry for status: {entry}")
@staticmethod
def from_github_issue(issue: Dict):
"""
Parse a paper status out of a Github issue obtained from querying a Github project.
"""
- if 'status' not in issue:
+ if "status" not in issue:
return PaperStatus(PaperStatus.TODO)
- elif issue['status'] == 'Todo':
+ elif issue["status"] == "Todo":
return PaperStatus(PaperStatus.TODO)
- elif issue['status'] == 'In Progress':
+ elif issue["status"] == "In Progress":
return PaperStatus(PaperStatus.IN_PROGRESS)
- elif issue['status'] == 'Partial':
+ elif issue["status"] == "Partial":
return PaperStatus(PaperStatus.PARTIAL)
- elif issue['status'] == 'Done':
+ elif issue["status"] == "Done":
return PaperStatus(PaperStatus.DONE)
- elif issue['status'] == 'Nothing To Do':
+ elif issue["status"] == "Nothing To Do":
return PaperStatus(PaperStatus.NOTHING_TO_DO)
else:
- raise RuntimeError(f"Received unrecognizable Github issue status: {issue['status']}")
+ raise RuntimeError(
+ f"Received unrecognizable Github issue status: {issue['status']}"
+ )
def to_csv_entry(self) -> str:
"""
Return the issue state formatted for a CSV entry. The status is formatted as '|Complete|',
'|In Progress|', etc.
"""
mapping = {
- PaperStatus.TODO: '',
- PaperStatus.IN_PROGRESS: '|In Progress|',
- PaperStatus.PARTIAL: '|Partial|',
- PaperStatus.DONE: '|Complete|',
- PaperStatus.NOTHING_TO_DO: '|Nothing To Do|',
+ PaperStatus.TODO: "",
+ PaperStatus.IN_PROGRESS: "|In Progress|",
+ PaperStatus.PARTIAL: "|Partial|",
+ PaperStatus.DONE: "|Complete|",
+ PaperStatus.NOTHING_TO_DO: "|Nothing To Do|",
}
return self._original if self._original is not None else mapping[self._status]
def is_done(self) -> bool:
- return self._status == PaperStatus.DONE or self._status == PaperStatus.NOTHING_TO_DO
+ return (
+ self._status == PaperStatus.DONE
+ or self._status == PaperStatus.NOTHING_TO_DO
+ )
+
class PaperInfo:
paper_number: str
"""
Identifier for the paper or the LWG issue. This must be something like 'PnnnnRx', 'Nxxxxx' or 'LWGxxxxx'.
@@ -150,16 +156,20 @@
"""
Object from which this PaperInfo originated. This is used to track the CSV row or Github issue that
was used to generate this PaperInfo and is useful for error reporting purposes.
"""
- def __init__(self, paper_number: str, paper_name: str,
- status: PaperStatus,
- meeting: Optional[str] = None,
- first_released_version: Optional[str] = None,
- labels: Optional[List[str]] = None,
- original: Optional[object] = None):
+ def __init__(
+ self,
+ paper_number: str,
+ paper_name: str,
+ status: PaperStatus,
+ meeting: Optional[str] = None,
+ first_released_version: Optional[str] = None,
+ labels: Optional[List[str]] = None,
+ original: Optional[object] = None,
+ ):
self.paper_number = paper_number
self.paper_name = paper_name
self.status = status
self.meeting = meeting
self.first_released_version = first_released_version
@@ -269,11 +279,13 @@
results.append(row)
continue
# If there's more than one tracking issue, something is weird too.
if len(tracking) > 1:
- print(f"Found a row with more than one tracking issue: {row}\ntracked by: {tracking}")
+ print(
+ f"Found a row with more than one tracking issue: {row}\ntracked by: {tracking}"
+ )
results.append(row)
continue
gh = tracking[0]
@@ -282,24 +294,26 @@
# something must be wrong.
if paper.status < gh.status:
results.append(gh.for_printing())
continue
elif paper.status != gh.status:
- print(f"We found a CSV row and a Github issue with different statuses:\nrow: {row}\Github issue: {gh}")
+ print(
+ f"We found a CSV row and a Github issue with different statuses:\nrow: {row}\Github issue: {gh}"
+ )
results.append(row)
return results
CSV_FILES_TO_SYNC = [
- 'Cxx17Issues.csv',
- 'Cxx17Papers.csv',
- 'Cxx20Issues.csv',
- 'Cxx20Papers.csv',
- 'Cxx23Issues.csv',
- 'Cxx23Papers.csv',
- 'Cxx2cIssues.csv',
- 'Cxx2cPapers.csv',
+ "Cxx17Issues.csv",
+ "Cxx17Papers.csv",
+ "Cxx20Issues.csv",
+ "Cxx20Papers.csv",
+ "Cxx23Issues.csv",
+ "Cxx23Papers.csv",
+ "Cxx2cIssues.csv",
+ "Cxx2cPapers.csv",
]
def main():
libcxx_root = pathlib.Path(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
--- lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py 2024-08-23 17:25:17.000000 +0000
+++ lldb/test/API/functionalities/postmortem/minidump-new/TestMiniDumpNew.py 2024-08-23 17:30:26.129684 +0000
@@ -503,10 +503,10 @@
region = lldb.SBMemoryRegionInfo()
self.assertTrue(region_info_list.GetMemoryRegionAtIndex(0, region))
self.assertEqual(region.GetRegionBase(), 0x7FFF12A84030)
self.assertTrue(region.GetRegionEnd(), 0x7FFF12A84030 + 0x2FD0)
self.assertTrue(region_info_list.GetMemoryRegionAtIndex(1, region))
- self.assertEqual(region.GetRegionBase(), 0x00007fff12a87000)
- self.assertTrue(region.GetRegionEnd(), 0x00007fff12a87000 + 0x00000018)
+ self.assertEqual(region.GetRegionBase(), 0x00007FFF12A87000)
+ self.assertTrue(region.GetRegionEnd(), 0x00007FFF12A87000 + 0x00000018)
self.assertTrue(region_info_list.GetMemoryRegionAtIndex(2, region))
- self.assertEqual(region.GetRegionBase(), 0x00007fff12a87018)
- self.assertTrue(region.GetRegionEnd(), 0x00007fff12a87018 + 0x00000400)
+ self.assertEqual(region.GetRegionBase(), 0x00007FFF12A87018)
+ self.assertTrue(region.GetRegionEnd(), 0x00007FFF12A87018 + 0x00000400)
--- lldb/test/API/tools/lldb-dap/output/TestDAP_output.py 2024-08-23 17:25:26.000000 +0000
+++ lldb/test/API/tools/lldb-dap/output/TestDAP_output.py 2024-08-23 17:30:26.160130 +0000
@@ -14,19 +14,19 @@
self.build_and_launch(program)
source = "main.c"
lines = [line_number(source, "// breakpoint 1")]
breakpoint_ids = self.set_source_breakpoints(source, lines)
self.continue_to_breakpoints(breakpoint_ids)
-
+
# Ensure partial messages are still sent.
output = self.collect_stdout(timeout_secs=1.0, pattern="abcdef")
self.assertTrue(output and len(output) > 0, "expect no program output")
self.continue_to_exit()
-
+
output += self.get_stdout(timeout=lldbdap_testcase.DAPTestCaseBase.timeoutval)
self.assertTrue(output and len(output) > 0, "expect no program output")
self.assertIn(
"abcdefghi\r\nhello world\r\n",
output,
- 'full output not found in: ' + output,
+ "full output not found in: " + output,
)
|
basic_string
frequently callsbasic_string_view(data(), size())
, which accounts for ~15% of the observed overhead when hardening is enabled. This commit removes unnecessary checks whenbasic_string
is known to already have valid data, by bypassing the public constructor, so that we eliminate that overhead.