sublimation does't removing as much code as it should

Discussion and support of the compiler from ImageCraft for the M8C.


sublimation does't removing as much code as it should

Postby zorglub » Mon Dec 20, 2010 7:07 pm

Dear all,

In the following example, the compiler correctly identified that UART_1_iReadChar() is not needed. As shown in list file below, no code is generated (as expected) until the optimizer finds the re-usable local label .RX_GET_DATA.

The optimizer should continue to remove the code until it finds .ENDSECTION directive or until it finds a label being referenced by a non dead-code, whichever comes first.

Any thought?


Code: Select all
                                        (0782) .SECTION
; comments removed for clarity
                                        (0813)  UART_1_iReadChar:
                                        (0814) _UART_1_iReadChar:
                                        (0815)    RAM_PROLOGUE RAM_USE_CLASS_1
                                        (0816)    mov  A,REG[UART_1_RX_CONTROL_REG]
                                        (0818)    and  A,(UART_1_RX_ERROR|UART_1_RX_REG_FULL)
                                        (0819)    push A
                                        (0820)    and  A,UART_1_RX_COMPLETE
                                        (0821)    jnz  .RX_GET_DATA
                                        (0822)    pop  A
                                        (0823)    or   A,UART_1_RX_NO_DATA
                                        (0824)    swap A,X
                                        (0825)    jmp  End_UART_1_iReadChar
                                        (0827) .RX_GET_DATA:
0722: 18       POP   A                  (0828)    pop  A
0723: 21 E0    AND   A,0xE0             (0829)    and  A,UART_1_RX_ERROR
0725: 4B       SWAP  A,X                (0830)    swap A,X
0726: 5D 2E    MOV   A,REG[0x2E]        (0831)    mov  A,REG[UART_1_RX_BUFFER_REG ]
                                        (0834)  End_UART_1_iReadChar:
                                        (0835)    RAM_EPILOGUE RAM_USE_CLASS_1
0728: 7F       RET                      (0836)    ret
                                        (0837) .ENDSECTION
Bite-Size Cheese
Bite-Size Cheese
Posts: 18
Joined: Wed Aug 27, 2008 9:55 am

Return to “%s” ImageCraft ICCv7 for M8C Compiler

Who is online

Users browsing this forum: No registered users and 1 guest