summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [PM] Rename lookupPass to lookUpPass.Justin Lebar2016-12-031-6/+6
| | | | | | | | | | | | | | Summary: "Lookup" is a noun ("lookup table"), "look up" is a verb ("look up 'table' in the dictionary"). Reviewers: chandlerc Subscribers: silvas, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D27374 llvm-svn: 288598
* [PM] Get rid of an unused variable in AnalysisManager::clear(IRUnitT&).Justin Lebar2016-12-031-3/+0
| | | | | | | | | | Reviewers: chandlerc Subscribers: silvas, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D27373 llvm-svn: 288597
* [PM] Consistently use curly braces rather than std::make_pair in ↵Justin Lebar2016-12-031-4/+4
| | | | | | | | | | | | AnalysisResults.find(). Reviewers: chandlerc Subscribers: silvas, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D27372 llvm-svn: 288596
* [PM] Don't walk the AM's ResultsList if nothing was invalidated.Justin Lebar2016-12-031-14/+15
| | | | | | | | | | | | | | Summary: Previously in AnalysisManager::invalidate(), we would walk the full ResultsList even if we knew that nothing was invalidated. Reviewers: chandlerc Subscribers: silvas, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D27371 llvm-svn: 288595
* [PM] Make AnalysisManager::registerPass take its parameter by universal ↵Justin Lebar2016-12-031-1/+2
| | | | | | | | | | | | | | | | reference. Summary: Previously, we were forcing a copy if you passed an lvalue argument; now we'll take it by reference. Reviewers: chandlerc Subscribers: mehdi_amini, silvas, llvm-commits Differential Revision: https://reviews.llvm.org/D27370 llvm-svn: 288594
* [PM] Make PassManager's constructor explicit.Justin Lebar2016-12-031-1/+2
| | | | | | | | | | Reviewers: chandlerc Subscribers: silvas, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D27369 llvm-svn: 288593
* [PM] Make PreservedAnalyses::preserved take its parameter by const ref.Justin Lebar2016-12-031-1/+1
| | | | | | | | | | | | Summary: Previously we were unnecessarily copying the argument. Reviewers: chandlerc Subscribers: mehdi_amini, silvas, llvm-commits Differential Revision: https://reviews.llvm.org/D27368 llvm-svn: 288592
* [AVX-512] Add many of the VPERM instructions to the load folding table. Move ↵Craig Topper2016-12-033-2/+319
| | | | | | VPERMPDZri to the correct table. llvm-svn: 288591
* AMDGPU: Clean up struct initializersMatt Arsenault2016-12-031-8/+7
| | | | llvm-svn: 288590
* [InstSimplify] add more helper functions for SimplifyICmpInst; NFCISanjay Patel2016-12-031-255/+288
| | | | llvm-svn: 288589
* [InstSimplify] add helper functions for SimplifyICmpInst; NFCISanjay Patel2016-12-031-112/+129
| | | | llvm-svn: 288588
* [AVX-512] Add EVEX VPMADDUBSW and VPMADDWD to the load folding tables.Craig Topper2016-12-033-0/+207
| | | | llvm-svn: 288587
* [InstCombine] change select type to eliminate bitcastsSanjay Patel2016-12-032-13/+82
| | | | | | | | | | | | | | This solves a secondary problem seen in PR6137: https://llvm.org/bugs/show_bug.cgi?id=6137#c6 This is similar to the bitwise logic op fold added with: https://reviews.llvm.org/rL287707 And like that patch, I'm artificially restricting the transform from vector <-> scalar types until we're sure that the backend can handle that. llvm-svn: 288584
* [X86] Fix VEX encoded VPMADDUBSW to not be marked commutable.Craig Topper2016-12-033-8/+10
| | | | | | This was accidentallly broken in r285515 when we started lowering the intrinsic to an ISD node. Should fix PR31241. llvm-svn: 288578
* [X86] Add test cases demonstrating where we incorrectly commute VEX ↵Craig Topper2016-12-032-16/+54
| | | | | | | | VPMADDUSBW due to a bug introduced in r285515. I believe this is the cause of PR31241. llvm-svn: 288577
* Remove stale comment. NFC.Michael Kuperstein2016-12-031-3/+0
| | | | llvm-svn: 288572
* [TTI/CostModel] Correct the way getGEPCost() calls isLegalAddressingMode()Haicheng Wu2016-12-033-15/+211
| | | | | | | | Fix a bug when we call isLegalAddressingMode() from getGEPCost(). Differential Revision: https://reviews.llvm.org/D27357 llvm-svn: 288569
* [sanitizer-coverage] use IRB.SetCurrentDebugLocation after IRB.SetInsertPointKostya Serebryany2016-12-031-1/+1
| | | | llvm-svn: 288568
* testcase only works in a debug buildMatthias Braun2016-12-031-0/+1
| | | | llvm-svn: 288567
* [doc] Add .arcconfig setup to the "how to work with a monorepo" sectionMehdi Amini2016-12-031-0/+11
| | | | llvm-svn: 288562
* AArch64CollectLOH: Rewrite as block-local analysis.Matthias Braun2016-12-035-850/+470
| | | | | | | | | | | | | | | Previously this pass was using up to 5% compile time in some cases which is a bit much for what it is doing. The pass featured a full blown data-flow analysis which in the default configuration was restricted to a single block. This rewrites the pass under the assumption that we only ever work on a single block. This is done in a single pass maintaining a state machine per general purpose register to catch LOH patterns. Differential Revision: https://reviews.llvm.org/D27329 llvm-svn: 288561
* [ppc] Correctly compute the cost of loading 32/64 bit memory into VSRGuozhi Wei2016-12-033-5/+173
| | | | | | | | VSX has instructions lxsiwax/lxsdx that can load 32/64 bit value into VSX register cheaply. That patch makes it known to memory cost model, so the vectorization of the test case in pr30990 is beneficial. Differential Revision: https://reviews.llvm.org/D26713 llvm-svn: 288560
* Support escaping in TrigramIndex.Ivan Krasin2016-12-023-14/+58
| | | | | | | | | | | | | | | | | | Summary: This is a follow up to r288303, where I have introduced TrigramIndex to speed up SpecialCaseList for the cases when all rules are simple wildcards, like *hello*wor.d*. Here, I add support for escaping, so that it's possible to specify rules like *c\+\+abi*. Reviewers: pcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27318 llvm-svn: 288553
* Resubmit "[LibFuzzer] Split FuzzerUtil for Posix and Windows."Zachary Turner2016-12-028-113/+328
| | | | | | | | This resubmits r288529, which was resubmitted because it broke a fuzzer bot. According to kcc@ the test that broke was flakey and it is unlikely to be a result of this patch. llvm-svn: 288549
* [lanai] Custom lowering of SHL_PARTSJacques Pienaar2016-12-023-1/+77
| | | | | | | | | | | | Summary: Implement custom lowering of SHL_PARTS to enable lowering of left shift with larger than 32-bit shifts. Reviewers: eliben, majnemer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27232 llvm-svn: 288541
* [IR] Fix some Clang-tidy modernize-use-equals-delete and Include What You ↵Eugene Zelenko2016-12-026-116/+238
| | | | | | Use warnings; other minor fixes (NFC). llvm-svn: 288540
* Revert "[LibFuzzer] Split FuzzerUtil for Posix and Windows."Zachary Turner2016-12-028-328/+113
| | | | | | | This reverts commit r288529, as it seems to introduce some problems on the Linux bots. llvm-svn: 288533
* [WebAssembly] Fix a compiler warning. NFC.Dan Gohman2016-12-021-1/+1
| | | | | | | Fix a warning about a comparison between signed and unsigned integer expressions. llvm-svn: 288532
* [LibFuzzer] Introduce a portable WeakAlias implementation.Zachary Turner2016-12-022-0/+55
| | | | | | | | | | | | | Windows doesn't really support weak aliases, but with some linker magic we can get something that's pretty close on Windows. This introduces an interface to accessing weakly aliased symbols that will work on any platform. Linker magic changes to come in a separate patch. Patch by Marcos Pividori Differential Revision: https://reviews.llvm.org/D27235 llvm-svn: 288530
* [LibFuzzer] Split FuzzerUtil for Posix and Windows.Zachary Turner2016-12-028-113/+328
| | | | | | | | | | Pave the way for separating out platform specific utility functions into separate files. Patch by Marcos Pividori Differential Revision: https://reviews.llvm.org/D27234 llvm-svn: 288529
* [PGO] Fix PGO use ICE when there are unreachable BBsRong Xu2016-12-024-21/+85
| | | | | | | | | | | | | | For -O0 there might be unreachable BBs, which breaks the assumption that all the BBs have an auxiliary data structure. In this patch, we add another interface called findBBInfo() so that a nullptr can be returned for the unreachable BBs (and the callers can ignore those BBs). This fixes the bug reported https://llvm.org/bugs/show_bug.cgi?id=31209 Differential Revision: https://reviews.llvm.org/D27280 llvm-svn: 288528
* [SystemZ] Support remaining atomic instructionsUlrich Weigand2016-12-0210-0/+722
| | | | | | | | Add assembler support for all atomic instructions that weren't already supported. Some of those could be used to implement codegen for 128-bit atomic operations, but this isn't done here yet. llvm-svn: 288526
* [SystemZ] Support floating-point control register instructionsUlrich Weigand2016-12-0214-11/+480
| | | | | | | | | | Add assembler support for instructions manipulating the FPC. Also add codegen support via the GCC compatibility builtins: __builtin_s390_sfpc __builtin_s390_efpc llvm-svn: 288525
* [SystemZ] Refactor hasSideEffects settingUlrich Weigand2016-12-022-45/+27
| | | | | | | | Move setting of hasSideEffects out of SystemZInstrFormats.td, to allow use of the format classes for instructions where this flag shouldn't be set. NFC. llvm-svn: 288524
* AMDGPU: Implement isCheapAddrSpaceCastMatt Arsenault2016-12-023-2/+134
| | | | llvm-svn: 288523
* [x86] add common check prefix to reduce duplication; NFCSanjay Patel2016-12-021-17/+9
| | | | llvm-svn: 288522
* [LTOs] Allow generation of hotness informationAdam Nemet2016-12-024-0/+146
| | | | | | | | The flag is passed by the clang driver. Differential Revision: https://reviews.llvm.org/D27331 llvm-svn: 288519
* Make LTO opt-remarks tests matching stricterAdam Nemet2016-12-022-26/+26
| | | | | | This ensures that we don't generate the hotness attribute by default. llvm-svn: 288518
* fix check-labelSanjay Patel2016-12-021-1/+1
| | | | llvm-svn: 288517
* [x86] add tests to show missing demanded bits analysis; NFCSanjay Patel2016-12-021-0/+53
| | | | llvm-svn: 288515
* [InstCombine] Add vector urem testsSimon Pilgrim2016-12-021-0/+29
| | | | | | Demonstrate missed opportunity for urem -> and combine for powerof2 or zero non-uniform constant dividers llvm-svn: 288510
* [InstCombine] Regenerate vector srem testsSimon Pilgrim2016-12-021-3/+7
| | | | llvm-svn: 288509
* Revert "[SLP] Fix for PR6246: vectorization for scalar ops on vector elements."Renato Golin2016-12-023-440/+840
| | | | | | | | This reverts commit r288497, as it broke the AArch64 build of Compiler-RT's builtins (twice: once in r288412 and once in r288497). We should investigate this offline. llvm-svn: 288508
* [DAGCombiner] do not fold (fmul (fadd X, 1), Y) -> (fmad X, Y, Y) by defaultNicolai Haehnle2016-12-024-147/+390
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When X = 0 and Y = inf, the original code produces inf, but the transformed code produces nan. So this transform (and its relatives) should only be used when the no-infs-fp-math flag is explicitly enabled. Also disable the transform using fmad (intermediate rounding) when unsafe-math is not enabled, since it can reduce the precision of the result; consider this example with binary floating point numbers with two bits of mantissa: x = 1.01 y = 111 x * (y + 1) = 1.01 * 1000 = 1010 (this is the exact result; no rounding occurs at any step) x * y + x = 1000.11 + 1.01 =r 1000 + 1.01 = 1001.01 =r 1000 (with rounding towards zero) The example relies on rounding towards zero at least in the second step. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98578 Reviewers: RKSimon, tstellarAMD, spatel, arsenm Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D26602 llvm-svn: 288506
* Tidyup code with indentation and clang-format. NFCI.Simon Pilgrim2016-12-021-6/+6
| | | | llvm-svn: 288505
* [Sparc] Fix parsing of double-precision %f18, %f20, and %f22Daniel Cederman2016-12-021-1/+1
| | | | | | | | | | | | Summary: They are currently being parsed as %f14, %f16, and %f18. Reviewers: venkatra, jyknight Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27342 llvm-svn: 288503
* [X86][SSE] Renamed shuffle combine test.Simon Pilgrim2016-12-021-6/+6
| | | | | | We're trying to combine to vpunpckhbw not vpunpckhwd llvm-svn: 288501
* CODE_OWNERS: Take ownership of IR Linker as discussed on llvm-devTeresa Johnson2016-12-021-2/+2
| | | | llvm-svn: 288500
* [X86][SSE] Add support for extracting constant bit data from broadcasted ↵Simon Pilgrim2016-12-024-46/+57
| | | | | | constants llvm-svn: 288499
* [SLP] Fix for PR6246: vectorization for scalar ops on vector elements.Alexey Bataev2016-12-023-840/+440
| | | | | | | | | | | | | | | When trying to vectorize trees that start at insertelement instructions function tryToVectorizeList() uses vectorization factor calculated as MinVecRegSize/ScalarTypeSize. But sometimes it does not work as tree cost for this fixed vectorization factor is too high. Patch tries to improve the situation. It tries different vectorization factors from max(PowerOf2Floor(NumberOfVectorizedValues), MinVecRegSize/ScalarTypeSize) to MinVecRegSize/ScalarTypeSize and tries to choose the best one. Differential Revision: https://reviews.llvm.org/D27215 llvm-svn: 288497
OpenPOWER on IntegriCloud