summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86][SSE] Regenerate vector shift testsSimon Pilgrim2016-02-066-6/+6
| | | | llvm-svn: 259999
* [X86][SSE] Moved shuffle decode CASE macros earlier. NFC.Simon Pilgrim2016-02-061-48/+48
| | | | | | To allow the helper functions to make use of them. llvm-svn: 259997
* [X86][SSE] Refactored PMOVZX shuffle decoding to use scalar input typesSimon Pilgrim2016-02-063-75/+47
| | | | | | | | First step towards being able to decode AVX512 PMOVZX instructions without a massive bloat in the shuffle decode switch statement. This should also make it easier to decode X86ISD::VZEXT target shuffles in the future. llvm-svn: 259995
* [ThinLTO] Include linkage type in function summaryTeresa Johnson2016-02-067-25/+99
| | | | | | | | | | | | | | | | Summary: Adds the linkage type to both the per-module and combined function summaries, which subsumes the current islocal bit. This will eventually be used to optimized linkage types based on global summary-based analysis. Reviewers: joker.eph Subscribers: joker.eph, davidxl, llvm-commits Differential Revision: http://reviews.llvm.org/D16943 llvm-svn: 259993
* line endings fixSimon Pilgrim2016-02-061-45/+45
| | | | llvm-svn: 259992
* [X86][SSE] Don't replace an existing 32-bit load with its duplicateSimon Pilgrim2016-02-062-4/+47
| | | | | | | | If we are already loading a single 32-bit float/integer then just reuse it. Fix for regression in D16729 llvm-svn: 259991
* Comment fixSimon Pilgrim2016-02-061-1/+1
| | | | llvm-svn: 259990
* Corrected tests for Loop Versioning LICM, by adding “REQUIRES: asserts”.Ashutosh Nema2016-02-063-0/+3
| | | | | | Earlier they were failing under no-assert build. llvm-svn: 259989
* Fixed short underline error in LangRef.rst for recently addedAshutosh Nema2016-02-061-1/+1
| | | | | | metadata 'llvm.loop.licm_versioning.disable' description. llvm-svn: 259988
* New Loop Versioning LICM PassAshutosh Nema2016-02-0612-0/+824
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When alias analysis is uncertain about the aliasing between any two accesses, it will return MayAlias. This uncertainty from alias analysis restricts LICM from proceeding further. In cases where alias analysis is uncertain we might use loop versioning as an alternative. Loop Versioning will create a version of the loop with aggressive aliasing assumptions in addition to the original with conservative (default) aliasing assumptions. The version of the loop making aggressive aliasing assumptions will have all the memory accesses marked as no-alias. These two versions of loop will be preceded by a memory runtime check. This runtime check consists of bound checks for all unique memory accessed in loop, and it ensures the lack of memory aliasing. The result of the runtime check determines which of the loop versions is executed: If the runtime check detects any memory aliasing, then the original loop is executed. Otherwise, the version with aggressive aliasing assumptions is used. The pass is off by default and can be enabled with command line option -enable-loop-versioning-licm. Reviewers: hfinkel, anemet, chatur01, reames Subscribers: MatzeB, grosser, joker.eph, sanjoy, javed.absar, sbaranga, llvm-commits Differential Revision: http://reviews.llvm.org/D9151 llvm-svn: 259986
* Relax assertion in ReplaceableMetadataImpl::replaceAllUsesWith().Adrian Prantl2016-02-061-2/+0
| | | | | | | | | | There is a legitimate use-case in clang where we need to replace a temporary placeholder node with the temporary node that may be a forward declaration. <rdar://problem/24493203> llvm-svn: 259973
* [llvm-dwp] Merge cu_index from DWPsDavid Blaikie2016-02-065-6/+96
| | | | | | This is almost feature complete - just missing tu_index merging now. llvm-svn: 259971
* [Orc] Slightly improve the x86-64 resolver block machine code.Lang Hames2016-02-062-9/+8
| | | | | | Replace leaq + movq of a pointer with a single movabsq. llvm-svn: 259968
* llvm-bcanalyzer: Produce summary information for the BLOCKINFO block, it can beRichard Smith2016-02-061-10/+17
| | | | | | | a significant fraction of the file size (for files that otherwise have few records). Also include an average size per record in the summary information. llvm-svn: 259965
* Add note of suboptimal behavior in MemorySSA. NFC.George Burgess IV2016-02-061-0/+31
| | | | llvm-svn: 259963
* [AArch64] Add the scheduling model for Exynos-M1Evandro Menezes2016-02-062-2/+361
| | | | | | | | | | | | | | Summary: Add the core scheduling model for the Samsung Exynos-M1 (ARMv8-A). Reviewers: jmolloy, rengolin, christof, MinSeongKIM, t.p.northover Subscribers: aemerson, rengolin, MatzeB Differential Revision: http://reviews.llvm.org/D16644 llvm-svn: 259958
* [StatepointLower] Use None instead of Optional<int>()Sanjoy Das2016-02-051-5/+5
| | | | llvm-svn: 259956
* Make the OCaml tests temporarily unsupported until they can be updated.Eric Christopher2016-02-051-0/+3
| | | | llvm-svn: 259954
* [Orc] Fix a typo in the comments for the x86_64 resolver block.Lang Hames2016-02-051-2/+2
| | | | llvm-svn: 259953
* Variable naming style fix /nfcXinliang David Li2016-02-051-3/+3
| | | | llvm-svn: 259952
* Attempt#2 to work around MSVC rejects-valid.Richard Smith2016-02-051-2/+2
| | | | llvm-svn: 259948
* Attempt to work around an MSVC rejects-valid. Apparently it gets the accessRichard Smith2016-02-051-7/+5
| | | | | | | check wrong when inheriting a member through two levels of private inheritance, where the middle one is a class template specialization. llvm-svn: 259943
* More workarounds for undefined behavior exposed when compiling in C++14 withRichard Smith2016-02-053-1/+13
| | | | | | | | -fsized-deallocation. Disable sized deallocation for all objects derived from TrailingObjects, as we expect the storage allocated for these objects to be larger than the size of their dynamic type. llvm-svn: 259942
* [PGO] Speed up name tab readingXinliang David Li2016-02-051-13/+16
| | | | | | | | The change allows skipping duplicate strings early to avoid redundant md5 computation and string copying/swapping. llvm-svn: 259941
* [llvm-nm] Prefer empty() over size() == 0.Davide Italiano2016-02-051-1/+1
| | | | | | Thanks to David Blaikie for pointing this out! llvm-svn: 259938
* [llvm-nm] Transform a switch() statement in a pair of if(s).Davide Italiano2016-02-051-7/+2
| | | | | | | This is more uniform wrt what other tools do and makes the code a little bit more readable. llvm-svn: 259937
* [llvm-nm] Simplify code logic. NFCI.Davide Italiano2016-02-051-7/+3
| | | | llvm-svn: 259917
* CallAnalyzer::analyzeCall: change the condition back to "Cost < Threshold"Hans Wennborg2016-02-051-1/+1
| | | | | | | | In r252595, I inadvertently changed the condition to "Cost <= Threshold", which caused a significant size regression in Chrome. This commit rectifies that. llvm-svn: 259915
* [AArch64] Refactoring aarch64-ldst-opt. NCF.Jun Bum Lim2016-02-051-25/+38
| | | | | | | Remove narrow load / store instructions from getMatchingPairOpcode(), and add getMatchingWideOpcode(). llvm-svn: 259914
* TableGen: Add IsOptional field to AsmOperandClassTom Stellard2016-02-052-1/+24
| | | | | | | | | | | | | | | Summary: This makes it possible to specify some operands as optional to the AsmMatcher. Setting this field to true will prevent the AsmMatcher from emitting 'too few operands' errors when there are missing optional operands. Reviewers: olista01, ab Subscribers: nhaustov, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15755 llvm-svn: 259913
* AMDGPU: Account for LDS alignmentMatt Arsenault2016-02-052-4/+277
| | | | | | | | | | | | | The current situation isn't great, because the amount of padding requires is determined by the inverse order of the first encountered use. We should eventually somehow sort these to minimize wasted space. Another problem is the alignment of kernel arguments isn't respected. The group_segment_alignment is always emitted as the default 16, and typed arguments with higher alignments or an explicitly set alignment are also ignored. llvm-svn: 259912
* AMDGPU: Preserve alignments on new created globalsMatt Arsenault2016-02-053-7/+41
| | | | | | | Also switch to internal linkage, and include the name of the function in the name. llvm-svn: 259911
* [codeview] Dump a missing field and change its signednessReid Kleckner2016-02-052-1/+3
| | | | llvm-svn: 259904
* AMDGPU: Remove some purely R600 functions from AMDGPUInstrInfoTom Stellard2016-02-055-96/+28
| | | | | | | | | | Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16862 llvm-svn: 259900
* AMDGPU: Fix ordering of CPU and FS parameters in TargetMachine constructorsTom Stellard2016-02-052-10/+10
| | | | | | | | | | Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16863 llvm-svn: 259897
* Fix echo.ll test failing due to DOS line endingsReid Kleckner2016-02-051-1/+1
| | | | llvm-svn: 259896
* Some stackslots are allocated to vregs which have no real reference.Wei Mi2016-02-052-7/+255
| | | | | | | | | | | | | | LiveRangeEdit::eliminateDeadDef is used to remove dead define instructions after rematerialization. To remove a VNI for a vreg from its LiveInterval, LiveIntervals::removeVRegDefAt is used. However, after non-PHI VNIs are all removed, PHI VNI are still left in the LiveInterval. Such unused vregs will be kept in RegsToSpill[] at the end of InlineSpiller::reMaterializeAll and spiller will allocate stackslot for them. The fix is to get rid of unused reg by checking whether it has non-dbg reference instead of whether it has non-empty interval. llvm-svn: 259895
* AMDGPU/SI: Correctly initialize SIInsertWaits passTom Stellard2016-02-053-7/+22
| | | | | | | | | | Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16724 llvm-svn: 259894
* [WebAssembly] Update the select instructions' operand orders to match the spec.Dan Gohman2016-02-053-28/+28
| | | | llvm-svn: 259893
* Add the missing test case for PR26193Nemanja Ivanovic2016-02-051-0/+9
| | | | llvm-svn: 259888
* Fix for PR 26193Nemanja Ivanovic2016-02-052-2/+2
| | | | | | | This is a simple fix for a PowerPC intrinsic that was incorrectly defined (the return type was incorrect). llvm-svn: 259886
* Move classes defined in a cpp file into an anonymous namespace.Benjamin Kramer2016-02-052-0/+4
| | | | | | No functionality change intended. llvm-svn: 259883
* Prefix external symbols in llvm-c-test.Benjamin Kramer2016-02-0510-46/+46
| | | | | | | | | This makes it less likely to clash with other stuff that might be linked in by change, e.g. ncurses exposes an external function called simply "echo", so linking ncurses statically into the binary explodes in funny ways. llvm-svn: 259882
* Revert "[AArch64] Improve load/store optimizer to handle LDUR + LDR (take 3)."Renato Golin2016-02-052-181/+21
| | | | | | This reverts commit r259812 as it broke AArch64 self-hosting. llvm-svn: 259881
* [DebugInfo] Eliminate compilation warning about used variable LSDADmitry Polukhin2016-02-051-2/+1
| | | | | | | The waring was: lib/DebugInfo/DWARF/DWARFDebugFrame.cpp:643:20: warning: variable ‘LSDA’ set but not used llvm-svn: 259877
* [LoopUnrolling] Try harder to avoid rebuilding LCSSA when possible.Michael Zolotukhin2016-02-051-7/+56
| | | | | | | | | | | | | In r255133 (reapplied r253126) we started to avoid redundant recomputation of LCSSA after loop-unrolling. This patch moves one step further in this direction - now we can avoid it for much wider range of loops, as we start to look at IR and try to figure out if the transformation actually breaks LCSSA phis or makes it necessary to insert new ones. Differential Revision: http://reviews.llvm.org/D16838 llvm-svn: 259869
* [MC] Add support for encoding CodeView variable definition rangesDavid Majnemer2016-02-0516-13/+332
| | | | | | | | | | | | | | | | | | | CodeView, like most other debug formats, represents the live range of a variable so that debuggers might print them out. They use a variety of records to represent how a particular variable might be available (in a register, in a frame pointer, etc.) along with a set of ranges where this debug information is relevant. However, the format only allows us to use ranges which are limited to a maximum of 0xF000 in size. This means that we need to split our debug information into chunks of 0xF000. Because the layout of code is not known until *very* late, we must use a new fragment to record the information we need until we can know *exactly* what the range is. llvm-svn: 259868
* [RS4GC] Pass DenseMap by reference, NFCJoseph Tremoulet2016-02-051-5/+4
| | | | | | | | | | | | | | | Summary: Passing the rematerialized values map to insertRematerializationStores by value looks to be a simple oversight; update it to pass by reference. Reviewers: reames, sanjoy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16911 llvm-svn: 259867
* Add various binary operations in the LLVM C API echo testAmaury Sechet2016-02-052-3/+87
| | | | | | | | | | | | Summary: This diff increase the tested surface of the C API. Reviewers: bogner, chandlerc, echristo, dblaikie, joker.eph, Wallbraker Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16910 llvm-svn: 259863
* [LoopLoadElim] Don't allow versioning when optForSizeAdam Nemet2016-02-052-2/+85
| | | | | | This was requested in the review of D16300. llvm-svn: 259861
OpenPOWER on IntegriCloud