This is an archive of the discontinued LLVM Phabricator instance.

[LAA] Only require computable BTC when runtime checks are needed.
Needs ReviewPublic

Authored by fhahn on Jan 1 2021, 5:59 AM.

Details

Summary

LAA only requires a backedge-taken-count when generating memory
runtime checks. If no memory checks are required, we can continue with
the analysis.

Note that this patch updates users of LAA to check for computable
backedge-taken counts themselves, if required.

Diff Detail

Event Timeline

fhahn created this revision.Jan 1 2021, 5:59 AM
fhahn requested review of this revision.Jan 1 2021, 5:59 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 1 2021, 5:59 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 14 2022, 3:21 AM
fhahn updated this revision to Diff 452503.Aug 14 2022, 3:24 AM

rebase and ping :)

The main benefits for this patch are for clients that do not require computable bounds independently of runtime-check generation. For example, LoopDistribution can distribute loops with uncomputable bounds, if no memory runtime checks are needed and the dependences allow for it.

By pushing responsibility to clients to check for computable trip counts, we can also improve diagnstics with remarks, like in the change LV test where now we continue further analysis for uncomputable trip counts.