Turn on Shrink Wrapping for Linaro 47 and upstream 48
Shrink-wrapping is a feature that was enabled upstream in GCC 4.7 but not for the ARM port. This requires at the minimum the definition of a new backend pattern "simple_return" to enable this feature to work. However this requires co-ordination with the way in which the epilogue is being generated which is being rewritten to the RTL form. Thus this work in upstream FSF 4.8 should wait for the new epilogue infrastructure while in Linaro 4.7 we can afford to rewrite a simpler form that will use the existing infrastructure.
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- Medium
- Drafter:
- Ramana Radhakrishnan
- Direction:
- Approved
- Assignee:
- Zhenqiang Chen
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Informational
- Milestone target:
- None
- Started by
- Michael Hope
- Completed by
- Matthew Gretton-Dann
Related branches
Related bugs
Sprints
Whiteboard
[matthew-
Meta:
Headline: Enabling shrinkwrapping (early function exit) optimisations in GCC
Acceptance: https:/
Roadmap id: CARD-304
The implementation depends on whether we backport the RTL epilogues patch into Linaro 4.7 as there will be some churn because of that.
Earlier bugs can be found here
https:/
This bug should be investigated for code quality for the shrinkwrap implementation
Work Items
Work items:
Implement simple_return pattern: DONE
Adjust return pattern in Linaro: DONE
Find broken packages with earlier shrink wrapping implementation: DONE
Test with cases that failed in earlier shrink wrapping implementation: DONE
Benchmark to show no performance degredation: DONE
Upstream to GCC: INPROGRESS
Backport to GCC Linaro: TODO