i dunno.
On Wednesday 27 August 2003 20:27, Takahashi, Chris wrote:
> no; I _do_ _not_ want to unroll anything it but it gets unrolled(part way)
> any way. Attached is the makefile and .c file which will make an asm list
> with source.
>
> As you can see it unrolls the loop and processes 64bytes per loop instead
> of 2(1 word) also if it _is_ going to do this why isn't it using the auto
> increment addressing mode.
>
> -Chris Takahashi
>
> COMPILED WITH: -g -c -Os -mmcu=msp430x437 -fno-force-mem -fno-unroll-loops
> -----------C-----------
> for (addr = (int *)0x8000; addr != 0x0000; addr++) {
> sum += *addr;
> }
> -----------ASM---------
> for (addr = (int *)0x8000; addr != 0x0000; addr++) {
> 2: 3e 40 00 80 mov #-32768,r14 ;#0x8000
> sum += *addr;
> 6: 2f 5e add @r14, r15 ;
> 8: 1f 5e 02 00 add 2(r14), r15 ;
> c: 1f 5e 04 00 add 4(r14), r15 ;
> 10: 1f 5e 06 00 add 6(r14), r15 ;
> 14: 1f 5e 08 00 add 8(r14), r15 ;
> 18: 1f 5e 0a 00 add 10(r14),r15 ;
> 1c: 1f 5e 0c 00 add 12(r14),r15 ;
> 20: 1f 5e 0e 00 add 14(r14),r15 ;
> 24: 1f 5e 10 00 add 16(r14),r15 ;
> 28: 1f 5e 12 00 add 18(r14),r15 ;
> 2c: 1f 5e 14 00 add 20(r14),r15 ;
> 30: 1f 5e 16 00 add 22(r14),r15 ;
> 34: 1f 5e 18 00 add 24(r14),r15 ;
> 38: 1f 5e 1a 00 add 26(r14),r15 ;
> 3c: 1f 5e 1c 00 add 28(r14),r15 ;
> 40: 1f 5e 1e 00 add 30(r14),r15 ;
> 44: 1f 5e 20 00 add 32(r14),r15 ;
> 48: 1f 5e 22 00 add 34(r14),r15 ;
> 4c: 1f 5e 24 00 add 36(r14),r15 ;
> 50: 1f 5e 26 00 add 38(r14),r15 ;
> 54: 1f 5e 28 00 add 40(r14),r15 ;
> 58: 1f 5e 2a 00 add 42(r14),r15 ;
> 5c: 1f 5e 2c 00 add 44(r14),r15 ;
> 60: 1f 5e 2e 00 add 46(r14),r15 ;
> 64: 1f 5e 30 00 add 48(r14),r15 ;
> 68: 1f 5e 32 00 add 50(r14),r15 ;
> 6c: 1f 5e 34 00 add 52(r14),r15 ;
> 70: 1f 5e 36 00 add 54(r14),r15 ;
> 74: 1f 5e 38 00 add 56(r14),r15 ;
> 78: 1f 5e 3a 00 add 58(r14),r15 ;
> 7c: 1f 5e 3c 00 add 60(r14),r15 ;
> 80: 1f 5e 3e 00 add 62(r14),r15 ;
> 84: 3e 50 40 00 add #64, r14 ;#0x0040
> 88: be 23 jnz $-130 ;abs 0x6
> }
>
>
>
> -----Original Message-----
> From: Dmitry [mailto:[email protected]]
> Sent: Wednesday, August 27, 2003 9:18 AM
> To: [email protected]
> Subject: Re: [Mspgcc-users] partial loop unrolling.
>
>
> well,
> you want to unroll whole loop?
> try to use -funroll-all-loops
> ~d
>
> On Wednesday 27 August 2003 20:05, Takahashi, Chris wrote:
> > I've tried that. No change. When using -Os or -O2 (or I think even -O3)
> > loop unrolling isn't turned on (according to what I've found by looking
> > in gcc-3.2.3/gcc/toplev.c)
> >
> > -Chris Takahashi
> >
> >
> >
> > -----Original Message-----
> > From: Dmitry [mailto:[email protected]]
> > Sent: Wednesday, August 27, 2003 3:13 AM
> > To: [email protected]
> > Subject: Re: [Mspgcc-users] partial loop unrolling.
> >
> >
> > use -fno-unroll-loops
> > ~d
> >
> > On Wednesday 27 August 2003 03:01, Takahashi, Chris wrote:
> > > The following code creates some interesting asm with the following
>
> flags:
> > > -g -c -Os -fno-force-mem -mmcu=msp430x437
> > >
> > > It looks like it unrolled the loop in 64 byte chunks and is instead
> > > iterating over that. While this is faster this would hardly ever get
>
> run
>
> > > so I would rather have it small.
> > >
> > > attached are list files with the -fno-force-mem on and off and the C
> > > file.
> > >
> > > If I change the span it iterates over to a nonmultiple of 64 I get the
> > > expected asm.
> > >
> > > My question is what does no-force-mem have to do with this and why
> > > isn't auto increment addressing being used? In this case it would save
> > > quite
>
> a
>
> > > bit here.
> > >
> > > -Chris
> > >
> > > ---
> > >
> > > #include <msp430x44x.h>
> > >
> > > int test()
> > > {
> > > unsigned int sum = 0;
> > > unsigned int *addr;
> > >
> > > for (addr = (int *)0x8000; addr != 0x0000; addr++) {
> > > sum += *addr;
> > > }
> > >
> > > return sum;
> > > }
> > >
> > > -------
> > >
> > > for (addr = (int *)0x8000; addr != 0x0000; addr++) {^M
> > > 2: 3e 40 00 80 mov #-32768,r14 ;#0x8000
> > > sum += *addr;^M
> > > 6: 2f 5e add @r14, r15 ;
> > > 8: 1f 5e 02 00 add 2(r14), r15 ;
> > > c: 1f 5e 04 00 add 4(r14), r15 ;
> > > 10: 1f 5e 06 00 add 6(r14), r15 ;
> > > 14: 1f 5e 08 00 add 8(r14), r15 ;
> > > 18: 1f 5e 0a 00 add 10(r14),r15 ;
> > > 1c: 1f 5e 0c 00 add 12(r14),r15 ;
> > > 20: 1f 5e 0e 00 add 14(r14),r15 ;
> > > 24: 1f 5e 10 00 add 16(r14),r15 ;
> > > 28: 1f 5e 12 00 add 18(r14),r15 ;
> > > 2c: 1f 5e 14 00 add 20(r14),r15 ;
> > > 30: 1f 5e 16 00 add 22(r14),r15 ;
> > > 34: 1f 5e 18 00 add 24(r14),r15 ;
> > > 38: 1f 5e 1a 00 add 26(r14),r15 ;
> > > 3c: 1f 5e 1c 00 add 28(r14),r15 ;
> > > 40: 1f 5e 1e 00 add 30(r14),r15 ;
> > > 44: 1f 5e 20 00 add 32(r14),r15 ;
> > > 48: 1f 5e 22 00 add 34(r14),r15 ;
> > > 4c: 1f 5e 24 00 add 36(r14),r15 ;
> > > 50: 1f 5e 26 00 add 38(r14),r15 ;
> > > 54: 1f 5e 28 00 add 40(r14),r15 ;
> > > 58: 1f 5e 2a 00 add 42(r14),r15 ;
> > > 5c: 1f 5e 2c 00 add 44(r14),r15 ;
> > > 60: 1f 5e 2e 00 add 46(r14),r15 ;
> > > 64: 1f 5e 30 00 add 48(r14),r15 ;
> > > 68: 1f 5e 32 00 add 50(r14),r15 ;
> > > 6c: 1f 5e 34 00 add 52(r14),r15 ;
> > > 70: 1f 5e 36 00 add 54(r14),r15 ;
> > > 74: 1f 5e 38 00 add 56(r14),r15 ;
> > > 78: 1f 5e 3a 00 add 58(r14),r15 ;
> > > 7c: 1f 5e 3c 00 add 60(r14),r15 ;
> > > 80: 1f 5e 3e 00 add 62(r14),r15 ;
> > > 84: 3e 50 40 00 add #64, r14 ;#0x0040
> > > 88: be 23 jnz $-130 ;abs 0x6
> > > }
--
/*****************************************************************
("`-''-/").___..--''"`-._ (\ Dimmy the Wild UA1ACZ
`6_ 6 ) `-. ( ).`-.__.`) State Polytechnical Univ.
(_Y_.)' ._ ) `._ `. ``-..-' Radio-Physics Departament
_..`--'_..-_/ /--'_.' ,' Saint Petersburg, Russia
(il),-'' (li),' ((!.-' +7 (812) 5403923, 5585314
*****************************************************************/