llvm-project/llvm/lib/Transforms
Sanjay Patel 2fa8fc3d0a [InstCombine] freeze operand in div+mul fold
As discussed in issue #37809, this transform is not safe
if the input is an undefined value.

This is similar to recent changes for urem and sdiv:
d428f09b2c
99ef341ce9

There is no difference in codegen on the basic examples,
but this could lead to regressions. We may need to
improve freeze analysis or lowering if that happens.

Presumably, in real cases that are similar to the tests
where a subsequent transform removes the rem, we
will also be able to remove the freeze by seeing that
the parameter has 'noundef'.
2022-05-12 13:49:29 -04:00
..
AggressiveInstCombine Cleanup includes: Transform/Scalar 2022-03-03 07:56:34 +01:00
CFGuard [CFG] Handle calls with funclet bundle 2021-12-03 10:51:10 -08:00
Coroutines [NFC] [Coroutines] Remove EnableReuseStorageInFrame option 2022-05-10 17:28:43 +08:00
Hello
IPO [DeadArgElim] Re-apply: Set unused arguments for internal functions 2022-05-12 08:46:16 -07:00
InstCombine [InstCombine] freeze operand in div+mul fold 2022-05-12 13:49:29 -04:00
Instrumentation [Instrumentation] Share InstrumentationIRBuilder between TSan and SanCov 2022-05-06 09:15:17 +02:00
ObjCARC Cleanup includes: final pass 2022-03-29 09:00:21 +02:00
Scalar [CVP] Preserve exact name when converting sext->zext and ashr->lshr. 2022-05-10 09:13:59 -07:00
Utils [SCEVExpander] Deduplicate min/max expansion code (NFC) 2022-05-11 12:11:11 +02:00
Vectorize Recommit "[SLP] Make reordering aware of external vectorizable scalar stores." 2022-05-11 16:47:29 -07:00
CMakeLists.txt