- Aug 14, 2020
-
-
Lang Hames authored
MachO TLV relocations aren't supported yet. Error out rather than falling through to llvm_unreachable.
-
Sameer Arora authored
Add support for -arch_only option for llvm-libtool-darwin. This diff also adds support for accepting universal files as input and flattening them to create the required static library. Supports input universal files contaning both Mach-O object files or archives. Differences from cctools' libtool: - `-arch_only` can be specified multiple times - archives containing universal files are considered invalid (libtool allows such archives) Reviewed by jhenderson, smeenai Differential Revision: https://reviews.llvm.org/D84770
-
Valentin Clement authored
OpenACC combined construct can have an optional end directive. This patch handle this case in the parsing/unparsing with a canonicalization step. Unlike OmpEndLoopDirective, this doesn't need a special treatment in the pre-fir tree as there is no clause attached to a AccEndCombinedDirective. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D84481
-
Sameer Arora authored
Refactoring function `writeArchive` in ArchiveWriter. Added a new function `writeArchiveBuffer` that returns the archive in a memory buffer instead of writing it out to the disk. This refactor is necessary so as to allow `llvm-libtool-darwin` to write universal files containing archives. Reviewed by jhenderson, MaskRay, smeenai Differential Revision: https://reviews.llvm.org/D84858
-
Dávid Bolvanský authored
Similarly as for pointers, even for integers a == b is usually false. GCC also uses this heuristic. Reviewed By: ebrevnov Differential Revision: https://reviews.llvm.org/D85781
-
Sameer Arora authored
Add documentation for the remaining options of `llvm-install-name-tool`. Reviewed by jhenderson, smeenai Differential Revision: https://reviews.llvm.org/D85655
-
peter klausler authored
The descriptor-based I/O routine was using the size of the descriptor rather than the size of the described data for the transfer. Fix, and add a comment to the relevant API. Differential Revision: https://reviews.llvm.org/D85863
-
Simon Pilgrim authored
rG9bd97d03 caused a miscompile of this internal test case
-
Jonas Devlieghere authored
Instead of clearing the launch flags, always pass the target's current launch flags.
-
Alexander Belyaev authored
This exercises the corner case that was fixed in https://reviews.llvm.org/rG8979a9cdf226066196f1710903d13492e6929563. The bug can be reproduced when there is a @callee with a custom type argument and @caller has a producer of this argument passed to the @callee. Example: func @callee(!test.test_type) -> i32 func @caller() -> i32 { %arg = "test.type_producer"() : () -> !test.test_type %out = call @callee(%arg) : (!test.test_type) -> i32 return %out : i32 } Even though there is a type conversion for !test.test_type, the output IR (before the fix) contained a DialectCastOp: module { llvm.func @callee(!llvm.ptr<i8>) -> !llvm.i32 llvm.func @caller() -> !llvm.i32 { %0 = llvm.mlir.null : !llvm.ptr<i8> %1 = llvm.mlir.cast %0 : !llvm.ptr<i8> to !test.test_type %2 = llvm.call @callee(%1) : (!test.test_type) -> !llvm.i32 llvm.return %2 : !llvm.i32 } } instead of module { llvm.func @callee(!llvm.ptr<i8>) -> !llvm.i32 llvm.func @caller() -> !llvm.i32 { %0 = llvm.mlir.null : !llvm.ptr<i8> %1 = llvm.call @callee(%0) : (!llvm.ptr<i8>) -> !llvm.i32 llvm.return %1 : !llvm.i32 } } Differential Revision: https://reviews.llvm.org/D85914
-
David Green authored
These operations take Qda and Rn register operands, which are commutative so long as the instruction is not predicated. Differential Revision: https://reviews.llvm.org/D85813
-
peter klausler authored
The shape (esp. the size) of the result of a call to TRANSFER is implemented according to the definition in the standard. Differential Revision: https://reviews.llvm.org/D85866
-
Jonas Devlieghere authored
Some of the test methods were already skipped because of an unexpected packet. The test started failing after it was expanded. Skip the whole test with reproducers so we don't have to add the decorator for every method.
-
Cameron McInally authored
Differential Revision: https://reviews.llvm.org/D85855
-
Kadir Cetinkaya authored
Summary: This enables sharing the logic between standalone clangd and embedders of it. The new approach should be same performance-wise, as it is only called once per addDocument call. This patch also introduces a blacklisting code path for disabling crashy or high-noise tests, until we figure out a way to make them work with clangd-setup. The biggest difference is the way we make use of preambles, hence those checks can't see directives coming from the preamble section of the file. The second thing is the fact that code might-not be compiling while clangd is trying to build an AST, hence some checks might choke on those incomplete ASTs. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, aaron.ballman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83224
-
Kadir Cetinkaya authored
Summary: Some clang-tidy checkers, e.g. llvm-include-order can emit diagnostics at this callback (as mentioned in the comments). Clangd was resetting diag consumer to IgnoreDiags before sending EOF, hence we were unable to emit diagnostics for such checkers. This patch changes the order of that reset and preprocosser event to make sure we emit that diag. Fixes https://github.com/clangd/clangd/issues/314. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83178
-
Aditya Kumar authored
-
Aditya Kumar authored
_cxa_guard_acquire is used for only one purpose, namely guarding local static variable initialization, and since that purpose is definitionally cold, it should be attributed as cold Reviewed By: ldionne Reviewers: mclow.lists, ldionne, jfb, yfeldblum Differential Revision: https://reviews.llvm.org/D85873
-
Bjorn Pettersson authored
This is a fixup to commit 43bdac29, to make sure the address space from the original load pointer is retained in the vector pointer. Resolves problem with Assertion `castIsValid(op, S, Ty) && "Invalid cast!"' failed. due to address space mismatch. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D85912
-
Serguei Katkov authored
InstCombine adds users of transformed instruction to working list to process on the same iteration. However gc.relocate may have a hidden user (next gc.relocate) which is connected through gc.statepoint intrinsic and there is no direct def-use chain between them. In this case if the next gc.relocation is already processed it will not be added to worklist and will not be able to be processed on the same iteration. Let's we have the following case: A = gc.relocate(null) B = statepoint(A) C = gc.relocate(B, hidden(A)) If C is already considered then after replacement of A with null, statepoint B instruction will be added to the queue but not C. C can be processed only on the next iteration. If the chain of relocation is pretty long the many iteration may be required. This change is to reduce the number of iteration to meet the latest changes related to reducing infinite loop threshold. This is a quick (not best) fix. In the follow up patches I plan to move gc relocation handling into statepoint handler. This should also help to remove unused gc live entries in statepoint bundle. Reviewers: reames, dantrushin Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D75598
-
Sam McCall authored
I've dropped the background context parameter, since we in practice just pass the current context there, and we now have a different way to specify context too. While here, clean up a couple of comments. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D83157
-
Fangrui Song authored
-gdwarf-5 -fdebug-types-section may produce multiple .debug_info sections. All except one are type units (.debug_types before DWARF v5). When constructing .gdb_index, we should ignore these type units. We use a simple heuristic: the compile unit does not have the SHF_GROUP flag. (This needs to be revisited if people place compile unit .debug_info in COMDAT groups.) This issue manifests as a data race: because an object file may have multiple .debug_info sections, we may concurrently construct `LLDDwarfObj` for the same file in multiple threads. The threads may access `InputSectionBase::data()` concurrently on the same input section. `InputSectionBase::data()` does a lazy uncompress() and rewrites the member variable `rawData`. A thread running zlib `inflate()` (transitively called by uncompress()) on a buffer with `rawData` tampered by another thread may fail with `uncompress failed: zlib error: Z_DATA_ERROR`. Even if no data race occurred in an optimistic ...
-
Peter Steinfeld authored
Character literal substrings used as arguments were causing asserts. This happened when the code was trying to get the DynamicType of the substring. We were only recording the DynamicType of the Designator on which the substring was based. For character literal substrings, the Designator was a character literal, and we weren't handling getting its type. I fixed this by changing the `GetType()` method for `DynamicType` to check to see if we were getting the type of a `Substring` and calculating the type of the substring by getting the number of bytes in an element of the string. I also changed the test `resolve49.f90` with some tests, one of which causes the original crash. Differential Revision: https://reviews.llvm.org/D85908
-
peter klausler authored
Ensure that mixed complex expressions (one operand complex, the other not) are properly manipulated; add test.
-
peter klausler authored
This fixes problems with macros defined with -D on the command line and predefined macros defined in the throwaway driver program.
-
- Aug 13, 2020
-
-
peter klausler authored
-
Sam McCall authored
-
Sanjay Patel authored
-
Fangrui Song authored
* For .cfi_*, GCC/GNU as emits SHT_PROGBITS type .eh_frame sections. * Since rL252300, clang emits SHT_X86_64_UNWIND type .eh_frame sections (originated from Solaris, documented in the x86-64 psABI). * Some assembly use `.section .eh_frame,"a",@unwind` to generate SHT_X86_64_UNWIND .eh_frame sections. In a non-relocatable link, input .eh_frame are combined and there is only one SyntheticSection .eh_frame in the output section, so the "section type mismatch" diagnostic does not fire. In a relocatable link, there is no SyntheticSection .eh_frame. .eh_frame of mixed types can trigger the diagnostic. This patch fixes it by adding another special case 0x70000001 (= SHT_X86_64_UNWIND) to canMergeToProgbits(). ld.lld -r gcc.o clang.o => error: section type mismatch for .eh_frame There was a discussion "RFC: Usefulness of SHT_X86_64_UNWIND" on the x86-64-abi mailing list. Folks are not wild about making the psABI value 0x70000001 into gABI, but a few think defining 0x70000001 for .eh_frame may be a good idea for a new architecture. Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D85785 -
Fangrui Song authored
If the referenced symbol of a J[U]MP_SLOT is invalid (e.g. symbol index 0), llvm-objdump -d will bail out: ``` error: 'a': st_name (0x326600) is past the end of the string table of size 0x7 ``` where 0x326600 is the st_name field of the first entry past the end of .symtab Change it to a warning to continue dumping. `X86/plt.test` uses a prebuilt executable, so I pick `ELF/AArch64/plt.test` which has a YAML input and can be easily modified. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D85623
-
Louis Dionne authored
Ninja isn't necessarily installed on macOS out of the box, so make sure we use the SDK Ninja instead of relying on one being available on the system.
-
Adam Czachorowski authored
This reverts commit 4061d9e4. Tests are failing in some configuration, likely due to not cleaning up module cache path before running the test. Differential Revision: https://reviews.llvm.org/D85907
-
Valeriy Savchenko authored
This fix unifies all of the different ways we handled pointer to members into one. The crash was caused by the fact that the type of pointer-to-member values was `void *`, and while this works for the vast majority of cases it breaks when we actually need to explain the path for the report. rdar://problem/64202361 Differential Revision: https://reviews.llvm.org/D85817
-
Simon Pilgrim authored
Reduce the dyn_cast<> to a isa<> as that's all non-assert builds require, and move the cast<> inside the assert.
-
Simon Pilgrim authored
This reverts commit 9bd97d03. Seeing some codegen issues in internal testing.
-
Nico Weber authored
-
Valentin Clement authored
This patch introduces the OpenACC dialect with three operation defined parallel, data and loop operations with custom parsing and printing. OpenACC dialect RFC can be find here: https://llvm.discourse.group/t/rfc-openacc-dialect/546/2 Reviewed By: rriddle, kiranchandramohan Differential Revision: https://reviews.llvm.org/D84268
-
Louis Dionne authored
-
avarmapml authored
-- This commit handles the returnOp in memref map layout normalization. -- An initial filter is applied on FuncOps which helps us know which functions can be a suitable candidate for memref normalization which doesn't lead to invalid IR. -- Handles memref map normalization for external function assuming the external function is normalizable. Differential Revision: https://reviews.llvm.org/D85226
-
LLVM GN Syncbot authored
-