- Sep 25, 2021
-
-
Simon Pilgrim authored
Otherwise fallback to the generic 'unknown index' path Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29050
-
Jim Lin authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D110381
-
Matheus Izvekov authored
See PR51872 for the original repro. This fixes a crash when converting a templated constructor into a deduction guide, in case any of the template parameters were invalid. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D110460
-
Amara Emerson authored
-
Petr Hosek authored
This matches handling of other CMake variables. Differential Revision: https://reviews.llvm.org/D110463
-
Jason Molenda authored
I couldn't find it; make this easier for next time.
-
David Blaikie authored
DebugInfo: Use the signedness of the underlying enum when encoding enum non-type-template-parameters This improves the accuracy of the debug info and improves round tripping through -gsimple-template-names.
-
River Riddle authored
We currently, incorrectly, assume that a range always has at least one element when building a contiguous range. This commit adds a proper empty check to avoid crashing. Differential Revision: https://reviews.llvm.org/D110457
-
modimo authored
Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D110449
-
Nico Weber authored
This reverts commit 55f0b337 and follow-up reverts commit e9ea03c6. LLVM_EXTERNAL_PROJECTS is sufficient, see https://reviews.llvm.org/D110016
-
Nico Weber authored
This reverts commit 03142c5f. Breaks check-asan if system ld doesn't support --push-state, even if lld was built and is used according to lit's output. See comments on https://reviews.llvm.org/D110128
-
Konrad Kleine authored
This change adds the ability to create source tarballs for unreleased or untagged code by providing the `--git-ref <GIT_REF>` flag to the `llvm/utils/release/export.sh` script. This is useful for creating daily snapshot tarballs that can easily be consumed by packagers who want to build a daily snapshot. The default behavior of `export.sh` hasn't changed. You may also provide a `--template` argument to say how the artifacts are supposed to be named (as suggested by @hans). The `-help` output of `export.sh` was changed quite significantly to look like this: ``` Export the Git sources and build tarballs from them. Usage: export.sh [-release|--release <major>.<minor>.<patch>] [-rc|--rc <num>] [-final|--final] [-git-ref|--git-ref <git-ref>] [-template|--template <template>] Flags: -release | --release <major>.<minor>.<patch> The version number of the release -rc | --rc <num> The release candidate number -final | --final When provided, this option will disable the rc flag -git-ref | --git-ref <git-ref> (optional) Use <git-ref> to determine the release and don't export the test-suite files -template | --template <template> (optional) Possible placeholders: $PROJECT $YYYYMMDD $GIT_REF $RELEASE $RC. Defaults to '${PROJECT}-${RELEASE}${RC}.src.tar.xz'. The following list shows the filenames (with <placeholders>) for the artifacts that are being generated (given that you don't touch --template). * llvm-<RELEASE><RC>.src.tar.xz * clang-<RELEASE><RC>.src.tar.xz * compiler-rt-<RELEASE><RC>.src.tar.xz * libcxx-<RELEASE><RC>.src.tar.xz * libcxxabi-<RELEASE><RC>.src.tar.xz * libclc-<RELEASE><RC>.src.tar.xz * clang-tools-extra-<RELEASE><RC>.src.tar.xz * polly-<RELEASE><RC>.src.tar.xz * lldb-<RELEASE><RC>.src.tar.xz * lld-<RELEASE><RC>.src.tar.xz * openmp-<RELEASE><RC>.src.tar.xz * libunwind-<RELEASE><RC>.src.tar.xz * flang-<RELEASE><RC>.src.tar.xz Additional files being generated: * llvm-project-<RELEASE><RC>.src.tar.xz (the complete LLVM source project) * test-suite-<RELEASE><RC>.src.tar.xz (only when not using --git-ref) To ease the creation of snapshot builds, we also provide these files * llvm-release-<YYYYMMDD>.txt (contains the <RELEASE> as a text) * llvm-rc-<YYYYMMDD>.txt (contains the rc version passed to the invocation of export.sh) * llvm-git-revision-<YYYYMMDD>.txt (contains the current git revision sha1) Example values for the placeholders: * <RELEASE> -> 13.0.0 * <YYYYMMDD> -> 20210414 * <RC> -> rc4 (will be empty when using --git-ref) In order to generate snapshots of the upstream main branch you could do this for example: export.sh --git-ref upstream/main --template '${PROJECT}-${YYYYMMDD}.src.tar.xz' ``` Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D101446 -
Wei Mi authored
-
https://reviews.llvm.org/rG8eb617d719bdc6a4ed7773925d2421b9bbdd4b7aWei Mi authored
For compressed profile when reading an unknown section, the data reader pointer adjustment was incorrect. This patch fixed that.
-
Craig Topper authored
Where c1 is a shifted mask with 32-c2 leading zeros and c3 trailing zeros and c3>c2. We can select it as (slli (srliw X, c3-c2), c3).
-
Jonas Devlieghere authored
Remove path separators from CHECK-lines in union-fwd-decl.test
-
Jonas Devlieghere authored
When using the system debugserver for testing, copy the binary in the LLDB.framework Resource directory instead of the build's bin directory. rdar://82998263
-
Lang Hames authored
-
David Blaikie authored
Clang will encode names that should be able to be simplified as "_STNname|<template, args>" (eg: "_STNt1|<int>") - this verification mode will detect these names, decode them, create the original name ("t1<int>") and the simple name ("t1") - letting the simple name run through the usual rebuilding logic - then compare the two sources of the full name - the rebuilt and the _STN encoding. This helps ensure that -gsimple-template-names is lossless. -
Jonas Devlieghere authored
When determining the incompleteness of a DIE based on its children, make sure we propagate it across union types. See test case for an example. Without this patch we never emit the definition of Container_ivars. Differential revision: https://reviews.llvm.org/D110443
-
wlei authored
Differential Revision: https://reviews.llvm.org/D110080
-
wlei authored
In order to be consistent with compiler that interprets zero count as unexecuted(cold), this change reports zero-value count for unexecuted part of function code. For the implementation, it leverages the range counter, initializes all the executed function range with the zero-value. After all ranges are merged and converted into disjoint ranges, the remaining zero count will indicates the unexecuted(cold) part of the function. This change also extends the current `findDisjointRanges` method which now can support adding zero-value range. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D109713
-
Lei Zhang authored
For such cases, the type of the constant DenseElementsAttr is different from the transpose op return type. Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D110446
-
wlei authored
This patch introduces non-CS AutoFDO profile generation into LLVM. The profile is supposed to be well consumed by compiler using `-fprofile-sample-use=[profile]`. After range and branch counters are extracted from the LBR sample, here we go through each addresses for symbolization, create FunctionSamples and populate its sub fields like TotalSamples, BodySamples and HeadSamples etc. For inlined code, as we need to map back to original code, so we always add body samples to the leaf frame's function sample. Reviewed By: wenlei, hoy Differential Revision: https://reviews.llvm.org/D109551
-
Diego Caballero authored
This patch introduces a generic reduction detection utility that works across different dialecs. It is mostly a generalization of the reduction detection algorithm in Affine. The reduction detection logic in Affine, Linalg and SCFToOpenMP have been replaced with this new generic utility. The utility takes some basic components of the potential reduction and returns: 1) the reduced value, and 2) a list with the combiner operations. The logic to match reductions involving multiple combiner operations disabled until we can properly test it. Reviewed By: ftynse, bondhugula, nicolasvasilache, pifon2a Differential Revision: https://reviews.llvm.org/D110303
-
wlei authored
Similar to https://reviews.llvm.org/D109637, there is a whole invalid line of message in perfscript. ``` warning: Invalid address in LBR record at line 14118674: Processed 14138923 events and lost 1 chunks! warning: Invalid address in LBR record at line 14118676: Check IO/CPU overload! ``` This only happened for LBR only perfscript, hybridperfscript have a check of " 0x" to make sure it's the LBR perf line. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D110424
-
Stanislav Mekhanoshin authored
Non-entry functions have 32 caller saved VGPRs available. If we promote alloca to consume more registers we will have to spill CSRs. There is no reason to eliminate scratch access to get another scratch access instead. Differential Revision: https://reviews.llvm.org/D110372
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Lang Hames authored
Also includes unit tests for not-yet tested operations like comparison and to/from pointer conversion.
-
Anirudh Prasad authored
- This patch adds in the GOFFMCAsmInfo interfaces for the z/OS target. - This patch decouples the previously existing SystemZMCAsmInfo interface for the ELF target and the z/OS target. - This patch also removes a small test in the SystemZAsmLexerTest.cpp. The reason for this is because, the test is set up for the s390x-ibm-linux (SystemZ ELF triple), and the test checks a function which is overridden only for the z/OS target. The reason we can't change the test to use a z/OS triple outright is because there is still missing support which prevents the successful running of a test (assert in AsmParser.cpp due to missing GOFFAsmParser support) Reviewed By: uweigand, abhina.sreeskantharajan Differential Revision: https://reviews.llvm.org/D110077
-
Nikita Popov authored
This is a fix for the issue reported at https://reviews.llvm.org/D110043#3019942: The ElementSize is a uint64_t and as such may be larger than the index space, or be negative in the index space. This is UB, but shouldn't cause assertion failures. We address this by detecting whether the size is too large and use a zero index in that case (which is always conservatively correct). Differential Revision: https://reviews.llvm.org/D110437
-
River Riddle authored
This has a few benefits: * It allows for defining parsers/printer code blocks that can be shared between operations and attribute/types. * It removes the weird duplication of generic parser/printer hooks, which means that newly added hooks only require touching one class. Differential Revision: https://reviews.llvm.org/D110375
-
Valentin Clement authored
Add support to create unique name for namelist group and be able to deconstruct them. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110331 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Michael Kruse authored
-
Sanjay Patel authored
Only the multi-use cases are changing here because there's another fold that catches the simpler patterns. But that other fold is the source of infinite loops when we try to add D110170, so removing that is planned as a follow-up. Attempt to show the general proof in Alive2: https://alive2.llvm.org/ce/z/Ns1uS2 Note that the overshift fold-to-zero tests are not currently handled by instsimplify. If they were, we could assert that the shift amount sum is less than the source bitwidth.
-
Sanjay Patel authored
-
Teresa Johnson authored
Fix bot failure from 96cb97c4, e.g.: https://lab.llvm.org/buildbot/#/builders/61/builds/15203 llvm-lto now needs to link in IPO.
-
River Riddle authored
These are among the last operations still defined explicitly in C++. I've tried to keep this commit as NFC as possible, but these ops definitely need a non-NFC cleanup at some point. Differential Revision: https://reviews.llvm.org/D110440
-
Teresa Johnson authored
In ThinLTO for locals we normally compute the GUID from the name after prepending the source path to get a unique global id. SamplePGO indirect call profiles contain the target GUID without this uniquification, however (unless compiling with -funique-internal-linkage-names). In order to correctly handle the call edges added to the combined index for these indirect calls, during importing and bitcode writing we consult a map of original to full GUID to identify the actual callee. However, for a large application this was consuming a lot of compile time as we need to do this repeatedly (especially during importing where we may traverse call edges multiple times). To fix this implement a suggestion in one of the FIXME comments, and actually modify the call edges during a single traversal after the index is built to perform the fixups once. I combined this fixup with the dead code analysis performed on the index in order to avoid adding an additional walk of the index. The dead code analysis is the first analysis performed on the index. This reduced the time required for a large thin link with SamplePGO by about 20%. No new test added, but I confirmed that there are existing tests that will fail when no fixup is performed. Differential Revision: https://reviews.llvm.org/D110374
-