sublimation does't removing as much code as it should

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

Moderator: richard@imagecraft.com

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?

Cheers,
Maurice

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]
                                        (0817)
                                        (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
                                        (0826)
                                        (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 ]
                                        (0832)
                                        (0833)
                                        (0834)  End_UART_1_iReadChar:
                                        (0835)    RAM_EPILOGUE RAM_USE_CLASS_1
0728: 7F       RET                      (0836)    ret
                                        (0837) .ENDSECTION
zorglub
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

cron