Unneeded push in sync primitives

Bug #681138 reported by Michael Hope
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linaro GCC
Fix Released
Low
Ken Werner

Bug Description

See:
 http://lists.linaro.org/pipermail/linaro-toolchain/2010-November/000498.html
 https://wiki.linaro.org/WorkingGroups/ToolChain/AtomicMemoryOperations

Peter points out that the current sync primitves have an extra push/pop that could be removed.

Tags: speed task

Related branches

Ken Werner (kwerner)
Changed in gcc-linaro:
status: New → In Progress
Ken Werner (kwerner)
Changed in gcc-linaro:
status: In Progress → New
Revision history for this message
Ken Werner (kwerner) wrote :

This patch is my first try to optimize the sequence emitted by GCC. The idea is to save one register in case the operation is reversible as suggested by Peter Maydell:
http://lists.linaro.org/pipermail/linaro-toolchain/2010-November/000498.html

Revision history for this message
Ken Werner (kwerner) wrote :
Ken Werner (kwerner)
Changed in gcc-linaro:
assignee: nobody → Ken Werner (kwerner)
status: New → In Progress
Revision history for this message
Ken Werner (kwerner) wrote :

quick status udpate:
 - the patch has been tested on the gcc-linaro with no regressions
 - I intend to post the patch on gcc-patches as soon as it's been tested against the GCC (trunk)
 - currently the upstream GCC doesn't bootstrap on ARM (#659713)

Revision history for this message
Ken Werner (kwerner) wrote :

update: The patch has been tested using gcc trunk with no regressions and has been posted on the gcc-patches ml.

Revision history for this message
Michael Hope (michaelh1) wrote :
Revision history for this message
Ken Werner (kwerner) wrote :

The patch has been accepted upstream.

I've created a linaro-gcc-4.5 branch at:
https://code.launchpad.net/~kwerner/gcc-linaro/lp-681138-4.5
but I didn't submit a merge request since it's only an optimization/enhancement.

Revision history for this message
Ken Werner (kwerner) wrote :

The patch has been committed to mainline.
http://gcc.gnu.org/ml/gcc-cvs/2010-12/msg01061.html

Changed in gcc-linaro:
status: In Progress → Fix Committed
Michael Hope (michaelh1)
Changed in gcc-linaro:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.