This is an archive of the discontinued LLVM Phabricator instance.

Fix SystemZ hang caused by r279105
ClosedPublic

Authored by colpell on Aug 22 2016, 11:26 AM.

Details

Summary

The change in r279105 causes an infinite loop in some cases, as it sets the upper bits of an AND mask constant, which DAGCombiner::SimplifyDemandedBits then unsets.
This patch reverts that part of the behaviour, instead relying on .td peepholes to perform the transformation to NILL. I reapplied my original fix for the problem addressed by r279105 (unsetting the upper bits, which prevents a compiler abort for a different reason).

Diff Detail

Repository
rL LLVM

Event Timeline

colpell updated this revision to Diff 68886.Aug 22 2016, 11:26 AM
colpell retitled this revision from to Fix SystemZ hang caused by r279105.
colpell updated this object.
colpell added a reviewer: uweigand.
colpell added subscribers: jonpa, llvm-commits.
uweigand accepted this revision.Aug 23 2016, 6:07 AM
uweigand edited edge metadata.

LGTM, thanks.

This revision is now accepted and ready to land.Aug 23 2016, 6:07 AM
This revision was automatically updated to reflect the committed changes.