summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
...
* Follow up and fix for rL362064Sjoerd Meijer2019-05-311-1/+2
| | | | | | | | Fix the misleadingly indentation introduced in rL362064. This will get rid of the compiler warning, and it was actually a bug. This change will be used and tested in D62669. llvm-svn: 362211
* [X86] Add VP2INTERSECT instructionsPengfei Wang2019-05-311-0/+20
| | | | | | | | | | Support Intel AVX512 VP2INTERSECT instructions in llvm Patch by Xiang Zhang (xiangzhangllvm) Differential Revision: https://reviews.llvm.org/D62366 llvm-svn: 362188
* [TableGen] AsmMatcher: allow repeated input operandsSjoerd Meijer2019-05-301-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If an assembly instruction has to mention an input operand name twice, for example the MVE VMOV instruction that accesses two lanes of the same vector by writing 'vmov r1, r2, q0[3], q0[1]', then the obvious way to write its AsmString is to include the same operand (here $Qd) twice. But this causes the AsmMatcher generator to omit that instruction completely from the match table, on the basis that the generator isn't clever enough to deal with the duplication. But you need to have _some_ way of dealing with an instruction like this - and in this case, where the mnemonic is shared with many other instructions that the AsmMatcher does handle, it would be very painful to take it out of the AsmMatcher system completely. A nicer way is to add a custom AsmMatchConverter routine, and let that deal with the problem if the autogenerated converter can't. But that doesn't work, because TableGen leaves the instruction out of its table _even_ if you provide a custom converter. Solution: this change, which makes TableGen relax the restriction on duplicated operands in the case where there's a custom converter. Patch by: Simon Tatham Differential Revision: https://reviews.llvm.org/D60695 llvm-svn: 362066
* [TableGen] New default operand "undef_tied_input"Sjoerd Meijer2019-05-303-5/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a new special identifier which you can use as a default in OperandWithDefaultOps. The idea is that you use it for an input operand of an instruction that's tied to an output operand, and its semantics are that (in the default case) the input operand's value is not used at all. The detailed effect is that when instruction selection emits the instruction in the form of a pre-regalloc MachineInstr, it creates an IMPLICIT_DEF node to use as that input. If you're creating an MCInst with explicit register names, then the right handling would be to set the input operand to the same register as the output one (honouring the tie) and to add the 'undef' flag indicating that that register is deemed to acquire a new don't-care definition just before we read it. But I haven't done that in this commit, because there was no need to - no Tablegen backend seems to autogenerate default fields in an MCInst. Patch by: Simon Tatham Differential Revision: https://reviews.llvm.org/D60696 llvm-svn: 362064
* UpdateTestChecks: Lanai triple supportRoman Lebedev2019-05-291-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The assembly structure most resembles the SPARC pattern: ``` .globl f6 ! -- Begin function f6 .p2align 2 .type f6,@function f6: ! @f6 .cfi_startproc ! %bb.0: st %fp, [--%sp] <...> ld -8[%fp], %fp .Lfunc_end0: .size f6, .Lfunc_end0-f6 .cfi_endproc ! -- End function ``` Test being affected by upcoming patch, so regenerate it. Reviewers: RKSimon, jpienaar Reviewed By: RKSimon Subscribers: jyknight, fedor.sergeev, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62545 llvm-svn: 362019
* gn build: Make it possible to build with coverage informationNico Weber2019-05-291-0/+28
| | | | | | Differential Revision: https://reviews.llvm.org/D62508 llvm-svn: 362018
* lit: modernize the lit configuration for the lit testsStella Stamenova2019-05-293-33/+17
| | | | | | | | | | | | | | Summary: This also normalizes the config feature that represents the windows platform to "system-windows" as opposed to having both "windows" and "system-windows" Reviewers: asmith, probinson Subscribers: delcypher, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61798 llvm-svn: 361998
* gn build: Merge r361953Nico Weber2019-05-291-0/+1
| | | | llvm-svn: 361961
* Fix GDB pretty printer for Optional after r354246David Blaikie2019-05-281-2/+1
| | | | llvm-svn: 361870
* gn build: make clangd depend on clang resource headersIlya Biryukov2019-05-281-0/+1
| | | | | | | | | | | | | | | | | | Summary: clangd needs them to function properly, even though they are not strictly required for the build. Reviewers: thakis Reviewed By: thakis Subscribers: MaskRay, jkorous, arphaman, llvm-commits, kadircet Tags: #llvm Differential Revision: https://reviews.llvm.org/D62480 llvm-svn: 361828
* gn build: Merge r361664Nico Weber2019-05-261-0/+1
| | | | llvm-svn: 361722
* Rename clangToolingRefactor to clangToolingRefactoring for consistency with ↵Nico Weber2019-05-251-1/+1
| | | | | | | | | | its directory See "[cfe-dev] The name of clang/lib/Tooling/Refactoring". Differential Revision: https://reviews.llvm.org/D62420 llvm-svn: 361684
* gn build: Merge r361607Nico Weber2019-05-241-0/+1
| | | | llvm-svn: 361640
* UpdateTestChecks: ppc32 triple supportRoman Lebedev2019-05-231-3/+4
| | | | | | | | | | | | | | | | | | Summary: Appears identical to powerpc64{,le}. Regenerate test that is being affected by upcoming patch. Reviewers: RKSimon Reviewed By: RKSimon Subscribers: nemanjai, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62339 llvm-svn: 361543
* [NFC] UpdateTestChecks: asm.py: fix whitespace issueRoman Lebedev2019-05-231-1/+1
| | | | llvm-svn: 361538
* [git] Be more specific when looking for llvm-svnJordan Rupprecht2019-05-231-13/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: A commit may, for some reason, have `llvm-svn:` in it multiple times. It may even take up the whole line and look identical to what gets added automatically when svn commits land in github. To workaround this, make changes to both lookups: 1) When doing the git -> svn lookup, make sure to go through the whole message, and: a) Only look for llvm-svn starting at the beginning of the line (excluding the whitespace that `git log` adds). b) Take the last one (at the end of the commit message), if there are multiple matches. 2) When doing the svn -> git lookup, look through a sizeable but still reasonably small number of git commits (10k, about 4-5 months right now), and: a) Only consider commits with the '^llvm-svn: NNNNNN' we expect, and b) Only consider those that also follow the same git -> svn matching above. (Error if it's not exactly one commit). Reviewers: jyknight Reviewed By: jyknight Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60017 llvm-svn: 361532
* UpdateTestChecks: -march=mips/-march=mipsel is mips triple.Roman Lebedev2019-05-231-0/+1
| | | | | | | | | | | Again, a mixture of march and triple, with majority being march: llvm/test/CodeGen/Mips$ grep -ri triple | wc -l 818 llvm/test/CodeGen/Mips$ grep -ri march | wc -l 1457 llvm-svn: 361521
* gn build: Merge r361418 moreNico Weber2019-05-232-0/+2
| | | | llvm-svn: 361520
* gn build: Merge r361487Nico Weber2019-05-231-0/+1
| | | | llvm-svn: 361498
* gn build: Merge r361418.Peter Collingbourne2019-05-232-0/+2
| | | | llvm-svn: 361449
* FileCheck: Improve FileCheck variable terminologyThomas Preud'homme2019-05-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Terminology introduced by [[#]] blocks is confusing and does not integrate well with existing terminology. First, variables referred by [[]] blocks are called "pattern variables" while the text a CHECK directive needs to match is called a "CHECK pattern". This is inconsistent with variables in [[#]] blocks since [[#]] blocks are also found in CHECK pattern yet those variables are called "numeric variable". Second, the replacing of both [[]] and [[#]] blocks by the value of the variable or expression they contain is represented by a FileCheckPatternSubstitution class. The naming refers to being a substitution in a CHECK pattern but could be wrongly understood as being a substitution of a pattern variable. Third and lastly, comments use "numeric expression" to refer both to the [[#]] blocks as well as to the numeric expressions these blocks contain which get evaluated at match time. This patch solves these confusions by - calling variables in [[]] and [[#]] blocks as string and numeric variables respectively; - referring to [[]] and [[#]] as substitution *blocks*, with the former being a string substitution block and the latter a numeric substitution block; - calling [[]] and [[#]] blocks to be replaced by the value of a variable or expression they contain a substitution (as opposed to definition when these blocks are used to defined a variable), with the former being a string substitution and the latter a numeric substitution; - renaming the FileCheckPatternSubstitution as a FileCheckSubstitution class with FileCheckStringSubstitution and FileCheckNumericSubstitution subclasses; - restricting the use of "numeric expression" to refer to the expression that is evaluated in a numeric substitution. While numeric substitution blocks only support numeric substitutions of numeric expressions at the moment there are plans to augment numeric substitution blocks to support numeric definitions as well as both a numeric definition and numeric substitution in the same numeric substitution block. Reviewers: jhenderson, jdenny, probinson, arichardson Subscribers: hiraditya, arichardson, probinson, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62146 llvm-svn: 361445
* gn build: Fix check-clangd target after r359825Nico Weber2019-05-221-1/+1
| | | | llvm-svn: 361419
* Reland r361148 with a fix to the buildbot failure.Ilya Biryukov2019-05-223-0/+34
| | | | | | | Reverted in r361377. Also reland the '.gn' files (reverted in r361389). llvm-svn: 361391
* gn build: Merge r361377Nico Weber2019-05-223-34/+0
| | | | llvm-svn: 361389
* UpdateTestChecks: sparc march handlingRoman Lebedev2019-05-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Another target that prefers to use `-march` in tests ``` llvm/test/CodeGen/SPARC$ grep -ri mtriple | wc -l 25 llvm/test/CodeGen/SPARC$ grep -ri march | wc -l 165 ``` This test is being affected by a further patch, so regenerate it to better visualize the changes Reviewers: RKSimon, dcederman, gberry Reviewed By: RKSimon Subscribers: jyknight, fedor.sergeev, jrtc27, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62242 llvm-svn: 361381
* [WebAssembly] Add the signature for the new llround builtin functionDan Gohman2019-05-211-0/+17
| | | | | | | | | | | | | r360889 added new llround builtin functions. This patch adds their signatures for the WebAssembly backend. It also adds wasm32 support to utils/update_llc_test_checks.py, since that's the script other targets are using for their testcases for this feature. Differential Revision: https://reviews.llvm.org/D62207 llvm-svn: 361327
* gn build: Merge r361264Nico Weber2019-05-212-2/+2
| | | | llvm-svn: 361267
* gn build: Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`Nico Weber2019-05-211-1/+1
| | | | llvm-svn: 361262
* gn build: Merge r361252Nico Weber2019-05-211-0/+1
| | | | llvm-svn: 361260
* gn build: Merge r361233Nico Weber2019-05-211-0/+2
| | | | llvm-svn: 361259
* Try to fix build with older gccs after r361152Nico Weber2019-05-211-0/+1
| | | | | | Also merge the cmake change there to the gn build. llvm-svn: 361209
* gn build: Merge r361148Nico Weber2019-05-203-0/+34
| | | | llvm-svn: 361191
* [TableGen] - Type comparison LE should be LT or equal.Pete Couperus2019-05-201-11/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D61705 llvm-svn: 361183
* gn build: Merge r361152Nico Weber2019-05-202-0/+2
| | | | llvm-svn: 361153
* gn build: Merge r361117Nico Weber2019-05-201-0/+1
| | | | llvm-svn: 361121
* UpdateTestChecks: fix AMDGPU handlingRoman Lebedev2019-05-182-5/+21
| | | | | | | | | | | | | | | | | | | | | | | Summary: Was looking into supporting `(srl (shl x, c1), c2)` with c1 != c2 in dagcombiner, this test changes, but makes `update_llc_test_checks.py` unhappy. **Many** AMDGPU tests specify `-march`, not `-mtriple`, which results in `update_llc_test_checks.py` defaulting to x86 asm function detection heuristics, which don't work here. I propose to fix this by adding an infrastructure to map from `-march` to `-mtriple`, in the UpdateTestChecks tooling. Reviewers: RKSimon, MaskRay, arsenm Reviewed By: arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62099 llvm-svn: 361101
* UpdateTestChecks: arm64-eabi handlindRoman Lebedev2019-05-181-0/+1
| | | | | | | | | | | | | | | | | | Summary: Was looking into supporting `(srl (shl x, c1), c2)` with c1 != c2 in dagcombiner, this test changes, but makes `update_llc_test_checks.py` unhappy Reviewers: RKSimon Reviewed By: RKSimon Subscribers: javed.absar, kristof.beyls, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62097 llvm-svn: 361100
* gn build: Merge r360993Nico Weber2019-05-171-0/+6
| | | | llvm-svn: 361062
* Revert r361033 "Add a Visit overload for DynTypedNode to ASTNodeTraverser"Nico Weber2019-05-171-1/+0
| | | | | | | | It fails to build on some bots. Also revert follow-up r361055. llvm-svn: 361059
* gn build: Merge r361033Nico Weber2019-05-171-0/+1
| | | | llvm-svn: 361055
* gn build: Merge r360991Nico Weber2019-05-171-0/+6
| | | | llvm-svn: 361053
* Fix GN buildVitaly Buka2019-05-162-0/+3
| | | | llvm-svn: 360829
* gn build: Merge r360671Nico Weber2019-05-151-0/+1
| | | | llvm-svn: 360766
* gn build: Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`Nico Weber2019-05-154-10/+10
| | | | llvm-svn: 360764
* gn build: add Hexagon targetDavid L. Jones2019-05-146-0/+248
| | | | | | Differential Revision: https://reviews.llvm.org/D61819 llvm-svn: 360647
* gn build: add Sparc targetDavid L. Jones2019-05-146-0/+192
| | | | llvm-svn: 360645
* gn build: add Lanai targetDavid L. Jones2019-05-146-0/+190
| | | | llvm-svn: 360644
* [gn] Fix buildVitaly Buka2019-05-133-0/+4
| | | | llvm-svn: 360629
* [AMDGPU] gfx1010 SearchableTableEmitter patch for NSAStanislav Mekhanoshin2019-05-131-1/+1
| | | | | | | | This part was accidentally missing from NSA image support commit. Differential Revision: https://reviews.llvm.org/D61868 llvm-svn: 360623
* Stop defining negative versions of some lit feature keywords:Paul Robinson2019-05-131-9/+8
| | | | | | | | | | | | | | | | | | | zlib/nozlib, asan/not_asan, msan/not_msan, ubsan/not_ubsan. We still have two other ways to express the absence of a feature. First, we have the '!' operator to invert the sense of a keyword. For example, given a feature that depends on zlib being unavailable, its test can say: REQUIRES: !zlib Second, if a test doesn't play well with some features, such as sanitizers, that test can say: UNSUPPORTED: asan, msan The different ways of writing these exclusions both have the same technical effect, but have different implications to the reader. llvm-svn: 360603
OpenPOWER on IntegriCloud