This is an archive of the discontinued LLVM Phabricator instance.

[FPEnv Core 13/14] Don't hoist FP-ops with side-effects in LICM
AcceptedPublic

Authored by sdmitrouk on Oct 26 2015, 6:56 AM.

Details

Summary

isSafeToSpeculativelyExecute() is not enough, because it's result
it taken into account only when it's positive and we need to forbid
the case where result is negative.

Diff Detail

Repository
rL LLVM

Event Timeline

sdmitrouk updated this revision to Diff 38414.Oct 26 2015, 6:56 AM
sdmitrouk retitled this revision from to [FPEnv Core 13/14] Don't hoist FP-ops with side-effects in LICM.
sdmitrouk updated this object.
sdmitrouk added reviewers: hfinkel, mehdi_amini.
sdmitrouk set the repository for this revision to rL LLVM.
sdmitrouk added subscribers: llvm-commits, scanon, resistor.
majnemer added inline comments.
lib/Transforms/Scalar/LICM.cpp
697–702

This doesn't make sense to me, can you please elaborate?

sdmitrouk updated this revision to Diff 41923.Dec 4 2015, 12:18 PM

Rename flags.

sdmitrouk added inline comments.Dec 4 2015, 12:20 PM
lib/Transforms/Scalar/LICM.cpp
697–702

isSafeToSpeculativelyExecute() returns false, but code doesn't care and returns true from isGuaranteedToExecute() without this additional check.

mehdi_amini accepted this revision.Jan 4 2016, 6:09 PM
mehdi_amini edited edge metadata.
This revision is now accepted and ready to land.Jan 4 2016, 6:09 PM