summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [analyzer] [NFC] Yet another minor cleanup of RetainCountCheckerGeorge Karpenkov2019-01-162-33/+18
| | | | | | Differential Revision: https://reviews.llvm.org/D56744 llvm-svn: 351393
* [PGO] Make pgo related options in opt more consistent.Wei Mi2019-01-167-39/+49
| | | | | | | | | | | | | | | Currently we have pgo options defined in PassManagerBuilder.cpp only for instrument pgo, but not for sample pgo. We also have pgo options defined in NewPMDriver.cpp in opt only for new pass manager and for all kinds of pgo. They have some inconsistency. To make the options more consistent and make tests writing easier, the patch let old pass manager to share the same pgo options with new pass manager in opt, and removes the options in PassManagerBuilder.cpp. Differential Revision: https://reviews.llvm.org/D56749 llvm-svn: 351392
* Recommit r351160 "[X86] Make _xgetbv/_xsetbv on non-windows platforms"Craig Topper2019-01-169-16/+160
| | | | | | V8 has been fixed now. llvm-svn: 351391
* [X86] Add versions of the avx512 gather intrinsics that take the mask as a ↵Craig Topper2019-01-163-32/+140
| | | | | | | | | | vXi1 vector instead of a scalar We need to custom handle these so we can turn the scalar mask into a vXi1 vector. Differential Revision: https://reviews.llvm.org/D56530 llvm-svn: 351390
* [X86] Remove GCCBuiltin from deprecated gather builtins in preparation for ↵Craig Topper2019-01-161-24/+8
| | | | | | custom handling in clang. llvm-svn: 351389
* [WebAssembly] Remove expected failure from known_gcc_test_failures.txt. NFC.Sam Clegg2019-01-161-1/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D56809 llvm-svn: 351388
* [NFC] Factor out + document build requirementsJF Bastien2019-01-162-41/+60
| | | | | | | | | | Summary: This change factors out compiler checking / warning, and documents LLVM_FORCE_USE_OLD_TOOLCHAIN. It doesn't introduce any functional changes nor policy changes, these will come late. Subscribers: mgorny, jkorous, dexonsmith, llvm-commits Differential Revision: https://reviews.llvm.org/D56799 llvm-svn: 351387
* [TSan] Fix comment. NFC.Philip Pfaffe2019-01-161-1/+1
| | | | llvm-svn: 351386
* XFAIL test on WindowsAdrian Prantl2019-01-161-1/+2
| | | | | | http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/677/steps/test/logs/stdio llvm-svn: 351385
* [X86] Sink complex MCU CC helper to .cpp file from .h file, NFCReid Kleckner2019-01-162-57/+59
| | | | llvm-svn: 351384
* Fix libc++ mac driver test to pass on WindowsReid Kleckner2019-01-161-4/+3
| | | | | | | There is a substitution for 'clang-check' to absolutize it, so the '$(which clang-check)' is unnecessary. llvm-svn: 351383
* PR40329: [adl] Fix determination of associated classes when searching aRichard Smith2019-01-163-18/+66
| | | | | | | | | | | | | | | | | | | | | | | member enum and then its enclosing class. There are situations where ADL will collect a class but not the complete set of associated classes / namespaces of that class. When that happened, and we later tried to collect those associated classes / namespaces, we would previously short-circuit the lookup and not find them. Eg, for: struct A : B { enum E; }; if we first looked for associated classes/namespaces of A::E, we'd find only A. But if we then tried to also collect associated classes/namespaces of A (which should include the base class B), we would not add B because we had already visited A. This also fixes a minor issue where we would fail to collect associated classes from an overloaded class member access expression naming a static member function. llvm-svn: 351382
* [X86] Add X86ISD::VSHLV and X86ISD::VSRLV nodes for psllv and psrlvCraig Topper2019-01-1610-164/+347
| | | | | | | | | | | | | | Previously we used ISD::SHL and ISD::SRL to represent these in SelectionDAG. ISD::SHL/SRL interpret an out of range shift amount as undefined behavior and will constant fold to undef. While the intrinsics are defined to return 0 for out of range shift amounts. A previous patch added a special node for VPSRAV to produce all sign bits. This was previously believed safe because undefs frequently get turned into 0 either from the constant pool or a desire to not have a false register dependency. But undef is treated specially in some optimizations. For example, its ignored in detection of vector splats. So if the ISD::SHL/SRL can be constant folded and all of the elements with in bounds shift amounts are the same, we might fold it to single element broadcast from the constant pool. This would not put 0s in the elements with out of bounds shift amounts. We do have an existing InstCombine optimization to use shl/lshr when the shift amounts are all constant and in bounds. That should prevent some loss of constant folding from this change. Patch by zhutianyang and Craig Topper Differential Revision: https://reviews.llvm.org/D56695 llvm-svn: 351381
* [X86] Use X86ISD::BLENDV for blendv intrinsics. Replace vselect with blendv ↵Craig Topper2019-01-166-89/+87
| | | | | | | | | | | | just before isel table lookup. Remove vselect isel patterns. This cleans up the duplication we have with both intrinsic isel patterns and vselect isel patterns. This should also allow the intrinsics to get SimplifyDemandedBits support for the condition. I've switched the canonical pattern in isel to use the X86ISD::BLENDV node instead of VSELECT. Since it always seemed weird to move from BLENDV with its relaxed rules on condition bits to VSELECT which has strict rules about all bits of the condition element being the same. Its more correct to go from VSELECT to BLENDV. Differential Revision: https://reviews.llvm.org/D56771 llvm-svn: 351380
* AMDGPU: Adjust the chain for loads writing to the HI part of a register.Changpeng Fang2019-01-162-0/+186
| | | | | | | | | | | | | | Summary: For these loads that write to the HI part of a register, we should chain them to the op that writes to the LO part of the register to maintain the appropriate order. Reviewers: rampitec, arsenm Differential Revision: https://reviews.llvm.org/D56454 llvm-svn: 351379
* [X86] Add a one use check to the setcc inversion code in ↵Craig Topper2019-01-162-16/+13
| | | | | | | | | | combineVSelectWithAllOnesOrZeros If we're going to generate a new inverted setcc, we should make sure we will be able to remove the old setcc. Differential Revision: https://reviews.llvm.org/D56765 llvm-svn: 351378
* [X86] Add test case for D56765. NFCCraig Topper2019-01-161-0/+36
| | | | llvm-svn: 351377
* Change TypeSystem::GetBitSize() to return an optional result.Adrian Prantl2019-01-169-34/+86
| | | | | | | | | | | | This patch changes the behavior when printing C++ function references: where we previously would get a <could not determine size>, there is now a <no summary available>. It's not clear to me whether this is a bug or an omission, but it's one step further than LLDB previously got. Differential Revision: https://reviews.llvm.org/D56798 llvm-svn: 351376
* [X86] Add additional saturating add/sub vector tests; NFCNikita Popov2019-01-163-581/+7174
| | | | | | | Additional tests for vNi32 and vNi64. I've added these for usub.sat before, this covers uadd.sat, ssub.sat and sadd.sat. llvm-svn: 351375
* Fix most of LLVM's tests with LLVM_ENABLE_PIC=OFFNico Weber2019-01-161-1/+0
| | | | | | | | | | | | | | Lots of tests rely on llvm-lto being present, but LLVM_ENABLE_PIC=OFF currently disables building that executable. There's no reason for not building llvm-lto with LLVM_ENABLE_PIC=OFF so just build it. r191042 moved it into a "if (!WIN)" block at the time, and then 211852 made that "if(NOT CYGWIN AND LLVM_ENABLE_PIC)" -- but that's only needed for LTO (the ld64 plugin), not for the llvm-lto binary. Differential Revision: https://reviews.llvm.org/D56801 llvm-svn: 351374
* compiler-rt tests: Unbreak cmake with LLVM_ENABLE_PIC=OFF on macNico Weber2019-01-162-18/+22
| | | | | | | | The LTO target doesn't exist with LLVM_ENABLE_PIC turned off. Differential Revision: https://reviews.llvm.org/D56800 llvm-svn: 351373
* [OpenMP] Add omp_pause_resource* APIJonathan Peyton2019-01-1619-10/+456
| | | | | | | | | | | | Add omp_pause_resource and omp_pause_resource_all API and enum, plus stub for internal implementation. Implemented callable helper function to do local pause, and added basic functionality for hard and soft pause. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D55078 llvm-svn: 351372
* [Fixed Point Arithmetic] Fixed Point SubtractionLeonard Chan2019-01-162-11/+454
| | | | | | | | | This patch covers subtraction between fixed point types and other fixed point types or integers, using the conversion rules described in 4.1.4 of N1169. Differential Revision: https://reviews.llvm.org/D55844 llvm-svn: 351371
* [COFF, ARM64] Implement support for SEH extensions __try/__except/__finallyMandeep Singh Grang2019-01-1610-9/+191
| | | | | | | | | | | | | | | | | Summary: This patch supports MS SEH extensions __try/__except/__finally. The intrinsics localescape and localrecover are responsible for communicating escaped static allocas from the try block to the handler. We need to preserve frame pointers for SEH. So we create a new function/property HasLocalEscape. Reviewers: rnk, compnerd, mstorsjo, TomTan, efriedma, ssijaric Reviewed By: rnk, efriedma Subscribers: smeenai, jrmuizel, alex, majnemer, ssijaric, ehsan, dmajor, kristina, javed.absar, kristof.beyls, chrib, llvm-commits Differential Revision: https://reviews.llvm.org/D53540 llvm-svn: 351370
* [Hexagon] Do not promote terminator instructions in Hexagon loop idiomsKrzysztof Parzyszek2019-01-161-1/+3
| | | | llvm-svn: 351369
* [Fixed Point Arithmetic] Add APFixedPoint to APValueLeonard Chan2019-01-169-22/+99
| | | | | | | | This adds APFixedPoint to the union of values that can be represented with an APValue. Differential Revision: https://reviews.llvm.org/D56746 llvm-svn: 351368
* gn build: Add headers to compiler-rt build files.Peter Collingbourne2019-01-165-1/+104
| | | | | | Also fix sort order in llvm/lib/CodeGen/GlobalISel/BUILD.gn. llvm-svn: 351367
* [X86][BtVer2] Update latency of horizontal operations.Andrea Di Biagio2019-01-1612-159/+161
| | | | | | | | | | | | | | | | On Jaguar, horizontal adds/subs have local forwarding disable. That means, we pay a compulsory extra cycle of write-back stage, and the value is not available until the end of that stage. This patch changes the latency of horizontal operations by adding an extra cycle. With this patch, latency numbers now match what is reported by perf. I plan to send another patch to also 'fix' the latency of shuffle operations (on Jaguar, local forwarding is disabled for vector shuffles too). Differential Revision: https://reviews.llvm.org/D56777 llvm-svn: 351366
* [X86] getFauxShuffleMask - bail for non-byte aligned shuffle typesSimon Pilgrim2019-01-161-2/+2
| | | | | | | | Remove the existing assertion and just return false for unexpected shuffle value types (<X x i1> mainly....). Found while updating combineX86ShufflesRecursively to run within SimplifyDemandedVectorElts/SimplifyDemandedBits. llvm-svn: 351365
* [Fixed Point Arithmetic] Fixed Point AdditionLeonard Chan2019-01-169-20/+667
| | | | | | | | | | | | | | | | | | This patch covers addition between fixed point types and other fixed point types or integers, using the conversion rules described in 4.1.4 of N1169. Usual arithmetic rules do not apply to binary operations when one of the operands is a fixed point type, and the result of the operation must be calculated with the full precision of the operands, so we should not perform any casting to a common type. This patch does not include constant expression evaluation for addition of fixed point types. That will be addressed in another patch since I think this one is already big enough. Differential Revision: https://reviews.llvm.org/D53738 llvm-svn: 351364
* Make compiler-rt CMakeLists.txt formatting a bit more like LLVM's usual ↵Nico Weber2019-01-164-13/+25
| | | | | | formatting llvm-svn: 351363
* [X86] Regenerate testSimon Pilgrim2019-01-161-3/+3
| | | | | | Split check-prefixes to support a future commit llvm-svn: 351362
* [elfabi] Add support for reading DT_SONAME from binariesArmando Montanez2019-01-1612-20/+537
| | | | | | | | | | | | | | This change gives the llvm-elfabi tool the ability to read DT_SONAME from a binary ELF file into an ELFStub. Added: - DynamicEntries struct for storing dynamic entries that are relevant to elfabi. - terminatedSubstr() retrieves a null-terminated substring from a StringRef. - appendToError() appends a string to an error, allowing more specific error messages. Differential Revision: https://reviews.llvm.org/D55629 llvm-svn: 351361
* Add a REQUIRES: darwin line for a mac test.Jeremy Morse2019-01-161-1/+1
| | | | | | | | This test, apparently for macs, fails on Windows as lit can't emulate the shell subprocess $(which...) correctly. Some other netbsd and linux buildbots also fail here. Limit to macs as a temporary workaround. llvm-svn: 351360
* Fix dir-separator-no-comp-dir-relative-name.s test added in r351328Pavel Labath2019-01-161-6/+7
| | | | | | | | | In this test we have deliberately removed all information which may hint at the correct path style, so we cannot assert that lldb uses a particular style. Instead, we should just check that it does something vaguely reasonable. llvm-svn: 351359
* [DebugInfo] Allow creation of DBG_VALUEs in blocks where the operand is not usedJeremy Morse2019-01-162-5/+66
| | | | | | | | | | | | | dbg.value intrinsics can appear in blocks where their operand is not used, meaning the operand never receives an SDNode, and thus no DBG_VALUE will be created. Get around this by looking to see whether the operand has already been allocated a virtual register. This allows dbg.values of Phi node and Values that are used across basic blocks to successfully be translated into DBG_VALUEs. Differential Revision: https://reviews.llvm.org/D56678 llvm-svn: 351358
* Remove misleading line about git's lack of revision numbers.Erich Keane2019-01-161-3/+1
| | | | | Change-Id: I8a22cb4b4bef9bceee1f43381435d664c2cfd770 llvm-svn: 351357
* [llvm-readobj] Set correct offset when dumping hex section output.Sid Manning2019-01-162-1/+7
| | | | | | Differential Revision: https://reviews.llvm.org/D56369 llvm-svn: 351356
* Added test cases for dumping variadic-like functions; NFC.Aaron Ballman2019-01-163-0/+26
| | | | llvm-svn: 351355
* [x86] add tests for extracted scalar casts (PR39974); NFCSanjay Patel2019-01-161-0/+205
| | | | | | https://bugs.llvm.org/show_bug.cgi?id=39974 llvm-svn: 351354
* Revert "Teach the default symbol vendor to respect ↵Pavel Labath2019-01-164-82/+5
| | | | | | | | module.GetSymbolFileFileSpec()" This reverts commit r351330 due to failures on MacOS bots. llvm-svn: 351353
* [X86] Add combineX86ShufflesRecursively helper. NFCI.Simon Pilgrim2019-01-161-23/+15
| | | | | | | | | | combineX86ShufflesRecursively is pretty cumbersome with a lot of arguments that only matter later in recursion. This commit adds a wrapper version that only takes the initial root Op to simplify calls that don't need to worry about these. An early, cleanup step towards merging combineX86ShufflesRecursively into SimplifyDemandedVectorElts/SimplifyDemandedBits. llvm-svn: 351352
* AMDGPU: Add llvm.amdgcn.ds.ordered.add & swapMarek Olsak2019-01-1615-11/+278
| | | | | | | | | | Reviewers: arsenm, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D52944 llvm-svn: 351351
* Added a test case for dumping blocks that capture 'this'; NFC.Aaron Ballman2019-01-161-0/+17
| | | | llvm-svn: 351350
* [SLP] Fix PR40310: The reduction nodes should stay scalar.Alexey Bataev2019-01-163-99/+188
| | | | | | | | | | | | | | | | | Summary: Sometimes the SLP vectorizer tries to vectorize the horizontal reduction nodes during regular vectorization. This may happen inside of the loops, when there are some vectorizable PHIs. Patch fixes this by checking if the node is the reduction node and thus it must not be vectorized, it must be gathered. Reviewers: RKSimon, spatel, hfinkel, fedor.sergeev Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D56783 llvm-svn: 351349
* [clang-tidy] Move the macro helper function to a common location; NFCHyrum Wright2019-01-163-22/+24
| | | | | | This is useful for multiple checks. llvm-svn: 351348
* [llvm-nm] Allow --size-sort to print symbols with only Symbol sizeSaurabh Badhwar2019-01-162-2/+13
| | | | | | | | | | | | | | | | | | | Summary: When llvm-nm is passed only the --size-sort option for an object file, there is no output generated. The commit modifies the behavior to print the symbols sorted and their size which is also inline with the output of the GNU nm tool. Signed-off-by: Saurabh Badhwar <sbsaurabhbadhwar9@gmail.com> Reviewers: enderby, rupprecht Reviewed By: rupprecht Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D56063 llvm-svn: 351347
* [x86] lower shuffle of extracts to AVX2 vperm instructionsSanjay Patel2019-01-162-112/+166
| | | | | | | | | | | | | | | | I was trying to prevent shuffle regressions while matching more horizontal ops and ended up here: shuf (extract X, 0), (extract X, 4), Mask --> extract (shuf X, undef, Mask'), 0 The affected tests were added for: https://bugs.llvm.org/show_bug.cgi?id=34380 This patch won't change the examples in the bug report itself, but we should be able to extend this to catch more types. Differential Revision: https://reviews.llvm.org/D56756 llvm-svn: 351346
* [MSP430] Emit a separate section for every interrupt vectorAnton Korobeynikov2019-01-164-1/+41
| | | | | | | | | | | | | | | | | | | | | | | | | This is LLVM part of D56663 Linker scripts shipped by TI require to have every interrupt vector in a separate section with a specific name: SECTIONS { __interrupt_vector_XX : { KEEP (*(__interrupt_vector_XX )) } > VECTXX ... } Follow the requirement emit the section for every vector which contain address of interrupt handler: .section __interrupt_vector_XX,"ax",@progbits .word %isr% Patch by Kristina Bessonova! Differential Revision: https://reviews.llvm.org/D56664 llvm-svn: 351345
* [MSP430] Improve support of 'interrupt' attributeAnton Korobeynikov2019-01-165-18/+56
| | | | | | | | | | | | * Accept as an argument constants in range 0..63 (aligned with TI headers and linker scripts provided with TI GCC toolchain). * Emit function attribute 'interrupt'='xx' instead of aliases (used in the backend to create a section for particular interrupt vector). * Add more diagnostics. Patch by Kristina Bessonova! Differential Revision: https://reviews.llvm.org/D56663 llvm-svn: 351344
OpenPOWER on IntegriCloud