Skip to content
  1. Jan 17, 2008
    • Evan Cheng's avatar
      Replace std::vector<bool> with BitVector. · dc5b4c57
      Evan Cheng authored
      llvm-svn: 46104
      dc5b4c57
    • Evan Cheng's avatar
      Fixes a nasty dag combiner bug that causes a bunch of tests to fail at -O0. · 7be15280
      Evan Cheng authored
      It's not safe to use the two value CombineTo variant to combine away a dead load.
      e.g. 
      v1, chain2 = load chain1, loc
      v2, chain3 = load chain2, loc
      v3         = add v2, c 
      Now we replace use of v1 with undef, use of chain2 with chain1.
      ReplaceAllUsesWith() will iterate through uses of the first load and update operands:
      v1, chain2 = load chain1, loc
      v2, chain3 = load chain1, loc
      v3         = add v2, c 
      Now the second load is the same as the first load, SelectionDAG cse will ensure
      the use of second load is replaced with the first load.
      v1, chain2 = load chain1, loc
      v3         = add v1, c
      Then v1 is replaced with undef and bad things happen.
      
      llvm-svn: 46099
      7be15280
  2. Jan 16, 2008
  3. Jan 15, 2008
  4. Jan 14, 2008
  5. Jan 13, 2008
  6. Jan 12, 2008
  7. Jan 11, 2008
    • Chris Lattner's avatar
      Simplify the side effect stuff a bit more and make licm/sinking · c8226f32
      Chris Lattner authored
      both work right according to the new flags.
      
      This removes the TII::isReallySideEffectFree predicate, and adds
      TII::isInvariantLoad. 
      
      It removes NeverHasSideEffects+MayHaveSideEffects and adds
      UnmodeledSideEffects as machine instr flags.  Now the clients
      can decide everything they need.
      
      I think isRematerializable can be implemented in terms of the
      flags we have now, though I will let others tackle that.
      
      llvm-svn: 45843
      c8226f32
  8. Jan 10, 2008
  9. Jan 09, 2008
  10. Jan 08, 2008
Loading