and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 06 Dec, 2012 1 commit
  2. 05 Dec, 2012 1 commit
  3. 04 Dec, 2012 5 commits
    • Pawel Wodnicki's avatar
      Bump Pure version for 3.2 release · 3583b549
      Pawel Wodnicki authored
      llvm-svn: 169298
      3583b549
    • Pawel Wodnicki's avatar
      Merging r169280: into the 3.2 release branch. · b3e8ea07
      Pawel Wodnicki authored
      Update release notes for NVPTX
      
      llvm-svn: 169297
      b3e8ea07
    • Pawel Wodnicki's avatar
      Merging MIPS JIT/MCJIT changeset into 3.2 release branch. · ac0b9301
      Pawel Wodnicki authored
      Merging r169183:
      
      RuntimeDyld: Fix up r169178. MSVC doesn't like "or".
      
      Merging r169178:
      
      Runtime dynamic linker for MCJIT should support MIPS BigEndian architecture.
      This small change adds support for that. It will make all MCJIT tests pass
      in make-check on BigEndian platforms.
      
      Patch by Petar Jovanovic.
      
      Merging r169177:
      
      Classic JIT is still being supported by MIPS, along with MCJIT.
      This change adds endian-awareness to MipsJITInfo and emitWordLE in
      MipsCodeEmitter has become emitWord now to support both endianness.
      
      Patch by Petar Jovanovic.
      
      Merging r169174:
      
      Functions in MipsCodeEmitter.cpp that expand unaligned loads/stores are dead
      code. Removing it.
      
      Patch by Petar Jovanovic.
      
      llvm-svn: 169296
      ac0b9301
    • Pawel Wodnicki's avatar
      Merging MIPS GOT changeset into 3.2 release branch. · b69f1a10
      Pawel Wodnicki authored
      Merging r168471:
      
      Mips direct object xgot support
      
      This patch provides support for the MIPS relocations:
      
          *)  R_MIPS_GOT_HI16
          *)  R_MIPS_GOT_LO16
          *)  R_MIPS_CALL_HI16
          *)  R_MIPS_CALL_LO16
      
      These are used for large GOT instruction sequences.
      
      Contributer: Jack Carter
      
      Merging r168460:
      
      [mips] Generate big GOT code.
      
      Merging r168458:
      
      [mips] Simplify lowering functions in MipsISelLowering.cpp by using the helper
      functions added in r168456.
      
      Merging r168456:
      
      [mips] Add helper functions that create nodes for computing address.
      
      Merging r168455:
      
      [mips] Add command line option "-mxgot".
      
      Merging r168453:
      
      [mips] When a node which loads from a GOT is created, pass a MachinePointerInfo
      referring to a GOT entry.
      
      Merging r168450:
      
      [mips] Add target operand flag enums for big GOT relocations.
      
      Merging r168448:
      
      Add relocations used for mips big GOT.
      
      llvm-svn: 169294
      b69f1a10
    • Pawel Wodnicki's avatar
      Merging r169084: into 3.2 release branch. · 7b6e3e24
      Pawel Wodnicki authored
      SROA: Avoid struct and array types early to avoid creating an overly large integer type.
      
      Fixes PR14465.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D148
      
      llvm-svn: 169290
      7b6e3e24
  4. 30 Nov, 2012 2 commits
  5. 29 Nov, 2012 6 commits
  6. 28 Nov, 2012 4 commits
  7. 27 Nov, 2012 2 commits
  8. 26 Nov, 2012 5 commits
  9. 23 Nov, 2012 2 commits
  10. 22 Nov, 2012 4 commits
    • Pawel Wodnicki's avatar
      Merging r168291: into the 3.2 release branch. · 15386f41
      Pawel Wodnicki authored
      Fix PR14060, an infinite loop in reassociate.  The problem was that one of the
      operands of the expression being written was wrongly thought to be reusable as
      an inner node of the expression resulting in it turning up as both an inner node
      *and* a leaf, creating a cycle in the def-use graph.  This would have caused the
      verifier to blow up if things had gotten that far, however it managed to provoke
      an infinite loop first.
      
      llvm-svn: 168489
      15386f41
    • Pawel Wodnicki's avatar
      Merging r168355: into the 3.2 release branch. · 829dcd47
      Pawel Wodnicki authored
      Update method calls to the new interface re r168354.
      
      llvm-svn: 168487
      829dcd47
    • Pawel Wodnicki's avatar
      Merging r168354: into 3.2 release branch · 58b0a3b4
      Pawel Wodnicki authored
      Make the AttrListPtr object a part of the LLVMContext.
      
      When code deletes the context, the AttributeImpls that the AttrListPtr points to
      are now invalid. Therefore, instead of keeping a separate managed static for the
      AttrListPtrs that's reference counted, move it into the LLVMContext and delete
      it when deleting the AttributeImpls.
      
      llvm-svn: 168486
      58b0a3b4
    • Pawel Wodnicki's avatar
      Merging r168280: into 3.2 release branch. · 64b1fc8f
      Pawel Wodnicki authored
      Don't try to calculate the alignment of an unsigned type. Fixes PR14371!
      
      llvm-svn: 168480
      64b1fc8f
  11. 21 Nov, 2012 8 commits
    • Pawel Wodnicki's avatar
      Reverting 168457 · cda97b74
      Pawel Wodnicki authored
      llvm-svn: 168465
      cda97b74
    • Pawel Wodnicki's avatar
      Merging r168354, r168355 and r168379 into the 3.2 release branch. · 4570c1f2
      Pawel Wodnicki authored
      Set of  Attributes patches.
      
      Merging r168354:
      
      Make the AttrListPtr object a part of the LLVMContext.
      
      When code deletes the context, the AttributeImpls that the AttrListPtr points to
      are now invalid. Therefore, instead of keeping a separate managed static for the
      AttrListPtrs that's reference counted, move it into the LLVMContext and delete
      it when deleting the AttributeImpls.
      
      Merging r168355:
      
      Merging r168379
      
      llvm-svn: 168457
      4570c1f2
    • Pawel Wodnicki's avatar
      Merging r168181: into 3.2 release branch. · 29386c79
      Pawel Wodnicki authored
      Fix PR14361: wrong simplification of A+B==B+A.  You may think that the old logic
      replaced by this patch is equivalent to the new logic, but you'd be wrong, and
      that's exactly where the bug was.  There's a similar bug in instsimplify which
      manifests itself as instsimplify failing to simplify this, rather than doing it
      wrong, see next commit.
      
      llvm-svn: 168447
      29386c79
    • Pawel Wodnicki's avatar
      Merging r168035: into 3.2 release branch. · 467f9116
      Pawel Wodnicki authored
      Fix a crash observed by Shuxin Yang.  The issue here is that LinearizeExprTree,
      the utility for extracting a chain of operations from the IR, thought that it
      might as well combine any constants it came across (rather than just returning
      them along with everything else).  On the other hand, the factorization code
      would like to see the individual constants (this is quite reasonable: it is
      much easier to pull a factor of 3 out of 2*3 than it is to pull it out of 6;
      you may think 6/3 isn't so hard, but due to overflow it's not as easy to undo
      multiplications of constants as it may at first appear).  This patch therefore
      makes LinearizeExprTree stupider: it now leaves optimizing to the optimization
      part of reassociate, and sticks to just analysing the IR.
      
      llvm-svn: 168446
      467f9116
    • Pawel Wodnicki's avatar
      Merging r168361, r168346 and r168227 into 3.2 branch release · e3a27bc4
      Pawel Wodnicki authored
      Merging r168361: 
      
      Fix PR14132 and handle OOB loads speculated throuh PHI nodes.
      
      The issue is that we may end up with newly OOB loads when speculating
      a load into the predecessors of a PHI node, and this confuses the new
      integer splitting logic in some cases, triggering an assertion failure.
      In fact, the branch in question must be dead code as it loads from
      a too-narrow alloca. Add code to handle this gracefully and leave the
      requisite FIXMEs for both optimizing more aggressively and doing more to
      aid sanitizing invalid code which triggers these patterns.
      
      
      Merging r168346:
      ------------------------------------------------------------------------
      
      Rework the rewriting of loads and stores for vector and integer allocas
      to properly handle the combinations of these with split integer loads
      and stores. This essentially replaces Evan's r168227 by refactoring the
      code in a different way, and trynig to mirror that refactoring in both
      the load and store sides of the rewriting.
      
      Generally speaking there was some really problematic duplicated code
      here that led to poorly founded assumptions and then subtle bugs. Now
      much of the code actually flows through and follows a more consistent
      style and logical path. There is still a tiny bit of duplication on the
      store side of things, but it is much less bad.
      
      This also changes the logic to never re-use a load or store instruction
      as that was simply too error prone in practice.
      
      I've added a few tests (one a reduction of the one in Evan's original
      patch, which happened to be the same as the report in PR14349). I'm
      going to look at adding a few more tests for things I found and fixed in
      passing (such as the volatile tests in the vectorizable predicate).
      
      This patch has survived bootstrap, and modulo one bugfix survived
      Duncan's test suite, but let me know if anything else explodes.
      
      
      Merging r168227:
      
      Teach SROA rewriteVectorizedStoreInst to handle cases when the loaded value is narrower than the stored value. rdar://12713675
      
      llvm-svn: 168443
      e3a27bc4
    • Pawel Wodnicki's avatar
      Merging r168197: into 3.2 release branch · f18d5b46
      Pawel Wodnicki authored
      Preserve address space of forward-referenced global variables in the LL parser
      
      Before, the parser would assert on the following code:
      
      @a2 = global i8 addrspace(1)* @a
      @a = addrspace(1) global i8 0
      
      because the type of @a was "i8*" instead of "i8 addrspace(1)*" when parsing
      the initializer for @a2.
      
      llvm-svn: 168435
      f18d5b46
    • Pawel Wodnicki's avatar
      Merging r168319 into 3.2 release branch · c1b4549c
      Pawel Wodnicki authored
      Fix a pasto.
      
      llvm-svn: 168432
      c1b4549c
    • Pawel Wodnicki's avatar
      Merging r168063 into 3.2 release branch · 07081fe8
      Pawel Wodnicki authored
      block extended signatur option. Change previous option
      to a cc1 -fencode-extended-block-signature and pass it
      to cc1 and recognize this option to produce extended block
      type signature. // rdar://12109031 
      
      llvm-svn: 168419
      07081fe8