* Linaro GCC
Continued work on 64-bit shifts. My patch for shifts in core registers was rejected because I used conditional-execution before it's safe, apparently, so I've spent some time looking at the alternatives.
First, conditional move instructions were unsatisfactory - the final instruction sequence was longer and therefore less efficient.
Second, if_then_else instructions (basically conditional execution expressed a different way) was to limited - there were no patterns compatible with "or with shifted input" available in ARM mode, and no patterns available at all in Thumb mode. I solved that easily enough, of course, but the result was still unsatisfactory. In Thumb mode the result was roughly equivalent (conditional-execution is constrained by IT blocks), but in ARM mode it uses patterns that output two opposing instructions at once, without allowing for the possibility of scheduling or other optimization.
Third, I've tried putting in ordinary branches and relying on the if-conversion pass to transform that to conditional execution. I had not done this initially, partially because I didn't know how, but mostly because the original implementation I was trying to replace resulted in branches in the output code, and I was trying to improve on that. Anyway, I've now figured out how to do that, and initial testing suggests that the if-conversion really is working this time. Even if it doesn't always, the other improvements to the shift sequence should still give a boost.
My other patch, to do 64-bits shifts in NEON (and fall back to the above code when register allocation sees fit) has not yet been reviewed.
* Linaro Connect
This week was Linaro Connect week. I could not attend the event in San Francisco in person this time, so I took part in some of the morning sessions remotely.
Linaro have switched to using Google Hangouts for the remote participation, and it went really rather well. In the old system there was an audio stream to listen to (on a 20 second delay or so, usually), and an IRC room projected onto a large screen for remote attendees to respond. The new Hangout system is effectively a simple in-browser video-conference system that allowed us to not only see the room, but also respond verbally in real time. The only disadvantage is the 10-person limit, but I never saw any room get near that all week.
I successfully attended several sessions and one regular meeting remotely by these means. And no jet lag or eating so much!