- Nov 17, 2020
-
-
Lex Augusteijn authored
Some rewriters take more iterations to converge, add a parameter to overwrite the built-in maximum iteration count. Fix PR48073. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D91553
-
Artem Dergachev authored
This reverts commit 10f1ca99. (cherry picked from commit c599fc738a70e482976c6cc0ea31bef561641279)
-
Sjoerd Meijer authored
Disable widening of the IV in LoopFlatten while I investigate an assertion failures. Please note that the pass is also not yet enabled by default.
-
Jessica Paquette authored
When we see ``` xor = G_XOR xor_lhs, -1 select = G_SELECT cc, tval, xor ``` Fold this into ``` select = CSINV tval, xor_lhs, cc ``` Update select-select.mir to reflect the changes. For now, only handle the case where the G_XOR is the false-value for the G_SELECT. It may make more sense to handle the true-value case in post-legalizer lowering. Differential Revision: https://reviews.llvm.org/D90774
-
Felix Berger authored
[clang-tidy] performance-unnecessary-copy-initialization: Check for const reference arguments that are replaced template parameter type. This fixes false positive cases where a non-const reference is passed to a std::function but interpreted as a const reference. Fix the definition of the fake std::function added in the test to match std::function and make the bug reproducible. Reviewed-by: aaron.ballman Differential Revision: https://reviews.llvm.org/D90042
-
Michael Liao authored
- In certain cases, a generic pointer could be assumed as a pointer to the global memory space or other spaces. With a dedicated target hook to query that address space from a given value, infer-address-space pass could infer and propagate that to all its users. Differential Revision: https://reviews.llvm.org/D91121
-
Kazushi (Jam) Marukawa authored
Add lvm/svm intrinsic instructions and a regression test. Change RegisterInfo to specify that VM0/VMP0 are constant and reserved registers. This modifies a vst regression test, so update it. Also add pseudo instructions for VM512 register classes and mechanism to expand them after register allocation. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D91541
-
Jonas Devlieghere authored
Add a parser for JSON crashlogs. The CrashLogParser now defers to either the JSONCrashLogParser or the TextCrashLogParser. It first tries to interpret the input as JSON, and if that fails falling back to the textual parser. Differential revision: https://reviews.llvm.org/D91130
-
Florian Hahn authored
When processing conditional branches, if the condition is an OR of 2 compares and the false successor only has the current block as predecessor, queue both negated conditions for the false successor
-
Philip Reames authored
Split off D91398 at request of reviewer.
-
Louis Dionne authored
Also, enable them whenever we detect that gdb is available. Previously, these tests would basically never run because they relied on a CMake configuration option that defaulted to OFF. Differential Revision: https://reviews.llvm.org/D91434
-
Kostya Kortchinsky authored
The original code to keep track of the minimum and maximum indices of allocated 32-bit primary regions was sketchy at best. `MinRegionIndex` & `MaxRegionIndex` were shared between all size classes, and could (theoretically) have been updated concurrently. This didn't materialize anywhere I could see, but still it's not proper. This changes those min/max indices by making them class specific rather than global: classes are locked when growing, so there is no concurrency there. This also allows to simplify some of the 32-bit release code, that now doesn't have to go through all the regions to get the proper min/max. Iterate and unmap will no longer have access to the global min/max, but they aren't used as much so this is fine. Differential Revision: https://reviews.llvm.org/D91106
-
Sean Silva authored
This replaces the old type decomposition logic that was previously mixed into bufferization, and makes it easily accessible. This also deletes TestFinalizingBufferize, because after we remove the type decomposition, it doesn't do anything that is not already provided by func-bufferize. Differential Revision: https://reviews.llvm.org/D90899
-
Nico Weber authored
`-flavor` is difficult to use through the clang driver since it must be the first argument. clang's `-fuse-ld=foo` looks for `ld64.foo` when targeting darwin, so it's easiest if darwinnew accepts some `ld64.foo`. Let's go with `ld64.lld.darwinnew`, so that `clang -fuse-ld=lld.darwinnew` does the right thing (assuming a symlink with the name `ld64.ld.darwinnew exists in the right place). This is temporary until darwinnew replaces ld64.lld, and it only exists to make testing the new lld port easier.
-
Philip Reames authored
This is a cut down version of 1ec6e1 which was reverted due to a compile time issue. The key changes made from that patch: 1) only infer the flags needed along each path, 2) be careful to preserve order of checks, and 3) avoid computing NW flags at all since we need to prove the stronger property (does not cross 0) in the caller anyways. Assuming this doesn't trip regressions, I'm going to try weakening (1). My end objective is to move flag inference into addrec construction. If I can't weaken (1) without compile time impact, I'll have a problem.
-
Arnold Schwaighofer authored
Create a valid basic block with a terminator before we call InlineFunction. Differential Revision: https://reviews.llvm.org/D91547
-
Florian Hahn authored
-
Sanjay Patel authored
This reverts commit e56103d2. There is a stage2 msan failure blamed on this commit: http://lab.llvm.org:8011/#/builders/74/builds/888/steps/9/logs/stdio
-
Aaron Ballman authored
-
Aaron Ballman authored
Pick up the changes from 41b65f16.
-
Thorsten authored
-
Jonas Devlieghere authored
In f9fb9da3 we fixed spurious warnings caused by aliases to private extern symbols. This patch generalizes that to regular external symbols as well.
-
Amara Emerson authored
The G_ZEXT in these cases seems to actually come from a combine that we do but SelectionDAG doesn't. Looking through it allows us to match "uxtw #2" addressing modes. Differential Revision: https://reviews.llvm.org/D91475
-
Scott Linder authored
The `Range` of an alias/anchor token includes the leading `&` or `*`, but it is skipped while parsing the name. The check for an empty name fails to account for the skipped leading character and so the error is never hit. Fix the off-by-one and add a couple regression tests. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D91462
-
Craig Topper authored
Make sure we can parse and print the user CSR names Differential Revision: https://reviews.llvm.org/D91469
-
Louis Dionne authored
It's been more than 4 years now, so anyone that was defining _LIBCPP_TRIVIAL_PAIR_COPY_CTOR has had ample time to see that error and fix their code.
-
Jameson Nash authored
This reverts commit 105ed27e, and removes the offending line from the tests.
-
Praveen G authored
Add the semantic checks for the OpenMP 4.5 - 2.13.9 Depend clause. 1. List items in depend clause should not be zero length array sections. 2. A variable that is part of another variable like structure component should not be specified on a depend clause. Test cases : omp-depend01.f90, omp-depend02.f90, omp-depend03.f90 Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D89934
-
Craig Topper authored
We need to make sure the upper 32 bits are all ones to ensure the result is properly sign extended. Previously we only checked the lower 32 bits of the mask. I've also added a check that the shift amount is less than 32. Without that the original code asserts inside maskLeadingOnes if the SROI check is removed or the SROIW pattern is checked first. I've refactored the code to use early outs to reduce nesting. I've also updated SLOIW matching with the same changes, but I couldn't find a broken test case with the existing code. Differential Revision: https://reviews.llvm.org/D90961
-
Arthur Eubanks authored
Regression caused by refactoring in cdd006ee. See discussion in https://reviews.llvm.org/D89917. Reviewed By: arsenm, morehouse Differential Revision: https://reviews.llvm.org/D91473
-
Raphael Isemann authored
Somehow static_assert is a keyword with C on Windows (maybe the Windows default is C11?). Skipping the test for now.
-
peter klausler authored
COMPLEX negation, addition, subtraction, conversions of kind, and equality/inequality were represented as component-wise REAL operations. It turns out to be easier for lowering if we do not split and recombine these COMPLEX operations, and it avoids a potential problem with COMPLEX valued function calls in these contexts. So add this suite of operations to the typed expression representation in place of the component-wise transformations, and support them in folding. Differential revision: https://reviews.llvm.org/D91443
-
Jonathan Metzman authored
Test is failing on non-Windows platforms. Also undo speculative fix since it causes failures on Windows.
-
Xun Li authored
In the existing logic, for a given alloca, as long as its pointer value is stored into another location, it's considered as escaped. This is a bit too conservative. Specifically, in non-optimized build mode, it's often to have patterns of code that first store an alloca somewhere and then load it right away. These used should be handled without conservatively marking them escaped. This patch tracks how the memory location where an alloca pointer is stored into is being used. As long as we only try to load from that location and nothing else, we can still consider the original alloca not escaping and keep it on the stack instead of putting it on the frame. Differential Revision: https://reviews.llvm.org/D91305
-
Jonathan Metzman authored
Speculative fix for failing unittest.
-
Matt Arsenault authored
Use the 64-bit SGPR base with a 0 offset, since it's 1 fewer instruction to materialize the 0 vs. the 64-bit copy.
-
Mirko Brkusanin authored
RegBankSelect would crash on G_SELECT when type is not s1. Differential Revision: https://reviews.llvm.org/D91437
-
Matt Arsenault authored
When the offset doesn't fit in the immediate field, move some to voffset.
-
Victor Huang authored
Fix the compilation assertion due to unreachable BB pruning not deleting the associated BB from the jump tables This patch is added to remove the unreachable MBBs reference in the jump table. Differential Revisien: https://reviews.llvm.org/D90498 Reviewed by: amyk, bsaleil
-
Jay Foad authored
-