- Feb 11, 2021
-
-
Adrian Prantl authored
salvageDebugInfoImpl() may fail and return a nullptr.
-
Philip Reames authored
The AssumptionCache mechanism is used to feed assumes into known bits computations. Most places in SCEV passed it in, but one place appears to have been missed. Spotted via inspection, don't have a test case which actually exercises this, but it seemed like an obvious fixit.
-
Sanjay Patel authored
This is a special-case multiply that replicates bits of the source operand. We need this fold to avoid regression if we make canonicalization to `mul` more aggressive for shl+or patterns. I did not see a way to make Alive generalize the bit width condition for even-number-of-bits only, but an example of the proof is: Name: i32 Pre: isPowerOf2(C1 - 1) && log2(C1) == C2 && (C2 * 2 == width(C2)) %m = mul nuw i32 %x, C1 %t = lshr i32 %m, C2 => %t = and i32 %x, C1 - 2 Name: i14 %m = mul nuw i14 %x, 129 %t = lshr i14 %m, 7 => %t = and i14 %x, 127 https://rise4fun.com/Alive/e52
-
Sanjay Patel authored
-
Mehdi Amini authored
Fix StridedMemRefType operator[] SFINAE to allow correctly selecting the `int64_t` overload for non-container operands
-
Pavel Labath authored
Although it is located under tools/lldb-server, this test is very different that other lldb-server tests. The most important distinction is that it does not test lldb-server directly, but rather interacts with it through the lldb client. It also tests the relevant client functionality (the platform connect command, which is even admitted in the test name). The fact that this test is structured as a lldb-server test means it cannot access most of the goodies available to the "normal" lldb tests (the runCmd function, which it reimplements; the run_break_set_by_symbol utility function; etc.). This patch makes it a full-fledged lldb this, and rewrites the relevant bits to make use of the standard features. I also move the test into the "commands" subtree to better reflect its new status.
-
Nawrin Sultana authored
This patch adds lower-bound and upper-bound to num_teams clause according to OpenMP 5.1 specification. The initial number of teams created is implementation defined, but it will be greater than or equal to lower-bound and less than or equal to upper-bound. If num_teams clause is not specified, the number of teams created is implementation defined, but it will be greater or equal to 1. Differential Revision: https://reviews.llvm.org/D95820
-
Jing Pu authored
Make the type contraint consistent with other shape dialect operations. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D96377
-
Aart Bik authored
This revision connects the generated sparse code with an actual sparse storage scheme, which can be initialized from a test file. Lacking a first-class citizen SparseTensor type (with buffer), the storage is hidden behind an opaque pointer with some "glue" to bring the pointer back to tensor land. Rather than generating sparse setup code for each different annotated tensor (viz. the "pack" methods in TACO), a single "one-size-fits-all" implementation has been added to the runtime support library. Many details and abstractions need to be refined in the future, but this revision allows full end-to-end integration testing and performance benchmarking (with on one end, an annotated Lingalg op and, on the other end, a JIT/AOT executable). Reviewed By: nicolasvasilache, bixia Differential Revision: https://reviews.llvm.org/D95847
-
Christopher Di Bella authored
Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Differential Revision: https://reviews.llvm.org/D96235 -
Christopher Di Bella authored
Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D74292 -
Michael Kruse authored
Test the NewPM as well as the legacy PM.
-
Michael Kruse authored
-
Jameson Nash authored
This attempts to move all tools over to using `add_llvm_library` for better consistency. After doing this, I noticed it ended up as nearly a reimplementation of https://reviews.llvm.org/rL342148, which later got reverted in r342336 (b09a8c9b). With ccache and ninja on a large core machine (40), I haven't run into build errors, so I'm hopeful it's better now, though it doesn't seem to be any different / new. Reviewed By: stephenneuendorffer Differential Revision: https://reviews.llvm.org/D90970
-
Arthur Eubanks authored
It seems nicer to list passes given a flag rather than displaying all passes in opt --help. This is awkwardly structured because a PassBuilder is required, but reusing the PassBuilder in runPassPipeline() doesn't work because we read the input IR before getting to runPassPipeline(). So printing the list of passes needs to happen before reading the input IR. If we remove the legacy PM code in main() and move everything from NewPMDriver.cpp into opt.cpp, we can create the PassBuilder before reading IR and check if we should print the list of passes and exit. But until then this hack seems fine. Compared to the legacy PM, the new PM passes are lacking descriptions. We'll need to figure out a way to add descriptions if we think this is important. Also, this only works for passes specified in PassRegistry.def. If we want to print other custom registered passes, we'll need a different mechanism. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D96101
-
Craig Topper authored
-
Christopher Di Bella authored
Implements parts of: * P0898R3 Standard Library Concepts * P1754 Rename concepts to standard_case for C++20, while we still can Differential Revision: https://reviews.llvm.org/D88131 -
Nick Desaulniers authored
This is used by the Linux kernel built with CONFIG_THUMB2_KERNEL. Because different operands are not permitted to `movs`, the diagnostics now provide multiple suggestions along the lines of using a non-pc destination operand or lr source operand. Forked from D95586. Signed-off-by:
Nick Desaulniers <ndesaulniers@google.com> Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D96304
-
Mehdi Amini authored
Reland 11f32a41 that was reverted in e49967fb after fixing the build. Differential Revision: https://reviews.llvm.org/D96192
-
Arthur Eubanks authored
Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D96100
-
Louis Dionne authored
We don't populate a Lit feature named c++98 since 31cbe0f2.
-
Erik Pilkington authored
This attribute specifies how an error is represented for a swift async method. rdar://71941280 Differential revision: https://reviews.llvm.org/D96175
-
Craig Topper authored
fma+neg will come in a different patch since I haven't done it for .vv yet either. Differential Revision: https://reviews.llvm.org/D96375
-
Tom Stellard authored
Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D95666
-
Mehdi Amini authored
This reverts commit 11f32a41. The build is broken because this commit conflits with the refactoring of the DialectRegistry APIs in the context. It'll reland shortly after fixing the API usage.
-
Craig Topper authored
The test cases extract a fixed element from a vector and splat it into a vector. This gets DAG combined into a splat shuffle. I've used some very wide vectors in the test to make sure we have at least a couple tests where the element doesn't fit into the uimm5 immediate of vrgather.vi so we fall back to vrgather.vx. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D96186
-
Christopher Di Bella authored
Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Depends on D96230 Differential Revision: https://reviews.llvm.org/D96232 -
Fangrui Song authored
The ELF spec says: > STT_FILE: Conventionally, the symbol's name gives the name of the source file associated with the object file. A file symbol has STB_LOCAL binding, its section index is SHN_ABS, and it precedes the other STB_LOCAL symbols for the file, if it is present. For a local symbol, the preceding STT_FILE symbol is almost always in the same file[1]. GNU addr2line uses this heuristic to retrieve the filename associated with a local symbol (e.g. internal linkage functions in C/C++). GNU addr2line can assign STT_FILE filename to a non-local symbol, too, but the trick only works if no regular symbol precede STT_FILE. This patch does not implement this corner case (not useful for most executables which have more than one files). In case of filename mismatch between .debug_line & .symtab, arbitrarily make .debug_line win. [1]: LLD does not synthesize STT_FILE symbols (https://bugs.llvm.org/show_bug.cgi?id=48023 see also https://sourceware.org/bugzilla/show_bug.cgi?id=26822). An assembly file without `.file` directives can cause mis-attribution. This is an edge case. Differential Revision: https://reviews.llvm.org/D95927
-
Fangrui Song authored
parseSectionContents expects to skip regions not described by DWARF. With my pending DebugInfo/Symbolize change, the filename can be recovered and there will be more IndirectInstructions entries.
-
Mehdi Amini authored
Differential Revision: https://reviews.llvm.org/D96192
-
Christopher Di Bella authored
Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Depends on D77961 Differential Revision: https://reviews.llvm.org/D96230 -
Fangrui Song authored
-
Fangrui Song authored
-
Mitch Phillips authored
These headers are required for Android. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D96374
-
Nicolas Vasilache authored
This revision fixes the indexing logic into the packed tensor that result from hoisting padding. Previously, the index was incorrectly set to the loop induction variable when in fact we need to compute the iteration count (i.e. `(iv - lb).ceilDiv(step)`). Differential Revision: https://reviews.llvm.org/D96417
-
Tom Weaver authored
This reverts commit a743702a. Test was fixed in c6a1b16d
-
Tom Weaver authored
This reverts commit a6439b52. Caused buildbot failure http://lab.llvm.org:8014/#/builders/125/builds/125
-
Colin Finck authored
Differential Revision: https://reviews.llvm.org/D96115
-
- Feb 10, 2021
-
-
Jeremy Morse authored
Originally landed in ddc2f1e3 and reverted in d32deaab because of a Generic test objecting. That was fixed up in 01361396. Original landing commit message follows: [DWARF] Location-less inlined variables should not have DW_TAG_variable Discussed in this thread: https://lists.llvm.org/pipermail/llvm-dev/2021-January/148139.html DwarfDebug::collectEntityInfo accidentally distinguishes between variable locations that never have a location specified, and variable locations that have an empty location specified. The latter leads to the creation of an empty variable referring to the abstract origin. Fix this by seeking a non-empty location before producing a concrete entity, to guarantee a DW_AT_location will be produced. Other loops in collectEntityInfo and endFunctionImpl take care of examining the retainedNodes collection and ensuring optimised-out variables are created. Differential Revision: https://reviews.llvm.org/D95617
-
Paul Robinson authored
After D93264, using both -fdebug-info-for-profiling and -fpseudo-probe-for-profiling will cause the compiler to crash. Diagnose these conflicting options in the driver. Also, the existing CodeGen test was using the driver when it should be running cc1. Differential Revision: https://reviews.llvm.org/D96354
-