Summary:
* Test shrink-wrap code

Details:
1. Add simple_return support in function thumb2_expand_return for
shrink-wrap. Here is the make check status
* One new fail is due to code size increase. We'd disable it when
optimizing function for size on THUMB2.
* Other new fails is due to dwarf info. Root cause is ICE at function
maybe_record_trace_start

  gcc_checking_assert (cfi_row_equal_p (cur_row, ti->beg_row));

Here is the failed code segment:

  tst ... L1
  push {r4}
  ...
  ldr r4, ...
L1:
  bx lr // common simple return from two branches.

Here are the results for cur_row and ti->beg_row of trace starting at L1:

{cfa = {offset = 0, base_offset = 0, reg = 13, indirect = 0, in_use =
0}, cfa_cfi = 0x0, reg_save = 0x0}
{cfa = {offset = 4, base_offset = 0, reg = 13, indirect = 0, in_use =
0}, cfa_cfi = 0x0, reg_save = 0x7ffff726ab70}

Try gcc-linaro-4.5-2011.03. It does not generate the common bx lr.

  test L1
  push {r4}
  ...
  pop {r4}
  bx lr
L1:
  bx lr

There is similar bug about it. But the fix is useless for us:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50833


Plans:
* Continue shrink-wrap task.

Best regards!
-Zhenqiang

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to