- Andrew Stubbs
- Chung-Lin Tang
- Dave Gilbert
- Ira Rosen
- Ken Werner
- Marcin Juszkiewicz
- Michael Hope
- Mounir Bsaibes
- Peter Maydell
- Ramana Radhakrishnan
- Revital Eres
- Richard Sandiford
- Ulrich Weigand
Merged & tested the outstanding merge requests into Linaro GCC.
- Spin the Linaro GCC 4.5 and 4.6 releases. Uploaded the tarballs to Michael.
Submitted a patch upstream that removed some redundant code that had confused me a introduced a bug into my Thumb2 constants patch. http://email@example.com/msg03756.html This patch is now approved and committed upstream. I'll commit it internally when the rest of my ARM/Thumb constant handling changes are upstream.
- Worked on addressing RichardE's concerns with my Thumb2 constants patch. Tried to split it into smaller chunks, and rename the constraints. Posted the patches upstream:
a small patch upstream to clean up MOWV support. http://firstname.lastname@example.org/msg03768.html (Now approved and committed.)
ADDW and SUBW support. http://email@example.com/msg03783.html
Replicated constants for constant splitting. http://firstname.lastname@example.org/msg03883.html
- Committed upstream Dan's Vector shift test cases patch that was approved last week. Pushed the same patch to Linaro GCC 4.6.
- PR48250, rehaul arm_legitimize_reload_address(). Richard Sandiford caught a bug of mine where I overlooked the valid index range of NEON quad-word load/stores. Quickly whipped up a fix, soon approved and committed upstream.
- LP #744754, ICE in NEON struct-mode auto-inc-dec MEMs. Pushed upstream patch for a merge to Linaro 4.5.
- PR46888, bit-field insert optimization patch. Resumed investigating, mailed Andrew Pinski for more information on that REG_EQUAL note issue he mentioned on gcc-patches; can't quite reproduce it myself.
CoreMark ARMv6/v7 regressions: posted a patch set to gcc-patches. Still waiting review.
- Reported to Bernd and AndrewS on an issue (LP #748138) which seems to be related to the shrink-wrap patch. This ICE does not seem to be avoided by doing -fno-shrink-wrap.
- A few tasks related to Linaro-Budapest event travel.
- Do the merge of the new combine patches to Linaro, and test.
- LP #689887 is still in progress.
- Hope to experiment with a few more optimization ideas.
String and Memory routines
- Profiled denbench with perf and produced a set of stats to show which programs spent how much time in libc and how
- much time was spent in each routine. While some of the benchmarks are good (like aes) and spend almost no time in libc some of the others (MPEG codecs especially) seem to spend significant times in libc.
- Ran all of denbench through latrace to generate sets of library calls; post processed them to extract the section between the clock() calls (and hence in the timed portion) and analysed the hot library calls. I've looked at some of the output but not all of it yet; I get output like:
- Memcpy stats (dst align/src align/length/number of occurrences/total size copied)
- memcpy: 0,0,1 , 1588520, 1588520
- memcpy: 16,28,4096 , 1, 4096
- memcpy: 4,20,16384 , 855, 14008320
- This shows that for a bunch of tests they do an inordinate number of 1 byte memcpy's, and a few hundred larger memcpy's with an address %32 which is 4 (and destination %32 is 20) - so not aligned but at least equally misaligned.
- Started writing up a report on some of the stats
- Also started to try and extract the same stuff from SPEC2k6
- Tested Peter's QEmu release earlier in the week (On Lucid so didn't hit his natty bug)
Wrote up a couple of specs (one for TrustZone and the other for Device Tree integration)
- added initial support for resuming at a certain stack frame
- posted unw_resume support plus some some testsuite fixes on the ml
- there are still some issues left if signal handlers/frames are involved
- qemu-linaro 2011.04 tested and released
- had to do another last minute -1 respin to fix a problem caught by ubuntu package builds; we need to come up with a process that lets us do test package builds prior to release so we can fix this sort of issue in a less last-minute fashion
- sent patch: fix semihosting SYS_HEAPINFO (seems to have issues though)
- sent patch: UNDEFs in Neon load/store space
- sent patches: fix build issues on sparc
- sent patch: bump the initrd load address to work with bigger kernels
- sent patch: set Invalid flag for float-to-int conversion of NaN
- sent patch: move vld/vst multiple to helper functions
- reviewed patches from Aurelien doing some general softfloat cleanup
- sent out a version of my performance counters patch which just does a basic dummy implementation without the cycle counter (since the cycle counter bits were going off down a blind alley rather and this part is the last thing needed to be able to boot Linaro vexpress images on stock upstream QEMU)
trying to nail down proposed QEMU work for next cycle; work-in-progress: https://wiki.linaro.org/PeterMaydell/Qemu1111
- meetings: toolchain, standup
Current qemu patch status is tracked here https://wiki.linaro.org/PeterMaydell/QemuPatchStatus
- Submitted the following patches to GCC trunk:
Avoid unfreed memory when SMS fails (committed to trunk GCC) - http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01204.html
Free sccs field (committed to trunk GCC)- http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01205.html
New flag to apply SMS when SC equals 1 (committed to trunk GCC) - http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01293.html
Avoid considering debug_insn when calculating SCCs - http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01294.html
Support instructions with REG_INC_NOTE - http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01309.html
- Returned looking into DENbench's benchmarks.
- Iterated with upstream on some of the vectorisation patches. I think only half a patch (the ARM implementation of array_mode_supported_p) is still pending review; everything else has been approved.
- Backported the vldN and vstN intrinsics to Linaro 4.5.
- Finished off the microbenchmarks for libav.
- One of the problems in the original libav output was that the vectoriser didn't realise that a group of N accesses really did form a group. It instead generated N separate interleave operations and took 1 vector from each.
- Submitted a fix for that, which is now committed upstream. Updated the libav wiki page with the new, improved output. (This actually allowed more libav loops to be vectorised, as well as improving the output from some of the existing ones. I haven't looked at the new ones. I expect this comes from interleaved stores.)
- Wrote an arm_neon.h version of Android's scanline_t32cb16_neon and compared it with the original.
- Started (and only started) seeing how the vectorisation stuff affects DENbench.
- Backported the dwarf2out OOM fix to Linaro 4.6.
- Do something useful on DENbench.
- If all goes well, commit the vectorisation work upstream and backport it to Linaro 4.5 and 4.6.
- Created Linaro GDB 7.2-2011.04-0 release.
- Committed patch to fix accessing "fpscr" register to Linaro GDB.
- Failure to disable address space randomization (bug #616001) has been fixed in the kernel; closed the Linaro GDB bug.
Ongoing analysis of bug #759409 (Profiled bootstrap fails). Identified two independent problems, one related to a new CodeSourcery feature, and one a mis-optimization of final-stage cc1plus which is also present in FSF GCC 4.5 (PR 43085). Ongoing investigation to track down the root cause of the latter problem.
- Public holidays 04/22 - 04/25.
WorkingGroups/ToolChain/ActivityReports/2011-04-22 (last modified 2011-04-26 18:41:08)