SuccessChanges

Summary

  1. [InstSimplify] Add test case to show bad sign bit handling for integer abs idiom in computeKnownBits. computeKnownBits will indicate the sign bit of abs is 0 if the the RHS operand returned by matchSelectPattern has the nsw flag set. For abs idioms like (X >= 0) ? X : -X, the RHS returns -X. But we can also match ((X-Y) >= 0 ? X-Y : Y-X as abs. In this case RHS will be the Y-X operand. According to Alive, the sign bit for this is only 0 if both the X-Y and Y-X operands have the nsw flag. But we're only checking the Y-X operand.
  2. MCRegister/Register: DenseMapInfo should take `const T &`
Revision 367747 by ctopper:
[InstSimplify] Add test case to show bad sign bit handling for integer abs idiom in computeKnownBits.

computeKnownBits will indicate the sign bit of abs is 0 if the
the RHS operand returned by matchSelectPattern has the nsw flag set.
For abs idioms like (X >= 0) ? X : -X, the RHS returns -X. But
we can also match ((X-Y) >= 0 ? X-Y : Y-X as abs. In this case
RHS will be the Y-X operand. According to Alive, the sign bit for
this is only 0 if both the X-Y and Y-X operands have the nsw flag.
But we're only checking the Y-X operand.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InstSimplify/icmp-abs-nabs.llllvm.src/test/Transforms/InstSimplify/icmp-abs-nabs.ll
Revision 367744 by dsanders:
MCRegister/Register: DenseMapInfo should take `const T &`
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/Register.hllvm.src/include/llvm/CodeGen/Register.h
The file was modified/llvm/trunk/include/llvm/MC/MCRegister.hllvm.src/include/llvm/MC/MCRegister.h