1. [MemoryLocation] Use getForArgument in getForSource/getForDest. (NFC) (details)
  2. [X86][FP16] Replace vXi16 to vXf16 instead of v8f16 (details)
  3. Reland [DwarfDebug] Move emission of global vars, types and imports to endModule() (details)
  4. Reland [DwarfDebug] Support emitting function-local declaration for a lexical block (details)
  5. [VPlan] Separate ctors for VPWidenIntOrFpInduction. (NFC) (details)
  6. [libc++][ci] Disable generating debug information. (details)
  7. Microsoft's floating-point to_chars powered by Ryu and Ryu Printf (details)
  8. [gn build] (semiautomaticallly) port a8025e06fc0f (libc++ ryu) (details)
  9. Remove duplicate comment (details)
  10. Follow-up for D113741: fix DebugInfo/Generic/lexical_block_static.ll on MachO (details)
  11. [InstCombine] add tests for icmp with mul op with known bits; NFC (details)
  12. [InstSimplify] add/adjust tests for 'or' logic fold; NFC (details)
  13. [InstSimplify] fix logic fold of 'or' for vectors (details)
  14. [llvm] Use range-based for loops (NFC) (details)
  15. [libc++][doc] Update format implementation status. (details)
  16. [gn build] port a8025e06fc0f more (details)
  17. [libc++] Fix an include-guard comment. NFC. (details)
  18. [libc++] Add missing `#pragma GCC system_header` in a few headers. NFCI. (details)
  19. [libc++] Adjust space-alignment in module.modulemap. NFC. (details)
  20. Fix `-Wunused-variable` warning. NFC. (details)
  21. Fix TOSA verifier to emit verbose errors (details)
Commit 203f29b40ca3a248307ab75af04577f10173591f by flo
[MemoryLocation] Use getForArgument in getForSource/getForDest. (NFC)

getForArgument already knows how to extract a memory location for all
memory intrinsics. Use it instead of duplicating the logic.
The file was modifiedllvm/lib/Analysis/MemoryLocation.cpp
Commit f37d9b41122292d6758eef489af677ea1afa9436 by
[X86][FP16] Replace vXi16 to vXf16 instead of v8f16

Fixes pr52561

Reviewed By: LuoYuanke

Differential Revision:
The file was modifiedllvm/test/CodeGen/X86/avx512fp16-mov.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 0ac75e82fff93a80ca401d3db3541e8d1d9098f9 by kbessonova
Reland [DwarfDebug] Move emission of global vars, types and imports to endModule()

This patch proposes to move emission of global variables, types,
imported entities, etc from DwarfDebug::beginModule() to DwarfDebug::endModule().
Effectively, this changes nothing but the order of debug entities which
will be as follows:
* subprograms (including related context, local variables/labels,
  local imported entities; related types can be created as a part of
  the emission of local entities of an abstract subprogram);
* global variables (including related context and types);
* retained types and enums;
* non-local-scoped imported entities;
* basic types;
* other types left (as a part of local variables attributes emission).

Note that the order of emitted compile units may also be changed as now we emit
units that contain subprograms first and then all other non-empty units.

The motivation behind this change is the following:
(1) DwarfDebug::beginModule() is run at the very beginning of backend's pipeline,
    from this time IR can be significantly changed by target-specific passes.
    If it happens for debug metadata of global entities, those changes will not
    be reflected in the emitted DWARF.
(2) imported subprogram names should refer to an abstract subprogram if it exists,
    but it isn't known in DwarfDebug::beginModule() (it's possible to make some
    guesses based on location info, but it's not quite reliable);
