- May 12, 2021
-
-
Arthur O'Dwyer authored
-
Arthur O'Dwyer authored
-
Arthur O'Dwyer authored
-
Jon Chesterfield authored
[libomptarget][nfc] Add hook to easily disable building amdgcn bclib This is useful when building LLVM with a toolchain that can't emit code for amdgcn, e.g. because it overrides the include search path with headers from another architecture, or the clang compiler is missing builtins. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D102229
-
Benjamin Kramer authored
This is actually necessary for correctness, as memref.reinterpret_cast doesn't verify if the output shape doesn't match the static sizes. Differential Revision: https://reviews.llvm.org/D102232
-
Augusto Noronha authored
A type system is not guaranteed to have a symbol file. This patch adds null-pointer checks so we don't crash when trying to access a type system's symbol file. Reviewed By: aprantl, teemperor Differential Revision: https://reviews.llvm.org/D101539
-
Augusto Noronha authored
Change Target::ReadMemory to ensure the amount of memory read from the file-cache is the amount requested. This change ensures that if for whatever reason we read less bytes than expected (for example, when trying to read memory that spans multiple sections), we try reading from the live process as well. Reviewed By: jasonmolenda Differential Revision: https://reviews.llvm.org/D101390
-
- May 11, 2021
-
-
Alan Phipps authored
groups. This change corrects the implementation for the branch coverage summary to do the same thing for branches that is done for lines and regions. That is, across function instantiations in an instantiation group, the maximum branch coverage found in any of those instantiations is returned, with the total number of branches being the same across instantiations. Differential Revision: https://reviews.llvm.org/D102193
-
Roman Lebedev authored
-
Jamie Schmeiser authored
Summary: Test and produce warning for subtracting a pointer from null or subtracting null from a pointer. Reuse existing warning that this is undefined behaviour. Also add unit test for both warnings. Reformat to satisfy clang-format. Respond to review comments: add additional test. Respond to review comments: Do not issue warning for nullptr - nullptr in C++. Fix indenting to satisfy clang-format. Respond to review comments: Add C++ tests. Author: Jamie Schmeiser <schmeise@ca.ibm.com> Reviewed By: efriedma (Eli Friedman), nickdesaulniers (Nick Desaulniers) Differential Revision: https://reviews.llvm.org/D98798
-
Steven Wu authored
Since D87304, `align` become an invalid attribute on none pointer types and verifier will reject bitcode that has invalid `align` attribute. The problem is before the change, DeadArgumentElimination can easily turn a pointer return type into a void return type without removing `align` attribute. Teach Autograde to remove invalid `align` attribute from return types to maintain bitcode compatibility. rdar://77022993 Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D102201
-
Tony Tye authored
The product name for gfx908 is "AMD Instinct MI100 Accelerator". Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D102209
-
Pushpinder Singh authored
This reverts commit 7f78e409.
-
Congzhe Cao authored
This is a bug fix in legality check. When we encounter triangular loops such as the following form: for (int i = 0; i < m; i++) for (int j = 0; j < i; j++), or for (int i = 0; i < m; i++) for (int j = 0; j*i < n; j++), we should not perform interchange since the number of executions of the loop body will be different before and after interchange, resulting in incorrect results. Reviewed By: bmahjour Differential Revision: https://reviews.llvm.org/D101305 -
Aakanksha Patil authored
Differential Revision: https://reviews.llvm.org/D101858
-
Paul C. Anagnostopoulos authored
At least one build uses a 'sed' that does not understand \x00. This reverts commit cf9647011c4f05e1eb4423c6637d84e2f26b2042.
-
Peyton, Jonathan L authored
When KMP_AFFINITY is set, each worker thread's gtid value is used as an index into the place list to determine the thread's placement. With hidden helpers enabled, this gtid value is shifted down leading to unexpected shifted thread placement. This patch restores the previous behavior by adjusting the mask index to take the number of hidden helper threads into account. Hidden helper threads are given the full initial mask and do not participate in any of the other affinity mechanisms (place partitioning, balanced affinity). Their affinity is only printed for debug builds. Differential Revision: https://reviews.llvm.org/D101882
-
Florian Hahn authored
If the simplified VPValue is a recipe, we need to register it for Instr, in case it needs to be recorded. The way this is handled in general may change soon, following some post-commit comments. This fixes PR50298.
-
Roman Lebedev authored
Now that getMemoryOpCost() correctly handles all the vector variants, we should no longer hand-roll our own version of it, but use it directly. The AVX512 variant probably needs a similar change, but there it is less obvious.
-
Paul C. Anagnostopoulos authored
Differential Revision: https://reviews.llvm.org/D101923
-
Simon Pilgrim authored
Noticed while looking at D101944
-
Simon Pilgrim authored
[X86][SSE] Replace foldShuffleOfHorizOp with generalized version in canonicalizeShuffleMaskWithHorizOp foldShuffleOfHorizOp only handled basic shufps(hop(x,y),hop(z,w)) folds - by moving this to canonicalizeShuffleMaskWithHorizOp we can work with more general/combined v4x32 shuffles masks, float/integer domains and support shuffle-of-packs as well. The next step will be to support 256/512-bit vector cases.
-
Matt Arsenault authored
-
Roman Lebedev authored
Instead of handling power-of-two sized vector chunks, try handling the large vector in a stream mode, decreasing the operational vector size once it no longer works for the elements left to process. Notably, this improves costs for overaligned loads - loading padding is fine. This more directly tracks when we need to insert/extract the YMM/XMM subvector, some costs fluctuate because of that. Reviewed By: RKSimon, ABataev Differential Revision: https://reviews.llvm.org/D100684
-
Sanjay Patel authored
The test example from https://llvm.org/PR50256 (and reduced here) shows that we can match a load combine candidate even when there are no "or" instructions. We can avoid that by confirming that we do see an "or". This doesn't apply when matching an or-reduction because that match begins from the operands of the reduction. Differential Revision: https://reviews.llvm.org/D102074
-
Piotr Sobczak authored
Moving code sinking pass before structurizer creates more sinking opportunities. The extra flow edges introduced by the structurizer can have adverse effects on sinking, because the sinking pass prefers moving instructions to blocks with unique predecessors and the structurizer destroys that property in some cases. A notable example is moving high-latency image instructions across kills. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D101115
-
Anastasia Stulova authored
Simply use of extensions by allowing the use of supported double types without the pragma. Since earlier standards instructed that the pragma is used explicitly a new warning is introduced in pedantic mode to indicate that use of type without extension pragma enable can be non-portable. This patch does not break backward compatibility since the extension pragma is still supported and it makes the behavior of the compiler less strict by accepting code without extra pragma statements. Differential Revision: https://reviews.llvm.org/D100980
-
Jon Chesterfield authored
[libomptarget][nfc] Drop stringify in macro A step towards deleting the macros entirely. Differential Revision: https://reviews.llvm.org/D102228
-
Martin Storsjö authored
[LLDB] Don't use the local python to set a default for LLDB_PYTHON_RELATIVE_PATH when cross compiling. Differential Revision: https://reviews.llvm.org/D101903
-
Stefan Pintilie authored
The stack frame update code does not take into consideration spilling to registers for callee saved registers. The option -ppc-enable-pe-vector-spills turns on spilling to registers for callee saved registers and may expose a bug in the code that moves a stack frame pointer update instruction. Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D101366
-
Denis Antrushin authored
STATEPOINT is a fancy and complex pseudo instruction which has both tied defs and regmask operand. Basic FastRA algorithm is as follows: 1. Mark registers used by defs as free 2. If instruction has regmask operand displace clobbered registers according to regmask. 3. Assign registers for use operands. In case of tied defs step 1 is replaced with allocation of registers for them. But regmask is still processed, which may displace already allocated registers. As a result, tied use and def will get assigned to different registers. This patch makes FastRA to process instruction's RegMask (if any) when checking for physical registers interference. That way tied operands won't get registers clobbered by regmask. Reviewed By: arsenm, skatkov Differential Revision: https://reviews.llvm.org/D99284
-
Jay Foad authored
-
Uday Bondhugula authored
Switch llvm.noalias attribute from a boolean attribute to a unit attribute. Differential Revision: https://reviews.llvm.org/D102225
-
Martin Storsjö authored
As this isn't handled as a regular relocation, the normal handling of maybeReportRelocationToDiscarded in Chunks.cpp doesn't apply here. This would have caught the issue fixed by 82de4e07. Differential Revision: https://reviews.llvm.org/D102115
-
Andy Wingo authored
As we have been missing support for WebAssembly globals on the IR level, the lowering of WASM_SYMBOL_TYPE_GLOBAL to IR was incomplete. This commit fleshes out the lowering support, lowering references to and definitions of addrspace(1) values to correctly typed WASM_SYMBOL_TYPE_GLOBAL symbols. Depends on D101608. Differential Revision: https://reviews.llvm.org/D101913
-
Simon Moll authored
Test that all VP intrinsics are tested. Test intrinsic id -> opcode -> intrinsic id round tripping. Test property scopes in the include/llvm/IR/VPIntrinsics.def file. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D93534
-
Paulo Matos authored
This patch adds support for WebAssembly globals in LLVM IR, representing them as pointers to global values, in a non-default, non-integral address space. Instruction selection legalizes loads and stores to these pointers to new WebAssemblyISD nodes GLOBAL_GET and GLOBAL_SET. Once the lowering creates the new nodes, tablegen pattern matches those and converts them to Wasm global.get/set of the appropriate type. Based on work by Paulo Matos in https://reviews.llvm.org/D95425. Reviewed By: pmatos Differential Revision: https://reviews.llvm.org/D101608
-
Andrzej Warzynski authored
With this patch, `FLANG_BUILD_NEW_DRIVER` is set to `On` by default (i.e. the new driver is enabled). Note that the new driver depends on Clang and hence with this change you will need to add `clang` to `LLVM_ENABLE_PROJECTS`. If you don't want to build the new driver, set `FLANG_BUILD_NEW_DRIVER` to `Off`. This way you won't be required to include `clang` in `LLVM_ENABLE_PROJECTS`. Differential Revision: https://reviews.llvm.org/D101842
-
Alex Orlov authored
This patch adds JSON output style to llvm-symbolizer to better support CLI automation by providing a machine readable output. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D96883
-
Simon Pilgrim authored
-