Improve SLP data analysis

Registered by Richard Sandiford

The gimple data-analysis code assumes that, during a loop optimisation,
only data references that can be treated as ivs are of interest. This harms
SLP, which isn't really a loop optimisation, but has to be run before ivopts.
We should extend the data-reference code so that loop vs. non-loop behaviour
can be chosen by the caller.

This will help SLP handle functions like libav's ff_put_pixels16x16_8_c.

Blueprint information

Status:
Complete
Approver:
Michael Hope
Priority:
High
Drafter:
Richard Sandiford
Direction:
Approved
Assignee:
Ira Rosen
Definition:
Approved
Series goal:
Accepted for 4.6
Implementation:
Implemented
Milestone target:
milestone icon 4.6-2011.10
Started by
Ira Rosen
Completed by
Michael Hope

Related branches

Sprints

Whiteboard

Headline: The data reference code can now handle loops vs non-loops which helps the straight line vectoriser
Acceptance: https://wiki.linaro.org/WorkingGroups/ToolChain/std-performance-acceptance

(?)

Work Items

Work items:
Implement, upstream: DONE
backport: DONE
Allow read-read dependencies in SLP: TODO
Implement, upstream: DONE
backport: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.