Better extending core to NEON transfers
Improve a extending transfer from core to NEON registers. The compiler currently extends into two 32 bit core registers and then transfers this pair into NEON. Change to transfer into NEON and then extend.
Reduces register pressure. Should improve 64 bit performance.
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- Medium
- Drafter:
- Michael Hope
- Direction:
- Approved
- Assignee:
- Ulrich Weigand
- Definition:
- Approved
- Series goal:
- Accepted for 4.6
- Implementation:
- Implemented
- Milestone target:
- 4.7-2013.01
- Started by
- Michael Hope
- Completed by
- Ulrich Weigand
Whiteboard
Testing has shown a missed-optimization regression. Investigation found that the lower-subreg pass is being unhelpful. The problem is that one of the side-effects of lowering is that the compiler will refuse to modify a DImode value in-place if it can prove that one subreg won't, in fact, be modified. This wouldn't be a problem, of course, if the entire algorithm were lowered, but it is a problem when certain non-subreg DImode operations remain, as is the case with NEON.
This patch is dependent on both 64-bit shift patches, so it is also blocked on the spec2000 issues.
Meta:
Headline: TBD
Acceptance: TBD
Work Items
Work items:
Initial Implementation: DONE
Testing: DONE
Upstream Review: DONE
Upstream Commit: DONE
Internal Commit: DONE
Dependency tree
* Blueprints in grey have been implemented.