summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix N^2 instruction ordering comparisons in GVNHoist.Daniel Berlin2016-07-251-19/+18
| | | | | | This fixes GVNHoist's portion of PR28670. llvm-svn: 276658
* NFC: Refactor GVNHoist class so not everything is publicDaniel Berlin2016-07-251-37/+36
| | | | llvm-svn: 276657
* MC] Provide an MCTargetOptions to implementors of MCAsmBackendCtorTy, NFCJoel Jones2016-07-2525-55/+114
| | | | | | | | | | | | | | | Some targets, notably AArch64 for ILP32, have different relocation encodings based upon the ABI. This is an enabling change, so a future patch can use the ABIName from MCTargetOptions to chose which relocations to use. Tested using check-llvm. The corresponding change to clang is in: http://reviews.llvm.org/D16538 Patch by: Joel Jones Differential Revision: https://reviews.llvm.org/D16213 llvm-svn: 276654
* StringSwitch cannot be copied or moved.Jordan Rose2016-07-252-7/+14
| | | | | | | | | | | | ...but most importantly, it cannot be used well with 'auto', because the inferred type is StringSwitch rather than the result type. This is a problem because StringSwitch stores addresses of temporary values rather than copying or moving the value into its own storage. Changing this uncovered the bug in PassBuilder, also in this patch. Clang doesn't seem to have any occurrences of the issue. llvm-svn: 276652
* AVX-512: Fixed [US]INT_TO_FP selection for i1 vectors.Elena Demikhovsky2016-07-252-0/+368
| | | | | | | | It failed with assertion before this patch. Differential Revision: https://reviews.llvm.org/D22735 llvm-svn: 276648
* Remove useless pass from the pipeline in ↵Wei Mi2016-07-251-2/+2
| | | | | | test/Analysis/Dominators/2007-01-14-BreakCritEdges.ll. llvm-svn: 276644
* [Hexagon] Add target feature to generate long callsKrzysztof Parzyszek2016-07-257-29/+146
| | | | llvm-svn: 276638
* [ARM] Improve longMAC codegen testSam Parker2016-07-253-35/+91
| | | | | | | | Added thumb targets and dataflow checks to the longMAC test. Differential Revision: https://reviews.llvm.org/D22684 llvm-svn: 276629
* [mips] Optimize materialization of i64 constantsSimon Dardis2016-07-2514-93/+134
| | | | | | | | | | | | | | | | | Avoid MipsAnalyzeImmediate usage if the constant fits in an 32-bit integer. This allows us to generate the same instructions for the materialization of the same constants regardless the width of their type. Patch by: Vasileios Kalintiris Contributions by: Simon Dardis Reviewers: Daniel Sanders Differential Review: https://reviews.llvm.org/D21689 llvm-svn: 276628
* [ARM] Small refactor of Thumb2 SMLA instsSam Parker2016-07-251-12/+8
| | | | | | | | | Follow up to r276624. Changes bits 22-20 to be parameters to instruction class. Differential Revision: https://reviews.llvm.org/D22562 llvm-svn: 276626
* [ARM] Enable ISel of SMMLS for ARM and Thumb2Sam Parker2016-07-253-7/+68
| | | | | | | | Use ISelDAGToDAG to recognise the SMMLS instruction pattern. Differential Revision: https://reviews.llvm.org/D22562 llvm-svn: 276624
* [AVX512] Add load folding support for the unmasked forms of the FMA ↵Craig Topper2016-07-253-8/+148
| | | | | | instructions. llvm-svn: 276615
* [AVX512] Add some additional patterns so that we can fold broadcast loads in ↵Craig Topper2016-07-252-49/+78
| | | | | | the first argument of an FMADD/FMSUB/FNMADD/FNMSUB/FMADDSUB/FMSUBADD node. Also add patterns to support all combinations of the broadcast input and the preserved input for masked versions. llvm-svn: 276614
* [AVX512] Cleanup FMA operand order in patterns to match the VEX versions and ↵Craig Topper2016-07-254-262/+285
| | | | | | to really be 213, 231, and 132. llvm-svn: 276613
* Cleanup : Reformat PartialInliner.cpp to have current LLVM style conventionsSean Silva2016-07-251-71/+74
| | | | | | | | | | Modify the variable names and code style to be that of modern LLVM. Patch by River Riddle! Differential Revision: https://reviews.llvm.org/D22743 llvm-svn: 276610
* Fix : Partial Inliner requires AssumptionCacheTrackerSean Silva2016-07-253-38/+78
| | | | | | | | | | | The public InlineFunction utility assumes that the passed in InlineFunctionInfo has a valid AssumptionCacheTracker. Patch by River Riddle! Differential Revision: https://reviews.llvm.org/D22706 llvm-svn: 276609
* [InstSimplify] Fold trunc([zs]ext(%V)) -> %VDavid Majnemer2016-07-251-1/+7
| | | | | | Truncates can completely cancel out a zext or sext instruction. llvm-svn: 276604
* [GVNHoist] Merge metadata on hoisted instructions less conservativelyDavid Majnemer2016-07-252-7/+42
| | | | | | | We can combine metadata from multiple instructions intelligently for certain metadata nodes. llvm-svn: 276602
* [GVNHoist] Properly merge alignments when hoistingDavid Majnemer2016-07-252-4/+35
| | | | | | | | | If we two loads of two different alignments, we must use the minimum of the two alignments when hoisting. Same deal for stores. For allocas, use the maximum of the two allocas. llvm-svn: 276601
* [Utils] Simplify combineMetadataDavid Majnemer2016-07-251-3/+3
| | | | | | Use a range-based for loop, no functional change is intended. llvm-svn: 276600
* Untabify.NAKAMURA Takumi2016-07-251-1/+1
| | | | llvm-svn: 276597
* Trailing whitespace.NAKAMURA Takumi2016-07-251-4/+4
| | | | llvm-svn: 276596
* [CommandLine] Use Process::GetEnv instead of _wgetenvDavid Majnemer2016-07-241-21/+4
| | | | | | | | | | Process::GetEnv does the right thing across our platforms. CommandLine.cpp had, more or less, the same logic. Let's remove the duplication. No functional change is intended. llvm-svn: 276572
* [X86][SSE] Added PR27854 tests Simon Pilgrim2016-07-241-0/+48
| | | | llvm-svn: 276571
* [X86] Add shift double tests for PR14593Simon Pilgrim2016-07-241-0/+74
| | | | llvm-svn: 276570
* [X86] Add 'FeatureSlowSHLD' to cpu 'bdver4'Simon Pilgrim2016-07-242-0/+3
| | | | | | As with all AMD CPUs, excavator has poor SHLD/SHRD performance. Also added bdver3 to the test as it was missing. llvm-svn: 276569
* [X86] Add SHRD shift combine testsSimon Pilgrim2016-07-241-0/+36
| | | | llvm-svn: 276568
* [X86] Regenerate shift by parts testsSimon Pilgrim2016-07-241-7/+77
| | | | llvm-svn: 276567
* [X86][SSE] Regenerate shifts testsSimon Pilgrim2016-07-241-72/+245
| | | | llvm-svn: 276566
* [X86][SSE] Regenerate SSE copysign testsSimon Pilgrim2016-07-241-82/+102
| | | | llvm-svn: 276565
* [X86][AVX512VL] Added AVX512VL half2float vector conversions tests to ↵Simon Pilgrim2016-07-241-1756/+4175
| | | | | | demonstrate PR23941 llvm-svn: 276563
* [X86] Make the FMA3 instruction names consistent between VEX and EVEX ↵Craig Topper2016-07-245-411/+387
| | | | | | | | encoded versions. This places the 132/213/231 form number in front of the SS/SD/PS/PD. Move the Y for 256-bit versions to be after the PS/PD. Change the AVX512 scalar forms to include a Z in the their name. This new format should be consistent with the general naming of instructions. llvm-svn: 276559
* [X86] Replace CodeGenOnly VPSRAVW/D/Q_Int instructions with patterns since ↵Craig Topper2016-07-244-8/+87
| | | | | | the operand types exactly match the normal VPSRAVW/D/Q instructions. llvm-svn: 276555
* [Loop Vectorizer] Handling loops FP induction variables.Elena Demikhovsky2016-07-246-56/+561
| | | | | | | | | | | | | | | | Allowed loop vectorization with secondary FP IVs. Like this: float *A; float x = init; for (int i=0; i < N; ++i) { A[i] = x; x -= fp_inc; } The auto-vectorization is possible when the induction binary operator is "fast" or the function has "unsafe" attribute. Differential Revision: https://reviews.llvm.org/D21330 llvm-svn: 276554
* [MSSA] Make EXPENSIVE_CHECKS check more.George Burgess IV2016-07-241-13/+11
| | | | | | | | checkClobberSanity will now be run for all results of `ClobberWalk`, instead of just the crazy phi-optimized ones. This can help us catch cases where our cache is being wonky. llvm-svn: 276553
* [MSSA] Remove useless assert. NFC.George Burgess IV2016-07-241-1/+0
| | | | | | | liveOnEntry is always a MemoryDef; asserting that a MemoryPhi isn't liveOnEntry, while correct, isn't very helpful. :) llvm-svn: 276542
* [X86][SSE] Added float widened broadcast testsSimon Pilgrim2016-07-231-0/+83
| | | | llvm-svn: 276535
* [X86][SSE] Added more widened broadcast testsSimon Pilgrim2016-07-231-5/+368
| | | | | | Added more vXi16 and vXi8 tests llvm-svn: 276534
* Change some more llvm highlighting instances to be text instead. It seems ↵Aaron Ballman2016-07-231-9/+9
| | | | | | | | that Pygment does not handle "token" or "none" yet, and this caused the documentation bot to go red. Patch by Gor Nishanov. llvm-svn: 276532
* Switching the highlighting from llvm to none in an attempt to appease the ↵Aaron Ballman2016-07-231-1/+1
| | | | | | build bot (http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/11984/steps/docs-llvm-html/logs/stdio). llvm-svn: 276531
* Removes a warning about duplicate label named _strings from CommandLine.rst.Aaron Ballman2016-07-231-1/+1
| | | | llvm-svn: 276530
* CODE_OWNERS: Take ownership of the MIPS backendSimon Dardis2016-07-231-4/+4
| | | | | | | As agreed with Daniel Sanders, I'm taking over as code owner for the MIPS backend. llvm-svn: 276529
* [X86] Fix typo in comment.Craig Topper2016-07-231-1/+1
| | | | llvm-svn: 276528
* [X86][SSE] Added tests where we should be trying to widen a load+splat into ↵Simon Pilgrim2016-07-231-0/+149
| | | | | | a broadcast llvm-svn: 276527
* [X86][SSE] Regenerated uitofp <2 x i32> -> <2 x float> conversion testsSimon Pilgrim2016-07-231-16/+51
| | | | | | Demonstrate difference in codegen discussed on PR14760 llvm-svn: 276526
* [InstCombine] allow icmp (bit-manipulation-intrinsic(), C) folds for vectorsSanjay Patel2016-07-233-23/+20
| | | | llvm-svn: 276523
* Fix a GCC error due to this member name also being a type name. ThisChandler Carruth2016-07-231-3/+3
| | | | | | | should fix the build with GCC 4.9 at least. Not sure if this is the right name or fix, but I've followed up on the original commit. llvm-svn: 276522
* [AVX512] Implement commuting support for EVEX encoded FMA3 instructions.Craig Topper2016-07-234-304/+228
| | | | llvm-svn: 276521
* [X86] Make one of the FMA3 commuting methods static. Remove a call to isFMA3 ↵Craig Topper2016-07-232-212/+212
| | | | | | just to get the IsIntrisic flag, instead get it during the first call and pass it along. NFC llvm-svn: 276520
* [X86] Fix switch statement indentation per coding standards.Craig Topper2016-07-231-136/+136
| | | | llvm-svn: 276519
OpenPOWER on IntegriCloud