summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [X86][CGP] Reduce memcmp() expansion to 2 load pairs (PR33914)Simon Pilgrim2017-07-253-1311/+177
| | | | | | | | | | | | D35067/rL308322 attempted to support up to 4 load pairs for memcmp inlining which resulted in regressions for some optimized libc memcmp implementations (PR33914). Until we can match these more optimal cases, this patch reduces the memcmp expansion to a maximum of 2 load pairs (which matches what we do for -Os). This patch should be considered for the 5.0.0 release branch as well Differential Revision: https://reviews.llvm.org/D35830 llvm-svn: 308986
* [DAG] Move DAGCombiner::GetDemandedBits to SelectionDAGSimon Pilgrim2017-07-253-62/+66
| | | | | | | | This patch moves the DAGCombiner::GetDemandedBits function to SelectionDAG::GetDemandedBits as a first step towards making it easier for targets to get to the source of any demanded bits without the limitations of SimplifyDemandedBits. Differential Revision: https://reviews.llvm.org/D35841 llvm-svn: 308983
* [X86] Regenerate test.Simon Pilgrim2017-07-251-3/+5
| | | | llvm-svn: 308981
* [X86] Regenerate test with broadcast comments.Simon Pilgrim2017-07-251-3/+3
| | | | llvm-svn: 308980
* [Sparc] invalid adjustments in TLS_LE/TLS_LDO relocations removedFedor Sergeev2017-07-252-8/+90
| | | | | | | | | | | | | | | | | | | Summary: Some SPARC TLS relocations were applying nontrivial adjustments to zero value, leading to unexpected non-zero values in ELF and then Solaris linker failures. Getting rid of these adjustments. Fixes PR33825. Reviewers: rafael, asb, jyknight Subscribers: joerg, jyknight, llvm-commits Differential Revision: https://reviews.llvm.org/D35567 llvm-svn: 308978
* X86 Asm uses assertions instead of proper diagnostic. This patch fixes that.Andrew V. Tischenko2017-07-254-24/+151
| | | | | | Differential Revision: https://reviews.llvm.org/D35115 llvm-svn: 308972
* [LIR] Teach LIR to avoid extending the BE count prior to adding one toChandler Carruth2017-07-252-18/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | it when safe. Very often the BE count is the trip count minus one, and the plus one here should fold with that minus one. But because the BE count might in theory be UINT_MAX or some such, adding one before we extend could in some cases wrap to zero and break when we scale things. This patch checks to see if it would be safe to add one because the specific case that would cause this is guarded for prior to entering the preheader. This should handle essentially all of the common loop idioms coming out of C/C++ code once canonicalized by LLVM. Before this patch, both forms of loop in the added test cases ended up subtracting one from the size, extending it, scaling it up by 8 and then adding 8 back onto it. This is really silly, and it turns out made it all the way into generated code very often, so this is a surprisingly important cleanup to do. Many thanks to Sanjoy for showing me how to do this with SCEV. Differential Revision: https://reviews.llvm.org/D35758 llvm-svn: 308968
* This patch enables the usage of constant Enum identifiers within Microsoft ↵Matan Haroush2017-07-252-24/+71
| | | | | | | | | | style inline assembly statements. Differential Revision: https://reviews.llvm.org/D33277 https://reviews.llvm.org/D33278 llvm-svn: 308966
* [tests] Cleanup vect.omp.persistence.ll test.Michael Zolotukhin2017-07-252-67/+50
| | | | llvm-svn: 308964
* [X86] Add 24-byte memcmp tests (PR33914)Simon Pilgrim2017-07-253-17/+304
| | | | llvm-svn: 308963
* Fix endianness bug in DAGCombiner::visitTRUNCATE and visitEXTRACT_VECTOR_ELTFrancois Pichet2017-07-252-4/+62
| | | | | | | | | | | | | | | | Summary: Do not assume little endian architecture in DAGCombiner::visitTRUNCATE and DAGCombiner::visitEXTRACT_VECTOR_ELT. PR33682 Reviewers: hfinkel, sdardis, RKSimon Reviewed By: sdardis, RKSimon Subscribers: uabelho, RKSimon, sdardis, llvm-commits Differential Revision: https://reviews.llvm.org/D34990 llvm-svn: 308960
* [ARM] Enable partial and runtime unrollingSam Parker2017-07-254-0/+248
| | | | | | | | | | Enable runtime and partial loop unrolling of simple loops without calls on M-class cores. The thresholds are calculated based on whether the target is Thumb or Thumb-2. Differential Revision: https://reviews.llvm.org/D34619 llvm-svn: 308956
* [COFF] ARM64 support for COFFImportFileMartin Storsjo2017-07-251-0/+3
| | | | | | | | A test will be committed separately in the lld repo. Differential Revision: https://reviews.llvm.org/D35766 llvm-svn: 308951
* [AArch64] Reserve a 16 byte aligned amount of fixed stack for win64 varargsMartin Storsjo2017-07-253-13/+70
| | | | | | | | | | | | | | | | | | | | | | | | | Create a dummy 8 byte fixed object for the unused slot below the first stored vararg. Alternative ideas tested but skipped: One could try to align the whole fixed object to 16, but I haven't found how to add an offset to the stack frame used in LowerWin64_VASTART. If only the size of the fixed stack object size is padded but not the offset, via MFI.CreateFixedObject(alignTo(GPRSaveSize, 16), -(int)GPRSaveSize, false), PrologEpilogInserter crashes due to "Attempted to reset backwards range!". This fixes misconceptions about where registers are spilled, since AArch64FrameLowering.cpp assumes the offset from fixed objects is aligned to 16 bytes (and the Win64 case there already manually aligns the offset to 16 bytes). This fixes cases where local stack allocations could overwrite callee saved registers on the stack. Differential Revision: https://reviews.llvm.org/D35720 llvm-svn: 308950
* DWARFVerifier.cpp: Fix -m32 in r308928. Use PRIx64.NAKAMURA Takumi2017-07-251-1/+2
| | | | llvm-svn: 308949
* [libFuzzer] make one test faster, fix compiler warnings in testsKostya Serebryany2017-07-254-4/+4
| | | | llvm-svn: 308945
* [sanitizer-coverage] simplify the code, NFCKostya Serebryany2017-07-251-14/+8
| | | | llvm-svn: 308944
* [DWARF] Modified test for die ranges verification so that it doesn't fail on ↵Spyridoula Gravani2017-07-251-2/+2
| | | | | | windows hosts. llvm-svn: 308943
* llvm/test/CMakeLists.txt: Add llvm-rc to LLVM_TEST_DEPENDS.NAKAMURA Takumi2017-07-251-0/+1
| | | | llvm-svn: 308942
* llvm-rc: Fixup for r308940. This should use LLVMSupport.NAKAMURA Takumi2017-07-251-0/+1
| | | | llvm-svn: 308941
* Add an empty shell of llvm-rc.Marek Sokolowski2017-07-256-0/+196
| | | | | | | | | | | | | This starts the development on one of MS Visual Studio binutils, Resource Converter. The tool compiles resource scripts (.rc) into binary resource files (.res). The current implementation does nothing but parse the command line arguments. It is going to be extended in the future. Differential Revision: https://reviews.llvm.org/D35810 llvm-svn: 308940
* [Analysis] Fix some Clang-tidy modernize-use-using and Include What You Use ↵Eugene Zelenko2017-07-2412-177/+247
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 308936
* [DWARF] Added verification check for die ranges. If highPC is an address, ↵Spyridoula Gravani2017-07-243-0/+104
| | | | | | | | then it should be greater than lowPC for each range. Differential Revision: https://reviews.llvm.org/D35733 llvm-svn: 308928
* Revert "[X86][InlineAsm][Ms Compatibility]Prefer variable name over a ↵Reid Kleckner2017-07-241-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | register when the two collides" This reverts r308867 and r308866. It broke the sanitizer-windows buildbot on C++ code similar to the following: namespace cl { } void f() { __asm { mov al, cl } } t.cpp(4,13): error: unexpected namespace name 'cl': expected expression mov al, cl ^ In this case, MSVC parses 'cl' as a register, not a namespace. llvm-svn: 308926
* Small tweak to one check in error handling to the dyld compact exportKevin Enderby2017-07-241-2/+2
| | | | | | | | | | entries in libObject (done in r308690). In the case when the last node has no children setting State.Current = Children + 1; where that would be past Trie.end() is actually ok since the pointer is not used with zero children. rdar://33490512 llvm-svn: 308924
* Followup to r308890: don't assert the llvm llvm version number.James Y Knight2017-07-241-2/+2
| | | | llvm-svn: 308917
* [Hexagon] Recognize C4_cmpneqi, C4_cmpltei and C4_cmplteui in NewValueJumpKrzysztof Parzyszek2017-07-242-1/+73
| | | | llvm-svn: 308914
* Move DWARFSectionMap to a .cpp file.Rafael Espindola2017-07-242-4/+6
| | | | | | Thanks to Paul Robinson for the suggestion. llvm-svn: 308913
* test-release.sh: Fix phase2 and phase3 binary comparisionTom Stellard2017-07-241-1/+1
| | | | | | | | | | | | | | | | | Summary: scudo_utils.cpp.o from compiler-rt has one of the host compiler's builtin include paths stored in the .debug_line section. So we need to do sed 's,Phase1,Phase2,g` on the Phase2 object file so it matches Phase3. Reviewers: hans Reviewed By: hans Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34989 llvm-svn: 308912
* Revert "Revert "[libFuzzer] Add a dependency on symbolizer from libFuzzer ↵George Karpenkov2017-07-241-1/+1
| | | | | | | | | | tests"" This reverts commit 15425f2bc6eac6249ee957a2a280511306c07547. Should work now that atos is a default symbolizer on Darwin. llvm-svn: 308910
* Adding base test for interleave store VF16 and expand the test for AVX512 Michael Zuckerman2017-07-242-81/+260
| | | | | | This patch doesn't modifay any non test file. llvm-svn: 308909
* RA: Replace asserts related to empty live intervalsMatt Arsenault2017-07-242-4/+9
| | | | | | | | | These don't exactly assert the same thing anymore, and allow empty live intervals with non-empty uses. Removed in r308808 and r308813. llvm-svn: 308906
* [AArch64] Adjust the cost model for Exynos M1 and M2Evandro Menezes2017-07-241-4/+3
| | | | | | Fine tune the resources in a couple of ASIMD loads. llvm-svn: 308904
* AMDGPU: Fix allocating pseudo-registersMatt Arsenault2017-07-242-2/+6
| | | | | | | | There's no need for these to be part of a class since they are immediately replaced. New unreachable hit in existing tests.' llvm-svn: 308903
* Revert "Debug: handle dumping the D language."Tim Northover2017-07-241-1/+0
| | | | | | Reid beat me to it. llvm-svn: 308902
* Debug: handle dumping the D language.Tim Northover2017-07-241-0/+1
| | | | | | | Mostly just to silence a warning about an unhandled case. There don't seem to be any tests for this operator (at least that I could find). llvm-svn: 308901
* [CMake] Remove redundant logic in runtimes/CMakeList.txtLeo Li2017-07-241-3/+0
| | | | | | | | | | | | | | | Summary: `SUB_CHECK_TARGETS` contains all test targets in `SUB_COMPONENTS` when we load `Components.cmake`. We don't need to add those targets again and having duplicate targets will break the cmake policy CMP0002. Reviewers: phosek Subscribers: mgorny, llvm-commits, srhines, pirama Differential Revision: https://reviews.llvm.org/D35692 llvm-svn: 308900
* Add missing case to switchReid Kleckner2017-07-241-0/+1
| | | | llvm-svn: 308894
* [CodeGenPrepare] Cut off FindAllMemoryUses if there are too many uses.Benjamin Kramer2017-07-241-4/+13
| | | | | | | | | | | | | | | | | | | This avoids excessive compile time. The case I'm looking at is Function.cpp from an old version of LLVM that still had the giant memcmp string matcher in it. Before r308322 this compiled in about 2 minutes, after it, clang takes infinite* time to compile it. With this patch we're at 5 min, which is still bad but this is a pathological case. The cut off at 20 uses was chosen by looking at other cut-offs in LLVM for user scanning. It's probably too high, but does the job and is very unlikely to regress anything. Fixes PR33900. * I'm impatient and aborted after 15 minutes, on the bug report it was killed after 2h. llvm-svn: 308891
* [codeview] Emit 'D' as the cv source language for D codeReid Kleckner2017-07-245-2/+50
| | | | | | | | | This matches DMD: https://github.com/dlang/dmd/blob/522263965cf3a27ed16b31f3c3562db86cdeabec/src/ddmd/backend/cv8.c#L199 Fixes PR33899. llvm-svn: 308890
* Format some case labels and shrink an anonymous namespace NFCReid Kleckner2017-07-241-15/+12
| | | | llvm-svn: 308889
* NFC. Fixed typos in the comments.Ilya Biryukov2017-07-242-2/+2
| | | | llvm-svn: 308888
* [DOTGraphTraits] Propagate Graph template argument, NFCAlexandre Isoard2017-07-241-4/+4
| | | | | | | | | | | | Propagates the GraphT template argument to the default value of the AnalysisGraphTraitsT template argument. This allows to specialize the DefaultAnalysisGraphTraits<AnalysisT,GraphT> for analysis with a graph type different from the analysis type and it will automatically get picked-up. Note: This was probably the intended purpose and should not result in any functional change. llvm-svn: 308878
* Fix spelling in comments. NFCI.Simon Pilgrim2017-07-241-4/+4
| | | | llvm-svn: 308877
* [LoopInterchange] Update code to use range-based for loops (NFC).Florian Hahn2017-07-241-28/+21
| | | | | | | | | | | | | | | | Summary: The remaining non range-based for loops do not iterate over full ranges, so leave them as they are. Reviewers: karthikthecool, blitz.opensource, mcrosier, mkuper, aemerson Reviewed By: aemerson Subscribers: aemerson, mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D35777 llvm-svn: 308872
* [X86][AVX512] Add patterns for masked AVX512 floating point compare ↵Ayman Musa2017-07-242-130/+4555
| | | | | | | | | | | instructions that were missing. patterns were missed by D33188. Adding for completion. +Updating test. Differential Revesion: https://reviews.llvm.org/D35179 llvm-svn: 308868
* [X86][InlineAsm][Ms Compatibility]Prefer variable name over a register when ↵Coby Tayree2017-07-241-1/+12
| | | | | | | | | | | | | | | | | | | | | the two collides On MS-style, the following snippet: int eax; __asm mov eax, ebx should yield loading of ebx, into the location pointed by the variable eax This patch sees to it. Currently, a reg-to-reg move would have been invoked. clang: D34740 Differential Revision: https://reviews.llvm.org/D34739 llvm-svn: 308866
* [AVR] Remove the instrumentation passDylan McKay2017-07-235-288/+0
| | | | | | | | I have a much better way of running integration tests now. https://github.com/dylanmckay/avr-test-suite llvm-svn: 308857
* [AVR] Improve the 'icall-func-pointer-correct-addr-space.ll' testDylan McKay2017-07-231-8/+20
| | | | | | Patch by Carl Peto. llvm-svn: 308856
* [CodeGen][X86] Fuchsia supports sincos* libcalls and sin+cos->sincos ↵Petr Hosek2017-07-233-4/+9
| | | | | | | | | | optimization Patch by Roland McGrath Differential Revision: https://reviews.llvm.org/D35748 llvm-svn: 308854
OpenPOWER on IntegriCloud