summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86][SSE] Merge SSE2 PINSRW lowering with SSE41 PINSRB/PINSRW lowering. NFCI.Simon Pilgrim2017-02-011-32/+21
| | | | | | These are identical apart from the extra SSE41 guard for PINSRB. llvm-svn: 293766
* [legalizetypes] Push fp16 -> fp32 extension node to worklist. Florian Hahn2017-02-013-5/+7
| | | | | | | | | | | | | | | | | | | | | Summary: This way, the type legalization machinery will take care of registering the result of this node properly. This patches fixes all failing fp16 test cases with expensive checks. (CodeGen/ARM/fp16-promote.ll, CodeGen/ARM/fp16.ll, CodeGen/X86/cvt16.ll CodeGen/X86/soft-fp.ll) Reviewers: t.p.northover, baldrick, olista01, bogner, jmolloy, davidxl, ab, echristo, hfinkel Reviewed By: hfinkel Subscribers: mehdi_amini, hfinkel, davide, RKSimon, aemerson, llvm-commits Differential Revision: https://reviews.llvm.org/D28195 llvm-svn: 293765
* [ARM] const cast fix for ARMAttributeParser testSam Parker2017-02-011-2/+3
| | | | | | | GCC 4.8 produced a cast qualifier warning, so replaced with C++ style const cast. llvm-svn: 293764
* [clang-tidy] Remove debug logging.Alexander Kornienko2017-02-011-5/+0
| | | | llvm-svn: 293763
* [LoopPredication] Add a new line to debug output in LoopPredication passArtur Pilipenko2017-02-011-1/+1
| | | | llvm-svn: 293762
* [ARM] Enable Cortex-M23 and Cortex-M33 support.Javed Absar2017-02-015-0/+83
| | | | | | | | | | | | | Add both cores to the target parser and TableGen. Test that eabi attributes are set correctly for both cores. Additionally, test the absence and presence of MOVT in Cortex-M23 and Cortex-M33, respectively. Committed on behalf of Sanne Wouda. Reviewers : rengolin, olista01. Differential Revision: https://reviews.llvm.org/D29073 llvm-svn: 293761
* [globalisel] Make the MatchAction hierarchy consistent with the matchers. NFC.Daniel Sanders2017-02-011-17/+27
| | | | | | | | | | Reviewers: aditya_nandakumar, rovka, t.p.northover, qcolombet, ab Subscribers: dberris, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D29321 llvm-svn: 293760
* Revert r293518 as it caused module linking error in clang-reorder-fieldsAlex Lorenz2017-02-011-3/+3
| | | | | | | | This commit reverts "r293518 - [ASTMatchers] Sprinkle some constexpr on the global matcher constructors" because after it a buildbot that builds clang stage 2 with modules failed to link clang-reorder-fields. llvm-svn: 293759
* [LoopUnroll] Use addClonedBlockToLoopInfo to add loop header to LI (NFC).Florian Hahn2017-02-011-11/+8
| | | | | | | | | | | | | | | | | | | | Summary: I have a similar patch up for review already (D29173). If you prefer I can squash them both together. Also I think there more potential for code sharing between LoopUnroll.cpp and LoopUnrollRuntime.cpp. Do you think patches for that would be worthwhile? Reviewers: mkuper, mzolotukhin Reviewed By: mkuper, mzolotukhin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29311 llvm-svn: 293758
* [ELF] Use SyntheticSections for ThunksPeter Smith2017-02-0120-464/+524
| | | | | | | | | | | | | | | | | | | | | | | | | | | Thunks are now implemented by redirecting the relocation to the symbol S, to a symbol TS in a Thunk. The Thunk will transfer control to S. This has the following implications: - All the side-effects of Thunks happen within createThunks() - Thunks are no longer stored in InputSections and Symbols no longer need to hold a pointer to a Thunk - The synthetic Thunk sections need to be merged into OutputSections This implementation is almost a direct conversion of the existing Thunks with the following exceptions: - Mips LA25 Thunks are placed before the InputSection that defines the symbol that needs a Thunk. - All ARM Thunks are placed at the end of the OutputSection of the first caller to the Thunk. Range extension Thunks are not supported yet so it is optimistically assumed that all Thunks can be reused. This is a recommit of r293283 with a fixed comparison predicate as std::merge requires a strict weak ordering. Differential revision: https://reviews.llvm.org/D29327 llvm-svn: 293757
* Update to recent formatting changesTobias Grosser2017-02-018-35/+24
| | | | llvm-svn: 293756
* [clang-format] Fix regression about not aligning trailing comments in case ↵Krasimir Georgiev2017-02-012-14/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | they were previously aligned, but at different indent. Summary: Comment reflower was adding untouchable tokens in case two consecutive comment lines are aligned in the source code. This disallows the whitespace manager to re-indent them later. source: ``` int i = f(abc, // line 1 d, // line 2 // line 3 b); ``` Since line 2 and line 3 are aligned, the reflower was marking line 3 as untouchable; however the three comment lines need to be re-aligned. output before: ``` int i = f(abc, // line 1 d, // line 2 // line 3 b); ``` output after: ``` int i = f(abc, // line 1 d, // line 2 // line 3 b); ``` Reviewers: djasper Reviewed By: djasper Subscribers: sammccall, cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D29383 llvm-svn: 293755
* Fix Index test after recent clang-format change.Daniel Jasper2017-02-011-2/+2
| | | | llvm-svn: 293754
* Fix format after recent clang-format change.Daniel Jasper2017-02-011-3/+2
| | | | llvm-svn: 293753
* clang-format: Don't force-wrap multiline RHSs for 2-operand experssions.Daniel Jasper2017-02-012-26/+61
| | | | | | | | | | | | | | | | | | | | This rows back on r288120, r291801 and r292110. I apologize in advance for the churn. All of those revisions where meant to make the wrapping of RHS expressions more consistent. However, now that they are consistent, we seem to be a bit too eager. The reasoning here is that I think it is generally correct that we want to line-wrap before multiline RHS expressions (or multiline arguments to a function call). However, if there are only two of such operands or arguments, there is always a clear vertical separation between them and the additional line break seems much less desirable. Somewhat good examples are expressions like: EXPECT_EQ(2, someLongExpression( orCall)); llvm-svn: 293752
* [ELF] - Recommit r293749. Improve comment. NFC.George Rimar2017-02-011-2/+1
| | | | llvm-svn: 293751
* [ELF] - Revert r293749George Rimar2017-02-011-1/+2
| | | | | | | Accidentally lost the commit title and message, will recommit. llvm-svn: 293750
* (no commit message)George Rimar2017-02-011-2/+1
| | | | llvm-svn: 293749
* [ELF] - Linkerscript: properly mark minus expression with non-absolute flagGeorge Rimar2017-02-012-7/+38
| | | | | | | | | | | | | | | | | | | | | | This is alternative to D28857 which was incorrect. One of linux scripts contains: vvar_start = . - 2 * (1 << 12); vvar_page = vvar_start; vvar_vsyscall_gtod_data = vvar_page + 128; Previously we did not mark first expression as non-absolute, though it contains location counter. And LLD failed with error: relocation R_X86_64_PC32 cannot refer to absolute symbol This patch should fix the issue, and opens road for doing the same for other operators (though not clear if that is needed). Differential revision: https://reviews.llvm.org/D29332 llvm-svn: 293748
* [OpenMP] Redefined macro warning in libomptargetGeorge Rokos2017-02-011-0/+3
| | | | | | | | Fixed compilation warning in libomptarget. Differential Revision: https://reviews.llvm.org/D29353 llvm-svn: 293747
* [asan] Support handle_sigfpe on DarwinJustin Bogner2017-02-012-0/+2
| | | | llvm-svn: 293746
* Doxygen comments for prfchwintrin.hEkaterina Romanova2017-02-011-0/+24
| | | | | | | | | | | | Added doxygen comments to prfchwintrin.h's intrinsics. Note: The doxygen comments are automatically generated based on Sony's intrinsic s document. I got an OK from Eric Christopher to commit doxygen comments without prior code review upstream. llvm-svn: 293745
* *MacroFusion.cpp: Suppress warnings to eliminate \param(s). [-Wdocumentation]NAKAMURA Takumi2017-02-012-3/+3
| | | | llvm-svn: 293744
* [X86] For AVX1/AVX2 isel, don't use FP move instructions for 128-bit ↵Craig Topper2017-02-011-78/+74
| | | | | | | | | | loads/stores of integer types. For SSE we use fp because of the smaller encoding, but that doesn't apply to AVX. So just do the natural thing so we don't have to explain why we aren't. We can't do this for 256-bit loads/stores since integer loads and stores aren't available in AVX1 so we need fallback patterns since the integer types are legal. This doesn't affect any tests because execution domain fixing freely converts the instructions anyway. Honestly, we could probably rely on it for the SSE size optimization too. llvm-svn: 293743
* When I added the use of the new compression framework (present inJason Molenda2017-02-011-16/+8
| | | | | | | | | | | | | | | | | Mac OS X 10.11, El Capitan, released c. Oct 2015) I conditionalized the use of the framework on "if sdk == macosx 10.11". But since macOS 10.12 has shipped this year, the framework was no longer being built in. I can either start listing every OS 10.11 and newer, or remove the version check. This will break building lldb with xcodebuild / Xcode for people running Mac OS X 10.10 or older. If so, I'll back this change out. I'm not sure if we have many people working on macs running the older OSes on their build systems. <rdar://problem/30159130> llvm-svn: 293742
* [sanitizer] Support SANITIZER_INTERCEPTOR_HOOKS on DarwinJustin Bogner2017-02-013-10/+4
| | | | | | | This basically already worked other than weak symbols needing definitions on darwin. llvm-svn: 293741
* Remove apparently-unnecessary copy of constructor lookup result.Richard Smith2017-02-011-9/+1
| | | | | | | | | | | Contrary to the comment, DeclContext intends to guarantee that the lookup results for a particular name will be stable across non-AST-mutating operations, so a copy here should not be necessary. Further, if a copy *is* necessary, the other four instances of this pattern within this file would also be wrong, and we have no evidence of any problems with them; if this change unearths problems, we should fix all the instances of this pattern. llvm-svn: 293740
* [AArch64] Add new target feature to fuse literal generationEvandro Menezes2017-02-014-0/+46
| | | | | | | | | This feature enables the fusion of such operations on Cortex A57, as recommended in its Software Optimisation Guide, sections 4.14 and 4.15. Differential revision: https://reviews.llvm.org/D28698 llvm-svn: 293739
* [AArch64] Add new subtarget feature to fuse AES crypto operationsEvandro Menezes2017-02-015-2/+26
| | | | | | | | | | This feature enables the fusion of such operations on Cortex A57, as recommended in its Software Optimisation Guide, section 4.13, and on Exynos M1. Differential revision: https://reviews.llvm.org/D28491 llvm-svn: 293738
* [CodeGen] Move MacroFusion to the targetEvandro Menezes2017-02-0116-345/+538
| | | | | | | | | | | | | This patch moves the class for scheduling adjacent instructions, MacroFusion, to the target. In AArch64, it also expands the fusion to all instructions pairs in a scheduling block, beyond just among the predecessors of the branch at the end. Differential revision: https://reviews.llvm.org/D28489 llvm-svn: 293737
* [ImplicitNullCheck] NFC isSuitableMemoryOp cleanupSanjoy Das2017-02-011-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: isSuitableMemoryOp method is repsonsible for verification that instruction is a candidate to use in implicit null check. Additionally it checks that base register is not re-defined before. In case base has been re-defined it just returns false and lookup is continued while any suitable instruction will not succeed this check as well. This results in redundant further operations. So when we found that base register has been re-defined we just stop. Patch by Serguei Katkov! Reviewers: reames, sanjoy Reviewed By: sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29119 llvm-svn: 293736
* Follow-up to r293732: add a proper triple to the testHans Wennborg2017-02-011-2/+2
| | | | llvm-svn: 293735
* Remove XFAIL from the sanitizer guard test for darwinJustin Bogner2017-02-011-3/+4
| | | | | | | This works as of "Support sanitizer guard section on darwin" in the llvm repo. llvm-svn: 293734
* SanitizerCoverage: Support sanitizer guard section on darwinJustin Bogner2017-02-012-13/+39
| | | | | | | MachO's sections need a segment as well as a section name, and the section start and end symbols are spelled differently than on ELF. llvm-svn: 293733
* clang-cl: Evaluate arguments left-to-right in constructor call with ↵Hans Wennborg2017-02-012-1/+34
| | | | | | | | | | | | initializer list (PR31831) clang-cl would evaluate the arguments right-to-left (see PR), and for non-Windows targets I suppose we only got it because we were already emitting left-to-right in CodeGenFunction::EmitCallArgs. Differential Revision: https://reviews.llvm.org/D29350 llvm-svn: 293732
* [sancov] Move __sancov_default_options declaration outside the namespace ↵Marcos Pividori2017-02-011-2/+2
| | | | | | | | | | | __sancov After this commint, we can include sancov_flags.h and refer to __sancov_default_options without requiring the namespace prefix. Differential Revision: https://reviews.llvm.org/D29167 llvm-svn: 293731
* MCMacho: Allow __thread_ptr section after dwarf sectionsMatthias Braun2017-02-012-1/+30
| | | | | | Differential Revision: https://reviews.llvm.org/D29315 llvm-svn: 293730
* [Mips] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-02-0113-163/+227
| | | | | | other minor fixes (NFC). llvm-svn: 293729
* Fix regalloc assignment of overlapping registersStanislav Mekhanoshin2017-02-011-0/+21
| | | | | | | | | | | | | | | | SplitEditor::defFromParent() can create a register copy. If register is a tuple of other registers and not all lanes are used a copy will be done on a full tuple regardless. Later register unit for an unused lane will be considered free and another overlapping register tuple can be assigned to a different value even though first register is live at that point. That is because interference only look at liveness info, while full register copy clobbers all lanes, even unused. This patch fixes copy to only cover used lanes. Differential Revision: https://reviews.llvm.org/D29105 llvm-svn: 293728
* [IPSCCP] Teach how to not propagate return values of naked functions.Davide Italiano2017-02-012-1/+32
| | | | | | Differential Revision: https://reviews.llvm.org/D29360 llvm-svn: 293727
* AMDGPU: Cleanup fmin/fmax legacy functionMatt Arsenault2017-02-014-13/+14
| | | | | | Use a more specific subtarget check and combine hasOneUse checks llvm-svn: 293726
* [XRay] Use std::errc::invalid_argument instead of std::errc::bad_messageDean Michael Berris2017-02-011-1/+1
| | | | | | | | This change should appease the mingw32 builds. Follow-up to D29319. llvm-svn: 293725
* [OpenMP] Initial implementation of OpenMP offloading library - libomptarget ↵George Rokos2017-02-0110-0/+1249
| | | | | | | | | | plugins. This is the patch upstreaming the plugins part of libomptarget (CUDA, generic-elf-64). Differential Revision: https://reviews.llvm.org/D14253 llvm-svn: 293724
* InferAddressSpaces: Handle selectMatt Arsenault2017-02-012-0/+173
| | | | | | | This fails to handle some cases where one of the inputs is a constant to be fixed in a later commit. llvm-svn: 293723
* [libFuzzer] increase the default size for shmemKostya Serebryany2017-02-014-12/+12
| | | | llvm-svn: 293722
* [XRay] Define the InstrumentationMap typeDean Michael Berris2017-02-0117-479/+473
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change implements the instrumentation map loading library which can understand both YAML-defined instrumentation maps, and ELF 64-bit object files that have the XRay instrumentation map section. We break it out into a library on its own to allow for other applications to deal with the XRay instrumentation map defined in XRay-instrumented binaries. This type provides both raw access to the logical representation of the instrumentation map entries as well as higher level functions for converting a function ID into a function address. At this point we only support ELF64 binaries and YAML-defined XRay instrumentation maps. Future changes should extend this to support 32-bit ELF binaries, as well as other binary formats (like MachO). As part of this change we also migrate all uses of the extraction logic that used to be defined in tools/llvm-xray/ to use this new type and interface for loading from files. We also remove the flag from the `llvm-xray` tool that required users to specify the type of the instrumentation map file being provided to instead make the library auto-detect the file type. Reviewers: dblaikie Subscribers: mgorny, varno, llvm-commits Differential Revision: https://reviews.llvm.org/D29319 llvm-svn: 293721
* InferAddressSpaces: Remove dead declarationMatt Arsenault2017-01-311-1/+0
| | | | llvm-svn: 293720
* InferAddressSpaces: Avoid double map lookupMatt Arsenault2017-01-311-6/+4
| | | | llvm-svn: 293719
* InferAddressSpaces: Fix broken casting of constantsMatt Arsenault2017-01-312-4/+27
| | | | llvm-svn: 293718
* AMDGPU: Fix warningMatt Arsenault2017-01-311-1/+2
| | | | llvm-svn: 293717
OpenPOWER on IntegriCloud