- Sep 16, 2020
-
-
Guillaume Chatelet authored
-
Huihui Zhang authored
For scalable type, the aggregated size is unknown at compile-time. Skip instructions with scalable type to ensure the list of instructions for vectorizeSimpleInstructions does not contains any scalable-vector instructions. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D87550
-
Guillaume Chatelet authored
-
Stephen Hines authored
Add the implementation of __isOSVersionAtLeast for Android. Currently, only the major version is checked against the API level of the platform which is an integer. The API level is retrieved by reading the system property ro.build.version.sdk (and optionally ro.build.version.codename to see if the platform is released or not). Patch by jiyong@google.com Bug: 150860940 Bug: 134795810 Test: m Reviewed By: srhines Differential Revision: https://reviews.llvm.org/D86596
-
Ta-Wei Tu authored
Building LLVM with -DEXPENSIVE_CHECKS fails with the following error message with libstdc++ in debug mode: Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)). The patch fixes the comparison function SizeOrder by returning false when comparing two equal items.
-
Matt Arsenault authored
Invalid IR in unreachable code is technically valid IR. In this case, the address space of the value was never inferred, and we tried to rewrite it with an invalid address space value which would assert.
-
Snehasish Kumar authored
This patch adds a command line flag for the machine function splitter (added in rG94faadac). -fsplit-machine-functions Split machine functions using profile information (x86 ELF). On other targets an error is emitted. If profile information is not provided a warning is emitted notifying the user that profile information is required. Differential Revision: https://reviews.llvm.org/D87047
-
Muhammad Asif Manzoor authored
Add the functionality to lower fsqrt for passthru variant Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D87707
-
Albion Fung authored
This patch implements __int128 vector divide operations for ISA3.1. Differential Revision: https://reviews.llvm.org/D85453
-
Zequan Wu authored
Differential Revision: https://reviews.llvm.org/D87425
-
Jonas Toth authored
The analysis for const-ness of local variables required a view generally useful matchers that are extracted into its own patch. They are decompositionDecl and forEachArgumentWithParamType, that works for calls through function pointers as well. This is a reupload of https://reviews.llvm.org/D72505, that already landed, but had to be reverted due to a GCC crash on powerpc (https://reviews.llvm.org/rG4c48ea68e491cb42f1b5d43ffba89f6a7f0dadc4) Because this took a long time to adress, i decided to redo this patch and have a clean workflow. I try to coordinate with someone that has a PPC to apply this patch and test for the crash. If everything is fine, I intend to just commit. If the crash is still happening, i hope to at least find the cause. Differential Revision: https://reviews.llvm.org/D87588
-
Louis Dionne authored
The test was not allocating the right number of bytes. This is my fault, not Marshall's, as I was the one to write the tests for 39c87951.
-
Arthur Eubanks authored
-analyze isn't supported in NPM. All affected tests have corresponding NPM RUN line.
-
Arthur Eubanks authored
All tests have corresponding NPM RUN lines. -analyze doesn't work under NPM.
-
Greg Clayton authored
Code was added that used llvm error checking to parse .debug_aranges, but the error check after parsing the DWARFDebugArangesSet was reversed and was causing no error to be returned with no valid address ranges being actually used. This meant we always would fall back onto creating out own address ranges by parsing the compile unit's ranges. This was causing problems for cases where the DW_TAG_compile_unit had a single address range by using a DW_AT_low_pc and DW_AT_high_pc attribute pair (not using a DW_AT_ranges attribute), but the .debug_aranges had correct split ranges. In this case we would end up using the single range for the compile unit that encompassed all of the ranges from the .debug_aranges section and would cause address resolving issues in LLDB where address lookups would fail for certain addresses. Differential Revision: https://reviews.llvm.org/D87626
-
LLVM GN Syncbot authored
-
Florian Hahn authored
This patch is a first draft of a new pass that adds a more flexible way to eliminate compares based on more complex constraints collected from dominating conditions. In particular, it aims at simplifying conditions of the forms below using a forward propagation approach, rather than instcomine-style ad-hoc backwards walking of def-use chains. if (x < y) if (y < z) if (x < z) <- simplify or if (x + 2 < y) if (x + 1 < y) <- simplify assuming no wraps The general approach is to collect conditions and blocks, sort them by dominance and then iterate over the sorted list. Conditions are turned into a linear inequality and add it to a system containing the linear inequalities that hold on entry to the block. For blocks, we check each compare against the system and see if it is implied by the constraints in the system. We also keep a stack of processed conditions and remove conditions from the stack and the constraint system once they go out-of-scope (= do not dominate the current block any longer). Currently there still are the least the following areas for improvements * Currently large unsigned constants cannot be added to the system (coefficients must be represented as integers) * The way constraints are managed currently is not very optimized. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D84547 -
Arthur Eubanks authored
Bugpoint has lots of assumptions and hacks around the legacy PM, put off migrating it to NPM until later. Fixes tests under BugPoint under NPM. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D87655
-
Craig Topper authored
[X86] Use Align in reduceMaskedLoadToScalarLoad/reduceMaskedStoreToScalarStore. Correct pointer info. If we offset the pointer, we also need to offset the pointer info Differential Revision: https://reviews.llvm.org/D87593
-
Louis Dionne authored
Otherwise, we're declaring a non-static member function, and that gives errors in C++11 because of the change of semantics between C++11 and C++14 for non-const constexpr member functions. This was always intended to be a friend declaration.
-
Arthur Eubanks authored
Each test has a legacy PM pinned to legacy PM and a NPM RUN line. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87660
-
Arthur Eubanks authored
Was missing MODULE_ALIAS_ANALYSIS, previously only FUNCTION_ALIAS_ANALYSIS was taken into account. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87664
-
Arthur Eubanks authored
Pin RUN lines with -analyze to legacy PM, add corresponding NPM RUN line if missing. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D87658
-
Arthur Eubanks authored
All tests had corresponding NPM lines, simply pin non-NPM lines to legacy PM. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D87665
-
Arthur Eubanks authored
Pin RUN lines with -analyze to legacy PM, add corresponding NPM RUN lines. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D87662
-
Alexey Bataev authored
Local vars, marked with pragma allocate, mustbe allocate by the call of the runtime function and cannot be allocated as other local variables. Instead, we allocate a space for the pointer in private record and store the address, returned by kmpc_alloc call in this pointer. So, for untied tasks ``` #pragma omp task untied { S s; #pragma omp allocate(s) allocator(allocator) s = x; } ``` compiler generates something like this: ``` struct task_with_privates { S *ptr; }; void entry(task_with_privates *p) { S *s = p->s; switch(partid) { case 1: p->s = (S*)kmpc_alloc(); kmpc_omp_task(); br exit; case 2: *s = x; kmpc_omp_task(); br exit; case 2: ~S(s); kmpc_free((void*)s); br exit; } exit: } ``` Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D86558 -
Nemanja Ivanovic authored
The test case has a check line for the option on a line that includes the string lld surrounded by any characters. This causes failures when said string is in the build path. What the test case presumably means to test is the actual invocation of the LLD linker (i.e. a linker that has that string as a suffix). This patch simply removes the erroneous wildcard after the string.
-
Fangrui Song authored
Fixes SupportsTest MemoryBufferTest.mmapVolatileNoNull
-
Florian Hahn authored
This reverts commit fb109c42. Temporarily revert due to a mis-compile pointed out at D87163.
-
Petr Hosek authored
This is failing on Windows bots due to path separator normalization. This reverts commit 042c2350.
-
Fangrui Song authored
Similar to the tsan suppression in `Utils/VNCoercion.cpp:getLoadLoadClobberFullWidthSize` (rL175034; load widening used by GVN), the D81766 optimization should be suppressed under tsan due to potential spurious data race reports: struct A { int i; const short s; // the load cannot be vectorized because int modify; // it overlaps with bytes being concurrently modified long pad1, pad2; }; // __tsan_read16 does not know that some bytes are undef and accessing is safe Similarly, under asan, users can mark memory regions with `__asan_poison_memory_region`. A widened load can lead to a spurious use-after-poison error. hwasan/memtag should be similarly suppressed. `mustSuppressSpeculation` suppresses asan/hwasan/tsan but not memtag, so we need to exclude memtag in `vectorizeLoadInsert`. Note, memtag suppression can be relaxed if the load is aligned to the its granule (usually 16), but that is out of scope of this patch. Reviewed By: spatel, vitalybuka Differential Revision: https://reviews.llvm.org/D87538 -
Jonas Devlieghere authored
Make it possible to run the script command with a different language than currently selected. $ ./bin/lldb -l python (lldb) script -l lua >>> io.stdout:write("Hello, World!\n") Hello, World! When passing the language option and a raw command, you need to separate the flag from the script code with --. $ ./bin/lldb -l python (lldb) script -l lua -- io.stdout:write("Hello, World!\n") Hello, World! Differential revision: https://reviews.llvm.org/D86996 -
Simon Pilgrim authored
PR47534 exposes a case where calling lowerShuffleWithSHUFPS directly from a derived repeated mask (found by is128BitLaneRepeatedShuffleMask) results in us using an non-canonicalized mask. The missed canonicalization in this case is trivial - just commute the mask so we have more (swapped) LHS than RHS references so lowerShuffleWithSHUFPS can handle it.
-
Louis Dionne authored
-
Guozhi Wei authored
The condition used to decide if need to copy probability should be reversed. Differential Revision: https://reviews.llvm.org/D87417
-
Mark de Wever authored
Before tackling http://llvm.org/PR38722, make sure there is a baseline benchmark. Differential Revision: https://reviews.llvm.org/D62778
-
- Sep 15, 2020
-
-
jasonliu authored
This is a follow up commit for the issue raised in https://reviews.llvm.org/D86879
-
Kristóf Umann authored
The summary and very short discussion in D82122 summarizes whats happening here. In short, liveness talks about variables, or expressions, anything that has a value. Well, statements just simply don't have a one. Differential Revision: https://reviews.llvm.org/D82598
-
Valentin Clement authored
Add a verifier for the loop op in the OpenACC dialect. Check basic restriction from 2.9 Loop construct from the OpenACC 3.0 specs. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D87546
-
Simon Pilgrim authored
Forward declare AAResults instead of the (old) AliasAnalysis type. Remove includes from SLPVectorizer.cpp that are already included in SLPVectorizer.h.
-