- Jul 05, 2016
-
-
Rafael Espindola authored
llvm-svn: 274574
-
Balaram Makam authored
This reverts commit r259387 because it inserts illegal code after legalization in some backends where i64 OR type is illegal for example. llvm-svn: 274573
-
Simon Pilgrim authored
Only support broadcast from vector register so far - memory folding support will have to wait. llvm-svn: 274572
-
Simon Pilgrim authored
[X86][AVX512] Fixed decoding of permd/permpd variable mask shuffles + enabled them for target shuffle combining Corrected element mask masking to extract the bottom index bits (now matches the perm2 implementation but for unary inputs). llvm-svn: 274571
-
Saleem Abdulrasool authored
Not all code-paths set the relocation model to static for Windows. This currently breaks on Windows ARM with `-mlong-calls` when built with clang. Loosen the assertion to what it was previously. We would ideally ensure that all the configuration sets Windows to static relocation model. llvm-svn: 274570
-
Matt Arsenault authored
This only really matters when the index is non-constant since the constant case already gets taken care of by other combines. llvm-svn: 274569
-
Tim Northover authored
The other use really does only care about the SDNode (it checks the opcode against a whitelist), but bitFieldPlacement can be misled if the node produces multiple results. Patch by Ismail Badawi. llvm-svn: 274567
-
Matt Arsenault authored
Because of the special immediate operand, the constant bus is already used so SGPRs are never useful. r263212 changed the name of the immediate operand, which broke the verifier check for the restriction. llvm-svn: 274564
-
Davide Italiano authored
llvm-svn: 274563
-
Tom Stellard authored
Summary: These have been replaced with TableGen code (except for isConstantLoad, which is still used for R600). The queries were broken for cases where MemOperand was a PseudoSourceValue. Reviewers: arsenm Subscribers: arsenm, kzhuravl, llvm-commits Differential Revision: http://reviews.llvm.org/D21684 llvm-svn: 274561
-
Matthew Simpson authored
This patch also removes the SCEV variants of getStepVector() since they have no uses after the refactoring. Differential Revision: http://reviews.llvm.org/D21903 llvm-svn: 274558
-
Valery Pykhtin authored
[AMDGPU] rename DS_1A1D_Off8_NORET to DS_1A2D_Off8_NORET as ds_write2xx use 2 source registers. NFC. llvm-svn: 274556
-
Simon Pilgrim authored
llvm-svn: 274555
-
Michael Zuckerman authored
Differential Revision: http://reviews.llvm.org/D21789 llvm-svn: 274553
-
Sam Kolton authored
Differential Revision: http://reviews.llvm.org/D21972 llvm-svn: 274551
-
Simon Pilgrim authored
llvm-svn: 274550
-
Daniel Sanders authored
Reviewers: sdardis Subscribers: dsanders, sdardis, llvm-commits Differential Revision: http://reviews.llvm.org/D21986 llvm-svn: 274547
-
John Brawn authored
export_executable_symbols looks though the link libraries of the executable in order to figure out transitive dependencies, but in doing so it assumes that all link libraries are also targets. This is not true as of r273302, so adjust it to check if they actually are targets. llvm-svn: 274546
-
Simon Pilgrim authored
llvm-svn: 274545
-
James Molloy authored
The important thing I was missing was ensuring newly added constants were kept in topological order. Repositioning the node is correct if the constant is newly added (so it has no topological ordering) but wrong if it already existed - positioning it next in the worklist would break the topological ordering. Original commit message: [Thumb] Select a BIC instead of AND if the immediate can be encoded more optimally negated If an immediate is only used in an AND node, it is possible that the immediate can be more optimally materialized when negated. If this is the case, we can negate the immediate and use a BIC instead; int i(int a) { return a & 0xfffffeec; } Used to produce: ldr r1, [CONSTPOOL] ands r0, r1 CONSTPOOL: 0xfffffeec And now produces: movs r1, #255 adds r1, #20 ; Less costly immediate generation bics r0, r1 llvm-svn: 274543
-
Daniel Sanders authored
It turns out that MSVC requires this. llvm-svn: 274538
-
Simon Pilgrim authored
llvm-svn: 274537
-
Daniel Sanders authored
llvm-svn: 274536
-
Nemanja Ivanovic authored
This patch corresponds to review: http://reviews.llvm.org/D20443 It changes the legalization strategy for illegal vector types from integer promotion to widening. This only applies for vectors with elements of width that is a multiple of a byte since we have hardware support for vectors with 1, 2, 3, 8 and 16 byte elements. Integer promotion for vectors is quite expensive on PPC due to the sequence of breaking apart the vector, extending the elements and reconstituting the vector. Two of these operations are expensive. This patch causes between minor and major improvements in performance on most benchmarks. There are very few benchmarks whose performance regresses. These regressions can be handled in a subsequent patch with a DAG combine (similar to how this patch handles int -> fp conversions of illegal vector types). llvm-svn: 274535
-
Simon Pilgrim authored
llvm-svn: 274534
-
Simon Pilgrim authored
llvm-svn: 274533
-
Saleem Abdulrasool authored
llvm-svn: 274529
-
Saleem Abdulrasool authored
Normal archives do not have empty UID/GID fields. However, the Microsoft Import library format is a customized archive (it just uses an alternate symbol index format). When the import library is constructed by lib.exe, the UID and GID fields are left empty. Do not abort on such an input. llvm-svn: 274528
-
Tom Stellard authored
This moves of the r600 logic out of isGlobalLoad() and into the TableGen files. Differential Revision: http://reviews.llvm.org/D21710 llvm-svn: 274527
-
Lang Hames authored
than a const string&. llvm-svn: 274526
-
- Jul 04, 2016
-
-
Craig Topper authored
[IR,X86] Remove some intrinsic prefixes earlier in the auto-upgrade code so we can shorten the length of the comparison strings and avoid repeatedly comparing the common prefix. No functional change intended. llvm-svn: 274522
-
Tom Stellard authored
Summary: The isGlobalLoad() query was returning true for constant address space loads with memory types less than 32-bits, which is wrong. This logic has been replaced with PatFrag in the TableGen files, to provide the same functionality. Reviewers: arsenm Subscribers: arsenm, kzhuravl, llvm-commits Differential Revision: http://reviews.llvm.org/D21696 llvm-svn: 274521
-
Simon Pilgrim authored
llvm-svn: 274520
-
Craig Topper authored
[AVX512] Remove masked VPERMD/VPERMQ/VPERMILPS/VPERMILPD intrinsics. They were autoupgraded to native IR in r274506 and r274506. llvm-svn: 274519
-
Jan Vesely authored
These are printed as part of Fetch clauses. Differential Revision: http://reviews.llvm.org/D21730 llvm-svn: 274517
-
Davide Italiano authored
llvm-svn: 274515
-
James Molloy authored
This reverts commit r274510 - it made green dragon unhappy. llvm-svn: 274512
-
James Molloy authored
We were using DAG->getConstant instead of DAG->getTargetConstant. This meant that we could inadvertently increase the use count of a constant if stars aligned, which it did in this testcase. Increasing the use count of the constant could cause ISel to fall over (because DAGToDAG lowering assumed the constant had only one use!) Original commit message: [Thumb] Select a BIC instead of AND if the immediate can be encoded more optimally negated If an immediate is only used in an AND node, it is possible that the immediate can be more optimally materialized when negated. If this is the case, we can negate the immediate and use a BIC instead; int i(int a) { return a & 0xfffffeec; } Used to produce: ldr r1, [CONSTPOOL] ands r0, r1 CONSTPOOL: 0xfffffeec And now produces: movs r1, #255 adds r1, #20 ; Less costly immediate generation bics r0, r1 llvm-svn: 274510
-
Simon Pilgrim authored
llvm-svn: 274506
-
Simon Pilgrim authored
llvm-svn: 274503
-