Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Aug 29, 2015
  1. @tstellarAMD

    AMDGPU/SI: Fix some invaild assumptions when folding 64-bit immediates

    tstellarAMD authored
    We were assuming tha if the use operand had a sub-register that
    the immediate was 64-bits, but this was breaking the case of
    folding a 64-bit immediate into another 64-bit instruction.
    Reviewers: arsenm
    Subscribers: arsenm, llvm-commits
    Differential Revision:
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
Commits on Aug 28, 2015
  1. @tstellarAMD

    AMDGPU/SI: Factor operand folding code into its own function

    tstellarAMD authored
    Reviewers: arsenm
    Subscribers: arsenm, llvm-commits
    Differential Revision:
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  2. @chapuni

    Revert r246350, "The host and default target triples do not need to m…

    chapuni authored
    …atch for "native""
    Wrong assumption. Consider --host=x86_64-linux --target=(i686|x86_64)-win32. See also r193459.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  3. DI: Update tests before adding !dbg subprogram attachments

    Duncan P. N. Exon Smith authored
    I'm working on adding !dbg attachments to functions (PR23367), which
    we'll use to determine the canonical subprogram for a function (instead
    of the `subprograms:` array in the compile units).  This updates a few
    old tests in preparation.
    Transforms/Mem2Reg/ConvertDebugInfo2.ll had an old-style grep+count
    based test that would start to fail because I've added an extra line
    with `!dbg`.  Instead, explicitly `CHECK` for what I think the test
    actually cares about.
    All three testcases have subprograms with a valid `function:` reference
    -- which means my upgrade script will add a `!dbg` attachment -- but
    that aren't referenced from any compile unit.  I suspect these testcases
    were handreduced over-zealously (or have bitrotted?).  Add a reference
    from the compile unit so that upcoming Verifier checks won't fail here.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  4. The host and default target triples do not need to match for "native"

    Paul Robinson authored
    backend to work.
    Differential Revision:
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  5. DI: Set DILexicalBlock columns >= 65536 to 0/unknown

    Duncan P. N. Exon Smith authored
    This fixes PR24621 and matches what we do for `DILocation`.  Although
    the limit seems somewhat artificial, there are places in the backend
    that also assume 16-bit columns, so we may as well just be consistent
    about the limits.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  6. @pcc

    Use UNSUPPORTED instead of XFAIL to disable this test, as it passes o…

    pcc authored
    …n one AArch64 bot.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  7. @pcc
  8. [X86] NFC: Clean up and clang-format a few lines

    Vedant Kumar authored
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  9. DI: Add Function::getSubprogram()

    Duncan P. N. Exon Smith authored
    Add `Function::setSubprogram()` and `Function::getSubprogram()`,
    convenience methods to forward to `setMetadata()` and `getMetadata()`,
    respectively, and deal in `DISubprogram` instead of `MDNode`.
    Also add a verifier check to enforce that `!dbg` attachments are always
    Originally (when I had the llvm-dev discussion back in April) I thought
    I'd store a pointer directly on `llvm::Function` for these attachments
    -- we frequently have debug info, and that's much cheaper than using map
    in the context if there are no other function-level attachments -- but
    for now I'm just using the generic infrastructure.  Let's add the extra
    complexity only if this shows up in a profile.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  10. AsmPrinter: Allow null subroutine type

    Duncan P. N. Exon Smith authored
    Currently the DWARF backend requires that subprograms have a type, and
    the type is ignored if it has an empty type array.  The long term
    direction here -- see PR23079 -- is instead to skip the type entirely if
    there's no valid type.
    It turns out we have cases in tree of missing types on subprograms, but
    since they're not referenced by compile units, the backend never crashes
    on them.  One option would be to add a Verifier check that subprograms
    have types, and fix the bitrot.  However, this is a fair bit of churn
    (20-30 testcases) that would be reversed anyway by PR23079.
    I found this inconsistency because of a WIP patch and upgrade script for
    PR23367 that started crashing on test/DebugInfo/2010-10-01-crash.ll.
    This commit updates the testcase to reference the subprogram from the
    compile unit, and fixes the resulting crash (in line with the direction
    of PR23079).  This also updates `DIBuilder` to stop assuming a non-null
    pointer for the subroutine types.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  11. @majnemer

    Revert r246232 and r246304.

    majnemer authored
    This reverts isSafeToSpeculativelyExecute's use of ReadNone until we
    split ReadNone into two pieces: one attribute which reasons about how
    the function reasons about memory and another attribute which determines
    how it may be speculated, CSE'd, trap, etc.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  12. Remove white space (test commit)

    Matthew Simpson authored
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  13. @espindola

    Split the gold tests into X86 and PowerPC directories.

    espindola authored
    Patch by Than McIntosh!
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  14. DI: Require subprogram definitions to be distinct

    Duncan P. N. Exon Smith authored
    As a follow-up to r246098, require `DISubprogram` definitions
    (`isDefinition: true`) to be 'distinct'.  Specifically, add an assembler
    check, a verifier check, and bitcode upgrading logic to combat testcase
    bitrot after the `DIBuilder` change.
    While working on the testcases, I realized that
    test/Linker/subprogram-linkonce-weak-odr.ll isn't relevant anymore.  Its
    purpose was to check for a corner case in PR22792 where two subprogram
    definitions match exactly and share the same metadata node.  The new
    verifier check, requiring that subprogram definitions are 'distinct',
    precludes that possibility.
    I updated almost all the IR with the following script:
        git grep -l -E -e '= !DISubprogram\(.* isDefinition: true' |
        grep -v test/Bitcode |
        xargs sed -i '' -e 's/= \(!DISubprogram(.*, isDefinition: true\)/= distinct \1/'
    Likely some variant of would work for out-of-tree testcases.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  15. @sanjoy

    [IR] Add some asserts to CallInst and InvokeInst; NFCI.

    sanjoy authored
    The asserts check that accessors supposed to access call / invoke
    arguments only ever access call / invoke arguments.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  16. @sanjoy

    [InstCombine] Fix PR24605.

    sanjoy authored
    PR24605 is caused due to an incorrect insert point in instcombine's IR
    builder.  When simplifying
      %t = add X Y
      %m = icmp ... %t
    the replacement for %t should be placed before %t, not before %m, as
    there could be a use of %t between %t and %m.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  17. [test] (NFC) Simplify Transforms/ConstProp/calls.ll

    Vedant Kumar authored
    Differential Revision:
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  18. @petar-jovanovic

    [mips64][mcjit] Add N64R6 relocations tests and fix N64R2 tests

    petar-jovanovic authored
    This patch adds a test for MIPS64R6 relocations, it corrects check
    expressions for R_MIPS_26 and R_MIPS_PC16 relocations in MIPS64R2 test, and
    it adds run for big endian in MIPS64R2 test.
    Patch by Vladimir Radosavljevic.
    Differential Revision:
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  19. @petar-jovanovic

    [mips] Remove incorrect DebugLoc entries from prologue

    petar-jovanovic authored
    This has been causing the prologue_end to be incorrectly positioned.
    Patch by Vladimir Radosavljevic.
    Differential Revision:
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  20. @arsenm

    Make MergeConsecutiveStores look at other stores on same chain

    arsenm authored
    When combiner AA is enabled, look at stores on the same chain.
    Non-aliasing stores are moved to the same chain so the existing
    code fails because it expects to find an adajcent store on a consecutive
    Because of how DAGCombiner tries these store combines,
    MergeConsecutiveStores doesn't see the correct set of stores on the chain
    when it visits the other stores. Each store individually has its chain
    fixed before trying to merge consecutive stores, and then tries to merge
    stores from that point before the other stores have been processed to
    have their chains fixed. To fix this, attempt to use FindBetterChain
    on any possibly neighboring stores in visitSTORE.
    Suppose you have 4 32-bit stores that should be merged into 1 vector
    store. One store would be visited first, fixing the chain. What happens is
    because not all of the store chains have yet been fixed, 2 of the stores
    are merged. The other 2 stores later have their chains fixed,
    but because the other stores were already merged, they have different
    memory types and merging the two different sized stores is not
    supported and would be more difficult to handle.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  21. @majnemer

    Test case for r246304.

    majnemer authored
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  22. @jfbastien

    Remove Merge Functions pointer comparisons

    jfbastien authored
    This patch removes two remaining places where pointer value comparisons
    are used to order functions: comparing range annotation metadata, and comparing
    block address constants. (These are both rare cases, and so no actual
    non-determinism was observed from either case).
    The fix for range metadata is simple: the annotation always consists of a pair
    of integers, so we just order by those integers.
    The fix for block addresses is more subtle. Two constants are the same if they
    are the same basic block in the same function, or if they refer to corresponding
    basic blocks in each respective function. Note that in the first case, merging
    is trivially correct. In the second, the correctness of merging relies on the
    fact that the the values of block addresses cannot be compared. This change is
    actually an enhancement, as these functions could not previously be merged (see
    There is still a problem with cross function block addresses, in that constants
    pointing to a basic block in a merged function is not updated.
    This also more robustly compares floating point constants by all fields of their
    semantics, and fixes a dyn_cast/cast mixup.
    Author: jrkoenig
    Reviewers: dschuff, nlewycky, jfb
    Subscribers llvm-commits
    Differential revision:
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  23. @majnemer

    [CodeGen] isInTailCallPosition didn't consider readnone tailcalls

    majnemer authored
    A readnone tailcall may still have a chain of computation which follows
    it that would invalidate a tailcall lowering.  Don't skip the analysis
    in such cases.
    This fixes PR24613.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  24. [LoopUtils] Move a private constructor nearer the other private members

    James Molloy authored
    This was part of Adam Nemet's review feedback that I forgot to implement.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  25. [x86] enable machine combiner reassociations for scalar 'and' insts

    Sanjay Patel authored
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  26. @dcci

    [MC] Convert tests to use llvm-readobj --macho-version-min.

    dcci authored
    As an added bonus this also tests the newly introduced feature.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  27. @rui314

    llvm-readobj: Dump more info for COFF import libraries.

    rui314 authored
    This patch teaches llvm-readobj to print out COFF import file header fields.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  28. @chandlerc

    [SROA] Fix PR24463, a crash I introduced in SROA by allowing it to

    chandlerc authored
    handle more allocas with loads past the end of the alloca.
    I suspect there are some related crashers with slightly different
    patterns, but I'll fix those and add test cases as I find them.
    Thanks to David Majnemer for the excellent test case reduction here.
    Made this super simple to debug and fix.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  29. @rui314

    Attempt to unbreak Win32 build.

    rui314 authored
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  30. @rui314

    Re-apply r246276 - Object: Teach llvm-ar to create symbol table for C…

    rui314 authored
    …OFF short import files
    This patch includes a fix for a llvm-readobj test. With this patch, 
    the tool does no longer print out COFF headers for the short import
    file, but that's probably desirable because the header for the short
    import file is dummy.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  31. Revert r246244 and r246243

    Steven Wu authored
    These two commits cause clang/llvm bootstrap to hang.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  32. @rui314

    Rollback r246276 - Object: Teach llvm-ar to create symbol table for C…

    rui314 authored
    …OFF short import files
    This change caused a test for llvm-readobj to fail.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
  33. @rui314

    Object: Teach llvm-ar to create symbol table for COFF short import fi…

    rui314 authored
    COFF short import files are special kind of files that contains only
    DLL-exported symbol names. That's different from object files because
    it has no data except symbol names.
    This change implements a SymbolicFile interface for the short import
    files so that symbol names can be accessed through that interface.
    llvm-ar is now able to read the file and create symbol table entries
    for short import files.
    git-svn-id: 91177308-0d34-0410-b5e6-96231b3b80d8
Something went wrong with that request. Please try again.