(3) aforementioned entities if they are scoped within a bracketed block
    (subject of D113741) couldn't be emitted in DwarfDebug::beginModule()
    (they need parent emitted first). Another problem is if to try to gather
    some information about local entities and defer their emission
    (till subprogram's processing or DwarfDebug::endModule()) all the gathered
    details might be irrelevant / invalid by the time the entities are being
    emitted (because of (1)).

Reviewed By: dblaikie

Differential Revision:
The file was modifiedllvm/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir
The file was modifiedllvm/test/DebugInfo/BPF/extern-void.ll
The file was modifiedllvm/test/MC/WebAssembly/dwarfdump.ll
The file was modifiedllvm/test/DebugInfo/X86/template.ll
The file was modifiedllvm/test/DebugInfo/Generic/debug-names-linkage-name.ll
The file was modifiedllvm/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll
The file was modifiedllvm/test/DebugInfo/X86/dwarf-aranges.ll
The file was modifiedllvm/test/DebugInfo/X86/dwarfdump-DIImportedEntity_elements.ll
The file was modifiedllvm/test/DebugInfo/AMDGPU/variable-locations.ll
The file was modifiedllvm/test/DebugInfo/Generic/namespace.ll
The file was modifiedllvm/test/DebugInfo/NVPTX/debug-addr-class.ll
The file was modifiedllvm/test/DebugInfo/Generic/varargs.ll
The file was modifiedllvm/test/DebugInfo/X86/subprogram-across-cus.ll
The file was modifiedllvm/test/DebugInfo/X86/lexical-block-file-inline.ll
The file was modifiedllvm/test/DebugInfo/X86/debug-info-access.ll
The file was modifiedllvm/test/DebugInfo/X86/debug-info-blocks.ll
The file was modifiedllvm/test/DebugInfo/X86/debug-loc-offset.mir
The file was modifiedllvm/test/DebugInfo/X86/vla-global.ll
The file was modifiedllvm/test/DebugInfo/X86/align_cpp11.ll
The file was modifiedllvm/test/DebugInfo/X86/arange-and-stub.ll
The file was modifiedllvm/test/DebugInfo/X86/debug-info-static-member.ll
The file was modifiedllvm/test/DebugInfo/Generic/enum-types.ll
The file was modifiedllvm/test/DebugInfo/X86/align_objc.ll
The file was modifiedllvm/test/DebugInfo/X86/generate-odr-hash.ll
The file was modifiedllvm/test/DebugInfo/X86/DW_AT_calling-convention.ll
The file was modifiedllvm/test/MC/WebAssembly/debug-info64.ll
The file was modifiedllvm/test/DebugInfo/PowerPC/strict-dwarf.ll
The file was modifiedllvm/test/DebugInfo/X86/tls.ll
The file was modifiedllvm/test/DebugInfo/Generic/debug-info-qualifiers.ll
The file was modifiedllvm/test/DebugInfo/NVPTX/debug-info.ll
The file was modifiedllvm/test/DebugInfo/X86/namelist1.ll
The file was modifiedllvm/test/DebugInfo/attr-btf_tag.ll
The file was modifiedllvm/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll
The file was modifiedllvm/test/DebugInfo/X86/dwarf-linkage-names.ll
The file was modifiedllvm/test/DebugInfo/X86/containing-type-extension-rust.ll
The file was modifiedllvm/test/DebugInfo/X86/gnu-public-names.ll
The file was modifiedllvm/test/MC/WebAssembly/debug-info.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedlld/test/wasm/debuginfo.test
The file was modifiedllvm/test/MC/WebAssembly/dwarfdump64.ll
The file was modifiedllvm/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll
The file was modifiedllvm/test/DebugInfo/NVPTX/debug-loc-offset.ll
The file was modifiedllvm/test/DebugInfo/X86/linkage-name.ll
The file was modifiedllvm/test/DebugInfo/Generic/incorrect-variable-debugloc.ll
The file was modifiedllvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll
The file was modifiedllvm/test/DebugInfo/X86/sret.ll
Commit 75b622a7959479ccdb758ebe0973061b7b4fcacd by kbessonova
Reland [DwarfDebug] Support emitting function-local declaration for a lexical block

This is another attempt to make function-local declarations
(like static variables, structs/classes and other) be correctly
emitted within a lexical (bracketed) block.


Reviewed By: dblaikie

Differential Revision:
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was addedllvm/test/DebugInfo/Generic/lexical_block_types.ll
The file was addedllvm/test/DebugInfo/Generic/lexical_block_static.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
The file was addedllvm/test/DebugInfo/Generic/import-inlined-declaration.ll
The file was modifiedllvm/test/DebugInfo/Generic/namespace.ll
The file was addedllvm/test/DebugInfo/Generic/inlined-static-var.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfFile.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedllvm/test/DebugInfo/Generic/imported-name-inlined.ll
The file was addedllvm/test/DebugInfo/Generic/inlined-local-type.ll
Commit 7c3c352d82131b960726560869945201410f9eb7 by flo
[VPlan] Separate ctors for VPWidenIntOrFpInduction. (NFC)

VPWidenIntOrFpInductionRecipes can either be constructed with a PHI and
an optional cast or a PHI and a trunc instruction. Reflect this in 2
separate constructors. This also simplifies a follow-up change.
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Commit 15495be014032339600cda7770d7bf45dfb10d54 by koraq
[libc++][ci] Disable generating debug information.

In the bootstrap build generating debug information causes an ICE.
This is a work-around for
The file was modifiedlibcxx/utils/ci/run-buildbot
Commit a8025e06fc0f2fe1bbee9e1a6f15c336bfbdcb05 by koraq
Microsoft's floating-point to_chars powered by Ryu and Ryu Printf

Microsoft would like to contribute its implementation of floating-point to_chars to libc++. This uses the impossibly fast Ryu and Ryu Printf algorithms invented by Ulf Adams at Google. Upstream repos: and .

Licensing notes: MSVC's STL is available under the Apache License v2.0 with LLVM Exception, intentionally chosen to match libc++. We've used Ryu under the Boost Software License.

This patch contains minor changes from Jorg Brown at Google, to adapt the code to libc++. He verified that it works in Google's Linux-based environment, but then I applied more changes on top of his, so any compiler errors are my fault. (I haven't tried to build and test libc++ yet.) Please tell me if we need to do anything else in order to follow .


