== This week ==
* cfgloop.h flatten (2/10) - Rebased and tested on top of Andrew's patch - bootstrapped on x86_64-unknown-linux-gnu - building on all targets in config-list.mk in progress
* TCWG-777 (2/10) - Problem is still present on trunk - Original test-case: http://pastebin.com/UTv8g3aA - Original test-case assembly for -O1: http://pastebin.com/815TgDjV - Possibly reduced test-case: http://pastebin.com/UGUteX4a - Assembly for reduced test-case for -O1: http://pastebin.com/edKu6CxH - x86 assembly for reduced test-case for -O1: http://pastebin.com/9APbJeLr - Workaround: To disable CSE in branch conditions make flags volatile. This prevents storing result of ands to temporary but leads to worse code-gen.
- Possible approaches from (https://bugs.launchpad.net/gcc-linaro/+bug/851258): a) teach PRE not to fold in such cases ? I don't know how.
b) Write a new tree-ssa pass that "unfolds" cse on result of test conditions. Check if operand in if (operand != 0) is a result of test condition. eg: _8 = flags & 1; if (_8 != 0) goto true_branch else goto false_branch
In this case we could add an attribute to _8 say "unfold". If we again come across if (_8 != 0) at a later point, and it's marked with "unfold", we can create a new ssa var with definition of _8. so it becomes: _9 = flags & 1; if (_9 != 0) ... which will "undo" CSE on test conditions. Does this sounds reasonable ? Should we do it on all test conditions ? I don't understand "suitable compare insn" a target should have in above link.
* TCWG-145 (2/10) - Optimization is already implemented in PRE pass. - Verified for various test-cases in eembc. - Currently gcc does not convert global statics to locals - remove-local-statics-7.c not handled currently by gcc: (https://gcc.gnu.org/ml/gcc-patches/2008-07/msg01007.html) - Desirable to have ipa dead-store analysis to avoid stores to static vars: https://gcc.gnu.org/ml/gcc-patches/2008-07/msg01609.html https://gcc.gnu.org/ml/gcc-patches/2008-07/msg01602.html - continuing to look for cases where static-to-locals wins over PRE.
* Misc (4/10) - Built firefox on x86 non-LTO - Read thru tree-ssa-dse.c, IPA, LTO doc - US Visa application - Setting up home office
== Issues == Not able to connect to #linaro-tcwg thru ircproxy.linaro.org , password invalid.
== Next Week == - TCWG-830 - TCWG-835 - TCWG-844 - continue investigating branch out of range error issue. - Work towards committing cfgloop.h patch