summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* [PowerPC] enable optimizeCompareInstr for branch with static branch hintHiroshi Inoue2017-07-271-0/+24
| | | | | | | | | | In optimizeCompareInstr, a compare instruction is eliminated by using a record form instruction if possible. If the branch instruction that uses the result of the compare has a static branch hint, the optimization does not happen. This patch makes this optimization happen regardless of the branch hint by splitting branch hint and branch condition before checking the predicate to identify the possible optimizations. Differential Revision: https://reviews.llvm.org/D35801 llvm-svn: 309255
* Revert "Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things ↵Petr Hosek2017-07-274-171/+0
| | | | | | | | | | started"" This change is failing tests on Windows bots due to permissions. This reverts commit r309249. llvm-svn: 309251
* Reland "[LLVM][llvm-objcopy] Added basic plumbing to get things started"Petr Hosek2017-07-274-0/+171
| | | | | | | | | | | | | | | As discussed on llvm-dev I've implemented the first basic steps towards llvm-objcopy/llvm-objtool (name pending). This change adds the ability to copy (without modification) 64-bit little endian ELF executables that have SHT_PROGBITS, SHT_NOBITS, SHT_NULL and SHT_STRTAB sections. Patch by Jake Ehrlich Differential Revision: https://reviews.llvm.org/D33964 llvm-svn: 309249
* Re-enable libxml2 tests.Eric Beckmann2017-07-271-0/+3
| | | | llvm-svn: 309241
* DebugInfo: Ensure imported entities at the top level of an inlined function ↵David Blaikie2017-07-272-5/+76
| | | | | | | | | | | | | | | | | | | | | | don't cause degenerate concrete definitions Local imported entities at the top level of a subprogram were being handled differently from those in nested scopes - that different handling would cause pseudo concrete out-of-line definitions to be created (but without any of their attributes, nor an abstract_origin) in the case where there was no real concrete definition. These local imported entities also only appeared in the concrete definition where those imported entities in nested scopes appear in all cases (abstract, concrete, and inlined). This change at least makes top level case handle the same as the others - though there's a FIXME to improve this to /only/ emit them into the abstract origin (though this requires more plumbing - like the abstract subprogram and variable handling that must defer population until the end of the unit to discover if there is an abstract origin, or only a standalone concrete definition). llvm-svn: 309237
* See if disabling libxml tests will pass the i686 bot.Eric Beckmann2017-07-261-3/+0
| | | | llvm-svn: 309229
* [AMDGPU] Optimize SI_IF lowering for simple if regionsStanislav Mekhanoshin2017-07-2613-32/+6
| | | | | | | | | | | | | Currently SI_IF results in a s_and_saveexec_b64 followed by s_xor_b64. The xor is used to extract only the changed bits. In case of a simple if region where the only use of that value is in the SI_END_CF to restore the old exec mask, we can omit the xor and perform an or of the exec mask with the original exec value saved by the s_and_saveexec_b64. Differential Revision: https://reviews.llvm.org/D35861 llvm-svn: 309185
* AMDGPU : Widen extending scalar loads to 32-bits.Wei Ding2017-07-262-1/+193
| | | | | | Differential Revision: http://reviews.llvm.org/D35146 llvm-svn: 309178
* [gold] Relax this tests a little more.Davide Italiano2017-07-261-3/+3
| | | | | | Thanks to Peter for the report! llvm-svn: 309176
* [gold] Relax tests to account for difference in layout across versions.Davide Italiano2017-07-262-21/+6
| | | | llvm-svn: 309174
* AMDGPU: Fix using SMRD instructions for argument loads in functionsMatt Arsenault2017-07-261-7/+4
| | | | | | These are not actually uniform values except in kernels. llvm-svn: 309172
* AMDGPU/GlobalISel: Mark 32-bit G_OR as legalTom Stellard2017-07-261-0/+21
| | | | | | | | | | | | Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, igorb, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D35127 llvm-svn: 309165
* Migrate SimplifyLibCalls to new OptimizationRemarkEmitterAdam Nemet2017-07-264-3/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This changes SimplifyLibCalls to use the new OptimizationRemarkEmitter API. In fact, as SimplifyLibCalls is only ever called via InstCombine, (as far as I can tell) the OptimizationRemarkEmitter is added there, and then passed through to SimplifyLibCalls later. I have avoided changing any remark text. This closes PR33787 Patch by Sam Elliott! Reviewers: anemet, davide Reviewed By: anemet Subscribers: davide, mehdi_amini, eraman, fhahn, llvm-commits Differential Revision: https://reviews.llvm.org/D35608 llvm-svn: 309158
* This patch returns proper value to indicate the case when instruction ↵Andrew V. Tischenko2017-07-267-114/+114
| | | | | | | | throughput can't be calculated. Differential revision https://reviews.llvm.org/D35831 llvm-svn: 309156
* Do a better job at emitting prefrabricated skeleton CUs.Adrian Prantl2017-07-263-8/+11
| | | | | | | | | | | | | | | | | | | | This is a better fix than r308708 for the problem introduced in r304020. It restores the skeleton CU testcases modified by that commit to their original form and most importantly ensures that frontend-generated skeleton CUs (such as used to point to Clang modules) come after the regular CUs. This broke for DICompileUnit nodes that don't have any immediate children because they are now constructed lazily instead of the order in which they are listed in !llvm.dbg.cu. After this commit we still don't guarantee that order, but we do guarantee that empty skeletons come last. Shipping versions of LLDB are very sensitive to the ordering of CUs. I'll track a fix for LLDB to be more permissive separately. This fixes a test failure in the LLDB testsuite. rdar://problem/33357252 llvm-svn: 309154
* Diffing against a file that is itself used in the test seems to be a badEric Beckmann2017-07-261-1/+25
| | | | | | idea, because it might get locked down and rendered unopenable. llvm-svn: 309142
* [X86][AVX512] Regenerated and cleaned up extension tests.Simon Pilgrim2017-07-261-184/+184
| | | | llvm-svn: 309139
* [X86] Regenerate setcc testsSimon Pilgrim2017-07-262-6/+9
| | | | llvm-svn: 309138
* [X86][AVX512] Regenerate shuffle tests with broadcast comments.Simon Pilgrim2017-07-262-5/+5
| | | | llvm-svn: 309137
* [X86] Regenerate memset testsSimon Pilgrim2017-07-261-31/+78
| | | | llvm-svn: 309136
* Correctly enable the llvm-mt tests, now that build flags changed.Eric Beckmann2017-07-262-3/+2
| | | | llvm-svn: 309134
* Quote '?' in llvm-rc testReid Kleckner2017-07-261-1/+1
| | | | | | | | | | | | | | | | | | | Summary: Bash interperets the '?' character as matching an arbitrary character. On systems that have a file or directory with exactly one character in their root directory, '/?' gets reinterpreted into that pathname, which fails to match the expected Help text for llvm-rc. This patch quotes the '/?' to avoid that edge case. Reviewers: mnbvmar, ecbeckmann, rnk Reviewed By: rnk Subscribers: dyung, ruiu, llvm-commits Differential Revision: https://reviews.llvm.org/D35852 llvm-svn: 309133
* [X86] Add combineBT test failure because bits have multiple uses.Simon Pilgrim2017-07-261-0/+64
| | | | llvm-svn: 309124
* Make new PM honor -fdebug-info-for-profilingDehao Chen2017-07-261-0/+3
| | | | | | | | | | | | | | Summary: The new PM needs to invoke add-discriminator pass when building with -fdebug-info-for-profiling. Reviewers: chandlerc, davidxl Reviewed By: chandlerc Subscribers: sanjoy, llvm-commits Differential Revision: https://reviews.llvm.org/D35744 llvm-svn: 309121
* Revert r309094: [globalisel][tablegen] Fuse the generated tables together.Daniel Sanders2017-07-261-35/+165
| | | | | | | | The ARM bots have started failing and while this patch should be an improvement for these bots, it's also the only suspect in the blamelist. Reverting while Diana and I investigate the problem. llvm-svn: 309111
* DAGCombiner: Extend reduceBuildVecToTrunc to handle non-zero offsetZvi Rackover2017-07-263-1136/+259
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Adding support for combining power2-strided build_vector's where the first build_vectori's operand is extracted from a non-zero index. Example: v4i32 build_vector((extract_elt V, 1), (extract_elt V, 3), (extract_elt V, 5), (extract_elt V, 7)) --> v4i32 truncate (bitcast (shuffle<1,u,3,u,5,u,7,u> V, u) to v4i64) Reviewers: delena, RKSimon, guyblank Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35700 llvm-svn: 309108
* [X86] Regenerated BT testsSimon Pilgrim2017-07-262-304/+646
| | | | | | Test on 32/64 bit targets where appropriate llvm-svn: 309107
* [COFF, ARM64] Fix symbol offsets in ADRP/ADD/LDR/STR relocationsMartin Storsjo2017-07-262-2/+20
| | | | | | | | | | | | | | | | | | | | | | | In COFF, a symbol offset can't be stored in the relocation (as is done in ELF or MachO), but is stored as the immediate in the instruction itself. The immediate in the ADRP thus is the symbol offset in bytes, not in pages. For the PAGEOFFSET_12A/L relocations, ignore any offset outside of the lowest 12 bits; they won't have any effect on the ADD/LDR/STR instruction itself but only on the associated ADRP. This is similar to how the same issue is handled for MOVW/MOVT instructions in ELF (see e.g. SVN r307713, and r307728 in lld). This fixes "fixup out of range" errors while building larger object files, where temporary symbols end up as a plain section symbol and an offset, and fixes any cases where the symbol offset mean that the actual target ended up on a different page than the symbol itself. Differential Revision: https://reviews.llvm.org/D35791 llvm-svn: 309105
* [X86] Add urem vector test for non-uniform pow2 constantsSimon Pilgrim2017-07-261-4/+17
| | | | llvm-svn: 309104
* [X86] Regenerated urem pow2 tests on 32/64 bit targetsSimon Pilgrim2017-07-261-36/+79
| | | | llvm-svn: 309103
* [X86] Regenerated umul overflow tests on 32/64 bit targetsSimon Pilgrim2017-07-261-14/+48
| | | | llvm-svn: 309102
* [ARM] GlobalISel: Map G_GLOBAL_VALUE to GPRDiana Picus2017-07-261-0/+19
| | | | | | A G_GLOBAL_VALUE is basically a pointer, so it should live in the GPR. llvm-svn: 309101
* [X86][AVX] Regenerated and cleaned up AVX1 intrinsic tests.Simon Pilgrim2017-07-267-718/+989
| | | | | | Cleaned up triple settings, added 32-bit/64-bit targets where useful, added broadcast comments llvm-svn: 309100
* [X86][AVX2] Regenerated and cleaned up broadcast tests.Simon Pilgrim2017-07-262-40/+42
| | | | llvm-svn: 309099
* [X86][AVX512] Regenerated and added 32-bit targets to select testsSimon Pilgrim2017-07-261-106/+256
| | | | llvm-svn: 309098
* [X86][AVX] Regenerated and cleaned up masked gather/scatter tests.Simon Pilgrim2017-07-261-32/+8
| | | | | | Remove unused KNL checks and triple settings, added broadcast comments llvm-svn: 309097
* [X86][AVX] Regenerate lzcnt test.Simon Pilgrim2017-07-261-36/+36
| | | | | | Tidied up triples and checks. llvm-svn: 309095
* [globalisel][tablegen] Fuse the generated tables together.Daniel Sanders2017-07-261-165/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Now that we have control flow in place, fuse the per-rule tables into a single table. This is a compile-time saving at this point. However, this will also enable the optimization of a table so that similar instructions can be tested together, reducing the time spent on the matching the code. This is NFC in terms of externally visible behaviour but some internals have changed slightly. State.MIs is no longer reset between each rule that is attempted because it's not necessary to do so. As a consequence of this the restriction on the order that instructions are added to State.MIs has been relaxed to only affect recorded instructions that require new elements to be added to the vector. GIM_RecordInsn can now write to any element from 1 to State.MIs.size() instead of just State.MIs.size(). Reviewers: ab, t.p.northover, qcolombet, rovka, aditya_nandakumar Reviewed By: rovka Subscribers: kristof.beyls, igorb, llvm-commits Differential Revision: https://reviews.llvm.org/D35681 llvm-svn: 309094
* [X86][FMA] Regenerate test with broadcast comments.Simon Pilgrim2017-07-262-13/+13
| | | | llvm-svn: 309093
* [ARM] GlobalISel: Mark G_GLOBAL_VALUE as legalDiana Picus2017-07-261-0/+26
| | | | llvm-svn: 309090
* [X86][LLVM]Expanding Supports lowerInterleavedStore() in X86InterleavedAccess.Michael Zuckerman2017-07-262-139/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch expands the support of lowerInterleavedStore to 32x8i stride 4. LLVM creates suboptimal shuffle code-gen for AVX2. In overall, this patch is a specific fix for the pattern (Strid=4 VF=32) and we plan to include more patterns in the future. To reach our goal of "more patterns". We include two mask creators. The first function creates shuffle's mask equivalent to unpacklo/unpackhi instructions. The other creator creates mask equivalent to a concat of two half vectors(high/low). The patch goal is to optimize the following sequence: At the end of the computation, we have ymm2, ymm0, ymm12 and ymm3 holding each 32 chars: c0, c1, , c31 m0, m1, , m31 y0, y1, , y31 k0, k1, ., k31 And these need to be transposed/interleaved and stored like so: c0 m0 y0 k0 c1 m1 y1 k1 c2 m2 y2 k2 c3 m3 y3 k3 .... Reviewers: dorit Farhana RKSimon guyblank DavidKreitzer Differential Revision: https://reviews.llvm.org/D34601 llvm-svn: 309086
* [SCEV] Cache results of computeExitLimitMax Kazantsev2017-07-261-0/+253
| | | | | | | | | This patch adds a cache for computeExitLimit to save compilation time. A lot of examples of tests that take extensive time to compile are attached to the bug 33494. Differential Revision: https://reviews.llvm.org/D35827 llvm-svn: 309080
* [X86] Prevent selecting masked aligned load instructions if the load should ↵Craig Topper2017-07-261-0/+115
| | | | | | | | | | | | | | | | be non-temporal Summary: The aligned load predicates don't suppress themselves if the load is non-temporal the way the unaligned predicates do. For the most part this isn't a problem because the aligned predicates are mostly used for instructions that only load the the non-temporal loads have priority over those. The exception are masked loads. Reviewers: RKSimon, zvi Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35712 llvm-svn: 309079
* Add test coverage for new PM PGOOpt handling.Dehao Chen2017-07-263-0/+14
| | | | | | | | | | | | | | Summary: This patch adds flags and tests to cover the PGOOpt handling logic in new PM. Reviewers: chandlerc, davide Reviewed By: chandlerc Subscribers: sanjoy, llvm-commits Differential Revision: https://reviews.llvm.org/D35807 llvm-svn: 309076
* [gold] Enable data-sections by default for the gold-plugin.Davide Italiano2017-07-262-0/+34
| | | | | | Follow up to r309056. llvm-svn: 309075
* Add "REQUIRES: asserts" for test unswitch-equality-undef.ll.Wei Mi2017-07-261-0/+1
| | | | llvm-svn: 309073
* [DWARF] Generalized verification of .apple_names accelerator table to be ↵Spyridoula Gravani2017-07-264-12/+16
| | | | | | | | applicable to any acceleration table. Added verification for .apple_types, .apple_namespaces and .apple_objc sections. Differential Revision: https://reviews.llvm.org/D35853 llvm-svn: 309068
* [PDB] Improve GSI hash table dumping for publics and globalsReid Kleckner2017-07-261-4/+8
| | | | | | | | | | | | | | | The PDB "symbol stream" actually contains symbol records for the publics and the globals stream. The globals and publics streams are essentially hash tables that point into a single stream of records. In order to match cvdump's behavior, we need to only dump symbol records referenced from the hash table. This patch implements that, and then implements global stream dumping, since it's just a subset of public stream dumping. Now we shouldn't see S_PROCREF or S_GDATA32 records when dumping publics, and instead we should see those record in the globals stream. llvm-svn: 309066
* Reapply "llvm-mt: implement simple merging of manifests, not factoring ↵Eric Beckmann2017-07-265-2/+90
| | | | | | | | | | namespaces. This time with correct #if. This reverts commit 9cf4eca0e0383040c1ff1416815c7f649650c2a0. llvm-svn: 309064
* Disable loop unswitching for some patterns containing equality comparison ↵Wei Mi2017-07-251-0/+121
| | | | | | | | | | | | | | | | | | | with undef. This is a workaround for the bug described in PR31652 and http://lists.llvm.org/pipermail/llvm-dev/2017-July/115497.html. The temporary solution is to add a function EqualityPropUnSafe. In EqualityPropUnSafe, for some simple patterns we can know the equality comparison may contains undef, so we regard such comparison as unsafe and will not do loop-unswitching for them. We also need to disable the select simplification when one of select operand is undef and its result feeds into equality comparison. The patch cannot clear the safety issue caused by the bug, but it can suppress the issue from happening to some extent. Differential Revision: https://reviews.llvm.org/D35811 llvm-svn: 309059
OpenPOWER on IntegriCloud