- Sep 28, 2021
-
-
Alexey Bataev authored
The instruction extractelement/extractvalue are not required to be scheduled since they only depend on the source vector/aggregate (with constant indices), smae applies to the parent basic block checks. Improves compile time and saves scheduling budget. Differential Revision: https://reviews.llvm.org/D108703
-
Erich Keane authored
C++17 permits using 'typename' or 'class' for a template template parameter, but the error message in the parser only refers to 'class'. This patch, in C++17 or newer modes, adds "or 'template'" to the diagnostic.
-
Pavel Labath authored
The two module retrieval methods (qXfer:libraries-svr4 and manual list traversal) differ in how the handle the manually-added-but-not-yet-loaded modules. The svr4 path will remove it, while the manual one will keep in the list. It's likely the two paths need ought to be synchronized, but right now, this distinction is not relevant for the test.
-
Max Kazantsev authored
-
Diana Picus authored
Recommit https://reviews.llvm.org/D109813 and https://reviews.llvm.org/D109814. This implements the second and final entry point for GET_COMMAND_ARGUMENT, handling the VALUE, STATUS and ERRMSG parameters. It has a small fix in that we're now using memcpy instead of strncpy (which was a bad idea to begin with, since we're not actually interested in a string copy).
-
Max Kazantsev authored
This reverts commit 7128a545. Need to regenerate tests after rebase.
-
Jingu Kang authored
This reverts commit 864b2067. Reverting due to error on buildbots.
-
Frederic Cambus authored
mold says it is compatible with GNU ld and gold linkers: ``` $ mold -v mold 0.9.5 (compatible with GNU ld and GNU gold) ``` And thus it currently gets detected as Gold. With the following diff, CMake now correctly reports the linker name, and mold keeps being identified as Gold internally for now. Reviewed By: ldionne, MaskRay Differential Revision: https://reviews.llvm.org/D110035
-
Pavel Labath authored
We only had that ability for regular debugger launches. This meant that it was not possible to use the normal dlopen patterns in attach tests. This fixes that.
-
Pavel Labath authored
We added some support for this mode back in 2015, but the feature was never productionized. It is completely untested, and there are known major structural lldb issues that need to be resolved before this feature can really be supported. It also complicates making further changes to stop reply packet handling, which is what I am about to do. Differential Revision: https://reviews.llvm.org/D110553
-
Diana Picus authored
This reverts commit 0446f129 and df630231. There's a warning on flang-aarch64-latest-gcc related to strncpy using the result of strlen as a bound. I'll recommit with a fix.
-
Max Kazantsev authored
-
Salman Javed authored
Add support for NOLINTBEGIN ... NOLINTEND comments to suppress clang-tidy warnings over multiple lines. All lines between the "begin" and "end" markers are suppressed. Example: // NOLINTBEGIN(some-check) <Code with warnings to be suppressed, line 1> <Code with warnings to be suppressed, line 2> <Code with warnings to be suppressed, line 3> // NOLINTEND(some-check) Follows similar syntax as the NOLINT and NOLINTNEXTLINE comments that are already implemented, i.e. allows multiple checks to be provided in parentheses; suppresses all checks if the parentheses are omitted, etc. If the comments are misused, e.g. using a NOLINTBEGIN but not terminating it with a NOLINTEND, a clang-tidy-nolint diagnostic message pointing to the misuse is generated. As part of implementing this feature, the following bugs were fixed in existing code: IsNOLINTFound(): IsNOLINTFound("NOLINT", Str) returns true when Str is "NOLINTNEXTLINE". This is because the textual search finds NOLINT as the stem of NOLINTNEXTLINE. LineIsMarkedWithNOLINT(): NOLINTNEXTLINEs on the very first line of a file are ignored. This is due to rsplit('\n\').second returning a blank string when there are no more newline chars to split on. -
Florian Hahn authored
ScalarizationResult's destructor makes sure ToFreeze is not ignored if set. Currently, scalarizeLoadExtract has an early exit if the index is not safe directly. But when it is SafeWithFreeze, we need to discard the state first, otherwise we hit the assert in the destructor. Fixes PR51992.
-
Shivam Gupta authored
-
Kirill Bobyrev authored
This reverts - d1c6e549 - 7394d3ba - e5077118 - 1bcd6b51
-
serge-sans-paille authored
It is a common practice in glibc header to provide an inline redefinition of an existing function. It is especially the case for fortified function. Clang currently has an imperfect approach to the problem, using a combination of trivially recursive function detection and noinline attribute. Simplify the logic by suffixing these functions by `.inline` during codegen, so that they are not recognized as builtin by llvm. After that patch, clang passes all tests from https://github.com/serge-sans-paille/fortify-test-suite Differential Revision: https://reviews.llvm.org/D109967
-
LLVM GN Syncbot authored
-
Jingu Kang authored
MOVi32imm + ANDWrr ==> ANDWri + ANDWri MOVi64imm + ANDXrr ==> ANDXri + ANDXri The mov pseudo instruction could be expanded to multiple mov instructions later. In this case, try to split the constant operand of mov instruction into two bitmask immediates. It makes only two AND instructions intead of multiple mov + and instructions. Added a peephole optimization pass on MIR level to implement it. Differential Revision: https://reviews.llvm.org/D109963
-
M Bakinovsky authored
Fixes bugprone-virtual-near-miss & performance-type-promotion-in-math-fn.
-
mydeveloperday authored
[clang-format][docs] mark new clang-format configuration options based on which version they would GA Sometimes I see people unsure about which options they can use in specific versions of clang-format because https://clang.llvm.org/docs/ClangFormatStyleOptions.html points to the latest and greatest versions. The reality is this says its version 13.0, but actually anything we add now, will not be in 13.0 GA but instead 14.0 GA (as 13.0 has already been branched). How about we introduce some nomenclature to the Format.h so that we can mark which options in the documentation were introduced for which version? Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D110432
-
Jay Foad authored
Call RemoveMachineInstrFromMaps before erasing instrs. repairIntervalsInRange will do this for you after erasing the instruction, but it's not safe to rely on it because assertions in SlotIndexes::removeMachineInstrFromMaps refer to fields in the erased instruction. This fixes asan buildbot failures caused by D110335.
-
Kirill Bobyrev authored
-
Eric Schweitz authored
Add the fir.save_result operation. It is use to save an array, box, or record function result SSA-value to a memory location Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110407 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Florian Hahn authored
This reverts commit 8fdac7cb. The issue causing the revert has been fixed a while ago in 60b85209. Original message: Now that SCEVExpander can preserve LCSSA form, we do not have to worry about LCSSA form when trying to look through PHIs. SCEVExpander will take care of inserting LCSSA PHI nodes as required. This increases precision of the analysis in some cases. Reviewed By: mkazantsev, bmahjour Differential Revision: https://reviews.llvm.org/D71539
-
“bhkumarn” authored
This patch emits DW_TAG_namelist and DW_TAG_namelist_item for fortran namelist variables. DICompositeType is extended to support this fortran feature. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D108553
-
V Donaldson authored
Update the fir.insert_on_range operation. Add a better description, builder and verifier. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110389 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Diana Picus authored
Implement the final part of GET_COMMAND_ARGUMENT, i.e. the handling of ERRMSG. This uses some of the infrastructure in stat.h and gets rid of the magic numbers that we were using for return codes. Differential Revision: https://reviews.llvm.org/D109814
-
Diana Picus authored
Partial implementation for the second entry point for GET_COMMAND_ARGUMENT. It handles the VALUE and STATUS arguments, and doesn't touch ERRMSG. Differential Revision: https://reviews.llvm.org/D109813
-
Diana Picus authored
Implement the ArgumentLength entry point of GET_COMMAND_ARGUMENT. Also introduce a fixture for the tests. Note that this also changes the interface for ArgumentLength from returning a 4-byte integer to returning an 8-byte integer. Differential Revision: https://reviews.llvm.org/D109227
-
Kirill Bobyrev authored
Add more information for test failures inspection.
-
Alexander Belyaev authored
[RFC: Add min/max ops](https://llvm.discourse.group/t/rfc-add-min-max-operations/4353) I was following the naming style for Arith dialect in https://reviews.llvm.org/D110200, i.e. similar to DivSIOp and DivUIOp I defined MaxSIOp, MaxUIOp. When Arith PR is landed, I will migrate these ops as well. Differential Revision: https://reviews.llvm.org/D110540
-
Jay Foad authored
In TwoAddressInstructionPass::processTiedPairs, update subranges of the live interval for RegB as well as the main range. This is a small step towards switching TwoAddressInstructionPass over from LiveVariables to LiveIntervals. Currently this path is only tested if you explicitly enable -early-live-intervals. Differential Revision: https://reviews.llvm.org/D110526
-
Jay Foad authored
After TwoAddressInstructionPass calls TargetInstrInfo::convertToThreeAddress, improve the LiveIntervals repair to cope with convertToThreeAddress creating more than one new instruction. This mostly seems to benefit X86. For example in test/CodeGen/X86/zext-trunc.ll it converts: %4:gr32 = ADD32rr %3:gr32(tied-def 0), %2:gr32, implicit-def dead $eflags to: undef %6.sub_32bit:gr64 = COPY %3:gr32 undef %7.sub_32bit:gr64_nosp = COPY %2:gr32 %4:gr32 = LEA64_32r killed %6:gr64, 1, killed %7:gr64_nosp, 0, $noreg Differential Revision: https://reviews.llvm.org/D110335
-
Mehdi Amini authored
Differential Revision: https://reviews.llvm.org/D110565
-
-
Kirill Bobyrev authored
Preparation for D108194. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D110386
-
Liu, Chen3 authored
This bug was introduced by D109953. The operand order of generated FMA is wrong. Differential Revision: https://reviews.llvm.org/D110606
-
Lang Hames authored
This was broken by the switch from JITTargetAddress to ExecutorAddr in 21a06254.
-
Xiang1 Zhang authored
Reviewed By: Craig Topper, Wang Pengfei Differential Revision: https://reviews.llvm.org/D110467
-