Files
clang-p2996/llvm/test/Transforms/GVN
Duncan P. N. Exon Smith fd5c553f54 GVN: Enable value forwarding for calloc
Enable value forwarding for loads from `calloc()` without an intervening
store.

This change extends GVN to handle the following case:

    %1 = tail call noalias i8* @calloc(i64 1, i64 4)
    %2 = bitcast i8* %1 to i32*
    ; This load is trivially constant zero
    %3 = load i32* %2, align 4

This is analogous to the handling for `malloc()` in the same places.
`malloc()` returns `undef`; `calloc()` returns a zero value.  Note that
it is correct to return zero even for out of bounds GEPs since the
result of such a GEP would be undefined.

Patch by Philip Reames!

llvm-svn: 210828
2014-06-12 21:16:19 +00:00
..
2013-11-11 22:00:23 +00:00
2013-11-11 22:00:23 +00:00
2013-11-11 22:00:23 +00:00
2013-11-11 22:00:23 +00:00
2013-11-11 22:00:23 +00:00
2013-11-11 15:37:52 +00:00
2013-11-11 22:00:23 +00:00
2013-11-11 22:00:23 +00:00
2013-11-11 22:00:23 +00:00