- Dec 20, 2021
-
-
David Green authored
This makes use of the code in D114013 to fold away unnecessary CMPZ/CSINC starting from a CMOV, in a similar way to how we fold away CSINV/CSINC/etc Differential Revision: https://reviews.llvm.org/D115185
-
Aleksandr Platonov authored
`Message()` lambda uses `Reason.Details` as an input parameter for `llvm::formatv()`, but `Reason` in `Message()` is a local object. Return value of `llvm::formatv()` contains references to its input arguments, thus `Message()` returns an object which contains a reference to `Details` field of the local object `Reason`. This patch fixes this behavior by passing `Reason` as a reference to `Message()` to ensure that return value of `Message()` contains references to alive object and also prevents copying of `InvalidName` structure at passing it to `makeError()`. Provided test passes on Linux+GCC with or without this patch, but fails on Windows+VisualStudio without this patch. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D115959
-
Sanjay Patel authored
This is the last cleanup step resulting from D115804 . Now that clang uses intrinsics when we're in the special FP mode, we don't need a function attribute as an indicator to the backend. The LLVM part of the change is in D115885. Differential Revision: https://reviews.llvm.org/D115886
-
Sanjay Patel authored
-
Arjun P authored
This is a purely mechanical patch moving some functionality out from the `Simplex` class out into a `SimplexBase` class. This pavees the way for a future patch adding support for lexicographic optimization with a class `LexSimplex`, which will inherit from `SimplexBase`. Inheriting directly from `Simplex` would bring many additional functions that would not work in `LexSimplex` because it operates slighty differently from `Simplex`. So We split out only the basic functionality it needs to inherit into `SimplexBase`. Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D115831
-
bakhtiyar authored
Make AsyncParallelForRewrite parameterizable with a cost model which drives deciding the parallelization granularity. Reviewed By: ezhulenev, mehdi_amini Differential Revision: https://reviews.llvm.org/D115423
-
Simon Pilgrim authored
Pull out the WriteMove schedule class into the cvt_mask_by_elt_width wrapper
-
- Dec 19, 2021
-
-
Shivam Gupta authored
When the source has a series of assignments, users reasonably want to have the debugger step through each one individually. Turn off the combine for adjacent stores so we get this behavior at -O0. Similar to D7181. Differential Revision: https://reviews.llvm.org/D115808
-
Krasimir Georgiev authored
Depends on https://reviews.llvm.org/D116000. Added test cases from the comments on https://reviews.llvm.org/D114583. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D116001
-
Krasimir Georgiev authored
It appears that this regressed the formatting of initializer lists in some cases, see comments on https://reviews.llvm.org/D114583. I'll follow-up by adding regression tests for these. This reverts commit c41b3b0f. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D116000
-
Christian Ulmann authored
This commit rewrites most existing unittests involving FlatAffineConstraints to use the parsing utility. This helps to make the tests more understandable. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D115920
-
Simon Pilgrim authored
Match order of most of the other integer opcode combines
-
Simon Pilgrim authored
The IceLake scheduler model is still mainly a copy of the SkylakeServer model. This patch adjusts the fp shuffle classes to account for most instructions now working on Port 1 as well as Port 5. This is based off Agner + uops.info as well as the PR48110 report. Differential Revision: https://reviews.llvm.org/D115752
-
Simon Pilgrim authored
Merge the node combines into a common DAGCombiner::visitFMinMax (like we do for IMINMAX). Move the constant folding into SelectionDAG::foldConstantFPMath. This allows us to fold the vecreduce-propagate-sd-flags.ll test as it reduces constants - so I've refactored it to take variables instead. Differential Revision: https://reviews.llvm.org/D115952
-
Shilei Tian authored
-
Cyndy Ishida authored
-
Craig Topper authored
The tests no longer generate the instructions that are mentioned in the comments.
-
Jakub Kuderski authored
Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D115900
-
Jakub Kuderski authored
The race condition happened when two pass managers ran on two different modules but modified/read the global variables. To address this, I considered using singletons and freestanding functions to allow getting/setting `HardwareLimits` and `RegisterEncoding`, or making it local to the pass. I chose the latter and made it a member of `WaitcntsBrackets`, to minimizes the amount of global state. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D115896
-
Craig Topper authored
Drop stale FIXME.
-
Michael Berg authored
Both these preference helper functions have initial support with this change. The loop unrolling preferences are set with initial settings to control thresholds, size and attributes of loops to unroll with some tuning done. The peeling preferences may need some tuning as well as the initial support looks much like what other architectures utilize. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D113798
-
Mehdi Amini authored
-
Nikita Popov authored
This reverts commit 9fd4f80e. This breaks SingleSource/Regression/C/gcc-c-torture/execute/pr19687.c in test-suite. Either the test is incorrect, or clang is generating incorrect union initialization code. I've submitted https://reviews.llvm.org/D115994 to fix the test, assuming my interpretation is correct. Reverting this in the meantime as it may take some time to resolve.
-
Martin Storsjö authored
When run in a git bash terminal, sys.stderr isn't flushed implicitly after printing each line. Manually flush it after each printout, to avoid getting broken/misordered output. A similar fix had been done in the old libcxx test config, committed as part of 7e3ee09a / D28725; this generalizes the fix, making it available in the new libcxx test configs too, and for any other test that uses lit_config.note(). Differential Revision: https://reviews.llvm.org/D115761
-
Cyndy Ishida authored
For scripting purposes, use different error code for cases that aren't a result of different tbd files, e.g. bad input like a path to a broken symlink. This behaves more similiarly to how the unix `diff` command behaves. This also includes minor tweaks on error messages. Reviewed By: ributzka, JDevlieghere Differential Revision: https://reviews.llvm.org/D115905
-
Ricky Zhou authored
Before this change, AAResults::getModRefInfo() was missing a case for callbr instructions (asm goto), which may read/write memory. In PR52735, this led to a miscompile where a load was incorrect eliminated. Add this missing case, as well as an assert verifying that all memory-accessing instructions are handled properly. Fixes #52735. Differential Revision: https://reviews.llvm.org/D115992
-
Nikita Popov authored
This was creating an AttributeSet from an AttrBuilder, and then (implicitly) constructing an AttrBuilder from the AttributeSet, and then the method would internally convert that back into an AttributeSet. Instead, directly pass the AttrBuilder.
-
Matt Arsenault authored
-
- Dec 18, 2021
-
-
Matt Arsenault authored
-
mydeveloperday authored
https://github.com/llvm/llvm-project/issues/49804 Interaction between IndentExternBlock and AfterExternBlock means you cannot have AfterExternBlock = true and IndentExternBlock = NoIndent/Indent This patch resolves that ``` BraceWrapping: AfterExternBlock: true IndentExternBlock: AfterExternBlock ``` Fixes: #49804 Reviewed By: HazardyKnusperkeks, curdeius, owenpan Differential Revision: https://reviews.llvm.org/D115879
-
Konstantin Boyarinov authored
Minor change - add tests that std::array methods (data, (c/r)begin, (c/r)end) are noexcept Reviewed By: ldionne, rarutyun, #libc Differential Revision: https://reviews.llvm.org/D115717
-
mydeveloperday authored
https://github.com/llvm/llvm-project/issues/43196 Fixes #43196 -> is incorrectly interpreted as a TrailingReturnArrow if we've seen an auto ``` auto p = new A; auto x = p -> foo<1>(); ``` Reviewed By: curdeius Differential Revision: https://reviews.llvm.org/D115903
-
Nikita Popov authored
This reverts commit a8a51fe5. This breaks the strncpy-overflow.cpp test case.
-
Fangrui Song authored
With this patch, writing .debug_str is significantly for a program with 1.5G .debug_str: * .debug_info 1.22s * .debug_str 2.57s decreases to 0.66
-
Kazu Hirata authored
-
Fangrui Song authored
This decreases struct sizes and usually decreases the lld executable size (39KiB for my x86-64 executable) (unless in some cases smaller SmallVector leads to more inlining, e.g. StringTableBuilder). For --gdb-index, there may be memory usage saving.
-
Joshua Huels authored
This fixes the regex in ClangFormatStyleOptions for IncludeCategories to match anything starting with < or starting with | AND followed by (gtest|gmock|isl|json) then /. Differential Revision: https://reviews.llvm.org/D115910
-
Kazu Hirata authored
-
Jonas Devlieghere authored
This is part of a bigger rework of the reproducer feature. See [1] for more details. [1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html
-