- May 06, 2022
-
-
Rahman Lavaee authored
This patch adds a new feature to bolt heatmap to print the hotness of each section in terms of the percentage of samples within that section. Sample output generated for the clang binary: Section Name, Begin Address, End Address, Percentage Hotness .text, 0x1a7b9b0, 0x20a2cc0, 1.4709 .init, 0x20a2cc0, 0x20a2ce1, 0.0001 .fini, 0x20a2ce4, 0x20a2cf2, 0.0000 .text.unlikely, 0x20a2d00, 0x431990c, 0.3061 .text.hot, 0x4319910, 0x4bc6927, 97.2197 .text.startup, 0x4bc6930, 0x4c10c89, 0.0058 .plt, 0x4c10c90, 0x4c12010, 0.9974 Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D124412
-
Aaron Ballman authored
GCC warns with a pedantic warning when -std=gnu89, but Clang would only diagnose in -std=c89 mode. Clang now matches the GCC behavior in both modes. Fixes #18427
-
Alexandre Perez authored
Currently, debugserver has a test to check if it was launched in translation. The intent was to cover the case where an x86_64 debugserver attempts to control an arm64/arm64e process, returning an error. However, this check also covers the case where users are attaching to an x86_64 process, exiting out before attempting to hand off control to the translated debugserver at `/Library/Apple/usr/libexec/oah/debugserver`. This diff delays the debugserver translation check until after determining whether to hand off control to `/Library/Apple/usr/libexec/oah/debugserver`. Only when the process is not translated and thus has not been handed off do we check if the debugserver is translated, erroring out in that case. Reviewed By: jasonmolenda Differential Revision: https://reviews.llvm.org/D124814
-
Florian Hahn authored
After introducing VPWidenPointerInductionRecipe, VPWidenPHIRecipes should not be created at this point. Turn check into an assert.
-
David Blaikie authored
Discovered in a large object that would need a 64 bit index (but the cu/tu index format doesn't include a 64 bit offset/length mode in DWARF64 - a spec bug) but instead binutils dwp overflowed the offsets causing overlapping regions.
-
Nick Desaulniers authored
To match the cost of other scheduling models. This is expected to schedule mov instructions around INLINEASM less frequently for the default machineschedule (pre-RA scheduling). Suggested by Craig Topper. Link: https://github.com/llvm/llvm-project/issues/41914 Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D122350
-
Serge Pavlov authored
This reverts commit 83914ee9. The change caused discussion: https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20220502/1034841.html
-
Peter Kasting authored
Bug: https://github.com/llvm/llvm-project/issues/55195 Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D124695
-
Nick Desaulniers authored
Generated via: $ clang -fno-omit-frame-pointer -m32 -mregparm=3 -O2 crash.c -emit-llvm -S $ llc -print-before=machine-scheduler -mcpu=sandybridge crash.mir Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D122348 -
Andrzej Warzynski authored
The assert in https://reviews.llvm.org/D124665 was missing parentheses, which triggered a warning in GCC (verified with GCC 11). As `-Werror` is on by default in FLang, that triggered build errors, see e.g. [1]. The fix is rather straightforward, so I am sending this without a review. [1] https://lab.llvm.org/buildbot/#/builders/160/builds/7016 Differential Revision: https://reviews.llvm.org/D125027
-
Aaron Ballman authored
We had a think-o that would allow a user to declare a scoped enumeration in C language modes "as a C++11 extension". This is a think-o because there's no way for the user to spell the name of the enumerators; C does not have '::' for a fully-qualified name. See commit d0d87b59 for details on why this is unintentional for C. Fixes #42372
-
Joe Nash authored
FeatureAtomicFaddInsts is replaced with three more granular features. Contributors: Petar Avramovic <Petar.Avramovic@amd.com> Patch 3/N for upstreaming of AMDGPU gfx11 architecture Depends on D124537 Reviewed By: foad, #amdgpu, arsenm Differential Revision: https://reviews.llvm.org/D124538
-
Amir Ayupov authored
Account for cross-compilation build scenarios (X86 to ARM, Linux to Windows, etc). Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D124712
-
Christopher Bate authored
The NVVM dialect test coverage for all possible type/shape combinations in the `nvvm.mma.sync` op is mostly complete. However, there were tests missing for TF32 datatype support. This change adds tests for the one relevant shape/type combination. This uncovered a small bug in the op verifier, which this change also fixes. Differential Revision: https://reviews.llvm.org/D124975
-
Sam McCall authored
Fixes https://github.com/clangd/clangd/issues/1140
-
Sanjay Patel authored
-
Sanjay Patel authored
D124997 shows that the code is not ready to handle scalable vectors, so add some more coverage for a potential crashing case.
-
Craig Topper authored
The result of sign_extend_inreg needs to have as many sign bits as requested by the VT argument. The easiest way to guarantee this is to fold it to 0. SystemZ test was modified to avoid using undef. Fixes https://github.com/llvm/llvm-project/issues/55178 Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D124696
-
Andrzej Warzynski authored
In https://reviews.llvm.org/D124667, I added tests that check the generated assembly. I verified the assembly on AArch64 and X86_64, but the PPC Flang buildbot [1] started failing (i.e. the assembly was not generic enough). In order to fix this, I'm changing these tests to be only run on AAarch64 - that's the architecture that most of public Flang buildbots use. I'm hoping that this is straightforward enough and am merging it without a review. [1] https://lab.llvm.org/buildbot/#/builders/21/builds/40256
-
Craig Topper authored
Differential Revision: https://reviews.llvm.org/D124988
-
Craig Topper authored
Differential Revision: https://reviews.llvm.org/D124951
-
Craig Topper authored
Add basic tests and some tests for same operands and all undef operands inspired by PR55271. i32 is umin/umax is using signext to match RISC-V ABI. i8/i16 are using signext/zeroext to match the operation. Differential Revision: https://reviews.llvm.org/D124948
-
AndreyChurbanov authored
Intel Inspector uses itt notifications to analyze code execution, and it reports race conditions in dependent tasks. This patch fixes the issue notifying Inspector on tasks dependency synchronizations. Differential Revision: https://reviews.llvm.org/D123042
-
Amara Emerson authored
-
Aaron Ballman authored
If the operand to `sizeof` is an expression of VLA type, the operand is still evaluated, so we should not issue a diagnostic about ignoring the side effects in this case, as they're not actually ignored. Fixes #48010
-
Ilya Biryukov authored
I have forgotten a space by mistake in the previous commit.
-
AndreyChurbanov authored
The identical check remains 20 lines above in the code. Differential Revision: https://reviews.llvm.org/D123046
-
- May 05, 2022
-
-
AndreyChurbanov authored
Differential Revision: https://reviews.llvm.org/D123047
-
Ilya Biryukov authored
The flag was added when the C++20 draft did not allow for concept caching. The final C++20 standard permits the caching, so flag is redundant. See http://wg21.link/p2104r0. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D125014
-
Brian Tracy authored
There are many more instances of this pattern, but I chose to limit this change to .rst files (docs), anything in libcxx/include, and string literals. These have the highest chance of being seen by end users. Reviewed By: #libc, Mordante, martong, ldionne Differential Revision: https://reviews.llvm.org/D124708
-
Tomasz Kamiński authored
This PR changes the `SymIntExpr` so the expression that uses a negative value as `RHS`, for example: `x +/- (-N)`, is modeled as `x -/+ N` instead. This avoids producing a very large `RHS` when the symbol is cased to an unsigned number, and as consequence makes the value more robust in presence of casts. Note that this change is not applied if `N` is the lowest negative value for which negation would not be representable. Reviewed By: steakhal Patch By: tomasz-kaminski-sonarsource! Differential Revision: https://reviews.llvm.org/D124658
-
Sam McCall authored
Currently it rejects "// FOO_BAR_H" as an endif comment due to the extra space. A user complained that this is too picky, which seems fair enough. Differential Revision: https://reviews.llvm.org/D124955
-
Louis Dionne authored
Several helper functions specify preconditions as comments, but we never check them. I ran across a bug report (without a reproducer) in this code, and I thought that having these assertions in place would make it easier to troubleshoot. Differential Revision: https://reviews.llvm.org/D124477
-
Andrzej Warzynski authored
This change makes sure that Flang's driver recognises LLVM IR and BC as supported file formats. To this end, `isFortran` is extended and renamed as `isSupportedByFlang` (the latter better reflects the new functionality). New tests are added to verify that the target triple is correctly overridden by the frontend driver's default value or the value specified with `-triple`. Strictly speaking, this is not a functionality that's new in this patch (it was added in D124664). This patch simply enables us to write such tests and hence I'm including them here. Differential Revision: https://reviews.llvm.org/D124667
-
Ilya Biryukov authored
Added in my previous patch by mistake.
-
Thomas Preud'homme authored
Prior to ordering instructions to be scheduled, the machine pipeliner update recurrence node sets in groupRemainingNodes() by adding in a given node set any node on the dependency path from a node set with higher priority to the given node set. The function computePath() that determine what constitutes a path follows artificial dependencies. However, when ordering the nodes in the resulting node sets, computeNodeOrder() calls ignoreDependence when looking at dependencies which ignores artificial dependencies. This can cause a node not to be scheduled which then causes wrong code generation and in the case of a debug build will lead to an assert failure in generatePhis() in ModuloScheduler.cpp. This commit adds calls to ignoreDependence() in computePath() to not add any node in groupRemainingNodes() that would not be ordered by computeNodeOrder(). Reviewed By: sgundapa Differential Revision: https://reviews.llvm.org/D124267
-
David Green authored
In service of D123801, this add some tests targetting a v2i64 splat of a load, and regenerates vsx_shuffle_le.ll for easier updating.
-
Sam McCall authored
If clang is passed "-include foo.h", it will rewrite to "-include-pch foo.h.pch" before passing it to cc1, if foo.h.pch exists. Existence is checked, but validity is not. This is probably a reasonable assumption for the compiler itself, but not for clang-based tools where the actual compiler may be a different version of clang, or even GCC. In the end, we lose our -include, we gain a -include-pch that can't be used, and the file often fails to parse. I would like to turn this off for all non-clang invocations (i.e. createInvocationFromCommandLine), but we have explicit tests of this behavior for libclang and I can't work out the implications of changing it. Instead this patch: - makes it optional in the driver, default on (no change) - makes it optional in createInvocationFromCommandLine, default on (no change) - changes driver to do IO through the VFS so it can be tested - tests the option - turns the option off in clangd where the problem was reported Subsequent patches should make libclang opt in explicitly and flip the default for all other tools. It's probably also time to extract an options struct for createInvocationFromCommandLine. Fixes https://github.com/clangd/clangd/issues/856 Fixes https://github.com/clangd/vscode-clangd/issues/324 Differential Revision: https://reviews.llvm.org/D124970
-
Philip Reames authored
If the GPR destination register of a VSETVLI instruction is unused, we can replace it with X0. This discards the result, and thus reduces register pressure. Since after the core insertion/lowering algorithm has run, many user written VSETVLIs will have their GPR result unused (as VTYPE/VLEN is now explicitly read instead), this kicks in for most tests which involve a vsetvli intrinsic for fixed length vectorization. (vscale vectorization generally uses the GPR result to know how far to e.g. advance pointers in a loop and these uses are not removed.) When inserting VSETVLIs to lower psuedos, we prefer the X0 form anyways. Differential Revision: https://reviews.llvm.org/D124961
-
David Green authored
This adds a big endian run line for the AArch64 TRN tests and regenerated the check lines, along with adding an extra MVE VMOVN case and regenerating vector-DAGCombine.ll for easier updating.
-