Hi,
With respect to the MPFR build error,
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58578), is movs appropraite
as shown below? When _err1 is negative the condition is evaluating it to
be true.
/* C Codeoes */
if (_err1 > 0)
{
/* working code */
.loc 1 67 0
cmp r3, #0
ble .L6
/* not working code*/
.loc 1 67 0
movs r3, r3, asl #1
ble .L6
When I looked at the ARM documents, I found the following
Condition flags
-------------------
If S is specified, for MOV instructions:
1. update the N and Z flags according to the result
2. can update the C flag during the calculation of Operand2 (see
Flexible second operand)
3. do not affect the V flag.
And also
le Signed less than or equal. (Z==1) || (N!=V)
Does this means we cant movs at comparision.
http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00861.html added this and I
guess it is intentional.
Am I missing anything here?
Thanks,
Kugan
== Progress ==
* AArch64 frame grows downward: no feedback yet.
* Disable-peeling: trying to tune the vectorizer cost model so that it
is less aggressive.
* AArch64 bootstrap failure: build it still on-going, so still hoping
to reproduce it.
* GCC trunk cross-validation:
- aarch64 added
- looking at how to handle compute farm jobs timeouts nicely
* Backports:
- launched several merge requests for a few individual patches.
== Next ==
* AArch64 frame grows downward: continue
* Disable-peeling: continue
* Backports : spend little time on checking the results
Progress
. worked on cleaning up arm config in gcc (TCWG-201)
. not really convinced I have a way to properly test the result
. a bit of bug triage
. a bit more on the 4.7 segfault bug (lp1215925)
Plans
. ping the arm*gnueabihf testsuite patch
. finish the config clean up
. revisit 4.7 segfault, now I have more suggestions from Matt
== Issues ==
* None.
== Progress ==
* Misc:
- Installed Saucy on Chromebook.
* LRA on AArch64:
- Committed RTL analyser patch.
- Committed patch which switch on LRA on AArch64.
* LRA on AArch32:
- Committed patch which fix failing assembly scan test with LRA.
- Committed LRA register notes DEAD and UNSUSED handling in LRA.
- Bootstrapped GCC with LRA on Chromebook.
- Analysis of testsuite results ongoing.
== Next ==
* Continue on LRA.
Short week (Tuesday and Wednesday went to US consulate Chennai for
VISA interview and document processing).
== Progress ==
* gprof support for aarch64
Re-based and tested. Asked permission for upstreaming in trunk.
Gibc patches are upstreamed. Thanks to Marcus.
* Aarch64 Boot strap failure.
Tried to reproduce it in V8 model. Build failing in stage 1 for me.
* 1-1 Meet with Christophe.
== Plan ==
* Back to libssp support.
* Aarch64 boot strap issue.
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
Misc
------
October 2 India Holiday.
== Progress ==
* MPFR and GMP Build error with Latest 4.8 Release
- Reproduced MPFR error with a simplified testcase
- Found the buggy codesequence and the patch that introduced it.
- Looking at solution for this
- Reprdouced GMP error with -march=armv7-a and -mthumb
- continuing with the invetigation
* 64bit division
- Looked at current libgcc implementaion and studied the alorithm.
* Addressing patch review
- Posted second patch for zero/sign extension
* spec2k comparison between ARM and x86
- Ran spec2k with various options to validate code analysis
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Continue 64bit division
* Fix GMP and MPFR build error
== Progress ==
(TCWG-270)
* Tested GDB Process Record/Replay and reverse debug feature for arm.
* Thumb32 support patch along with a couple of bug fixes made huge
improvement in testsuite results.
(TCWG-267) and (TCWG-269)
* Reviewed all previous submitted patches and wrote response patch updates.
* Implemented gdb/testsuite/gdb.dwaf2/dw2-error.exp using dwarf assembler.
(TCWG-268)
* Submitted patch for failing gdb/testsuite/gdb.dwaf2/dw2-case-insensitive.exp
(TCWG-272)
* Re-viewed and verified gdb bugs reported on launchpad and created
JIRA cards where required.
(TCWG-265)
* Generated Test data to test instruction decoding in arm specific
code of gdb process record/replay.
(TCWG-280)
* Reviewed previously submitted patches related to gdb process record
syscall support for arm targets.
* Submitted US Visa application for processing and got appointment for
Visa Interview.
* Reviewed all open JIRA cards and created new ones for future progress on GDB
== Plan ==
(TCWG-270)
* Submitt patch for bug fixes and show testsuite improvement with bug
fixes and thumb32 patch.
* Do more testing and analyse failures and try to fix them if possible.
* Verify issues reported by maintainers in old arm instruction decoding code.
(TCWG-267), (TCWG-268) and (TCWG-269)
* Update gdb/testsuite/gdb.dwaf2/dw2-error.exp as asked by gdb maintainers.
* Ping or Send response to comments.
(TCWG-280)
* Test syscall support with old patch and make changes if required.
* Travel to Islamabad on Tuesday to attend US visa interview early
morning Wednesday.
== Issues ==
* None
== Progress ==
* Update Conditional compare (CCMP) patch according to community comments.
* Investigate how to generate CCMP to support more than two compares.
- Investigate ifcombine to create more CCMP opportunities.
- Enhancing phiopt to handle CCMP case like:
if (a == 0 && b > c)
return 0
return a;
== Plan ==
* Continue on CCMP to support more than two compares.
== Panned leaves ==
* Oct. 1-7: National Day of China holiday
== Progress ==
* Profiling ImageMagick
- Clang 3.4-svn is around 10% less performing than GCC 4.7.3
- Mainly due to recursive octree-style map/reduce of most functions,
spending a lot of time
before/after branches
- Any optimization on that front won't fit the "Incubation" tag
* Profiling EEMBC
- Found 2 cases where Clang is *a lot* better than GCC 4.7.3 (pruning
bmark.c, producing much
smaller objects, and vectorizing telecom/autcor, which GCC can't)
- Most of the time, GCC is slightly better (~5% faster, ~10% smaller,
geomean)
- Wrote some scripts to run any two compilers against each other, compare
the results and
dump the ratios in a TSV file.
== Plans ==
* Update EEMBC Linaro image with Clang toolchain changes
* Look for low-hanging fruits in EEMBC
* Try comparison with GCC 4.8 and 4.9, too
* Find a way to extract Phoronix results in TSV format
== Progress ==
* Checked testsuite for glibc and gcc bootstrap on aarch64 native
* Released Linaro gdb 7.6.1 2013.09-1
* Submitted glibc pointer guard patch using TLS
* Submitted respin of pointer guard patch using a global variable
* Submitted binutils aarch64 ifunc patches for a second time
* A little bit of time on malloc
* Built office furniture!
== Issues ==
* None
== Plan ==
* Finish off pointer guard
* Hopefully back to malloc
--
Will Newton
Toolchain Working Group, Linaro