On Mon, 2005-12-26 at 21:41, Ivan Petrov wrote:
> I have one question. So... have small sample programm.
>
> [code]
> int bar( int );
>
> int foo( int a, int b )
> {
> return bar( a + b );
> }
> [/code]
>
> If I compille it with out -thumb parameter, i have very clean code.
>
> add r0, r1, r0
> bx lr
>
> But with -thumb parameter have unopimized code.
>
> add r1, r1, r0
> mov r0, r1
> bx lr
>
> All diff of it outrage on '*.27.combine' (key -da) optimization step. But I
> long time can't understad how it work.
> Can anybody help me with it?
It's because the register allocator is stupid.
R.