- Tracked the problematic file which contains the loop that causing bootstrap failure with SMS flags on ARM machine. It is not caused by SMS but rather due to doloop optimization which is applied when SMS flags are set. Now working on locating the exact loop and producing a testcase to reproduce the error. - Looking into Spec2006/libquantum benchmark - it has hot loop with conditional store which suppress SMS as it is only applied on single basic-block loops. If-conversion can not be done (replacing the store with conditional move and then a store) because in order to do that we need to prove that there is a store to the same location in each iteration of the loop; and it is not the case in this loop. Apparently, when running with crotex-a8 flag cond_exe statement is generated for the store but that's happening only after register allocation pass which is applied after SMS (IIUC,moving the generation of cond_exe before RA is not trivial http://gcc.gnu.org/ml/gcc/2000-05/msg00079.html) So, I'm looking into teaching SMS to handle conditional statements based on technique presented in [1]. This change is not trivial so I'm going to estimate the potential of applying SMS on the loop at first stage.
[1] M. Lam, "Software pipelining: an effective scheduling technique for VLIW machines"