This is an archive of the discontinued LLVM Phabricator instance.

Fix a hang when lowering __builtin_dynamic_object_size
ClosedPublic

Authored by erik.pilkington on Apr 4 2019, 5:43 PM.

Details

Summary

If the ObjectSizeOffsetEvaluator fails to fold the object size call, then it may litter some unused instructions in the function. When done repeatably in InstCombine, this results in an infinite loop. Fix this by tracking the set of instructions that were inserted, then removing them on failure.

Fixes rdar://49172227

Thanks!
Erik

Diff Detail

Event Timeline

erik.pilkington created this revision.Apr 4 2019, 5:43 PM
Herald added a project: Restricted Project. · View Herald TranscriptApr 4 2019, 5:43 PM
jfb accepted this revision.Apr 10 2019, 4:16 PM
This revision is now accepted and ready to land.Apr 10 2019, 4:16 PM
This revision was automatically updated to reflect the committed changes.