- Mar 18, 2022
-
-
Valentin Clement authored
This patch adds lowering for the following numeric intrinsics: - aint - anint - cmplx - conjg - dble - dprod - sign This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D121917 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com>
-
Valentin Clement authored
This patch adds couple of lwoering tests for equivalences This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D121918 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com>
-
Simon Pilgrim authored
[clang] AddObjCKeyValueCompletions - use castAs<> instead of getAs<> to avoid dereference of nullptr The pointers are always dereferenced, so assert the cast is correct instead of returning nullptr
-
Valentin Clement authored
This patch adds more lowering tests for dummy arguments and adds lowering for a specific case. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D121919 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Sterling Augustine authored
While experimenting with different algorithms for std::sort I discovered that combine-vmovdrr.ll fails if this sort is not stable. I suspect that the test is too stringent in its check--the resultant code looks functionally identical to me under both stable and unstable sorting, but a generic fix is quite a bit more difficult to implement. Thanks to scw@google.com for finding the proper fix. Differential Revision: https://reviews.llvm.org/D121870
-
Valentin Clement authored
This patch adds more lowering tests for IO Test lowering of IO read SIZE control-spec (12.6.2.15) This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121920 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com>
-
- Mar 17, 2022
-
-
Marco Elver authored
NFCI.
-
henry wong authored
https://reviews.llvm.org/D121809 causes the build bot failure, add the `REQUIRES: asserts` to fix it. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D121888
-
Nikita Popov authored
Pass the block struct type down to the TargetInfo hooks.
-
Shafik Yaghmour authored
MakeLoadImageUtilityFunction() is not using extern "C" for external C functions and it is not using eLanguageTypeC_plus_plus. So I am modifying it to be consistent. Also see: rdar://87544782 Differential Revision: https://reviews.llvm.org/D121831
-
Fraser Cormack authored
-
Siva Chandra Reddy authored
Having a separate flag helps in setting up proper flags when implementing, say the Linux specialization of File. Along the way, a signature for a function which is to be used to open files has been added. The implementation of the function is to be included in platform specializations. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D121889
-
Arthur Eubanks authored
This allows us to not have to specify -opaque-pointers when updating IR tests from typed pointers to opaque pointers. We detect opaque pointers in .ll files by looking for relevant tokens, either "ptr" or "*". Reviewed By: #opaque-pointers, nikic Differential Revision: https://reviews.llvm.org/D119482
-
Nikita Popov authored
-
Jonas Devlieghere authored
This test is making the Windows bot unhappy. Unfortunately the output doesn't tell me much about what exactly is wrong.
-
Nikita Popov authored
-
David Goldman authored
The code action creates an initializer for the selected ivars/properties, defaulting to all if only the interface/implementation container is selected. We add it based on the position of the first non initializer that we see, and default to adding it where the @end token is. We also use the ObjC parameter form of (nullable id) instead of (id _Nullable) if the property has the nullable attribute. Differential Revision: https://reviews.llvm.org/D116385
-
Dávid Bolvanský authored
Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D121896
-
David Green authored
-
Jay Foad authored
NFCI. The motivation for this is avoid problems in future if we add new classes containing only a subset of all VGPRs, or a subset of all SGPRs. getMinimalPhysRegClass would favour these smaller classes, which is not what we want here. Differential Revision: https://reviews.llvm.org/D121914
-
Jeremy Morse authored
This patch adjusts what location is picked for a known variable value -- preferring to leave locations on the stack, even when a value is re-loaded into a register. The benefit is reduced location list entropy, on a clang-3.4 build I found that .debug_loclists reduces in size by 6%, from 29Mb down to 27Mb. Testing: a few tests need the stack slot to be written to explicitly, to force LiveDebugValues into restoring the variable location to a register. I've added an explicit test for the desired behaviour in livedebugvalues_recover_clobbers.mir . Differential Revision: https://reviews.llvm.org/D120732
-
Nikita Popov authored
-
Marco Elver authored
An analysis may just be interested in checking if an instruction is atomic but system scoped or single-thread scoped, like ThreadSanitizer's isAtomic(). Unfortunately Instruction::isAtomic() can only answer the "atomic" part of the question, but to also check scope becomes rather verbose. To simplify and reduce redundancy, introduce a common helper getAtomicSyncScopeID() which returns the scope of an atomic operation. Start using it in ThreadSanitizer. NFCI. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D121910
-
Nikita Popov authored
-
Kiran Chandramohan authored
The repeat intrinsic creates ncopies of a string. The lowering is to a runtime call to a function in the flang library. The runtime allocates the buffer to store the result string. This buffer is freed by code added in the lowering. This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D121880 Co-authored-by:
Valentin Clement <clementval@gmail.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Valentin Clement authored
This patch adds lowering for command and environment related intrinsics: - `get_command_argument` - `get_environment_variable` - `command_argument_count` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121909 Co-authored-by:
Josh Mottley <Josh.Mottley@arm.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Florian Hahn authored
This uses the existing VPlan helpers to check whether there are scalar uses of a phi recipe. It remove one of the few remaining dependencies on the cost model from VPlan code generation. Depends on D121612. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D121613
-
Kiran Chandramohan authored
Tranpose intrinsic performs the transpose matrix operation for arrays of rank 2. The intrinsic is lowered to a runtime call. This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D121895 Co-authored-by:
Valentin Clement <clementval@gmail.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Sanjay Patel authored
We favor 'and' and 'test' in earlier phases of optimization, and that's usually the better option, but we can save a few instruction bytes by converting a mask constant to a shift here. Differential Revision: https://reviews.llvm.org/D121147
-
Haojian Wu authored
Consitently use the "nonterminal", "pseudoparser" terms.
-
Haojian Wu authored
The previous inefficient implementation is polished. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D119701
-
Haojian Wu authored
For a >> token (a right shift operator, or a nested template?), the clang lexer always returns a single greatergreater token, as a result, the grammar-based GLR parser never try to parse the nested template case. We derive a token stream by always splitting the >> token, so that the GLR parser is able to pursue both options during parsing (usually 1 path fails). Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D121678
-
Kiran Chandramohan authored
The trim intrinsic removes trailing blank spaces from a string. The intrinsic is lowered to a runtime call. This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121901 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Kiran Chandramohan authored
The Matmul intrinsic performs matrix multiplication on rank 2 arrays. The intrinsic is lowered to a runtime call. This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D121904 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com>
-
Sanjay Patel authored
If we are equality comparing an FP literal with a value cast from a type where the literal can't be represented, that's known true or false and probably a programmer error. Fixes issue #54222. https://github.com/llvm/llvm-project/issues/54222 Note - I added the optimizer change with: 9397bdc6 ...and as discussed in the post-commit comments, that transform might be too dangerous without this warning in place, so it was reverted to allow this change first. Differential Revision: https://reviews.llvm.org/D121306
-
Valentin Clement authored
This patch adds lowering for couple of intrinsics: - `btest` - `ceiling` - `nearest` - `scale` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121885 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
AlexisPerry <aperry@lanl.gov>
-
Valentin Clement authored
This patch adds lowering for the `present` intrinsic. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121884 Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Valentin Clement authored
This patch adds lowering for the `exit` intrinsic. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121882 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Josh Mottley <Josh.Mottley@arm.com>
-
Andrzej Warzynski authored
This patch adds support for lowering of the `index` intrinsics from Fortran to the FIR dialect of MLIR. This is part of the upstreaming effort from the `fir-dev` branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Differential Revision: https://reviews.llvm.org/D121834 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Valentin Clement <clementval@gmail.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Florian Hahn authored
VPInterleaveRecipe only uses the first lane of the address. Add onlyFirstLaneUsed implementation. This is needed for a follow-up patch. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D121612
-