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.
|
 | llvm/lib/Analysis/MemoryLocation.cpp |
Commit
f37d9b41122292d6758eef489af677ea1afa9436
by phoebe.wang[X86][FP16] Replace vXi16 to vXf16 instead of v8f16
Fixes pr52561
Reviewed By: LuoYuanke
Differential Revision: https://reviews.llvm.org/D114304
|
 | llvm/test/CodeGen/X86/avx512fp16-mov.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
0ac75e82fff93a80ca401d3db3541e8d1d9098f9
by kbessonovaReland [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: https://reviews.llvm.org/D114705
|
 | llvm/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir |
 | llvm/test/DebugInfo/BPF/extern-void.ll |
 | llvm/test/MC/WebAssembly/dwarfdump.ll |
 | llvm/test/DebugInfo/X86/template.ll |
 | llvm/test/DebugInfo/Generic/debug-names-linkage-name.ll |
 | llvm/test/CodeGen/ARM/2011-08-02-MergedGlobalDbg.ll |
 | llvm/test/DebugInfo/X86/dwarf-aranges.ll |
 | llvm/test/DebugInfo/X86/dwarfdump-DIImportedEntity_elements.ll |
 | llvm/test/DebugInfo/AMDGPU/variable-locations.ll |
 | llvm/test/DebugInfo/Generic/namespace.ll |
 | llvm/test/DebugInfo/NVPTX/debug-addr-class.ll |
 | llvm/test/DebugInfo/Generic/varargs.ll |
 | llvm/test/DebugInfo/X86/subprogram-across-cus.ll |
 | llvm/test/DebugInfo/X86/lexical-block-file-inline.ll |
 | llvm/test/DebugInfo/X86/debug-info-access.ll |
 | llvm/test/DebugInfo/X86/debug-info-blocks.ll |
 | llvm/test/DebugInfo/X86/debug-loc-offset.mir |
 | llvm/test/DebugInfo/X86/vla-global.ll |
 | llvm/test/DebugInfo/X86/align_cpp11.ll |
 | llvm/test/DebugInfo/X86/arange-and-stub.ll |
 | llvm/test/DebugInfo/X86/debug-info-static-member.ll |
 | llvm/test/DebugInfo/Generic/enum-types.ll |
 | llvm/test/DebugInfo/X86/align_objc.ll |
 | llvm/test/DebugInfo/X86/generate-odr-hash.ll |
 | llvm/test/DebugInfo/X86/DW_AT_calling-convention.ll |
 | llvm/test/MC/WebAssembly/debug-info64.ll |
 | llvm/test/DebugInfo/PowerPC/strict-dwarf.ll |
 | llvm/test/DebugInfo/X86/tls.ll |
 | llvm/test/DebugInfo/Generic/debug-info-qualifiers.ll |
 | llvm/test/DebugInfo/NVPTX/debug-info.ll |
 | llvm/test/DebugInfo/X86/namelist1.ll |
 | llvm/test/DebugInfo/attr-btf_tag.ll |
 | llvm/test/CodeGen/ARM/2011-01-19-MergedGlobalDbg.ll |
 | llvm/test/DebugInfo/X86/dwarf-linkage-names.ll |
 | llvm/test/DebugInfo/X86/containing-type-extension-rust.ll |
 | llvm/test/DebugInfo/X86/gnu-public-names.ll |
 | llvm/test/MC/WebAssembly/debug-info.ll |
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
 | lld/test/wasm/debuginfo.test |
 | llvm/test/MC/WebAssembly/dwarfdump64.ll |
 | llvm/test/DebugInfo/X86/2011-09-26-GlobalVarContext.ll |
 | llvm/test/DebugInfo/NVPTX/debug-loc-offset.ll |
 | llvm/test/DebugInfo/X86/linkage-name.ll |
 | llvm/test/DebugInfo/Generic/incorrect-variable-debugloc.ll |
 | llvm/test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll |
 | llvm/test/DebugInfo/X86/sret.ll |
Commit
75b622a7959479ccdb758ebe0973061b7b4fcacd
by kbessonovaReland [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.
Fixes https://bugs.llvm.org/show_bug.cgi?id=19238.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D113741
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp |
 | llvm/test/DebugInfo/Generic/lexical_block_types.ll |
 | llvm/test/DebugInfo/Generic/lexical_block_static.ll |
 | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h |
 | llvm/test/DebugInfo/Generic/import-inlined-declaration.ll |
 | llvm/test/DebugInfo/Generic/namespace.ll |
 | llvm/test/DebugInfo/Generic/inlined-static-var.ll |
 | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h |
 | llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp |
 | llvm/lib/CodeGen/AsmPrinter/DwarfFile.h |
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h |
 | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp |
 | llvm/test/DebugInfo/Generic/imported-name-inlined.ll |
 | llvm/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.
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/lib/Transforms/Vectorize/VPlan.h |
 | llvm/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 llvm.org/PR52584
|
 | libcxx/utils/ci/run-buildbot |
Commit
a8025e06fc0f2fe1bbee9e1a6f15c336bfbdcb05
by koraqMicrosoft'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: https://github.com/microsoft/STL and https://github.com/ulfjack/ryu .
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 https://llvm.org/docs/DeveloperPolicy.html#attribution-of-changes .
Notes:
* 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 https://github.com/microsoft/STL/issues/172 ) for compiler throughput and reduced object file size. * See https://github.com/StephanTLavavej/llvm-project/commits/charconv 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: https://reviews.llvm.org/D70631
|
 | libcxx/include/charconv |
 | libcxx/src/ryu/README.txt |
 | libcxx/src/CMakeLists.txt |
 | libcxx/src/include/ryu/d2s.h |
 | libcxx/src/include/ryu/ryu.h |
 | libcxx/src/include/ryu/f2s.h |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_1.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/float_hex_precision_to_chars_test_cases.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/test.cpp |
 | libcxx/src/ryu/d2fixed.cpp |
 | libcxx/src/ryu/d2s.cpp |
 | libcxx/docs/ReleaseNotes.rst |
 | libcxx/src/include/ryu/d2fixed.h |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_hex_precision_to_chars_test_cases.hpp |
 | libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist |
 | libcxx/src/ryu/f2s.cpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_4.hpp |
 | libcxx/src/include/ryu/d2s_full_table.h |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_2.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/test.hpp |
 | libcxx/src/include/ryu/digit_table.h |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_general_precision_to_chars_test_cases.hpp |
 | libcxx/src/include/ryu/common.h |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_4.hpp |
 | libcxx/CREDITS.TXT |
 | libcxx/test/std/utilities/charconv/charconv.msvc/test.pass.cpp |
 | libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist |
 | libcxx/src/include/to_chars_floating_point.h |
 | libcxx/src/charconv.cpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/float_fixed_precision_to_chars_test_cases.hpp |
 | libcxx/src/include/ryu/d2s_intrinsics.h |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_1.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_2.hpp |
 | libcxx/src/include/ryu/d2fixed_full_table.h |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_to_chars_test_cases.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_fixed_precision_to_chars_test_cases_3.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_from_chars_test_cases.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/double_scientific_precision_to_chars_test_cases_3.hpp |
 | libcxx/include/__availability |
 | libcxx/test/std/utilities/charconv/charconv.msvc/float_scientific_precision_to_chars_test_cases.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/floating_point_test_cases.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/float_general_precision_to_chars_test_cases.hpp |
 | libcxx/test/std/utilities/charconv/charconv.msvc/float_to_chars_test_cases.hpp |
 | libcxx/lib/abi/CHANGELOG.TXT |
 | libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.no_new_in_libcxx.abilist |
 | libcxx/docs/Status/Cxx17.rst |
 | libcxx/test/std/utilities/charconv/charconv.msvc/float_from_chars_test_cases.hpp |
 | libcxx/docs/Status/Cxx17Papers.csv |
Commit
dfb68e49aa1a9a358cda3ad902acaf5e3f1c0241
by thakis[gn build] (semiautomaticallly) port a8025e06fc0f (libc++ ryu)
|
 | llvm/utils/gn/secondary/libcxx/src/BUILD.gn |
Commit
3536e18a6c834e5d683792859ea97696c1205405
by koraqRemove duplicate comment
The same comment appears in the very next line.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D115018
|
 | libcxx/include/__string |
Commit
514d37441918dd04a2cd4f35c08959d7c3ff096d
by kbessonovaFollow-up for D113741: fix DebugInfo/Generic/lexical_block_static.ll on MachO
|
 | llvm/test/DebugInfo/Generic/lexical_block_static.ll |
Commit
dccddb268be8363b91157684be743807af746fce
by spatel[InstCombine] add tests for icmp with mul op with known bits; NFC
D114962
|
 | llvm/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: https://alive2.llvm.org/ce/z/s5xy55
|
 | llvm/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: https://alive2.llvm.org/ce/z/s5xy55
|
 | llvm/test/Transforms/InstSimplify/or.ll |
 | llvm/lib/Analysis/InstructionSimplify.cpp |
Commit
1457e7835202bece055210ccf3e21727d8c94753
by kazu[llvm] Use range-based for loops (NFC)
|
 | llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp |
 | llvm/lib/Bitcode/Writer/ValueEnumerator.cpp |
 | llvm/lib/CodeGen/EarlyIfConversion.cpp |
 | llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp |
 | llvm/lib/Analysis/AliasAnalysis.cpp |
 | llvm/lib/CodeGen/InlineSpiller.cpp |
Commit
8783f53fb2112e359c8e951a1511ff58661c5f3e
by koraq[libc++][doc] Update format implementation status.
|
 | libcxx/docs/Status/FormatPaper.csv |
 | libcxx/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.
|
 | llvm/utils/gn/secondary/libcxx/src/BUILD.gn |
Commit
0b609efd4f91f85239ef6ac96291eebebfee1ef7
by arthur.j.odwyer[libc++] Fix an include-guard comment. NFC.
|
 | libcxx/include/__iterator/next.h |
Commit
413c3c4f810d276ae0e1568c96b8333a663a881c
by arthur.j.odwyer[libc++] Add missing `#pragma GCC system_header` in a few headers. NFCI.
|
 | libcxx/include/execution |
 | libcxx/include/compare |
 | libcxx/include/experimental/__memory |
 | libcxx/include/utility |
 | libcxx/include/experimental/iterator |
 | libcxx/include/ext/hash_set |
Commit
4c2fef74ddb08f4410b6ad73f903a9277f72eefd
by arthur.j.odwyer[libc++] Adjust space-alignment in module.modulemap. NFC.
|
 | libcxx/include/module.modulemap |
Commit
b6ccca217c35a95b8c2a337a7801b37cb23dbae2
by michael.hliaoFix `-Wunused-variable` warning. NFC.
|
 | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp |
Commit
afb0582325f4165c9aea8e3ed3ed451e577616e4
by joker.ephFix TOSA verifier to emit verbose errors
Also as a test for invalid ops which was missing.
|
 | mlir/lib/Dialect/Tosa/IR/TosaOps.cpp |
 | mlir/test/Dialect/Tosa/invalid.mlir |