This is an archive of the discontinued LLVM Phabricator instance.

[GVNHoist] Call isGuaranteedToTransferExecutionToSuccessor on each instruction
ClosedPublic

Authored by hiraditya on Mar 16 2017, 9:47 AM.

Diff Detail

Event Timeline

hiraditya created this revision.Mar 16 2017, 9:47 AM
gberry edited edge metadata.Mar 16 2017, 10:45 AM

You should probably add [GVNHoist] to the title

hiraditya retitled this revision from Call isGuaranteedToTransferExecutionToSuccessor on each instruction to [GVNHoist] Call isGuaranteedToTransferExecutionToSuccessor on each instruction.Mar 16 2017, 11:29 AM
sebpop accepted this revision.Mar 16 2017, 11:31 AM

LGTM.

This revision is now accepted and ready to land.Mar 16 2017, 11:31 AM
efriedma requested changes to this revision.Mar 16 2017, 11:56 AM
efriedma added a subscriber: efriedma.

Needs a testcase.

This revision now requires changes to proceed.Mar 16 2017, 11:56 AM
hiraditya updated this revision to Diff 92191.Mar 17 2017, 1:46 PM
hiraditya edited edge metadata.

Mark those basic blocks which does not guarantee progress as barriers and use them subsequently while checking for availability during hoisting.

hiraditya updated this revision to Diff 92193.Mar 17 2017, 1:52 PM

Updated comments.

@efriedma @sebpop Are you guys satisfied with the latest version of this patch?

dberlin accepted this revision.Apr 10 2017, 11:01 AM

This looks okay to me at this point, it's at least more correct than what we are doing now.

This revision was automatically updated to reflect the committed changes.