Skip to content
  1. Sep 18, 2012
  2. Sep 17, 2012
  3. Sep 16, 2012
    • Craig Topper's avatar
      Fix bad comment. No functional change. · 04b4e83c
      Craig Topper authored
      llvm-svn: 164000
      04b4e83c
    • Jakob Stoklund Olesen's avatar
      Add alternative coalescing algorithm under a flag. · 17e21855
      Jakob Stoklund Olesen authored
      The live range of an SSA value forms a sub-tree of the dominator tree.
      That means the live ranges of two values overlap if and only if the def
      of one value lies within the live range of the other.
      
      This can be used to simplify the interference checking a bit: Visit each
      def in the two registers about to be joined. Check for interference
      against the value that is live in the other register at the def point
      only. It is not necessary to scan the set of overlapping live ranges,
      this interference check can be done while computing the value mapping
      required for the final live range join.
      
      The new algorithm is prepared to handle more complicated conflict
      resolution - We can allow overlapping live ranges with different values
      as long as the differing lanes are undef or unused in the other
      register.
      
      The implementation in this patch doesn't do that yet, it creates code
      that is nearly identical to the old algorithm's, except:
      
      - The new stripCopies() function sees through multiple copies while
        the old RegistersDefinedFromSameValue() only can handle one.
      
      - There are a few rare cases where the new algorithm can erase an
        IMPLICIT_DEF instuction that RegistersDefinedFromSameValue() couldn't
        handle.
      
      llvm-svn: 163991
      17e21855
  4. Sep 15, 2012
  5. Sep 14, 2012
  6. Sep 13, 2012
    • Michael Liao's avatar
      Enhance type legalization on bitcast from vector to integer · 460fc46e
      Michael Liao authored
      - Find a legal vector type before casting and extracting element from it.
      - As the new vector type may have more than 2 elements, build the final
        hi/lo pair by BFS pairing them from bottom to top.
      
      llvm-svn: 163830
      460fc46e
    • Nadav Rotem's avatar
      Rename the flag which protects from escaped allocas, which may come from bugs... · 77a09ebb
      Nadav Rotem authored
      Rename the flag which protects from escaped allocas, which may come from bugs in user code or in the compiler. Also, dont assert if the protection is not enabled.
      
      llvm-svn: 163807
      77a09ebb
    • Nadav Rotem's avatar
      Fix a dagcombine optimization. The optimization attempts to optimize a bitcast of fneg to integers · 24a822a5
      Nadav Rotem authored
      by xoring the high-bit. This fails if the source operand is a vector because we need to negate
      each of the elements in the vector.
      
      Fix rdar://12281066 PR13813.
      
      llvm-svn: 163802
      24a822a5
    • Nadav Rotem's avatar
      Fix a typo. · 2bd25fed
      Nadav Rotem authored
      llvm-svn: 163801
      2bd25fed
    • Nadav Rotem's avatar
      · 4e9ad066
      Nadav Rotem authored
      Stack Coloring: We have code that checks that all of the uses of allocas
      are within the lifetime zone. Sometime legitimate usages of allocas are
      hoisted outside of the lifetime zone. For example, GEPS may calculate the
      address of a member of an allocated struct. This commit makes sure that
      we only check (abort regions or assert) for instructions that read and write
      memory using stack frames directly. Notice that by allowing legitimate
      usages outside the lifetime zone we also stop checking for instructions
      which use derivatives of allocas. We will catch less bugs in user code
      and in the compiler itself.
      
      llvm-svn: 163791
      4e9ad066
    • Eric Christopher's avatar
      Recommit, with fixes: · e341776c
      Eric Christopher authored
          Add some support for dealing with an object pointer on arguments.
      
          Part of rdar://9797999
      
      which now supports adding the object pointer attribute to the
      subprogram as it should.
      
      llvm-svn: 163754
      e341776c
  7. Sep 12, 2012
  8. Sep 11, 2012
Loading