summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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
|
* test: ensure that we dead-strip in the linkerSaleem Abdulrasool2019-12-241-0/+1
| | | | | `/OPT:REF` is needed for link to dead strip functions, `/Gy` by itself is not sufficient.
* [X86] Add STRICT versions of CVTTP2SI, CVTTP2UI, CMPM, and CMPP.Craig Topper2019-12-2412-345/+294
| | | | Differential Revision: https://reviews.llvm.org/D71850
* [OPENMP][DOCS]Update status of OpenMP 5.0 features, NFC.Alexey Bataev2019-12-241-2/+2
|
* [OPENMP50]Basic support for conditional lastprivate.Alexey Bataev2019-12-2447-153/+434
| | | | Added parsing/sema checks for conditional lastprivates.
* GlobalISel: Update syntax in debug printingMatt Arsenault2019-12-241-1/+1
| | | | Physical register names now start with $, not %
* GlobalISel: Define equivalent node for G_INTRINSIC_ROUNDMatt Arsenault2019-12-241-0/+1
|
* GlobalISel: Fix naming variables "brank" instead of "bank"Matt Arsenault2019-12-241-7/+7
|
* [lldb][NFC] Move ClangASTContext::m_scratch_ast_source_up to the appropriate ↵Raphael Isemann2019-12-242-11/+17
| | | | | | | | | class m_scratch_ast_source_up is only used by ClangASTContextForExpressions so it should also be declared only in that class. Also make all other members of ClangASTContext private and move the initialization code for ClangASTContextForExpressions into the constructor.
* Fix readability-const-return-type identifying the wrong `const` tokenIlya Mirsky2019-12-244-19/+71
| | | | | | | Replace tidy::utils::lexer::getConstQualifyingToken with a corrected and also generalized to other qualifiers variant - getQualifyingToken. Fixes PR44326
* Fix false positive in magic number checker.Florin Iucha2019-12-244-6/+48
| | | | | cppcoreguidelines-avoid-magic-numbers should not warn about enum class. Fixes PR40640.
* AMDGPU/GlobalISel: Legalize some 16-bit round instructionsMatt Arsenault2019-12-247-17/+351
|
* GlobalISel: Define equivalent node for G_INTRINSIC_TRUNCMatt Arsenault2019-12-242-0/+83
|
* AMDGPU/GlobalISel: Lower llvm.amdgcn.elseMatt Arsenault2019-12-242-6/+48
|
* [NFC] Remove some dead code from CGBuiltin.cpp.Kevin P. Neal2019-12-241-14/+0
|
* VariableName doc: fix the link to the mozilla docSylvestre Ledru2019-12-241-1/+1
|
* mlir README.md: Fix the syntaxSylvestre Ledru2019-12-241-1/+1
|
* [lldb][NFC] Remove ClangExternalASTSourceCommonRaphael Isemann2019-12-249-142/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | ClangExternalASTSourceCommon's purpose is to store a map from Decl*/Type* to ClangASTMetadata. Usually this data is accessed via the ClangASTContext interface which then grabs the current ExternalASTSource of its ASTContext, tries to cast it to ClangExternalASTSourceCommon and then accesses the metadata map. If the casting fails the setter does nothing and the getter returns a nullptr as if there was no known metadata for a type/decl. This system breaks as soon as any non-LLDB ExternalASTSource is added via a multiplexer to our existing ExternalASTSource (in which case we suddenly loose all out metadata as the casting always fails with an ExternalASTSource that is not inheriting from ClangExternalASTSourceCommon). This patch moves the metadata map to the ClangASTContext. This gets rid of all the fragile casting, the requirement that every ExternalASTSource in LLDB has to inherit from ClangExternalASTSourceCommon and simplifies the metadata implementation to a simple map lookup. As ClangExternalASTSourceCommon had no other purpose than storing metadata, this patch deletes this class and replaces all uses with clang::ExternalASTSource. No other code changes in this commit beside the AppleObjCDeclVendor which was the only code that did not use the ClangASTContext interface but directly accessed the ClangExternalASTSourceCommon.
* doc: Document that extra-arg/extra-arg-before can be used several timesSylvestre Ledru2019-12-243-0/+6
| | | | Hopefully, it will help other people
* clang-doc remove trailing whitespacesSylvestre Ledru2019-12-241-3/+3
|
* Revert "[Support] Extend TimeProfiler to support multiple threads"Russell Gallop2019-12-242-86/+18
| | | | | | | and "[Support] Try to fix bot failure after 8ddcd1dc26" This reverts commits f70f180148 and 8ddcd1dc26 as this was breaking the MacOS build, which doesn't support thread_local.
OpenPOWER on IntegriCloud