- Nov 06, 2021
-
-
Roman Lebedev authored
Hiding it in `getInterleavedMemoryOpCost()` is problematic for a number of reasons, including testability and reuse, let's do better. In a followup `getUserCost()` will be taught to use to to estimate the mask costs, which will allow for better cost model tests for it. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D113313
-
Sanjay Patel authored
This diff snuck into the unrelated: 025a2f73 It's a suggested follow-up for D113212, but I need to add test coverage first.
-
Sanjay Patel authored
umax(X, Op1) - Op1 --> usub.sat(X, Op1) https://alive2.llvm.org/ce/z/HpcGiJ This happens in 2 or more steps with an icmp-select idiom instead of an intrinsic. This is another step towards canonicalization of the min/max intrinsics. See: D98152
-
Sanjay Patel authored
-
hyeongyu kim authored
-
hyeongyukim authored
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions. I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default. Test updates are made as a separate patch: D108453 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D105169 [Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default (2) This patch updates test files after D105169. Autogenerated test codes are changed by `utils/update_cc_test_checks.py,` and non-autogenerated test codes are changed as follows: (1) I wrote a python script that (partially) updates the tests using regex: {F18594904} The script is not perfect, but I believe it gives hints about which patterns are updated to have `noundef` attached. (2) The remaining tests are updated manually. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D108453 Resolve lit failures in clang after 8ca4b3ef's land Fix lit test failures in clang-ppc* and clang-x64-windows-msvc Fix missing failures in clang-ppc64be* and retry fixing clang-x64-windows-msvc Fix internal_clone(aarch64) inline assembly
-
Jason Rice authored
The structured bindings decomposition of a non-dependent array in a dependent context (a template) were, upon instantiation, creating nested OpaqueValueExprs that would trigger assertions in CodeGen. Additionally the OpaqueValuesExpr's contained SourceExpr is being emitted in CodeGen, but there was no code for its transform in template instantiation. This would trigger other assertions such as when emitting a DeclRefExpr that refers to a VarDecl that is not marked as ODR-used. This is all based on cursory deduction, but with the way the code flows from SemaTemplateInstantiate back to SemaInit, it is apparent that the nesting of OpaqueValueExpr is unintentional. This commit fixes https://bugs.llvm.org/show_bug.cgi?id=45964 and possible other issues involving OpaqueValueExprs in template instantiations might be resolved. Reviewed By: aaron.ballman, rjmccall Differential Revision: https://reviews.llvm.org/D108482
-
Vitaly Buka authored
It's availible from GLIBC 2.33 Fixes use-of-uninitialized-value llvm/lib/Support/Unix/Path.inc:467:29 in llvm::sys::fs::remove(llvm::Twine const&, bool)
-
Serikzhan Kazi authored
The files in compile-commands.json can potentially include duplicates. Change run-clang-tidy.py so that it does not run on the duplicate entries. Differential Revision: https://reviews.llvm.org/D112926
-
Juneyoung Lee authored
Revert "[Clang/Test]: Rename enable_noundef_analysis to disable-noundef-analysis and turn it off by default" This reverts commit 7584ef76.
-
Juneyoung Lee authored
Turning on `enable_noundef_analysis` flag allows better codegen by removing freeze instructions. I modified clang by renaming `enable_noundef_analysis` flag to `disable-noundef-analysis` and turning it off by default. Test updates are made as a separate patch: D108453 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D105169
-
Jonas Devlieghere authored
Make sure that every case has its own lexical block.
-
David Blaikie authored
-
Jonas Devlieghere authored
Don't set the OS when computing supported architectures in PlatformDarwin::ARMGetSupportedArchitectureAtIndex. Differential revision: https://reviews.llvm.org/D113159
-
David Blaikie authored
Matching a recent clang change I've made, now 'int[3]' is formatted without the space between the type and array bound. This commit updates libDebugInfoDWARF/llvm-dwarfdump to match that formatting.
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
Remove the nested switches from the ARMGetSupportedArchitectureAtIndex implementation. Differential revision: https://reviews.llvm.org/D113155
-
Vladimir Vereschaka authored
This reverts commit 3255578e. Failed buildbot's Armv7 builds: https://lab.llvm.org/buildbot/#/builders/60/builds/5303
-
Bin Cheng authored
This patch abstracts VWholeLoad* classes into VWholeLoadN, simplifies existing code as well as fixes a typo. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D109319
-
Bin Cheng authored
This patch refactors classes for load/store of V extension by: - Introduce new class for VUnitStrideLoadFF and VUnitStrideSegmentLoadFF so that uses of L/SUMOP* are not spread around different places. - Reorder classes for Unit-Stride load/store in line with table describing lumop/sumop in riscv-v-spec.pdf. Reviewed By: HsiangKai, craig.topper Differential Revision: https://reviews.llvm.org/D109318
-
Kazu Hirata authored
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp:124:3: error: default label in switch which covers all enumeration values [-Werror,-Wcovered-switch-default] by removing the default case.
-
wlei authored
Previously we assume there're some non-executing sections at the bottom of the text section so that we won't hit the array's bound. But on BOLTed binary, it turned out .bolt section is at the bottom of text section which can be profiled, then it crash llvm-profgen. This change try to fix it. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D113238
-
wren romano authored
Addresses https://bugs.llvm.org/show_bug.cgi?id=52303 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D112962
-
David Blaikie authored
Actually we can, for now, remove the explicit "operator" handling entirely - since clang currently won't try to flag any of these as rebuildable. That seems like a reasonable state for now, but it could be narrowed down to only apply to conversion operators, most likely - but would need more nuance for op> and op>> since they would be incorrectly flagged as already having their template arguments (due to the trailing '>').
-
Philip Reames authored
The basic idea here is that given a zero extended narrow IV, we can prove the inner IV to be NUW if we can prove there's a value the inner IV must take before overflow which must exit the loop. Differential Revision: https://reviews.llvm.org/D109457
-
Vitaly Buka authored
It's called from ATTRIBUTE_NO_SANITIZE_MEMORY code. It worked as expected if inlined and complained otherwise. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D113323
-
Zahira Ammarguellat authored
for parameters and locals need to refer to the stack allocation in the alloca address space.
-
Roman Lebedev authored
This coverage has been brought to you by https://godbolt.org/z/nfc3cY1za
-
Scott Linder authored
These `M` parameters shadow the `M` member in `VerifierSupport`, and both always refer to the same module. Eliminate the redundant parameters and always use the member. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D106474
-
Jay Foad authored
In TwoAddressInstructionPass::processTiedPairs with -early-live-intervals, update any preexisting physreg live intervals, as well as virtreg live intervals. By default (without -precompute-phys-liveness) physreg live intervals only exist for registers that are live-in to some basic block. Differential Revision: https://reviews.llvm.org/D113191
-
Valentin Clement authored
This reverts commit ea55503d.
-
Leonard Chan authored
The fix for PR52382 was already introduced in D112732 which ensures that module instrumentation always runs after function instrumentation. This adds a test that ensures the PR is addressed and prevent regression. Differential Revision: https://reviews.llvm.org/D113143
-
Roman Lebedev authored
When we have an actual shuffle, we can impose the additional restriction that the mask replicates the elements of the first operand, so we know the replication factor as a ratio of output and op0 vector sizes.
-
Jonas Devlieghere authored
From the documentation: A Twine is not intended for use directly and should not be stored, its implementation relies on the ability to store pointers to temporary stack objects which may be deallocated at the end of a statement. Twines should only be used accepted as const references in arguments, when an API wishes to accept possibly-concatenated strings. rdar://84799118 Differential revision: https://reviews.llvm.org/D113314
-
Jonas Devlieghere authored
Don't try to get a class descriptor for a pointer that doesn't look like a tagged pointer. Also print addresses as fixed-width hex and update the test.
-
Arthur O'Dwyer authored
Before this patch, `try_acquire` blocks instead of returning false. This is because `__libcpp_thread_poll_with_backoff` interprets zero as meaning infinite, causing `try_acquire` to wait indefinitely. Thanks to Pablo Busse (pabusse) for the patch! Differential Revision: https://reviews.llvm.org/D98334
-
David Blaikie authored
This isn't perfect, since it doesn't use lazy_string - so if the std::string does contain unprintable characters it might fail, but seems better than nothing & LLVM doesn't generally store binary data in std::strings.
-
Aart Bik authored
Reviewed By: wrengr Differential Revision: https://reviews.llvm.org/D113205
-
Martin Storsjö authored
Since a8b54834, there are two distinct Windows path styles, `windows_backslash` (with the old `windows` being an alias for it) and `windows_slash`. 4e4883e1 added helpers for inspecting path styles. The newly added windows_slash path style doesn't end up used in LLDB yet anyway, as LLDB is quite decoupled from most of llvm::sys::path and uses its own FileSpec class. To take it in use, it could be hooked up in `FileSpec::Style::GetNativeStyle` (in lldb/source/Utility/FileSpec.cpp) just like in the `real_style` function in llvm/lib/Support/Path.cpp in df0ba47c. It is not currently clear whether there's a real need for using the Windows path style with forward slashes in LLDB (if there's any other applications interacting with it, expecting that style), and what other changes in LLDB are needed for that to work, but this at least makes some of the checks more ready for the new style, simplifying code a bit. Differential Revision: https://reviews.llvm.org/D113255
-