Skip to content
  1. Mar 27, 2014
  2. Mar 26, 2014
    • Hal Finkel's avatar
      [PowerPC] Generate VSX permutations for v2[fi]64 vectors · df3e34d9
      Hal Finkel authored
      llvm-svn: 204873
      df3e34d9
    • Justin Bogner's avatar
      llvm-cov: Move XFAIL after the body of the test · dddfc296
      Justin Bogner authored
      llvm-cov tests are sensitive to line number changes, so putting this
      at the end will limit churn when we fix the XFAIL.
      
      llvm-svn: 204871
      dddfc296
    • Justin Bogner's avatar
      llvm-cov: Disable test on big endian machines · b220a129
      Justin Bogner authored
      llvm-svn: 204868
      b220a129
    • Reid Kleckner's avatar
      CloneFunction: Clone all attributes, including the CC · 23798a97
      Reid Kleckner authored
      Summary:
      Tested with a unit test because we don't appear to have any transforms
      that use this other than ASan, I think.
      
      Fixes PR17935.
      
      Reviewers: nicholas
      
      CC: llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D3194
      
      llvm-svn: 204866
      23798a97
    • Ekaterina Romanova's avatar
      This is a fix for PR# 19051. I noticed code gen differences due to code motion... · b9aea938
      Ekaterina Romanova authored
      This is a fix for PR# 19051. I noticed code gen differences due to code motion when running tests with and without the debug info at O2. The problem is in branch folding. A loop wanted to skip the debug info, but actually it didn't do so.
      
      llvm-svn: 204865
      b9aea938
    • Manman Ren's avatar
      Add comments. Addressing review comments from Evan on r204690. · 14aa8919
      Manman Ren authored
      llvm-svn: 204864
      14aa8919
    • Justin Bogner's avatar
      llvm-cov: Handle functions with no line number · 95e0a705
      Justin Bogner authored
      Functions may in an instrumented binary but not in the original source
      when they're inserted by the compiler or the runtime. These functions
      aren't meaningful to the user, so teach llvm-cov to skip over them
      instead of crashing.
      
      llvm-svn: 204863
      95e0a705
    • Kevin Enderby's avatar
      Fix a problem with the ARM assembler incorrectly matching a · 5611398b
      Kevin Enderby authored
      vector list parameter that is using all lanes "{d0[], d2[]}" but can
      match and instruction with a ”{d0, d2}" parameter.
      
      I’m finishing up a fix for proper checking of the unsupported
      alignments on vld/vst instructions and ran into this.  Thus I don’t
      have a test case at this time.  And adding all code that will
      demonstrate the bug would obscure the very simple one line fix.
      So if you would indulge me on not having a test case at this
      time I’ll instead offer up a detailed explanation of what is
      going on in this commit message.
      
      This instruction:
      
      	vld2.8  {d0[], d2[]}, [r4:64]
      
      is not legal as the alignment can only be 16 when the size is 8.
      Per this documentation:
      
      A8.8.325 VLD2 (single 2-element structure to all lanes)
       <align> The alignment. It can be one of:
      16 2-byte alignment, available only if <size> is 8, encoded as a = 1.
      32 4-byte alignment, available only if <size> is 16, encoded as a = 1.
      64 8-byte alignment, available only if <size> is 32, encoded as a = 1.
      omitted Standard alignment, see Unaligned data access on page A3-108.
      
      So when code is added to the llvm integrated assembler to not match
      that instruction because of the alignment it then goes on to try to match
      other instructions and comes across this:
      
      	vld2.8  {d0, d2}, [r4:64]
      
      and and matches it. This is because of the method
      ARMOperand::isVecListDPairSpaced() is missing the check of the Kind.
      In this case the Kind is k_VectorListAllLanes . While the name of the method
      may suggest that this is OK it really should check that the Kind is
      k_VectorList.
      
      As the method ARMOperand::isDoubleSpacedVectorAllLanes() is what was
      used to match {d0[], d2[]}  and correctly checks the Kind:
      
        bool isDoubleSpacedVectorAllLanes() const {
          return Kind == k_VectorListAllLanes && VectorList.isDoubleSpaced;
        }
      
      where the original ARMOperand::isVecListDPairSpaced() does not check
      the Kind:
      
        bool isVecListDPairSpaced() const {
          if (isSingleSpacedVectorList()) return false;
          return (ARMMCRegisterClasses[ARM::DPairSpcRegClassID]
                    .contains(VectorList.RegNum));
        }
      
      Jim Grosbach has reviewed the change and said:  Yep, that sounds right. …
      And by "right" I mean, "wow, that's a nasty latent bug I'm really, really
      glad to see fixed." :)
      
      rdar://16436683
      
      llvm-svn: 204861
      5611398b
    • Eli Bendersky's avatar
      Add a unit test for Invoke iteration, similar to the one for Call · 8474162f
      Eli Bendersky authored
      The tests are refactored to use the same fixture.
      
      llvm-svn: 204860
      8474162f
    • Arnold Schwaighofer's avatar
      PR15967 Fix in basicaa for faulty returning no alias. · 1a444489
      Arnold Schwaighofer authored
      This commit consist of two parts.
      The first part fix the PR15967. The wrong conclusion was made when the MaxLookup
      limit was reached. The fix introduce a out parameter (MaxLookupReached) to
      DecomposeGEPExpression that the function aliasGEP can act upon.
      The second part is introducing the constant MaxLookupSearchDepth to make sure
      that DecomposeGEPExpression and GetUnderlyingObject use the same search depth.
      This is a small cleanup to clarify the original algorithm.
      
      Patch by Karl-Johan Karlsson!
      
      llvm-svn: 204859
      1a444489
    • Lang Hames's avatar
      Simplify PBQP graph removeAdjEdgeId implementation. · 5391ac47
      Lang Hames authored
      llvm-svn: 204857
      5391ac47
    • Eli Bendersky's avatar
      Fix bot breakage in InstructionsTest. · c35c4b3d
      Eli Bendersky authored
      Makes sure the Call dies before the Function
      
      llvm-svn: 204856
      c35c4b3d
    • Eli Bendersky's avatar
      Fix problem with r204836 · 84aa5e55
      Eli Bendersky authored
      In CallInst, op_end() points at the callee, which we don't want to iterate over
      when just iterating over arguments. Now take this into account when returning
      a iterator_range from arg_operands. Similar reasoning for InvokeInst.
      
      Also adds a unit test to verify this actually works as expected.
      
      llvm-svn: 204851
      84aa5e55
Loading