- Aug 19, 2023
-
-
Erick Velez authored
Add has_template template, DeclarationFragmentBuilder functions, and tests for class templates, specializations/partial specs, and concepts. Depends on D157007 Reviewed By: dang Differential Revision: https://reviews.llvm.org/D157076
-
Fangrui Song authored
Tested by llvm/test/MC/ARM/basic-thumb2-instructions.s. Caught by newer -fsanitize=signed-integer-overflow (D156821).
-
Nils McCarthy authored
Differential Revision: https://reviews.llvm.org/D158305
-
Aiden Grossman authored
This patch adds operand type counts to the detailed function properties analysis. This is intended to enable more interesting and detailed comparisons across different languages on specific metrics (like usage of inline assembly or global values). Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D158018
-
Owen Pan authored
Differential Revision: https://reviews.llvm.org/D158104
-
ziqingluo-90 authored
This reverts commit ac9a76d7. Previously an abstract class has no pure virtual function. It causes build error on some bots.
-
Fangrui Song authored
Tested by llvm/test/tools/llvm-readobj/ELF/relocations.test
-
Aiden Grossman authored
A couple years ago, StructuralHash was created, copying the exact hashing implementation from FunctionComparator (minus a couple small details/refactorings). Since then, the hashing implementation has not diverged, but several other areas, like unit testing, have diverged significantly, with StructuralHash getting more attention in these areas. This patch aims to consolidate the two hashing functions into StructuralHash given they do the exact same thing and having less divergence in areas like unit testing would be beneficial. The original aim at creating a separate StructuralHash was to make the implementation divergent and capture additional details like instruction operands (which neither hashing implementation does currently). The MergeFunctions pass doesn't need these detaisl, but verification of pass return values would benefit from this additional data. Setting an option to calculate these values would allow for divergent behavior where appropriate while reducing code duplication with little runtime overhead. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D158217
-
Nikolas Klauser authored
This brings most of the enable_ifs in libc++ to the same style. It also has the nice side-effect of reducing the size of names of these symbols, since the arguments don't get mangled anymore. Reviewed By: #libc, Mordante Spies: Mordante, libcxx-commits Differential Revision: https://reviews.llvm.org/D157748
-
Thurston Dang authored
This reverts commit 17831857, which broke the buildbots, starting with when it was first built in https://lab.llvm.org/buildbot/#/builders/85/builds/18390 (N.B. I think the patch is uncovering real bugs; the revert is simply to keep the tree green and the buildbots useful, because I'm not confident how to fix-forward all the found bugs.)
-
Med Ismail Bennani authored
When using the `crashlog` command in batch mode, most users only care about the crashed thread and end up having to scroll past all the non-crashed threads, which is not a good user experience. Now that `-c|--crashed-only` is set by default, we should also apply that behavior for batch mode: Only the crashed thread and "Application Specific Backtrace" threads will be shown to the user in batch mode. The user will still have the ability to show all the threads if they use `--no-crashed-only` which will parse the symbols from the report, or with `-a|--load-all-images` which will fetch binaries and debug info from the build record and symbolicate every thread. rdar://106329893 Differential Revision: https://reviews.llvm.org/D157852 Signed-off-by:
Med Ismail Bennani <ismail@bennani.ma>
-
Med Ismail Bennani authored
This patch adds support to the "Last Exception Backtrace" to the `crashlog` command. This metadata is homologous to the "Application Specific Backtrace", however the format is closer to a regular stack frame. Since the thread that "contains" the "Last Exception Backtrace" doesn't really exist, this information is displayed when requesting an extended backtrace of the crashed thread, similarly to the "Application Specific Backtrace". To achieve that, this patch includes some refactors and fixes to the existing "Application Specific Backtrace" handling. rdar://113046509 Differential Revision: https://reviews.llvm.org/D157851 Signed-off-by:
Med Ismail Bennani <ismail@bennani.ma>
-
Med Ismail Bennani authored
This patch cleans up the crashlog.py script and removes dead code. Signed-off-by:Med Ismail Bennani <ismail@bennani.ma>
-
Med Ismail Bennani authored
Before 27f27d15, the `crashlog` command would always load images even if `-a` or `-c` was not set by the user. Since that change, images are loaded only when one of these 2 flags are set, otherwise, we fallback to parsing the symbols from the report and load them into a `SymbolFileJSON`. Although that makes it way faster than pulling binaries and debug symbols from build records, that cause a degraded experience since none of our users are used to set these 2 flags. For instance, that would symbolicate the backtraces, however the users wouldn't see sources. To address that change of behavior, this patch changes the default value for the `-c|--crash-only` flag to `true`. On the other hand, thanks to the move to `argparse`, we introduced a new `--no-only-crashed` flag that will let the user force skipping loading any images, relying only on the `SymbolFileJSON`. This gives the users a good compromise since they would be able to see sources for the crashed thread if they're available, otherwise, they'll only get a symbolicated backtrace. Differential Revision: https://reviews.llvm.org/D157850 Signed-off-by:
Med Ismail Bennani <ismail@bennani.ma>
-
Med Ismail Bennani authored
This patch replace the deprecated `optparse` module used for the `crashlog`& `save_crashlog` commands with the new `argparse` from the python standard library. This provides many benefits such as showing the default values for each option in the help description, but also greatly improve the handling of position arguments. Differential Revision: https://reviews.llvm.org/D157849 Signed-off-by:
Med Ismail Bennani <ismail@bennani.ma>
-
Med Ismail Bennani authored
Signed-off-by:Med Ismail Bennani <ismail@bennani.ma>
-
Craig Topper authored
clang recently started checking for INT64_MIN being passed to 64-bit std::abs. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D158304
-
Philip Reames authored
On the extract_subvector side, we already have the restriction. With D158201, we'd start getting unprofitable splat combines unless we add the same one on the extract_subvector side. Differential Revision: https://reviews.llvm.org/D158202
-
Craig Topper authored
-
Daniel Hoekwater authored
Refactor BasicBlockSections to use the target-specific noop insertion hook from TargetInstrInfo instead of building it ourselves. Using the TII hook is both cleaner and makes it easier to extend BBSections to non-X86 targets. Differential Revision: https://reviews.llvm.org/D158303
-
Philip Reames authored
We have an existing DAG combine for when an insert/extract subvector pair is entirely a nop, but we hadn't handled the case where the net result was either an insert or an extract (but not both). The transform is restricted to index = 0 to avoid having to adjust indices after the transform. Differential Revision: https://reviews.llvm.org/D158201
-
Anton Rydahl authored
-
Rainer Orth authored
`clang` currently lacks PIE support on Solaris. This patch fixes this, also linking with `crtbeginS.o` and `crtendS.o` for `-pie` and `-shared`. Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D158206
-
Kelvin Li authored
Differential Revision: https://reviews.llvm.org/D157920
-
Terry Wilmarth authored
This change adds the option of using different units for blocktimes specified via the KMP_BLOCKTIME environment variable. The parsing of the environment now recognizes units suffixes: ms and us. If a units suffix is not specified, the default unit is ms. Thus default behavior is still the same, and any previous usage still works the same. Internally, blocktime is now converted to microseconds everywhere, so settings that exceed INT_MAX in microseconds are considered "infinite". kmp_set/get_blocktime are updated to use the units the user specified with KMP_BLOCKTIME, and if not specified, ms are used. Added better range checking and inform messages for the two time units. Large values of blocktime for default (ms) case (beyond INT_MAX/1000) are no longer allowed, but will autocorrect with an INFORM message. The delay for determining ticks per usec was lowered. It is now 1 million ticks which was calculated as ~450us based on 2.2GHz clock which is pretty typical base clock frequency on X86: (1e6 Ticks) / (2.2e9 Ticks/sec) * (1e6 usec/sec) = 454 usec Really short benchmarks can be affected by longer delay. Update KMP_BLOCKTIME docs. Portions of this commit were authored by Johnny Peyton. Differential Revision: https://reviews.llvm.org/D157646
-
Craig Topper authored
This reverts commit 770be43f. Forgot to remove from my tree while experimenting.
-
Craig Topper authored
[DAG] SimplifyDemandedBits - Use DemandedBits intead of OriginalDemandedBits to when simplifying UMIN/UMAX to AND/OR. DemandedBits is forced to all ones if there are multiple users. The changes X86 test cases looks like they were miscompiles before. The value of eax/rax from the cmov is returned from the function in addition to being used by the sar. That usage needs all bits even though the sar doesn't.
-
Craig Topper authored
We have an existing DAG combine for when an insert/extract subvector pair is entirely a nop, but we hadn't handled the case where the net result was either an insert or an extract (but not both). The transform is restricted to index = 0 to avoid having to adjust indices after the transform. Reviews, a couple comments on the test changes: * Mostly RISCV, mostly schedule reordering. * One real regression in splats-with-mixed-vl.ll due to a different overly aggressive combine, fix in a follow up patch. * The test/CodeGen/X86/vector-replicaton-i1-mask.ll diff looked concerning at first, but not the mask size at most 4 i1s. I think the type changes on the mask loads are correct, but would welcome a second opinion with someone more familiar with AVX512 codegen. Differential Revision: https://reviews.llvm.org/D158201
-
Luke Lau authored
Today I learnt about their existence (D158288), they just need to be prefixed with a u or s. Reviewed By: goldstein.w.n Differential Revision: https://reviews.llvm.org/D158290
-
Artem Belevich authored
-
Jonas Devlieghere authored
Dump verification errors to a local buffer instead of racing stdio and potentially showing interleaved output.
-
Artem Belevich authored
We had some instances when LLVM would not inline fixed-count memcpy and ended up attempting to lower it a a libcall, which would not work on NVPTX as there's no standard library to call. The patch relaxes the threshold used for -Os compilation so we're always allowed to inline memory copy functions. Differential Revision: https://reviews.llvm.org/D158226
-
Alexander Shaposhnikov authored
This reverts commit 40bf3631. The build bot ppc64le-mlir-rhel-test got broken by these changes, see https://lab.llvm.org/buildbot#builders/88/builds/61048 .
-
Jonas Devlieghere authored
Feedback I hear regularly is that the LLDB website is hard to navigate. This patch is an attempt to simplify things by breaking the website up in 3 major areas: "Using LLDB", "Scripting LLDB" and "Developing LLDB". - The majority of the "project" pages were eliminated. The projects page was moved under "Developing LLDB". The releases page was replaced with a link under "External links". The other pages (goals, features and status) were pretty outdated and while they probably made sense in the past, they don't feel all that relevant anymore now that LLDB is an established debugger. - "USE & EXTENSION" was renamed to "Using LLDB". Besides that, this section remained mostly unchanged. The exception are the Python pages which were moved under "Scripting LLDB". - "Development" was renamed to "Developing LLDB" and now houses all the resources for LLDB developers. The old "Design" section (which only contained two pages) was moved back under here too. Differential revision: https://reviews.llvm.org/D158023 -
Thurston Dang authored
Revert "[DAG] SimplifyDemandedBits - if we're only demanding the signbit, a SMIN/SMAX node can be simplified to a OR/AND node respectively." This reverts commit 54d663d5, which breaks the test CodeGen/SystemZ/ctpop-01.ll for stage2-ubsan check (see https://lab.llvm.org/buildbot/#/builders/85/builds/18410) I manually confirmed that the test had been passing immediately prior to that commit (BUILDBOT_REVISION=4772c66c llvm-zorg/zorg/buildbot/builders/sanitizers/buildbot_bootstrap_ubsan.sh)
-
Michael Jones authored
The fuzzer found that a 100,000 digit number could possibly return an incorrect result. This patch fixes the issue. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D158118
-
Alexander Shaposhnikov authored
Add support for f16 in the expansion of math.roundeven. Associated GitHub issue: https://github.com/openxla/iree/issues/13522 This version addresses the build issues on Windows reported on https://reviews.llvm.org/D157204 Test plan: ninja check-mlir check-all Differential revision: https://reviews.llvm.org/D158234
-
Louis Dionne authored
Since we build the dylib with C++20, there's no need to use conditional macros anymore. Differential Revision: https://reviews.llvm.org/D157995
-
Aaron Ballman authored
This addresses issues found by: https://lab.llvm.org/buildbot/#/builders/30/builds/39010
-
Luke Lau authored
It's possible to write an integer constant in hexadecimal, but you need to prefix it with u or s. I couldn't find this mentioned anywhere in the LangRef, so this adds a small note about it. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D158288
-