- Nov 08, 2016
-
-
Michael Kuperstein authored
llvm-svn: 286269
-
Ulrich Weigand authored
Define a couple of additional semantic classes and use them throughout the .td files to make them more consistent and more easily readable. No functional change. llvm-svn: 286268
-
Ulrich Weigand authored
This changes the InstRR (and related) patterns to no longer automatically add an "r" at the end of the mnemonic. This makes the .td files more obviously understandable, and also allows using the patterns for those few instructions that do not follow the *r scheme. Also add some more sub-formats of the RRF format class, to match operand names and sequence from the PoP better. No functional change. llvm-svn: 286267
-
Ulrich Weigand authored
Now that we've added instruction format subclasses like InstRIb, it makes sense to rename the old InstRI to InstRIa. Similar for InstRX, InstRXY, InstRS, InstRSY, and InstSS. No functional change. llvm-svn: 286266
-
Nirav Dave authored
Reviewers: t.p.northover, rengolin Subscribers: llvm-commits, aemerson Differential Revision: https://reviews.llvm.org/D26309 llvm-svn: 286265
-
Daniel Jasper authored
This reverts commit r286262. I accidentally committed it without all of the changes. llvm-svn: 286264
-
Ulrich Weigand authored
Rework patterns for branches, call & return instructions, compare-and-branch, compare-and-trap, and conditional move instructions. In particular, simplify creation of patterns for the extended opcodes of instructions that take a CC mask. Also, use semantical instruction classes for all the instructions instead of open-coding them in SystemZInstrInfo.td. Adds a couple of the basic branch instructions (that are unused for codegen) for the assembler/disassembler. llvm-svn: 286263
-
Daniel Jasper authored
llvm-svn: 286262
-
Rafael Espindola authored
Avoids having to skip them multiple times. llvm-svn: 286261
-
Piotr Padlewski authored
llvm-svn: 286260
-
Wei Mi authored
About when we should move a vreg from CurrentNewVRegs to NewVRegs, if the vreg in CurrentNewVRegs was added into RecoloringCandidate and was evicted, it shouldn't be added to NewVRegs because its physical register will be restored at the end of tryLastChanceRecoloring after the recoloring failed. If the vreg in CurrentNewVRegs was not in RecoloringCandidate, i.e. it was evicted in selectOrSplitImpl inside tryRecoloringCandidates, its physical register will not be restored even if the recoloring failed. In that case, we need to add the vreg to NewVRegs. Same as r281783, the problem was seen on out-of-tree target and we didn't have a test case that reproduce the problem with in-tree targets. llvm-svn: 286259
-
Chris Bieneman authored
Oops! llvm-svn: 286258
-
Alexander Kornienko authored
llvm-svn: 286257
-
Sanjay Patel authored
llvm-svn: 286256
-
Sanjay Patel authored
llvm-svn: 286255
-
Chris Bieneman authored
Not sure why this didn't explode more massively, but this should fix the issue with the non-framework tests. llvm-svn: 286254
-
Tim Northover authored
llvm-svn: 286253
-
Anton Korobeynikov authored
Summary: In addition, the branch instructions will have proper BB destinations, not offsets, like before. Reviewers: asl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D23718 llvm-svn: 286252
-
Chad Rosier authored
llvm-svn: 286250
-
Sanjay Patel authored
llvm-svn: 286249
-
Eugene Leviant authored
llvm-svn: 286247
-
Dehao Chen authored
From experiments, discriminator is rarely greater than 127. Here we enforce it to be no greater than 127 so that it will always fit in 1 byte. llvm-svn: 286245
-
Eugene Leviant authored
Differential revision: https://reviews.llvm.org/D26397 llvm-svn: 286244
-
Daniel Jasper authored
In Format, remove the reformat() and clean() functions taking a SourceManager and a FileID. Keep the versions taking StringRef Code. - there was duplicated functionality - the FileID versions were harder to use - the clean() version is dead code anyways Patch by Krasimir Georgiev. Thank you. llvm-svn: 286243
-
Rafael Espindola authored
llvm-svn: 286242
-
Simon Pilgrim authored
llvm-svn: 286241
-
George Rimar authored
Thanks to Malcolm Parsons who pointed on that. llvm-svn: 286239
-
Simon Pilgrim authored
Fixed an issue with vector usage of TargetLowering::isConstTrueVal / TargetLowering::isConstFalseVal boolean result matching. The comment said we shouldn't handle constant splat vectors with undef elements. But the the actual code was returning false if the build vector contained no undef elements.... This patch now ignores the number of undefs (getConstantSplatNode will return null if the build vector is all undefs). The change has also unearthed a couple of missed opportunities in AVX512 comparison code that will need to be addressed. Differential Revision: https://reviews.llvm.org/D26031 llvm-svn: 286238
-
Rafael Espindola authored
We can just use a regular InputSection. llvm-svn: 286237
-
Pablo Barrio authored
Summary: These are good candidates for jump threading. This enables later opts (such as InstCombine) to combine instructions from the selects with instructions out of the selects. SimplifyCFG will fold the select again if unfolding wasn't worth it. Patch by James Molloy and Pablo Barrio. Reviewers: rengolin, haicheng, sebpop Subscribers: jojo, jmolloy, llvm-commits Differential Revision: https://reviews.llvm.org/D26391 llvm-svn: 286236
-
Rafael Espindola authored
This reverts commit r286100. This saves 8 bytes of every InputSection. llvm-svn: 286235
-
Rafael Espindola authored
With the current infrastructure it can be just an ordinary InputSection like the real .bss sections. llvm-svn: 286234
-
Simon Pilgrim authored
This patch avoids scalarization of CTLZ by instead expanding to use CTPOP (ref: "Hacker's Delight") when the necessary operations are available. This also adds the necessary cost models for X86 SSE2 targets (the main beneficiary) to ensure vectorization only happens when its useful. Differential Revision: https://reviews.llvm.org/D25910 llvm-svn: 286233
-
Rafael Espindola authored
Don't pass a reference to a StringRef and use a range loop. llvm-svn: 286232
-
Roger Ferrer Ibanez authored
Under -enable-unsafe-fp-math, SELECT_CC lowering in AArch64 transforms floating point comparisons of the form "a == 0.0 ? 0.0 : x" to "a == 0.0 ? a : x". But it incorrectly assumes that 'x' and 'a' have the same type which can lead to a wrong CSEL node that crashes later due to nonsensical copies. Differential Revision: https://reviews.llvm.org/D26394 llvm-svn: 286231
-
Simon Dardis authored
llvm-svn: 286230
-
Ayman Musa authored
[X86][AVX512][Clang] Add support for mask_{move|store|load}_s{s/d} and int2mask/mask2int intrinsics. Differential Revision: https://reviews.llvm.org/D26021 llvm-svn: 286229
-
Kirill Bobyrev authored
-Start using argparse instead of mimicking CLI parsing. -PEPify the code. -Decrease the number of imports by slightly cleaning up the script. Reviewers: alexfh Differential Revision: https://reviews.llvm.org/D25074 llvm-svn: 286228
-
Amara Emerson authored
This additional information can be used to improve the locations when generating remarks for loops. Patch by Florian Hahn. Differential Revision: https://reviews.llvm.org/D25763 llvm-svn: 286227
-
Eugene Leviant authored
llvm-svn: 286226
-