summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [lldb][NFC] Simplify if-returnTatyana Krasnukha2019-12-261-3/+1
|
* [lldb][tests] Platform triple can be NoneTatyana Krasnukha2019-12-261-1/+6
| | | | If a remote target is not connected, SBPlatform's GetTriple function returns None.
* [lldb][tests] Posix function strdup requires macro _POSIX_C_SOURCETatyana Krasnukha2019-12-261-0/+2
|
* [lldb][NFC] Use ClangASTContext in AppleObjCRuntime interfacesRaphael Isemann2019-12-265-61/+46
| | | | | | | This code actually needs a ClangASTContext but instead takes a clang::ASTContext and then retrieves the original ClangASTContext via the global map of ClangASTContexts. Let's change it so that it takes a ClangASTContext which is simpler and faster.
* [compiler-rt] Disable QSORT interception on watchOS and tvOS.Florian Hahn2019-12-261-1/+14
| | | | | | | | | | Building the sanitizers for watchOS currently fails with sanitizer_common_interceptors.inc:9656:8: error: thread-local storage is not supported for the current target static THREADLOCAL SIZE_T qsort_size; I've also speculatively disabled QSORT interception for tvOS to unblock failing builds. I'll ask someone with more sanitizer knowledge to check after the holidays.
* [lldb] Remove some calls to GetASTContextRaphael Isemann2019-12-263-36/+21
| | | | | | | GetASTContext is really expensive to call as it makes use of the global mapping from ASTContext to ClangASTContext. This replaces all calls where we already have the ClangASTContext around and don't need to call GetASTContext again.
* [clang][test] Minor fixes in testcase absolute-paths-symlinks.cKarl-Johan Karlsson2019-12-261-3/+5
| | | | This is a follow up commit to address post-commit comment in D70527.
* Fix the MLIR Vim syntax file: the keyword group was missingchelxom2019-12-261-3/+3
|
* [PowerPC] stop folding if result rlwinm mask is wrap while original rlwinm ↵czhengsz2019-12-252-2/+21
| | | | | | | | | | | | | | | | | is not. %1:g8rc = RLWINM8 %0:g8rc, 0, 16, 9 %2:g8rc = RLWINM8 killed %1:g8rc, 0, 0, 31 -> %2:g8rc = RLWINM8 %0:g8rc, 0, 16, 9 The above folding is wrong. Before transformation, %2:g8rc is 32 bit value. After transformation, %2:g8rc becomes a 64 bit value. This patch fixes above issue. Reviewed by: steven.zhang Differential Revision: https://reviews.llvm.org/D71833
* [Bitstream] Delete skipAbbreviatedField which duplicates readAbbreviatedFieldFangrui Song2019-12-251-34/+4
|
* [NFC][PowerPC] Add a function tryAndWithMask to handle all the casesQingShan Zhang2019-12-261-111/+120
| | | | | | | | | that 'and' with constant More patches will be committed later to exploit more about 'and' with constant. Differential Revision: https://reviews.llvm.org/D71693
* [NFC][LoopFusion] Fix printing of the guard branch.Whitney Tsang2019-12-261-1/+6
| | | | | | | | Reviewer: kbarton, jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D71878
* [PowerPC] Modify the hasSideEffects of MTLR and MFLR from 1 to 0Kang Zhang2019-12-2615-52/+56
| | | | | | | | | | | | | | | | | Summary: If we didn't set the value for hasSideEffects bit in our td file, `llvm-tblgen` will set it as true for those instructions which has no match pattern. The instructions `MTLR` and `MFLR` don't set the hasSideEffects flag and don't have match pattern, so their hasSideEffects flag will be set true by `llvm-tblgen`. But in fact, we can use `[LR]` to model the two instructions, so they should not have SideEffects. This patch is to modify the hasSideEffects of MTLR and MFLR from 1 to 0. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D71390
* Revert "Make lazyload_metadata.ll resilient to the addition of new metadata ↵David Herzka2019-12-251-13/+12
| | | | | | | | kinds" This reverts commit 2e6c15d1e7a47f11fab2dd3a40fcff01906923ae. It causes the test to fail on Windows
* [X86] Enable STRICT_SINT_TO_FP/STRICT_UINT_TO_FP on X86 backendWang, Pengfei2019-12-2613-253/+3363
| | | | | | | | | | | | Summary: Enable STRICT_SINT_TO_FP/STRICT_UINT_TO_FP on X86 backend Reviewers: craig.topper, RKSimon, LiuChen3, uweigand, andrew.w.kaylor Subscribers: hiraditya, llvm-commits, LuoYuanke Tags: #llvm Differential Revision: https://reviews.llvm.org/D71871
* Revert "test commit"David Herzka2019-12-251-0/+0
| | | | This reverts commit cb6e84fe3682f934bb6c1c6b55c3afee4f684774.
* test commitDavid Herzka2019-12-251-0/+0
|
* [OpenMP][IR-Builder] Introduce "pragma omp parallel" code generationJohannes Doerfert2019-12-256-14/+724
| | | | | | | | | This patch combines the `emitParallel` logic prototyped in D61953 with the OpenMPIRBuilder (D69785) and introduces `CreateParallel`. Reviewed By: fghanim Differential Revision: https://reviews.llvm.org/D70109
* Make lazyload_metadata.ll resilient to the addition of new metadata kindsDavid Herzka2019-12-251-12/+13
| | | | | | | | | | | | Summary: The specific number of records loaded depends on the number of kinds, but the difference between the lazy and not lazy cases does not. Reviewers: modocache Subscribers: mehdi_amini, hiraditya, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71730
* [OpenMP][IR-Builder] Introduce the finalization stackJohannes Doerfert2019-12-254-31/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | As a permanent and generic solution to the problem of variable finalization (destructors, lastprivate, ...), this patch introduces the finalization stack. The objects on the stack describe (1) the (structured) regions the OpenMP-IR-Builder is currently constructing, (2) if these are cancellable, and (3) the callback that will perform the finalization (=cleanup) when necessary. As the finalization can be necessary multiple times, at different source locations, the callback takes the position at which code is currently generated. This position will also encode the destination of the "region exit" block *iff* the finalization call was issues for a region generated by the OpenMPIRBuilder. For regions generated through the old Clang OpenMP code geneneration, the "region exit" is determined by Clang inside the finalization call instead (see getOMPCancelDestination). As a first user, the parallel + cancel barrier interaction is changed. In contrast to the temporary solution before, the barrier generation in Clang does not need to be aware of the "CancelDestination" block. Instead, the finalization callback is and, as described above, later even that one does not need to be. D70109 will be updated to use this scheme. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D70258
* [X86] Use zero vector to extend to 512-bits for strict_fp_to_uint ↵Craig Topper2019-12-252-5/+8
| | | | | | | | v2i1->v2f64 on targets with AVX512F, but not AVX512VL. In the worst case, this requires a 128-bit move instruction to implicitly zero the upper bits. In the common case, we should recognize the producing instruction already zeroed the upper bits.
* [X86FixupSetCC] Remember the preceding eflags defining instruction while ↵Craig Topper2019-12-252-69/+49
| | | | | | | | | | | | | | | | | | | | | we're scanning the basic block instead of looking back for it. Summary: We're already scanning forward through the basic block. Might as well just remember eflags defs instead of doing a bounded search backwards later. Based on a comment in D71841. Reviewers: RKSimon, spatel, uweigand Reviewed By: uweigand Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71865
* [lldb][NFC] Use StringRef in ↵Raphael Isemann2019-12-253-49/+43
| | | | ClangASTContext::GetBuiltinTypeForDWARFEncodingAndBitSize
* [X86] Merge together some common code in LowerFP_TO_INT now that we have ↵Craig Topper2019-12-251-17/+11
| | | | STRICT_CVTTP2SI/STRICT_CVTTP2UI nodes. NFC
* [llvm-nm] Display STT_GNU_IFUNC as 'i'Fangrui Song2019-12-254-8/+38
| | | | | | Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D71803
* [compiler-rt] [netbsd] Correct the fallback definition of PT_LWPNEXTKamil Rytarowski2019-12-251-2/+2
| | | | Fixes build on NetBSD 9.0.
* [AMDGPU][MC][DOC] Updated AMD GPU assembler syntax description.Dmitry Preobrazhensky2019-12-2562-109/+1464
| | | | | | | | | | | Summary of changes: - added description of GFX9 subtargets: - gfx900; - gfx902; - gfx904; - gfx906; - gfx908; - gfx909.
* [llvm-readobj] - Merge `gnu-symbols.test` to `symbols.test` and cleanup.Georgii Rymar2019-12-254-91/+109
| | | | | | | | | | | | | | | | This cleans up and merges `gnu-symbols.test` to `symbols.test`. Initially `gnu-symbols.test` tested the following things: 1) How symbols are printed in GNU style. It does not make sense to have a separate file for such tests. 2) It tried to test proc-specific symbol indexes. The test was incomplete and also we already have `symbol-shndx.test` for that, so this part was removed. 3) It tested `--dyn-symbols` and `--symbols` correlation. All following cases were moved to `symbols.test`: a) That `--dyn-symbols` does not trigger showing regular symbols.. b) That `--symbols` triggers `--dyn-symbols` implicitly. c) That `--dyn-symbols` and `--symbols` works fine together. Differential revision: https://reviews.llvm.org/D71697
* [llvm-readobj/llvm-readelf][test] - Add testing for EI_OSABI and ↵Georgii Rymar2019-12-252-0/+352
| | | | | | | | EI_ABIVERSION fields of an ELF header. We had no separate tests for these fields. Differential revision: https://reviews.llvm.org/D71766
* Add missing strict_fp_to_intLiu, Chen32019-12-255-150/+32
| | | | Differential Revision: https://reviews.llvm.org/D71867
* [MLIR][NFC] Insert const_cast to avoid warningHideto Ueno2019-12-252-2/+3
| | | | | | | | | | Reviewers: rriddle Reviewed By: rriddle Subscribers: mehdi_amini Differential Revision: https://reviews.llvm.org/D71853
* [Attributor] Reach optimistic fixpoint in AAValueSimplify when the value is ↵Hideto Ueno2019-12-251-1/+9
| | | | | | | | | | | | | | | | | constant or undef Summary: As discussed in D71799, we have found that it is more useful to reach an optimistic fixpoint in AAValueSimpify when the value is constant or undef. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: baziotis, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71852
* [X86FixupSetCC] Use MachineInstr::readRegister/definesRegister to check for ↵Craig Topper2019-12-241-15/+3
| | | | EFLAGS use/def instead of our own custom operand scan. NFCI
* [compiler-rt] [netbsd] Define _RTLD_SOURCE to fix buildKamil Rytarowski2019-12-251-0/+4
| | | | | The TLS base (LWP private pointer) functions are namespaced and hidden i.e. inside the _RTLD_SOURCE namespace.
* [Attributor] UB Attribute now handles all instructions that access memory ↵Johannes Doerfert2019-12-242-47/+167
| | | | | | | | | | | | | | | | | | | | | | | | | through a pointer Summary: Follow-up on: https://reviews.llvm.org/D71435 We basically use `checkForAllInstructions` to loop through all the instructions in a function that access memory through a pointer: load, store, atomicrmw, atomiccmpxchg Note that we can now use the `getPointerOperand()` that gets us the pointer operand for an instruction that belongs to the aforementioned set. Question: This function returns `nullptr` if the instruction is `volatile`. Why? Guess: Because if it is volatile, we don't want to do any transformation to it. Another subtle point is that I had to add AtomicRMW, AtomicCmpXchg to `initializeInformationCache()`. Following `checkAllInstructions()` path, that seemed the most reasonable place to add it and correct the fact that these instructions were ignored (they were not in `OpcodeInstMap` etc.). Is that ok? Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert, sstefan1 Subscribers: hiraditya, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71787
* [Attributor] Function level undefined behavior attributeJohannes Doerfert2019-12-243-0/+161
| | | | | | | | | | | | | | | _Eventually_, this attribute will be assigned to a function if it contains undefined behavior. As a first small step, I tried to make it loop through the load instructions in a function (eventually, the plan is to check if a load instructions causes undefined behavior, because e.g. dereferences a null pointer - Also eventually, this won't happen in initialize() but in updateImpl()). Patch By: Stefanos Baziotis (@baziotis) Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D71435
* [MCJIT] Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"Fangrui Song2019-12-241-3/+3
|
* [WinEH] Delete addFnAttr("no-frame-pointer-elim") which seems no longer neededFangrui Song2019-12-241-5/+0
| | | | | | | | It was added in rL238619. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D71862
* [Thumb][test] Fix CodeGen/Thumb/PR17309.ll after ↵Fangrui Song2019-12-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | llvmorg-10-init-16046-ga36ddf0aa9d All of "no-frame-pointer-elim-non-leaf" "no-frame-pointer-elim-non-leaf"="true" "no-frame-pointer-elim-non-leaf"="false" mean "frame-pointer"="non-leaf", which is quite counter-intuitive. llvmorg-10-init-16046-ga36ddf0aa9d accidentally broke it. This fixes the -DLLVM_ENABLE_EXPENSIVE_CHECKS=On test: ``` *** Bad machine code: Non-flag-setting Thumb1 mov is v6-only *** - function: pass_C - basic block: %bb.0 entry (0x1fc9bf0) - instruction: $r0 = tMOVr killed $r6, 14, $noreg ```
* [Support] Fix behavior of StringRef::count with overlapping occurrences, add ↵Johannes Doerfert2019-12-242-2/+14
| | | | | | | | | | | | | | | | | | tests Summary: Fix the behavior of StringRef::count(StringRef) to not count overlapping occurrences, as is stated in the documentation. Fixes bug https://bugs.llvm.org/show_bug.cgi?id=44072 I added Krzysztof Parzyszek to review this change because a use of this function in HexagonInstrInfo::getInlineAsmLength might depend on the overlapping-behavior. I don't have enough domain knowledge to tell if this change could break anything there. All other uses of this method in LLVM (besides the unit tests) only use single-character search strings. In those cases, search occurrences can not overlap anyway. Patch by Benno (@Bensge) Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D70585
* Migrate function attribute "no-frame-pointer-elim"="false" to ↵Fangrui Song2019-12-24333-508/+508
| | | | "frame-pointer"="none" as cleanups after D56351
* Migrate function attribute "no-frame-pointer-elim-non-leaf" to ↵Fangrui Song2019-12-2452-82/+82
| | | | "frame-pointer"="non-leaf" as cleanups after D56351
* Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" ↵Fangrui Song2019-12-24497-741/+741
| | | | as cleanups after D56351
* [OPENMP]Add extra checks and initialization for clause modifier.Alexey Bataev2019-12-242-2/+15
| | | | | Added initialization of the extra modifier to silence sanitizer. Added extra checks to avoid such trouble in future.
* AMDGPU/GlobalISel: Fix mapping and selection of llvm.amdgcn.div.fixupMatt Arsenault2019-12-242-1/+6
|
* [lldb] Adapt for NetBSD-9.99.30 ptrace(2) API changesKamil Rytarowski2019-12-242-2/+21
| | | | | | | | Switch from PT_LWPINFO to PT_LWPSTATUS/PT_LWPNEXT. Keep compat support for < 9.99.30. No functional change intended.
* [compiler-rt] Adapt for ptrace(2) changes in NetBSD-9.99.30Kamil Rytarowski2019-12-245-3/+64
| | | | | Enable compat support for now legacy PT_LWPINFO. Support PT_LWPSTATUS and PT_LWPNEXT.
* [compiler-rt] Adapt stop-the-world for ptrace changes in NetBSD-9.99.30Kamil Rytarowski2019-12-241-2/+10
| | | | Handle PT_LWPNEXT for newer kernels and keep PT_LWPINFO for older ones.
* [X86] Use 128-bit vector instructions for f32/f64->i64 conversions on 32-bit ↵Craig Topper2019-12-242-23/+22
| | | | | | | | | | | | | | targets with avx512dq and avx512vl instructions. On 32-bit targets we can't use the scalar instruction so we insert the scalar into a vector and use packed conversions. Previously we used either v4f32->v4i64 or v4f64->v4i64 to avoid some complexity creating target specific ISD opcodes for v4f32->v2i64. But this causes extra vzeroupper instructions and possibly frequency throttling on Intel CPUs. This patch changes this to create a 128-bit vector and uses a target specific ISD opcode if needed.
* [mlir] Fix -Wunneeded-internal-declarationFangrui Song2019-12-241-1/+1
|
OpenPOWER on IntegriCloud