Skip to content
  1. Dec 23, 2008
    • Dan Gohman's avatar
      Clean up the atomic opcodes in SelectionDAG. · 12f24904
      Dan Gohman authored
      This removes all the _8, _16, _32, and _64 opcodes and replaces each
      group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode
      is now used to carry the size information. In tablegen, the size-specific
      opcodes are replaced by size-independent opcodes that utilize the
      ability to compose them with predicates.
      
      This shrinks the per-opcode tables and makes the code that handles
      atomics much more concise.
      
      llvm-svn: 61389
      12f24904
    • Chris Lattner's avatar
      add some notes for simplifylibcalls optimizations · 8a35adf3
      Chris Lattner authored
      llvm-svn: 61385
      8a35adf3
    • Steve Naroff's avatar
      Tweak --version to include the date and time. · b0ad08b3
      Steve Naroff authored
      llvm-svn: 61378
      b0ad08b3
    • Dan Gohman's avatar
      Rename BuildSchedUnits to BuildSchedGraph, and refactor the · 04543e71
      Dan Gohman authored
      code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions.
      
      llvm-svn: 61376
      04543e71
    • Dan Gohman's avatar
      Use isTerminator() instead of isBranch()||isReturn() in · 072e52f1
      Dan Gohman authored
      several places. isTerminator() returns true for a superset
      of cases, and includes things like FP_REG_KILL, which are
      nither return or branch but aren't safe to move/remat/etc.
      
      llvm-svn: 61373
      072e52f1
    • Dan Gohman's avatar
      Avoid an unnecessary call to allnodes_size(), which is linear. · 92cf280d
      Dan Gohman authored
      llvm-svn: 61372
      92cf280d
    • Dan Gohman's avatar
      Minor code simplifications. · 3a57213e
      Dan Gohman authored
      llvm-svn: 61371
      3a57213e
    • Zhongxing Xu's avatar
      revert r61368. · ae503aee
      Zhongxing Xu authored
      llvm-svn: 61369
      ae503aee
    • Zhongxing Xu's avatar
      Remove dead code. · 1dffb5bd
      Zhongxing Xu authored
      llvm-svn: 61368
      1dffb5bd
    • Mon P Wang's avatar
      Fixed code generation for v8i16 and v16i8 splats on X86. · ec95070c
      Mon P Wang authored
      Fixed lowering of v8i16 shuffles for v8i16 when we fall back to extract/insert.
      
      llvm-svn: 61365
      ec95070c
    • Dale Johannesen's avatar
      Fix the time regression I introduced in 464.h264ref with · 93b9aa87
      Dale Johannesen authored
      my last patch to this file.
      
      The issue there was that all uses of an IV inside a loop
      are actually references to Base[IV*2], and there was one
      use outside that was the same but LSR didn't see the base
      or the scaling because it didn't recurse into uses outside
      the loop; thus, it used base+IV*scale mode inside the loop
      instead of pulling base out of the loop.  This was extra bad
      because register pressure later forced both base and IV into
      memory.  Doing that recursion, at least enough
      to figure out addressing modes, is a good idea in general;
      the change in AddUsersIfInteresting does this.  However,
      there were side effects....
      
      It is also possible for recursing outside the loop to
      introduce another IV where there was only 1 before (if
      the refs inside are not scaled and the ref outside is).
      I don't think this is a common case, but it's in the testsuite.
      It is right to be very aggressive about getting rid of
      such introduced IVs (CheckForIVReuse and the handling of
      nonzero RewriteFactor in StrengthReduceStridedIVUsers).
      In the testcase in question the new IV produced this way
      has both a nonconstant stride and a nonzero base, neither
      of which was handled before.  And when inserting 
      new code that feeds into a PHI, it's right to put such 
      code at the original location rather than in the PHI's 
      immediate predecessor(s) when the original location is outside 
      the loop (a case that couldn't happen before)
      (RewriteInstructionToUseNewBase); better to avoid making
      multiple copies of it in this case.
      
      Also, the mechanism for keeping SCEV's corresponding to GEP's
      no longer works, as the GEP might change after its SCEV
      is remembered, invalidating the SCEV, and we might get a bad
      SCEV value when looking up the GEP again for a later loop.  
      This also couldn't happen before, as we weren't recursing
      into GEP's outside the loop.
      
      I owe some testcases for this, want to get it in for nightly runs.
      
      llvm-svn: 61362
      93b9aa87
    • Dale Johannesen's avatar
      One more permutation of subtracting off a base value. · d2a46858
      Dale Johannesen authored
      llvm-svn: 61361
      d2a46858
    • Owen Anderson's avatar
    • Dan Gohman's avatar
      Make the fuse-failed debug output human-readable. · d72358cb
      Dan Gohman authored
      llvm-svn: 61356
      d72358cb
  2. Dec 22, 2008
  3. Dec 21, 2008
  4. Dec 20, 2008
  5. Dec 19, 2008
Loading