- Sep 25, 2020
-
-
Sean Silva authored
This pass converts shape.cstr_* ops to eager (side-effecting) error-handling code. After that conversion is done, the witnesses are trivially satisfied and are replaced with `shape.const_witness true`. Differential Revision: https://reviews.llvm.org/D87941
-
Volodymyr Sapsai authored
Measure amount of high-level or fixed-cost operations performed during building/loading modules and during header search. High-level operations like building a module or processing a .pcm file are motivated by previous issues where clang was re-building modules or re-reading .pcm files unnecessarily. Fixed-cost operations like `stat` calls are tracked because clang cannot change how long each operation takes but it can perform fewer of such operations to improve the compile time. Also tracking such stats over time can help us detect compile-time regressions. Added stats are more stable than the actual measured compilation time, so expect the detected regressions to be less noisy. rdar://problem/55715134 Reviewed By: aprantl, bruno Differential Revision: https://reviews.llvm.org/D86895
-
Matt Arsenault authored
Avoid using G_EXTRACT and move towards a more consistent vector legalization strategy.
-
Mehdi Amini authored
This allows to point to an executable that isn't named exactly "llvm-symbolizer" and not necessarily in the current PATH. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D88192
-
Erich Keane authored
As mentioned in the bug report, tryEmitPrivate chokes on the MaterializeTemporaryExpr in the reproducers, since it assumes that if there are elements, than it must be a ConstantArrayType. However, the MaterializeTemporaryExpr (which matches exactly the AST when it is NOT a global/static) has an incomplete array type. This changes the section where the number-of-elements is non-zero to properly handle non-CAT types by just extracting it as an array type (since all we needed was the element type out of it).
-
Alexandre Ganea authored
In lit tests, we run each LLD invocation twice (LLD_IN_TEST=2), without shutting down the process in-between. This ensures a full cleanup is properly done between runs. Only active for the COFF driver for now. Other drivers still use LLD_IN_TEST=1 which executes just one iteration with full cleanup, like before. When the environment variable LLD_IN_TEST is unset, a shortcut is taken, only one iteration is executed, no cleanup for faster exit, like before. A public API, lld::safeLldMain(), is also available when using LLD as a library. Differential Revision: https://reviews.llvm.org/D70378
-
Alexandre Ganea authored
Before this patch, these two tests were emitting both a .DLL and .LIB. The output .LIB file name also happens to be an input .LIB file name. This prevented the test from executing a second time when LLD is re-entrant (LLD_IN_TEST=2). This is a support patch for https://reviews.llvm.org/D70378.
-
Saleem Abdulrasool authored
This should resolve the "Bullet list ends without a blank line" warning.
-
Alexey Bataev authored
Revert "[OPENMP]Fix PR47621: Variable used by task inside a template function is not made firstprivate by default" This reverts commit d1419c9f to fix the buffer overflow detected by address sanitiizer.
-
Jinsong Ji authored
-
Reid Kleckner authored
This reverts commit 8e780a16. DiagnosticBuilder is a value type, created on the stack everywhere. IMO we should not be adding a vtable to it, and making very operator<< use a virtual interface. There are other feasible designs for implementing this. The original review, D84362, was approved by @tra, who is responsible for Clang's CUDA support, but it wasn't reviewed by @rsmith or anyone responsible for clang's diagnostic library.
-
Reid Kleckner authored
This reverts commit e39da8ab. This depends on a change that needs additional design review and needs to be reverted.
-
Sanjay Patel authored
We shift the significand right on a truncation, but that needs to be made NaN-safe: always set at least 1 bit in the significand. https://llvm.org/PR43907 See D88238 for the likely follow-up (but needs some plumbing fixes before it can proceed). Differential Revision: https://reviews.llvm.org/D87835
-
Craig Topper authored
These were only really used for 2 things. One was to check if the operand matches the phi if it exists. The other was for the createOp method to build the reduction. For the first case we still have the operation we just need to know how to index its operands. So I've modified getLHS/getRHS to just use the opcode/kind to know how to find the right operands on an instruction that is now passed in. For the other case we had to create an OperationData object to set the LHS/RHS values and copy the opcode/kind from another object. We would then just call createOp on that temporary object. Instead I've made LHS/RHS arguments to createOp and removed all these temporary objects. Differential Revision: https://reviews.llvm.org/D88193
-
Alexey Bataev authored
[OPENMP]Fix PR47621: Variable used by task inside a template function is not made firstprivate by default Need to fix a check for the variable if it is declared in the inner OpenMP region to be able to firstprivatize it. Differential Revision: https://reviews.llvm.org/D88240
-
Simon Pilgrim authored
Fix some clang-tidy warnings.
-
Simon Pilgrim authored
To improve the codegen diff in D87502
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D87847
-
Alexey Bataev authored
[OPENMP]PR47606: Do not update the lastprivate item if it was captured by reference as firstprivate data member. No need to make final copy from the firsptrivate/lastprivate copy to the original item if the item is a data memeber. Firstprivate copy creates a copy by reference and the original item gets updated correctly when updating the lastprivate shared variable. Differential Revision: https://reviews.llvm.org/D88179
-
Momchil Velikov authored
This patch implements stripping of the PAC in the return address for GlobalISel. Implementation for when not using GLobalISel is in https://reviews.llvm.org/D75044 The analogous GCC patch is https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=a70d5d81c41048556fd86eaa1036018a6bfba115 Differential Revision: https://reviews.llvm.org/D84502
-
Andrew Litteken authored
As informed by danielkiss. Follow up to Differential Revision: https://reviews.llvm.org/D86972
-
Ye Luo authored
It allows customizing MAX_SM for non-flagship GPU and reduces graphic memory usage. In addition, so far the size is hard-coded up to __CUDA_ARCH__ 700 and is already a hassle for 800. Introduce MAX_SM for 800 and protect future arch Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D88185
-
- Sep 24, 2020
-
-
Dave Lee authored
Add missing declaration for `malloc_get_all_zones` in heap.py. Differential Revision: https://reviews.llvm.org/D88158
-
Saleem Abdulrasool authored
Add the `swift_newtype` attribute which allows a type definition to be imported into Swift as a new type. The imported type must be either an enumerated type (enum) or an object type (struct). This is based on the work of the original changes in https://github.com/llvm/llvm-project-staging/commit/8afaf3aad2af43cfedca7a24cd817848c4e95c0c Differential Revision: https://reviews.llvm.org/D87652 Reviewed By: Aaron Ballman
-
Nathan Froyd authored
Using a pointer for the description string in StaticDiagInfoRec causes several problems: 1. We don't need to use a whole pointer to represent the string; 2. The use of pointers incurs runtime relocations for those pointers; the relocations take up space on disk and represent runtime overhead; 3. The need to relocate data implies that, on some platforms, the entire array containing StaticDiagInfoRecs cannot be shared between processes. This patch changes the storage scheme for the diagnostic descriptions to avoid these problems. We instead generate (effectively) one large string and then StaticDiagInfoRec conceptually holds offsets into the string. We elected to also move the storage of those offsets into a separate array to further reduce the space required. On x86-64 Linux, this change removes about 120KB of relocations and moves about 60KB from the non-shareable .data.rel.ro section to shareable .rodata. (The array is about 80KB before this, but we eliminated 4 bytes/entry by using offsets rather than pointers.) We actually reap this benefit twice, because these tables show up in both libclang.so and libclang-cpp.so and we get the reduction in both places. Differential Revision: https://reviews.llvm.org/D81865
-
Simon Pilgrim authored
Shuffle combining can now handle this output, and by performing this early in combineVectorTruncation we avoid a scalarization that caused a regression on D87502.
-
Peyton, Jonathan L authored
The current GOMP interface for serialized tasks does not take into account task dependencies. Add the check and wait for dependencies. Fixes: https://bugs.llvm.org/show_bug.cgi?id=46573 Differential Revision: https://reviews.llvm.org/D87271
-
Peyton, Jonathan L authored
This change introduces the GOMP_taskwait_depend() function. It implements the OpenMP 5.0 feature of #pragma omp taskwait with depend() clause by wrapping around __kmpc_omp_wait_deps(). Differential Revision: https://reviews.llvm.org/D87269
-
Peyton, Jonathan L authored
Encapsulate GOMP task dependencies in separate class and introduce the new mutexinoutset dependency type. This separate class allows future GOMP task APIs easier access to the task dependency functionality and better ability to propagate new dependency types to all existing GOMP task APIs which use task dependencies. Differential Revision: https://reviews.llvm.org/D87267
-
Peyton, Jonathan L authored
Implement GOMP_teams_reg() function which enables GOMP support of the standalone teams construct. The GOMP_parallel* functions were modified to call __kmp_fork_call() unconditionally so that the teams-specific code could be reused within __kmp_fork_call() instead of reproduced inside the GOMP_* functions. Differential Revision: https://reviews.llvm.org/D87167
-
Sam Parker authored
Remove a loop that just calculated a couple of values that were now longer needed.
-
vpykhtin authored
This patch removes redundant IMPLICIT_DEF for subregs which was leading to incorrect register initialization on joining in some cases. Reviewed by: qcolombet Differential revision: https://reviews.llvm.org/D82258
-
Jay Foad authored
-
Sebastian Neubauer authored
v3f32 should not be expanded to v4f32. getresinfo with a dmask of 7 created an image sample with a v3f32 return value, which was bitcasted to a v4f32 in constructRetValue. Differential Revision: https://reviews.llvm.org/D88206
-
Matt Arsenault authored
The langref already states it does, but this wasn't implemented. Also covers inalloca and preallocated. Also helps fix a dependence on pointer element types.
-
Matt Arsenault authored
Sret should really have a type parameter like byval does.
-
George Mitenkov authored
Fixed an error when deserializing the SPIR-V binary to MLIR SPIR-V. Before, the SPIR-V dialect was not loaded explicitly into the context, which resulted in unregistered operation error. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D88223
-
Sanjay Patel authored
I'm not sure if the target is actually necessary, but since it was specified, I'm moving to the appropriate dir to avoid bot fallout.
-
Sanjay Patel authored
This file comes from 2007, and I'm not entirely sure of the motivation, but it was going through all of opt and llc. The llc part is almost certainly unnecessary as shown in the now auto-generated FileCheck lines. This test may be affected by a logic change suggested in: D87835
-
Sanjay Patel authored
-