Disable invalid autoinc forms for VFP

Registered by Michael Hope

Disable the invalid auto-inc forms for VFP mode values. If a value is being loaded into a VFP register don't allow auto-inc-dec to put out a post-modify form for this address. The reason being that there is no post-modify addressing mode for VFP registers, the value will be loaded into an integer register and then moved across thereby increasing register pressure on the integer side and causing unnecessary moves from integer registers to VFP registers.

Blueprint information

Status:
Complete
Approver:
Michael Hope
Priority:
Medium
Drafter:
Ramana Radhakrishnan
Direction:
Approved
Assignee:
Ramana Radhakrishnan
Definition:
Approved
Series goal:
Accepted for 4.7
Implementation:
Implemented
Milestone target:
milestone icon 4.7-2012.07
Started by
Ramana Radhakrishnan
Completed by
Ramana Radhakrishnan

Sprints

Whiteboard

Also affects PRE_INC and POST_DEC as per this testcase from libav where there is a regression in performance.

   void foo (float *x , float *y, float *z, float *m, int l)
   {
      int i;
      for (i = 0; i < l ; i++)
      {
        z[i] = x[i] * y[i] + m[i];
      }
   }

Meta:
Headline: Improve auto-increment address generation for floating point values.
Acceptance: https://wiki.linaro.org/WorkingGroups/ToolChain/std-performance-acceptance

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.