- Apr 29, 2016
-
-
Piotr Padlewski authored
llvm-svn: 268044
-
Tom Stellard authored
Summary: These instructions can add an immediate offset to the address, like other ds instructions. Reviewers: arsenm Subscribers: arsenm, scchan Differential Revision: http://reviews.llvm.org/D19233 llvm-svn: 268043
-
Daniel Sanders authored
Summary: The portion in MipsAsmParser is responsible for figuring out which expansion to use, while the portion in MipsTargetStreamer is responsible for emitting it. This allows us to remove the call to isIntegratedAssemblerRequired() which is currently ensuring the effect of .cprestore only occurs when writing objects. The small functional change is that the memory offsets are now correctly printed as signed values. Reviewers: sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: http://reviews.llvm.org/D19714 llvm-svn: 268042
-
Daniel Sanders authored
Summary: * Moved all the emit*() helpers to MipsTargetStreamer. * Moved createNop() to MipsTargetStreamer as emitNop() and emitEmptyDelaySlot(). This instruction has been split to distinguish between the 'nop' instruction and the nop used in delay slots which is sometimes a different nop to the 'nop' instruction (e.g. for short delay slots on microMIPS). * Moved createAddu() to MipsTargetStreamer as emitAddu(). * Moved createAppropriateDSLL() to MipsTargetStreamer as emitDSLL(). Reviewers: sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: http://reviews.llvm.org/D19712 llvm-svn: 268041
-
Tobias Grosser authored
llvm-svn: 268038
-
Daniel Sanders authored
Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D19008 llvm-svn: 268036
-
Tobias Grosser authored
This reverts commit r268033 as it breaks some buildbots. llvm-svn: 268035
-
Tobias Grosser authored
With Polly checked into LLVM it was since a long time possible to compile clang/opt/bugpoint with Polly support directly linked in, instead of only providing Polly as a separate loadable module. This commit switches the default from providing Polly as a module to linking Polly into tools, such that it becomes unnecessary to load the Polly module when playing with Polly. Such configuration has shown a lot more convenient for day-to-day Polly use. This change does not impact the default behavior of any tool, if Polly is not explicitly enabled when calling clang/opt/bugpoint Polly does not affect compilation. This change also does not impact normal LLVM/clang checkouts that do not contain Polly. Reviewers: jdoerfert, Meinersbur, sebpop, etherzhhb, zinob, hiraditya Subscribers: pollydev, llvm-commits Differential Revision: http://reviews.llvm.org/D19711 llvm-svn: 268033
-
Simon Pilgrim authored
FIXME: We currently don't support folding constant pshufb shuffle masks containing undef elements. llvm-svn: 268016
-
Nikolay Haustov authored
Summary: The goal is for each operand type to have its own parse function and at the same time share common code for tracking state as different instruction types share operand types (e.g. glc/glc_flat, etc). Introduce parseAMDGPUOperand which can parse any optional operand. DPP and Clamp/OMod have custom handling for now. Sam also suggested to have class hierarchy for operand types instead of table. This can be done in separate change. Remove parseVOP3OptionalOps, parseDS*OptionalOps, parseFlatOptionalOps, parseMubufOptionalOps, parseDPPOptionalOps. Reduce number of definitions of AsmOperand's and MatchClasses' by using common base class. Rename AsmMatcher/InstPrinter methods accordingly. Print immediate type when printing parsed immediate operand. Use 'off' if offset/index register is unused instead of skipping it to make it more readable (also agreed with SP3). Update tests. Reviewers: tstellarAMD, SamWot, artem.tamazov Subscribers: qcolombet, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D19584 llvm-svn: 268015
-
Simon Pilgrim authored
llvm-svn: 268014
-
Zlatko Buljan authored
Differential Revision: http://reviews.llvm.org/D18645 llvm-svn: 268012
-
David Majnemer authored
We neglected to transfer operand bundles for some transforms. These were found via inspection, I'll try to come up with some test cases. llvm-svn: 268011
-
David Majnemer authored
We neglected to transfer operand bundles for some transforms. These were found via inspection, I'll try to come up with some test cases. llvm-svn: 268010
-
David Majnemer authored
We neglected to transfer operand bundles when performing argument promotion. llvm-svn: 268008
-
Adam Nemet authored
llvm-svn: 268007
-
Adam Nemet authored
The option -Rpass=loop-distribute now reports the loops that were distributed. llvm-svn: 268006
-
Adam Nemet authored
Next patch will add another use for 'Function' inside the class. llvm-svn: 268005
-
David Majnemer authored
SLPVectorizing a call site should result in further propagation of its bundles. llvm-svn: 268004
-
David Majnemer authored
Also, do not crash when calculating a cost model for loop-invariant token values. llvm-svn: 268003
-
Matt Arsenault authored
This was being treated the same as private, which has an immediate offset. For unknown, it probably means it's for a computation not actually being used for accessing memory, so it should not have a nontrivial addressing mode. llvm-svn: 268002
-
Matt Arsenault authored
Unreachable blocks may not be in the dominator tree, so don't crash on them. llvm-svn: 268001
-
David Majnemer authored
We neglected to transfer operand bundles when performing argument promotion. This fixes PR27568. llvm-svn: 267986
-
Craig Topper authored
[X86] Remove unnecessary header file containing a small class. It was only included in one place. Just define the class directly in the cpp file. NFC llvm-svn: 267985
-
Craig Topper authored
[X86] Include X86MCTargetDesc.h directly in X86Disassembler.cpp instead of duplicating parts of it. NFC llvm-svn: 267984
-
Michael Zolotukhin authored
We don't preserve AAResults, because, for one, we don't preserve SCEV-AA. That fixes PR25281. llvm-svn: 267980
-
Sanjoy Das authored
The pass itself was removed in rL247167. llvm-svn: 267978
-
Matthias Braun authored
In case of missing live intervals for a physical registers getLanesWithProperty() would report 0 which was not a safe default in all situations. Add a parameter to pass in a safe default. No testcase because in-tree targets do not skip computing register unit live intervals. Also cleanup the getXXX() functions to not perform the RequireLiveIntervals checks anymore so we do not even need to return safe defaults. llvm-svn: 267977
-
Matthias Braun authored
With the DetectDeadLanes pass in place we cannot run into situations anymore where defs suddenly become dead. Also add a missing check so we do not try to add an undef flag to a physreg (found by visual inspection, no failing test). llvm-svn: 267976
-
Ivan Krasin authored
Reviewers: eugenis Differential Revision: http://reviews.llvm.org/D19706 llvm-svn: 267974
-
Vedant Kumar authored
llvm-svn: 267971
-
Hal Finkel authored
We need to keep loop hints from the original loop on the new vector loop. Failure to do this meant that, for example: void foo(int *b) { #pragma clang loop unroll(disable) for (int i = 0; i < 16; ++i) b[i] = 1; } this loop would be unrolled. Why? Because we'd vectorize it, thus dropping the hints that unrolling should be disabled, and then we'd unroll it. llvm-svn: 267970
-
Evgeniy Stepanov authored
This handles SSE and SSE2 cmp_* and comiXX_* intrinsics. llvm-svn: 267966
-
David Majnemer authored
We didn't check that the file was large enough to hold a super block. llvm-svn: 267965
-
Craig Topper authored
[X86] Use nested switches to vary the operand to helper functions that were previously called in multiple cases. This seems to help the inliner reduce code. NFC llvm-svn: 267964
-
David Majnemer authored
We lost the ability to report errors, bring it back. Also, correctly validate the block size. llvm-svn: 267955
-
Matthias Braun authored
This requirement was a huge hack to keep LiveVariables alive because it was optionally used by TwoAddressInstructionPass and PHIElimination. However we have AnalysisUsage::addUsedIfAvailable() which we can use in those passes. This re-applies r260806 with LiveVariables manually added to PowerPC to hopefully not break the stage 2 bots this time. llvm-svn: 267954
-
David Majnemer authored
A bug was introduced when the code was refactored which resulted in a bad memory access. This fixes PR27565. llvm-svn: 267953
-
Adam Nemet authored
I closely followed the precedents set by the vectorizer: * With -Rpass-missed, the loop is reported with further details pointing to -Rpass--analysis. * -Rpass-analysis reports the details why distribution has failed. * Regardless of -Rpass*, when distribution fails for a loop where distribution was forced with the pragma, a warning is produced according to -Wpass-failed. In this case the analysis info is also printed even without -Rpass-analysis. llvm-svn: 267952
-
Adam Nemet authored
The next patch will start using these for -Rpass-analysis so they won't be internal-only anymore. Move the 'Skipping; ' prefix that some of the message are using into the 'fail' function. We don't want to include this prefix in the -Rpass-analysis report. llvm-svn: 267951
-