- Sep 16, 2020
-
-
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.
-
Marshall Clow authored
[libc++] Use allocator_traits to consistently allocate/deallocate/construct/destroy objects in std::any https://llvm.org/PR45099 notes (correctly) that we're inconsistent in memory allocation in `std::any`. We allocate memory with `std::allocator<T>::allocate`, construct with placement new, destroy by calling the destructor directly, and deallocate by calling `delete`. Most of those are customizable by the user, but in different ways. The standard is silent on how these things are to be accomplished. This patch makes it so we use `allocator_traits<allocator<T>>` for all of these operations (allocate, construct, destruct, deallocate). This is, at least, consistent. Fixes https://llvm.org/PR45099. Differential Revision: https://reviews.llvm.org/D81133
-
Sanjay Patel authored
If the constant operand is the opposite of the min/max value, then the result must be the other value. This is based on the similar codegen transform proposed in: D87571
-
Kristóf Umann authored
Differential Revision: https://reviews.llvm.org/D86532
-
Georgii Rymar authored
[llvm-readobj/elf] - Don't crash when the size of s dynamic symbol table, inferred from the hash table, is broken. Currently we might derive the dynamic symbol table size from the DT_HASH hash table (using its `nchain` field). It is possible to crash dumpers with a broken relocation that refers to a symbol with an index that is too large. To trigger it, the inferred size of the dynamic symbol table should go past the end of the object. This patch adds a size validation + warning. Differential revision: https://reviews.llvm.org/D86923
-
Gabor Marton authored
Add the BufferSize argument constraint to fread and fwrite. This change itself makes it possible to discover a security critical case, described in SEI-CERT ARR38-C. We also add the not-null constraint on the 3rd arguments. In this patch, I also remove those lambdas that don't take any parameters (Fwrite, Fread, Getc), thus making the code better structured. Differential Revision: https://reviews.llvm.org/D87081
-
Guillaume Chatelet authored
Differential Revision: https://reviews.llvm.org/D87689
-
Guillaume Chatelet authored
Differential Revision: https://reviews.llvm.org/D87690
-
Guillaume Chatelet authored
Differential Revision: https://reviews.llvm.org/D87687
-
Stefan Pintilie authored
Add Thread Local Storage Local Exec support to LLD. This is to support PC Relative addressing of Local Exec. The patch teaches LLD to handle: ``` paddi r9, r13, x1@tprel ``` The relocation is: ``` R_PPC_TPREL34 ``` Reviewed By: NeHuang, MaskRay Differential Revision: https://reviews.llvm.org/D86608
-
Qiu Chaofan authored
2508ef01 doesn't totally fix the issue since we did not handle the case when unused temporary negated result is the same with the result, which is found by address sanitizer.
-
Simon Pilgrim authored
GetElementPtrInst::Create returns a GetElementPtrInst* so we don't need to cast. Similarly IntegerType inherits from the Type base class. Also, I've used auto* in a few places to cleanup the code. Helps fix some clang-tidy warnings which saw the dyn_casts and warned that these can return null.
-
Simon Pilgrim authored
The FailureReason input parameter maybe null, we check this in all other cases in the method but this one was missed somehow. Fixes clang-tidy warning.
-
Valentin Clement authored
This patch adds the missing print for the vector_length in the parallel operation. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D87630
-
Stephan Herhut authored
This add canonicalizer for - extracting an element from a dynamic_tensor_from_elements - propagating constant operands to the type of dynamic_tensor_from_elements Differential Revision: https://reviews.llvm.org/D87525
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Sanjay Patel authored
There at least one other bug related to pow -> sqrt transforms: http://lists.llvm.org/pipermail/llvm-dev/2020-September/145051.html ...but we probably can't solve that without fixing this first.
-
Sanjay Patel authored
The code drops the sqrt op instead of bailing out, so this is very wrong.
-
Sanjay Patel authored
This is not a valid transform unless we can prove that the program does not read errno after the pow call and before some other function changes it.
-
Oliver Stannard authored
This test tries to create a 2 GiB std::string, catching the bad_alloc exception if the allocation fails. However, for no-exceptions builds there is no way for the error to be reported, so this crashes with a null pointer dereference. Differential revision: https://reviews.llvm.org/D87682
-
Florian Hahn authored
-