When linearizing a multiplication, return at once if we see a factor of zero,
authorDuncan Sands <baldrick@free.fr>
Wed, 13 Jun 2012 09:42:13 +0000 (09:42 +0000)
committerDuncan Sands <baldrick@free.fr>
Wed, 13 Jun 2012 09:42:13 +0000 (09:42 +0000)
commitee5a094ccf1f04d3fcc92ac4d2fc8a2926cbb232
treee4bba8613607c38aa947509b4cf6f9e501af678a
parentcc95b57d42a4af1cbb0a0e4a4efc2133116dd21c
When linearizing a multiplication, return at once if we see a factor of zero,
since then the entire expression must equal zero (similarly for other operations
with an absorbing element).  With this in place a bunch of reassociate code for
handling constants is dead since it is all taken care of when linearizing.  No
intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158398 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Constants.h
lib/Transforms/Scalar/Reassociate.cpp
lib/VMCore/Constants.cpp