This is an archive of the discontinued LLVM Phabricator instance.

[Polly] Treat conditionally executed non-pure calls as errors
ClosedPublic

Authored by jdoerfert on Oct 4 2015, 11:12 AM.

Details

Summary
This replaces the support for user defined error functions by a
heuristic that tries to determine if a call to a non-pure function
should be considered "an error". If so the block is assumed not to be
executed at runtime. While treating all non-pure function calls as
errors will allow a lot more regions to be analyzed, it will also
cause us to dismiss a lot again due to an infeasible runtime context.
This patch tries to limit that effect. A non-pure function call is
considered an error if it is executed only in conditionally.

Diff Detail

Event Timeline

jdoerfert updated this revision to Diff 36471.Oct 4 2015, 11:12 AM
jdoerfert retitled this revision from to Treat conditionally executed non-pure calls as errors.
jdoerfert added reviewers: grosser, Meinersbur.
jdoerfert updated this object.
jdoerfert added a subscriber: Restricted Project.
jdoerfert retitled this revision from Treat conditionally executed non-pure calls as errors to [Polly] Treat conditionally executed non-pure calls as errors.Oct 4 2015, 11:12 AM
grosser accepted this revision.Oct 6 2015, 12:52 PM
grosser edited edge metadata.

Any heuristic is a good start. We can improve this gradually.

Just as observation, but I would guess that most error handling routines do not return a value.

include/polly/Support/ScopHelper.h
128

being

This revision is now accepted and ready to land.Oct 6 2015, 12:52 PM
jdoerfert closed this revision.Oct 7 2015, 1:35 PM

commited in r249611