- Jul 30, 2020
-
-
Louis Dionne authored
This is an alternative to the workaround in 34a3b24a. Differential Revision: https://reviews.llvm.org/D68880
-
Artem Dergachev authored
Both tests define clang::tidy::test::TestCheck::registerMatchers(). This is UB and causes linker to sometimes choose the wrong overload. Put classes into anonymous namespaces to avoid the problem. Differential Revision: https://reviews.llvm.org/D84902
-
Jonas Devlieghere authored
-
Brendon Cahoon authored
In cases where the alignment of the datatype is smaller than expected by the instruction, the address is aligned. The aligned address is used for the load, but wasn't used for the store conditional, which resulted in a run-time alignment exception.
-
Fangrui Song authored
We parse .arch so that some `.arch i386; .code32` code can assemble. It seems that X86AsmParser does not do a good job tracking what features are needed to assemble instructions. GNU as's x86 port supports a very wide range of .arch operands. Ignore the operand for now. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D84900
-
Johannes Doerfert authored
When we use the OpenMPIRBuilder for the parallel region we need to also use it to get the thread ID (among other things) in the body. This is because CGOpenMPRuntime::getThreadID() and CGOpenMPRuntime::emitUpdateLocation implicitly assumes that if they are called from within a parallel region there is a certain structure to the code and certain members of the OMPRegionInfo are initialized. It might make sense to initialize them even if we use the OpenMPIRBuilder but we would preferably get rid of such state instead. Bug reported by Anchu Rajendran Sudhakumari. Depends on D82470. Reviewed By: anchu-rajendran Differential Revision: https://reviews.llvm.org/D82822
-
Johannes Doerfert authored
We need to keep track of the alloca insertion point (which we already communicate via the callback to the user) as we place allocas as well. Reviewed By: fghanim, SouraVX Differential Revision: https://reviews.llvm.org/D82470
-
Alexey Bataev authored
Need to map the base pointer for all directives, not only target data-based ones. The base pointer is mapped for array sections, array subscript, array shaping and other array-like constructs with the base pointer. Also, codegen for use_device_ptr clause was modified to correctly handle mapping combination of array like constructs + use_device_ptr clause. The data for use_device_ptr clause is emitted as the last records in the data mapping array. Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D84767
-
Kirill Bobyrev authored
-
Alexey Bataev authored
This reverts commit 142d0d3e to investigate undefined behavior revealed by buildbots.
-
Xiangling Liao authored
Temporarily disable IncrementalProcessingTest partially until the static initialization implementation on AIX is recovered. Differential Revision: https://reviews.llvm.org/D84880
-
Momchil Velikov authored
The operand to these instructions is both input and output. These are not yet emitted by the compiler and the assembler already works fine, so can't test in this patch. But D75044 will use XPACI and provide test coverage for this patch as well. Differential Revision: https://reviews.llvm.org/D84298
-
Matt Arsenault authored
The legacy not struct or raw buffer intrinsics should now all be consolidated into the tests specifically for those intrinsics.
-
Simon Pilgrim authored
Fix implicit cpp include dependencies.
-
Jinsong Ji authored
-
Hans Wennborg authored
It's complaining about specializing the template in a different namespace.
-
Tim Keith authored
To make it easier for lowering to identify which symbols from the host are captured by internal subprograms, create HostAssocDetails for them. In particular, if a symbol is referenced and it is contained in a subprogram or main program that is not the same as the containing program unit of the reference, a HostAssocDetails symbol is created in the current scope. Differential Revision: https://reviews.llvm.org/D84889
-
Alexey Bataev authored
Need to map the base pointer for all directives, not only target data-based ones. The base pointer is mapped for array sections, array subscript, array shaping and other array-like constructs with the base pointer. Also, codegen for use_device_ptr clause was modified to correctly handle mapping combination of array like constructs + use_device_ptr clause. The data for use_device_ptr clause is emitted as the last records in the data mapping array. It applies only for global pointers. Differential Revision: https://reviews.llvm.org/D84767
-
jasonliu authored
Summary: This patch implements -ffunction-sections on AIX. This patch focuses on assembly generation. Follow-on patch needs to handle: 1. -ffunction-sections implication for jump table. 2. Object file generation path and associated testing. Differential Revision: https://reviews.llvm.org/D83875
-
Sanjay Patel authored
-
David Green authored
This removes some unneeded block masks when we don't have any reductions. It should not have any effect on codegen as the values created are dead anyway. Differential Revision: https://reviews.llvm.org/D81415
-
Louis Dionne authored
-
Stephan Herhut authored
Now that we can have a memref of index type, we no longer need to materialize shapes in i64 and then index_cast. Differential Revision: https://reviews.llvm.org/D84938
-
Christian Sigg authored
[MLIR] Don't pass separate LowerToLLVMOptions when we already pass a LLVMTypeConverter which contains those options already. This also prevents passing inconsistent options. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D84915
-
Abhishek Varma authored
-- Introduces a pass that normalizes the affine layout maps to the identity layout map both within and across functions by rewriting function arguments and call operands where necessary. -- Memref normalization is now implemented entirely in the module pass '-normalize-memrefs' and the limited intra-procedural version has been removed from '-simplify-affine-structures'. -- Run using -normalize-memrefs. -- Return ops are not handled and would be handled in the subsequent revisions. Signed-off-by:
Abhishek Varma <abhishek.varma@polymagelabs.com> Differential Revision: https://reviews.llvm.org/D84490
-
Stephan Herhut authored
Differential Revision: https://reviews.llvm.org/D84934
-
Jean Perier authored
The intrinsic lowering facility is based on the generic intrinsic names to avoid duplicating implementations. Specific intrinsics call are re-written to call to the generic versions by the front-end but this cannot be done when specific intrinsics are passed as arguments (the rewrite would give illegal/ambiguous unparsed Fortran). Solve the issue by making the specific to generic name mapping accessible to lowering and can be later used to generate the unrestricted intrinsic functions. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D84842
-
Florian Hahn authored
This reverts commit e77624a3. Looks like some clang tests manually invoke -ipconstprop via opt.....
-
Frederik Gossen authored
When lowering to the standard dialect, we currently support only the extent tensor variant of the shape.rank operation. This change lets the conversion pattern fail in a well-defined manner. Differential Revision: https://reviews.llvm.org/D84852
-
Florian Hahn authored
As far as I know, ipconstprop has not been used in years and ipsccp has been used instead. This has the potential for confusion and sometimes leads people to spend time finding & reporting bugs as well as updating it to work with the latest API changes. This patch moves the tests over to SCCP. There's one functional difference I am aware of: ipconstprop propagates for each call-site individually, so for functions that are called with different constant arguments it can sometimes produce better results than ipsccp (at much higher compile-time cost).But IPSCCP can be thought to do so as well for internal functions and as mentioned earlier, the pass seems unused in practice (and there are no plans on working towards enabling it anytime). Also discussed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2020-July/143773.html Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D84447
-
Simon Pilgrim authored
Replace TargetLibraryInfo.h include with forward declaration and fix implicit dependencies. Reduce SmallSet.h include to SmallVector.h include.
-
Simon Pilgrim authored
As long as we can extract the lowest 128-bit subvector from the pre-truncated source vector, then we don't care what size it is. The next stage will be to support non-zero extraction indices, as long as its still coming from the lowest 128-bit subvector.
-
Kirill Bobyrev authored
This is the last missing bit in the core remote index implementation. The only remaining bits are some API refactorings (replacing Optional with Expected and being better at reporting errors). Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D84894
-
Florian Hahn authored
-
Raphael Isemann authored
Let's just return a std::string to make this safe. formatv seemed overkill for formatting the return values as they all just append an integer value to a constant string. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D84505
-
Esme-Yi authored
-
Aleksandr Platonov authored
Without this patch the word occurrence search always returns the first token of the file. Despite of that, `findNeardyIdentifier()` returns the correct result (but inefficently) until there are several matched tokens with the same value `floor(log2(<token line> - <word line>))` (e.g. several matched tokens on the same line). Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D84912
-
Xing GUO authored
This patch makes the 'Length' field of the address range table optional. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D84911
-
Xing GUO authored
This patch makes the 'AddressSize' and 'SegmentSelectorSize' fields of address range table optional. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D84907
-
Sam Tebbs authored
This patch adds a DAG combine fold for a sext(masked_load) into a sign extended masked load. Differential Revision: https://reviews.llvm.org/D84332
-