fix infinite loop in instcombine with more than 4GB memcpy
authorMichael Liao <michael.liao@intel.com>
Wed, 15 Aug 2012 03:49:59 +0000 (03:49 +0000)
committerMichael Liao <michael.liao@intel.com>
Wed, 15 Aug 2012 03:49:59 +0000 (03:49 +0000)
commit9441ad0b6e02ee9558168b37a9620ef1afe79388
treefbaeed21458e9ea5457b1d41d2aceadc56c82e76
parentc2de3ddb23e45859f8b4ffdc21f796dc39703280
fix infinite loop in instcombine with more than 4GB memcpy

- memcpy size is wrongly truncated into 32-bit and treat 8GB memcpy is
  0-sized memcpy
- as 0-sized memcpy/memset is already removed before SimplifyMemTransfer
  and SimplifyMemSet in visitCallInst, replace 0 checking with
  assertions.
- replace getZExtValue() with getLimitedValue() according to
  Eli Friedman

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161923 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/InstCombine/InstCombineCalls.cpp
test/Transforms/InstCombine/memcpy.ll