There should be no constant propagation because those variables are
different n's. He has redeclared them in different scopes. Also, why is it
initialized with 16 instead of 8?

On Wed, 23 Jun 2004, Dmitry wrote:

> local volatiles live on stack (I believe this is in docs).
> but where is volatile declaration in your code?
>
> As I can see from your example there is simple 'constant propagation'
> technique being used.
>
>
> ~d
>
> On Wednesday 23 June 2004 21:05, Matthias Weingart wrote:
> > Hi,
> >
> > again a problem with volatile - or too much optimizing of the compiler.
> > With "volatile uint n;" my code will work as expected, but it uses space on
> > the stack and it wastes cycles. I want registers for my purpose.
> >
> > This is the code (Stripped down to something useless :-)
> >
> > #define VALUE 8
> >
> > void foo(void)
> > {
> >   {
> >     uint n;
> >     n=VALUE;
> >     __asm__ __volatile__("dec %0\n  jnz $-2\n" :: "r" (n));
> >   }
> >   //do someth.
> >   {
> >     uint n;
> >     n=VALUE;
> >     __asm__ __volatile__("dec %0\n  jnz $-2\n" :: "r" (n));
> >   }
> >   //do someth.
> > }
> >
> > The compiler is setting N=2*VALUE before the first loop:
> >
> >     mov     #16,    r15
> >     dec     r15
> >     jnz     $-2
> >
> >     ... ;do smth.
> >
> >     dec     r15
> >     jnz     $-2
> >
> >     ... ;do smth.
> >     ret
> >
> > but I want it to look like this:
> >     mov     #8,     r15
> >     dec     r15
> >     jnz     $-2
> >
> >     ... ;do smth.
> >
> >     mov     #8,     r15
> >     dec     r15
> >     jnz     $-2
> >
> >     ... ;do smth.
> >     ret
> >
> > any ideas?
> >
> > thx
> >
> > M.
> >
> >
> > -------------------------------------------------------
> > This SF.Net email sponsored by Black Hat Briefings & Training.
> > Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> > digital self defense, top technical experts, no vendor pitches,
> > unmatched networking opportunities. Visit www.blackhat.com
> > _______________________________________________
> > Mspgcc-users mailing list
> > Mspgcc-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> digital self defense, top technical experts, no vendor pitches,
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> Mspgcc-users mailing list
> Mspgcc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>


Reply via email to