Skip to content
  1. Jan 19, 2014
    • NAKAMURA Takumi's avatar
      [CMake] Prune deprecate usage of CMAKE_RUNTIME_OUTPUT_DIRECTORY. · 95d41dca
      NAKAMURA Takumi authored
      llvm-svn: 199592
      95d41dca
    • Chandler Carruth's avatar
      Fix a really nasty SROA bug with how we handled out-of-bounds memcpy · 1bf38c6a
      Chandler Carruth authored
      intrinsics.
      
      Reported on the list by Evan with a couple of attempts to fix, but it
      took a while to dig down to the root cause. There are two overlapping
      bugs here, both centering around the circumstance of discovering
      a memcpy operand which is known to be completely outside the bounds of
      the alloca.
      
      First, we need to kill the *other* side of the memcpy if it was added to
      this alloca. Otherwise we'll factor it into our slicing and try to
      rewrite it even though we know for a fact that it is dead. This is made
      more tricky because we can visit the sides in either order. So we have
      to both kill the other side and skip instructions marked as dead. The
      latter really should be goodness in every case, but here is a matter of
      correctness.
      
      Second, we need to actually remove the *uses* of the alloca by the
      memcpy when queuing it for later deletion. Otherwise it may still be
      using the alloca when we go to promote it (if the rewrite re-uses the
      existing alloca instruction). Do this by factoring out the
      use-clobbering used when for nixing a Phi argument and re-using it
      across the operands of a to-be-deleted instruction.
      
      llvm-svn: 199590
      1bf38c6a
    • Saleem Abdulrasool's avatar
      ARM ELF: ensure that the tag types are corrected · 93900055
      Saleem Abdulrasool authored
      Ensure that the tag types are reflected on a replacement.  This is particularly
      important for the compatibility tag which has multiple representations where the
      last definition wins.
      
      llvm-svn: 199577
      93900055
    • Saleem Abdulrasool's avatar
      ARM: update build attributes for ABI r2.09 · 196c3212
      Saleem Abdulrasool authored
      Update names for the names as per the current ABI errata.  Mark deprecated tags
      as such.
      
      llvm-svn: 199576
      196c3212
    • Saleem Abdulrasool's avatar
      Move ARM build attributes into Support · 278a9f43
      Saleem Abdulrasool authored
      This moves the ARM build attributes definitions and support routines into the
      Support library.  The support routines simply permit the conversion of the value
      to and from a string representation.
      
      The movement is prompted in order to permit access to the constants and string
      representations from readobj in order to facilitate decoding of the attributes
      section.
      
      llvm-svn: 199575
      278a9f43
    • Saleem Abdulrasool's avatar
      ARM IAS: remove unnecessary special case · 9dedf642
      Saleem Abdulrasool authored
      Tag_nodefaults is even and greater than 32 and thus does not need the special
      check to fall into the correct category.
      
      llvm-svn: 199574
      9dedf642
    • Arnold Schwaighofer's avatar
      LoopVectorizer: A reduction that has multiple uses of the reduction value is not · cc742dd9
      Arnold Schwaighofer authored
      a reduction.
      
      Really. Under certain circumstances (the use list of an instruction has to be
      set up right - hence the extra pass in the test case) we would not recognize
      when a value in a potential reduction cycle was used multiple times by the
      reduction cycle.
      
      Fixes PR18526.
      radar://15851149
      
      llvm-svn: 199570
      cc742dd9
    • Chandler Carruth's avatar
      [PM] Make the verifier work independently of any pass manager. · 043949d4
      Chandler Carruth authored
      This makes the 'verifyFunction' and 'verifyModule' functions totally
      independent operations on the LLVM IR. It also cleans up their API a bit
      by lifting the abort behavior into their clients and just using an
      optional raw_ostream parameter to control printing.
      
      The implementation of the verifier is now just an InstVisitor with no
      multiple inheritance. It also is significantly more const-correct, and
      hides the const violations internally. The two layers that force us to
      break const correctness are building a DomTree and dispatching through
      the InstVisitor.
      
      A new VerifierPass is used to implement the legacy pass manager
      interface in terms of the other pieces.
      
      The error messages produced may be slightly different now, and we may
      have slightly different short circuiting behavior with different usage
      models of the verifier, but generally everything works equivalently and
      this unblocks wiring the verifier up to the new pass manager.
      
      llvm-svn: 199569
      043949d4
    • Chandler Carruth's avatar
      Add a const lookup routine to get a BlockAddress constant if there is · 6a93692a
      Chandler Carruth authored
      one, but not create one. This is useful in the verifier when we want to
      query the constant if it exists but not create one. To be used in an
      upcoming commit.
      
      llvm-svn: 199568
      6a93692a
  2. Jan 18, 2014
  3. Jan 17, 2014
Loading