* libc++'s integer charconv is unchanged (except for a small refactoring). MSVC's integer charconv hasn't been tuned for performance yet, so you're not missing anything.
* Floating-point from_chars isn't part of this patch because Jorg found that MSVC's implementation (derived from our CRT's strtod) was slower than Abseil's. If you're unable to use Abseil or another implementation due to licensing or technical considerations, Microsoft would be delighted if you used MSVC's from_chars (and you can just take it, or ask us to provide a patch like this). Ulf is also working on a novel algorithm for from_chars.
* This assumes that float is IEEE 32-bit, double is IEEE 64-bit, and long double is also IEEE 64-bit.
* I have added MSVC's charconv tests (the whole thing: integer/floating from_chars/to_chars), but haven't adapted them to libcxx's harness at all. (These tests will be available in the microsoft/STL repo soon.)
* Jorg added int128 codepaths. These were originally present in upstream Ryu, and I removed them from microsoft/STL purely for performance reasons (MSVC doesn't support int128; Clang on Windows does, but I found that x64 intrinsics were slightly faster).
* The implementation is split into 3 headers. In MSVC's STL, charconv contains only Microsoft-written code. xcharconv_ryu.h contains code derived from Ryu (with significant modifications and additions). xcharconv_ryu_tables.h contains Ryu's large lookup tables (they were sufficiently large to make editing inconvenient, hence the separate file). The xmeow.h convention is MSVC's for internal headers; you may wish to rename them.
* You should consider separately compiling the lookup tables (see ) for compiler throughput and reduced object file size.
* See for fine-grained history. (If necessary, I can perform some rebase surgery to show you what Jorg changed relative to the microsoft/STL repo; currently that's all fused into the first commit.)

Differential Revision:
The file was modifiedlibcxx/include/charconv
The file was addedlibcxx/src/ryu/README.txt
The file was modifiedlibcxx/src/CMakeLists.txt
The file was addedlibcxx/src/include/ryu/d2s.h
The file was addedlibcxx/src/include/ryu/ryu.h
The file was addedlibcxx/src/include/ryu/f2s.h
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_1.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/float_hex_precision_to_chars_test_cases.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/test.cpp
The file was addedlibcxx/src/ryu/d2fixed.cpp
The file was addedlibcxx/src/ryu/d2s.cpp
The file was modifiedlibcxx/docs/ReleaseNotes.rst
The file was addedlibcxx/src/include/ryu/d2fixed.h
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_hex_precision_to_chars_test_cases.hpp
The file was modifiedlibcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist
The file was addedlibcxx/src/ryu/f2s.cpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_4.hpp
The file was addedlibcxx/src/include/ryu/d2s_full_table.h
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_2.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/test.hpp
The file was addedlibcxx/src/include/ryu/digit_table.h
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_general_precision_to_chars_test_cases.hpp
The file was addedlibcxx/src/include/ryu/common.h
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_4.hpp
The file was modifiedlibcxx/CREDITS.TXT
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/test.pass.cpp
The file was modifiedlibcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist
The file was addedlibcxx/src/include/to_chars_floating_point.h
The file was modifiedlibcxx/src/charconv.cpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/float_fixed_precision_to_chars_test_cases.hpp
The file was addedlibcxx/src/include/ryu/d2s_intrinsics.h
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_1.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_2.hpp
The file was addedlibcxx/src/include/ryu/d2fixed_full_table.h
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_to_chars_test_cases.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_3.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_from_chars_test_cases.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_3.hpp
The file was modifiedlibcxx/include/__availability
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/float_scientific_precision_to_chars_test_cases.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/floating_point_test_cases.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/float_general_precision_to_chars_test_cases.hpp
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/float_to_chars_test_cases.hpp
The file was modifiedlibcxx/lib/abi/CHANGELOG.TXT
The file was modifiedlibcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist
The file was modifiedlibcxx/docs/Status/Cxx17.rst
The file was addedlibcxx/test/std/utilities/charconv/charconv.msvc/float_from_chars_test_cases.hpp
The file was modifiedlibcxx/docs/Status/Cxx17Papers.csv
Commit dfb68e49aa1a9a358cda3ad902acaf5e3f1c0241 by thakis
[gn build] (semiautomaticallly) port a8025e06fc0f (libc++ ryu)
The file was modifiedllvm/utils/gn/secondary/libcxx/src/
Commit 3536e18a6c834e5d683792859ea97696c1205405 by koraq
Remove duplicate comment

The same comment appears in the very next line.

Reviewed By: #libc, ldionne

Differential Revision:
The file was modifiedlibcxx/include/__string
Commit 514d37441918dd04a2cd4f35c08959d7c3ff096d by kbessonova
Follow-up for D113741: fix DebugInfo/Generic/lexical_block_static.ll on MachO
The file was modifiedllvm/test/DebugInfo/Generic/lexical_block_static.ll
Commit dccddb268be8363b91157684be743807af746fce by spatel
[InstCombine] add tests for icmp with mul op with known bits; NFC

The file was modifiedllvm/test/Transforms/InstCombine/icmp-mul.ll
Commit 0bb8a97b41498860d60a06ad1df2758a36a580ca by spatel
[InstSimplify] add/adjust tests for 'or' logic fold; NFC

The last test shows a miscompile:
The file was modifiedllvm/test/Transforms/InstSimplify/or.ll
Commit c65e651e6025dd04b69ea144a94962a5b4716681 by spatel
[InstSimplify] fix logic fold of 'or' for vectors

Reduce code duplication for commutative pattern matching
and fix a miscompile.

We can't safely propagate an undef element in this transform:
The file was modifiedllvm/test/Transforms/InstSimplify/or.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 1457e7835202bece055210ccf3e21727d8c94753 by kazu
[llvm] Use range-based for loops (NFC)
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
The file was modifiedllvm/lib/Bitcode/Writer/ValueEnumerator.cpp
The file was modifiedllvm/lib/CodeGen/EarlyIfConversion.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp
The file was modifiedllvm/lib/Analysis/AliasAnalysis.cpp
The file was modifiedllvm/lib/CodeGen/InlineSpiller.cpp
Commit 8783f53fb2112e359c8e951a1511ff58661c5f3e by koraq
[libc++][doc] Update format implementation status.
The file was modifiedlibcxx/docs/Status/FormatPaper.csv
The file was modifiedlibcxx/docs/Status/FormatIssues.csv
Commit 14e7f5b05141a4a8beae29f5df869b778a0b31a6 by thakis
[gn build] port a8025e06fc0f more

src/ryu/*.cpp includes files relative to src, so src/ needs
to be passes as -I flag now.
The file was modifiedllvm/utils/gn/secondary/libcxx/src/
Commit 0b609efd4f91f85239ef6ac96291eebebfee1ef7 by arthur.j.odwyer
[libc++] Fix an include-guard comment. NFC.
The file was modifiedlibcxx/include/__iterator/next.h
Commit 413c3c4f810d276ae0e1568c96b8333a663a881c by arthur.j.odwyer
[libc++] Add missing `#pragma GCC system_header` in a few headers. NFCI.
The file was modifiedlibcxx/include/execution
The file was modifiedlibcxx/include/compare
The file was modifiedlibcxx/include/experimental/__memory
The file was modifiedlibcxx/include/utility
The file was modifiedlibcxx/include/experimental/iterator
The file was modifiedlibcxx/include/ext/hash_set
Commit 4c2fef74ddb08f4410b6ad73f903a9277f72eefd by arthur.j.odwyer
[libc++] Adjust space-alignment in module.modulemap. NFC.
The file was modifiedlibcxx/include/module.modulemap
Commit b6ccca217c35a95b8c2a337a7801b37cb23dbae2 by michael.hliao
Fix `-Wunused-variable` warning. NFC.
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
Commit afb0582325f4165c9aea8e3ed3ed451e577616e4 by joker.eph
Fix TOSA verifier to emit verbose errors

Also as a test for invalid ops which was missing.
The file was modifiedmlir/lib/Dialect/Tosa/IR/TosaOps.cpp
The file was addedmlir/test/Dialect/Tosa/invalid.mlir