summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][AVX512DQ] add scalar fpclassAsaf Badouh2015-10-187-6/+247
| | | | | | Differential Revision: http://reviews.llvm.org/D13769 llvm-svn: 250650
* AVX512: Lowering i8/i16 vector CTLZ using the dword LZCNT vector instructionIgor Breger2015-10-185-1399/+638
| | | | | | Differential Revision: http://reviews.llvm.org/D13632 llvm-svn: 250649
* clang-format: [JS] Handle string literals spanning character classes.Daniel Jasper2015-10-182-92/+90
| | | | | | | | | | | | | | | If a RegExp contains a character group with a quote (/["]/), the trailing end of it is first tokenized as a string literal, which leads to the merging code seeing an unbalanced bracket. This change parses regex literals from the left hand side. That simplifies the parsing code and also allows correctly handling escapes and character classes, hopefully correctly parsing all regex literals. Patch by Martin Probst, thank you. Review: http://reviews.llvm.org/D13765 llvm-svn: 250648
* Make a bunch of static arrays const.Craig Topper2015-10-184-9/+9
| | | | llvm-svn: 250647
* Add an unnecessary makeArrayRef I add earlier. I didn't realize range-based ↵Craig Topper2015-10-181-1/+1
| | | | | | for loops worked with arrays. llvm-svn: 250646
* Use std::is_sorted instead of a manual loop.Craig Topper2015-10-181-5/+4
| | | | llvm-svn: 250645
* [Sparc] Use MCPhysReg instead of unsigned to size static arrays of ↵Craig Topper2015-10-181-6/+7
| | | | | | registers. Should reduce the table size. llvm-svn: 250644
* Use array_lengthof. NFCCraig Topper2015-10-181-1/+1
| | | | llvm-svn: 250643
* Make a bunch of static arrays const.Craig Topper2015-10-1816-73/+86
| | | | llvm-svn: 250642
* Make a bunch of static arrays const.Craig Topper2015-10-1811-39/+44
| | | | llvm-svn: 250641
* Simplify. NFC.Rafael Espindola2015-10-181-3/+1
| | | | llvm-svn: 250640
* [RuntimeDyld] Add support for absolute symbols.Lang Hames2015-10-184-19/+48
| | | | llvm-svn: 250639
* Minor Instr PGO code restructuringXinliang David Li2015-10-185-134/+147
| | | | | | | | | | | | | | | | 1. Key constant values (version, magic) and data structures related to raw and indexed profile format are moved into one centralized file: InstrProf.h. 2. Utility function such as MD5Hash computation is also moved to the common header to allow sharing with other components in the future. 3. A header data structure is introduced for Indexed format so that the reader and writer can always be in sync. 4. Added some comments to document different places where multiple definition of the data structure must be kept in sync (reader/writer, runtime, lowering etc). No functional change is intended. Differential Revision: http://reviews.llvm.org/D13758 llvm-svn: 250638
* Revert to original BlockGenerator::getOrCreateAlloca(MemoryAccess &Access)Tobias Grosser2015-10-182-1/+133
| | | | | | | | | | Expressing this in terms of BlockGenerator::getOrCreateAlloca(const ScopArrayInfo *Array) does not work as the MemoryAccess BasePtr is in case of invariant load hoisting different to the ScopArrayInfo BasePtr. Until this is investigated and fixed, we move back to code that just uses the baseptr of MemoryAccess. llvm-svn: 250637
* [SCEV] Fix whitespace issues and remove extra braces; NFCSanjoy Das2015-10-181-10/+7
| | | | llvm-svn: 250636
* [SCEV] Use std::all_of and std::any_of; NFCSanjoy Das2015-10-181-16/+11
| | | | llvm-svn: 250635
* [SCEV] Use auto where it helps remove line breaks; NFCSanjoy Das2015-10-181-13/+6
| | | | llvm-svn: 250634
* [SCEV] Use range for loops; NFCSanjoy Das2015-10-181-22/+17
| | | | llvm-svn: 250633
* clang/test/Driver/ps4-linker-non-win.c: Tweak for cygwin like ↵NAKAMURA Takumi2015-10-171-5/+5
| | | | | | ps4-linker-win.c@250403. Cygwin seeks dependent libs along $PATH. llvm-svn: 250632
* clang/test/Driver/ps4-linker-non-win.c: Make %T/ps4-ld executable, or the ↵NAKAMURA Takumi2015-10-171-1/+1
| | | | | | driver wouldn't find it. llvm-svn: 250631
* clang/test/Driver/ps4-linker-non-win.c: Make sure that %T/ps4-ld would be ↵NAKAMURA Takumi2015-10-171-1/+4
| | | | | | used but *fails*. llvm-svn: 250630
* clang-format: Add test for (properly escaped) XML output.Daniel Jasper2015-10-171-0/+12
| | | | llvm-svn: 250629
* BlockGenerator: Add getOrCreateAlloca(const ScopArrayInfo *Array)Tobias Grosser2015-10-172-3/+18
| | | | | | | | This allows the caller to get the alloca locations of an array without the need to thank if Array is a PHI or a non-PHI Array. We directly make use of this in BlockGenerator::getOrCreateAlloca(MemoryAccess &Access). llvm-svn: 250628
* Return nullptr if MemoryAccess list is emptyMichael Kruse2015-10-171-2/+6
| | | | | | | | Other places (e.g. hoistInvariantLoads) assume that an empty lookup will return nullptr. The situation can currently not arise because MemoryAccesses are not removed before hoistInvariantLoads. llvm-svn: 250627
* Format comment properlyTobias Grosser2015-10-171-10/+6
| | | | | | | | While clang-format takes care that the line-length is not surpassed, the resulting comments sometimes look not optimal. We re-flow the text in the comment to avoid these ugly single-word lines. llvm-svn: 250626
* Load/Store scalar accesses before/after the statement itselfMichael Kruse2015-10-1710-76/+63
| | | | | | | | | | | | | | | | | | | | | Instead of generating implicit loads within basic blocks, put them before the instructions of the statment itself, including non-affine subregions. The region's entry node is dominating all blocks in the region and therefore the loaded value will be available there. Implicit writes in block-stmts were already stored back at the end of the block. Now, also generate the stores of non-affine subregions when leaving the statement, i.e. in the exiting block. This change is required for array-mapped implicits ("De-LICM") to ensure that there are no dependencies of demoted scalars within statments. Statement load all required values, operator on copied in registers, and then write back the changed value to the demoted memory. Lifetimes analysis within statements becomes unecessary. Differential Revision: http://reviews.llvm.org/D13487 llvm-svn: 250625
* Use std::find instead of manual loop.Craig Topper2015-10-171-5/+2
| | | | llvm-svn: 250624
* Use std::is_sorted to replace a custom version. Also replace a comparison ↵Craig Topper2015-10-172-16/+4
| | | | | | predicate struct with a lambda. llvm-svn: 250623
* Avoid unnecessay .s2a write access when used only in PHIsMichael Kruse2015-10-174-6/+66
| | | | | | | | | | | | | Accesses for exit node phis will be handled separately by buildPHIAccesses if there is more than one exiting edge, buildScalarDependences does not need to create additional SCALAR accesses. This is a corrected version of r250517, which was reverted in r250607. Differential Revision: http://reviews.llvm.org/D13848 llvm-svn: 250622
* Replace a static compare function with a lambda. NFCCraig Topper2015-10-171-7/+5
| | | | llvm-svn: 250621
* [X86][XOP] Add VPROT instruction opcodesSimon Pilgrim2015-10-175-33/+32
| | | | | | Added X86ISD opcodes for VPROT vector rotate by variable and by immediate. llvm-svn: 250620
* Remove unnecessary 'const' pointed out by David Blaikie.Craig Topper2015-10-171-2/+2
| | | | llvm-svn: 250619
* [X86][XOP] Add VPROT rotate by immediate intrinsics testsSimon Pilgrim2015-10-171-0/+28
| | | | llvm-svn: 250618
* Use a range-based for loop. Use std::end instead of pointer+array_lengthof. NFCCraig Topper2015-10-171-11/+9
| | | | llvm-svn: 250617
* [DAG] Ensure vector constant folding uses correct scalar undef typesSimon Pilgrim2015-10-171-2/+2
| | | | | | Minor fix to D13665 found during post-commit review. llvm-svn: 250616
* Replace a custom table sort check with std::is_sorted. Change a function to ↵Craig Topper2015-10-171-17/+8
| | | | | | take ArrayRef instead of pointer and length. NFC llvm-svn: 250615
* Use std::begin/end and std::is_sorted to simplify some code. NFCCraig Topper2015-10-172-15/+11
| | | | llvm-svn: 250614
* Use binary search in isCPUStringValid since the array is sorted.Craig Topper2015-10-171-5/+2
| | | | llvm-svn: 250613
* [CostModel] Fixed AVX integer shift costsSimon Pilgrim2015-10-174-46/+70
| | | | | | Targets with AVX but without AVX2 were incorrectly reporting costs of 256-bit integer shifts. llvm-svn: 250611
* [X86][FastISel] Teach how to select SSE4A nontemporal stores.Simon Pilgrim2015-10-172-16/+68
| | | | | | | | | | Add FastISel support for SSE4A scalar float / double non-temporal stores Follow up to D13698 Differential Revision: http://reviews.llvm.org/D13773 llvm-svn: 250610
* [InstCombine] SSE4A constant folding and conversion to shuffles.Simon Pilgrim2015-10-172-65/+457
| | | | | | | | | | | | | This patch improves support for combining the SSE4A EXTRQ(I) and INSERTQ(I) intrinsics: 1 - Converts INSERTQ/EXTRQ calls to INSERTQI/EXTRQI if the 'bit index' and 'length' operands are constant 2 - Converts INSERTQI/EXTRQI calls to shufflevector if the bit index/length are both byte aligned (we can already lower shuffles to INSERTQI/EXTRQI if its useful) 3 - Constant folding support 4 - Add zeroinitializer handling Differential Revision: http://reviews.llvm.org/D13348 llvm-svn: 250609
* BlockGenerator: Register outside users of scalars directlyTobias Grosser2015-10-172-5/+38
| | | | | | | | | | | | Instead of checking at code generation time for each ScopStmt if a scalar has external uses, we just iterate over the ScopArrayInfo descriptions we have and check each of these for possible external uses. Besides being somehow clearer, this approach has the benefit that we will always create valid LLVM-IR even in case we disable the code generation of ScopStmt bodies e.g. for testing purposes. llvm-svn: 250608
* Revert "Avoid unnecessay .s2a write access when used only in PHIs"Tobias Grosser2015-10-175-3/+25
| | | | | | | This reverts commit r250606 due to some bugs it introduced. After these bugs have been resolved, we will add it back to tree. llvm-svn: 250607
* Drop unused parameter from handleOutsideUsersTobias Grosser2015-10-172-7/+4
| | | | llvm-svn: 250606
* [Frontend] Name variable correctly.Davide Italiano2015-10-171-2/+2
| | | | | | Reported by: Kim Grasman! llvm-svn: 250605
* [JIT/Examples] Fix Fibonacci so that it runs again.Davide Italiano2015-10-171-1/+0
| | | | | | The old JIT is (long) gone. llvm-svn: 250604
* [libFuzzer] add -shuffle flagKostya Serebryany2015-10-174-5/+10
| | | | llvm-svn: 250603
* Add an AST node matcher for TemplateTypeParmDecl objects.Eric Fiselier2015-10-173-2/+31
| | | | llvm-svn: 250602
* [Hexagon] Reverting test file change.Colin LeMahieu2015-10-171-1/+2
| | | | llvm-svn: 250601
* [Hexagon] Adding skeleton of HVX extension instructions.Colin LeMahieu2015-10-1718-15/+4260
| | | | llvm-svn: 250600
OpenPOWER on IntegriCloud