aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-10-03ISel type legalization: add debug messages. NFCI.linaro-local/diana.picus/NeonSHFailureSjoerd Meijer
This adds some more debug messages to the type legalizer and functions like PromoteNode, ExpandNode, ExpandLibCall in an attempt to make the debug messages a little bit more informative and useful. Differential Revision: https://reviews.llvm.org/D38450 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314773 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[llvm-readobj][RISCV] Pretty-print RISCV e_flagsAlex Bradbury
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314772 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[RISCV] Add missed test case for r314770Alex Bradbury
Differential Revision: https://reviews.llvm.org/D38311 Patch by https://reviews.llvm.org/D38311 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314771 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[RISCV] Parse RISC-V eflags in ObjectYAMLAlex Bradbury
Differential Revision: https://reviews.llvm.org/D38311 Patch by Chih-Mao Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314770 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[trivial] fix format, NFCHiroshi Inoue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314769 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[ObjectYAML] Handle SHF_COMPRESSEDShoaib Meenai
This was previously being silently dropped by obj2yaml and caused parsing errors with yaml2obj. Differential Revision: https://reviews.llvm.org/D38490 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314768 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[X86] Provide the LSDA pointer with RIP relative addressing if necessaryMartin Storsjo
This makes sure the LSDA pointer isn't truncated to 32 bit. Make LowerINTRINSIC_WO_CHAIN a member function instead of a static function, so that it can use the getGlobalWrapperKind method. This solves the second half of the issues mentioned in PR34720. Differential Revision: https://reviews.llvm.org/D38343 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314767 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[Lint] Avoid failed assertion by fetching the proper pointer typeMikael Holmen
Summary: When checking if a constant expression is a noop cast we fetched the IntPtrType by doing DL->getIntPtrType(V->getType())). However, there can be cases where V doesn't return a pointer, and then getIntPtrType() triggers an assertion. Now we pass DataLayout to isNoopCast so the method itself can determine what the IntPtrType is. Reviewers: arsenm Reviewed By: arsenm Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D37894 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314763 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[InstCombine] Change a bunch of methods to take APInts by reference instead ↵Craig Topper
of pointer. This allows us to remove a bunch of dereferences and only have a few dereferences at the call sites. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314762 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[InstCombine] Replace an equality compare of two APInt pointers with a ↵Craig Topper
compare of the APInts themselves. Apparently this works by virtue of the fact that the pointers are pointers to the APInts stored inside of the ConstantInt objects. But I really don't think we should be relying on that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314761 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[Legalizer] Add support for G_OR NarrowScalar.Quentin Colombet
Legalize bitwise OR: A = BinOp<Ty> B, C into: B1, ..., BN = G_UNMERGE_VALUES B C1, ..., CN = G_UNMERGE_VALUES C A1 = BinOp<Ty/N> B1, C2 ... AN = BinOp<Ty/N> BN, CN A = G_MERGE_VALUES A1, ..., AN git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314760 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03[X86] Add AVX512 check lines to the cost model truncate test.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314758 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03Rewrite a function so that it doesn't use pointers to pointers. NFC.Rui Ueyama
Previous code was a bit puzzling because of its use of pointers. In this patch, we pass a vector and its offsets, instead of pointers to vector elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314756 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03LTO: Improve error reporting when adding a cache entry.Peter Collingbourne
Move error handling code next to the code that returns the error, and change the error message in order to distinguish it from a similar error message elsewhere in this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314745 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03SparseSolver: Rename getOrInitValueState to getValueState, matching what ↵Daniel Berlin
SCCP calls it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314744 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-03AMDGPU: Remove global isGCN predicatesMatt Arsenault
These are problematic because they apply to everything, and can easily clobber whatever more specific predicate you are trying to add to a function. Currently instructions use SubtargetPredicate/PredicateControl to apply this to patterns applied to an instruction definition, but not to free standing Pats. Add a wrapper around Pat so the special PredicateControls requirements can be appended to the final predicate list like how Mips does it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314742 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[InstSimplify] teach SimplifySelectInst() to fold more vector selectsHaicheng Wu
Call ConstantFoldSelectInstruction() to fold cases like below select <2 x i1><i1 true, i1 false>, <2 x i8> <i8 0, i8 1>, <2 x i8> <i8 2, i8 3> All operands are constants and the condition has mixed true and false conditions. Differential Revision: https://reviews.llvm.org/D38369 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314741 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[PassManager] Retire cl::opt that have been set for a while. NFCI.Davide Italiano
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314740 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[PowerPC] Revert r314666.Tim Shen
See https://reviews.llvm.org/D38172. I tried to XFAIL it, but sometimes XPASS triggers the bot. Simply revert it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314739 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Template the sparse propagation solver instead of using void pointersDaniel Berlin
Summary: This avoids using void * as the type of the lattice value and ugly casts needed to make that happen. (If folks want to use references, etc, they can use a reference_wrapper). Reviewers: davide, mssimpso Subscribers: sanjoy, llvm-commits Differential Revision: https://reviews.llvm.org/D38476 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314734 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[PowerPC] Temporarily disable the test introduced by r314666Tim Shen
See https://reviews.llvm.org/D38172 for details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314732 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Re-enable "[MachineCopyPropagation] Extend pass to do COPY source forwarding"Geoff Berry
Issues addressed since original review: - Avoid bug in regalloc greedy/machine verifier when forwarding to use in an instruction that re-defines the same virtual register. - Fixed bug when forwarding to use in EarlyClobber instruction slot. - Fixed incorrect forwarding to register definitions that showed up in explicit_uses() iterator (e.g. in INLINEASM). - Moved removal of dead instructions found by LiveIntervals::shrinkToUses() outside of loop iterating over instructions to avoid instructions being deleted while pointed to by iterator. - Fixed ARMLoadStoreOptimizer bug exposed by this change in r311907. - The pass no longer forwards COPYs to physical register uses, since doing so can break code that implicitly relies on the physical register number of the use. - The pass no longer forwards COPYs to undef uses, since doing so can break the machine verifier by creating LiveRanges that don't end on a use (since the undef operand is not considered a use). [MachineCopyPropagation] Extend pass to do COPY source forwarding This change extends MachineCopyPropagation to do COPY source forwarding. This change also extends the MachineCopyPropagation pass to be able to be run during register allocation, after physical registers have been assigned, but before the virtual registers have been re-written, which allows it to remove virtual register COPY LiveIntervals that become dead through the forwarding of all of their uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314729 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Remove trailing whitespace to trigger re-cmakingMichael Liao
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314728 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[X86] Run dos2unix on two disassembler tests.Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314727 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[X86][NFC] Add X86CmovConverterPass to the pass registry.Amjad Aboud
Differential Revision: https://reviews.llvm.org/D38355 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314726 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02llvm-dwarfdump: support the --ignore-case option.Adrian Prantl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314723 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Remove dead file.Michael Liao
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314720 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Add ELFOSABI_FIRST_ARCH, ELFOSABI_LAST_ARCH and start using those in ↵Konstantin Zhuravlyov
llvm-readobj Differential Revision: https://reviews.llvm.org/D38418 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314717 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02AMDGPU: Fix typosMatt Arsenault
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314715 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02AMDGPU: Fix potentially incorrectly matching check linesMatt Arsenault
These check lines are supposed to make sure the new d16 load instructions aren't used, but the expected instruction name is a prefix of the incorrect instruction name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314714 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[InstCombine] auto-generate complete checks; NFCSanjay Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314712 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[InstCombine] add icmp (shr X, Y), 0 test; NFCSanjay Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314710 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Fix two header comments. NFC.Hans Wennborg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314709 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Add support for Myriad ma2x8x series of CPUsWalter Lee
Summary: Also add support for some older Myriad CPUs that were missing. Reviewers: jyknight Subscribers: fedor.sergeev Differential Revision: https://reviews.llvm.org/D37552 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314705 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Move the stripping of invalid debug info from the Verifier to AutoUpgrade.Adrian Prantl
This came out of a recent discussion on llvm-dev (https://reviews.llvm.org/D38042). Currently the Verifier will strip the debug info metadata from a module if it finds the dbeug info to be malformed. This feature is very valuable since it allows us to improve the Verifier by making it stricter without breaking bcompatibility, but arguable the Verifier pass should not be modifying the IR. This patch moves the stripping of broken debug info into AutoUpgrade (UpgradeDebugInfo to be precise), which is a much better location for this since the stripping of malformed (i.e., produced by older, buggy versions of Clang) is a (harsh) form of AutoUpgrade. This change is mostly NFC in nature, the one big difference is the behavior when LLVM module passes are introducing malformed debug info. Prior to this patch, a NoAsserts build would have printed a warning and stripped the debug info, after this patch the Verifier will report a fatal error. I believe this behavior is actually more desirable anyway. Differential Revision: https://reviews.llvm.org/D38184 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314699 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[InstCombine] remove one-use restriction for icmp (shr exact X, C1), C2 --> ↵Sanjay Patel
icmp X, (C2<<C1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314698 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[InstCombine] add icmp (lshr X, C1), C2 test; NFCSanjay Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314696 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Update getMergedLocation to check the instruction type and merge properly.Dehao Chen
Summary: If the merged instruction is call instruction, we need to set the scope to the closes common scope between 2 locations, otherwise it will cause trouble when the call is getting inlined. Reviewers: dblaikie, aprantl Reviewed By: dblaikie, aprantl Subscribers: llvm-commits, sanjoy Differential Revision: https://reviews.llvm.org/D37877 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314694 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02CodeView symbol dumper: use symbolic names for registersHans Wennborg
https://reviews.llvm.org/D38469 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314690 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Eliminate ftrunc if source is know to be roundedStanislav Mekhanoshin
Differential Revision: https://reviews.llvm.org/D38421 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314688 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[dwarfdump] Add -show-formJonas Devlieghere
This enables printing of DWARF form types after the DWARF attribute types. Differential revision: https://reviews.llvm.org/D38459 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314685 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[X86][SSE] Add PACKSS/PACKUS constant folding tests Simon Pilgrim
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314682 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Regenerate test (missing broadcast constant comments). NFCI.Simon Pilgrim
Still avoiding the floating point comments to prevent linux/windows discrepancies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314681 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Regenerate test (missing broadcast constant comments). NFCI.Simon Pilgrim
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314680 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02Regenerate test. NFCI.Simon Pilgrim
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314679 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02use range-for-loops; NFCISanjay Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314676 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[AsmParser] Support GAS's .print directiveCoby Tayree
Differential Revision: https://reviews.llvm.org/D38448 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314674 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02remove duplicate comments, reposition related functions; NFCSanjay Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314669 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[X86][SSE] Fix -Wsign-compare problems introduced in r314658Bjorn Pettersson
The refactoring in "[X86][SSE] Add createPackShuffleMask helper function. NFCI." resulted in warning when compiling the code (seen in build bots). This patch restores some types from int to unsigned to avoid those warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314667 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-02[Debug info] Handle endianness when moving debug info for split integer valuesBjorn Pettersson
Summary: Take the target's endianness into account when splitting the debug information in DAGTypeLegalizer::SetExpandedInteger. This patch fixes so that, for big-endian targets, the fragment expression corresponding to the high part of a split integer value is placed at offset 0, in order to correctly represent the memory address order. I have attached a PPC32 reproducer where the resulting DWARF pieces for a 64-bit integer were incorrectly reversed. Patch by: dstenb Reviewers: JDevlieghere, aprantl, dblaikie Reviewed By: JDevlieghere, aprantl, dblaikie Subscribers: nemanjai Differential Revision: https://reviews.llvm.org/D38172 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314666 91177308-0d34-0410-b5e6-96231b3b80d8