(i386-linux x sh-elf) More weak stack addressing

Toshiyasu Morita tm@netcom.com
Wed Jun 28 22:33:00 GMT 2000


version: CVS
   host: i386-linux
 target: sh-elf
options: -O2 -m4-single-only -ml -S -g

More weak stack addressing samples from stress-1.14.tar.gz at:

ftp://shell14.ba.best.com/pub.t/tm2/stress-1.14.tar.gz

GCC creates multiple pointers to the same stack slot and unnecessarily
eats up hard registers:

...
6363:./vtkTriangleStrip.ii ****       {
6364:./vtkTriangleStrip.ii ****       this->Triangle.PointIds.SetId(0,this->PointIds.GetId(i));
6365:./vtkTriangleStrip.ii ****       this->Triangle.PointIds.SetId(1,this->PointIds.GetId(i+1));
6366:./vtkTriangleStrip.ii ****       this->Triangle.PointIds.SetId(2,this->PointIds.GetId(i+2));
6367:./vtkTriangleStrip.ii ****       }
6368:./vtkTriangleStrip.ii ****
6369:./vtkTriangleStrip.ii ****     triScalars->SetScalar(0,cellScalars->GetScalar(i));
6370:./vtkTriangleStrip.ii ****     triScalars->SetScalar(1,cellScalars->GetScalar(i+1));
6371:./vtkTriangleStrip.ii ****     triScalars->SetScalar(2,cellScalars->GetScalar(i+2));
6372:./vtkTriangleStrip.ii ****
6373:./vtkTriangleStrip.ii ****     this->Triangle.Contour(value, triScalars, locator, verts,
6374:./vtkTriangleStrip.ii ****                            lines, polys, inPd, outPd, inCd, cellId, outCd);
 2839 0eb8 7CE6                 mov     #124,r6		<- here
 2840 0eba E07F                 add     #-32,r15
 2841 0ebc 7CE7                 mov     #124,r7		<- here
 2842 0ebe EC36                 add     r14,r6		<- here
 2843 0ec0 7CE0                 mov     #124,r0
 2844 0ec2 6956                 mov.l   @(36,r6),r6
 2845 0ec4 EC37                 add     r14,r7		<- here
 2846 0ec6 7CE1                 mov     #124,r1		<- here
 2847 0ec8 EC30                 add     r14,r0
 2848 0eca 622F                 mov.l   r6,@r15
 2849 0ecc EC31                 add     r14,r1		<- here
 2850 0ece 7A57                 mov.l   @(40,r7),r7
 2851 0ed0 7CE3                 mov     #124,r3		<- here
 2852 0ed2 7CE6                 mov     #124,r6		<- here
 2853 0ed4 EC33                 add     r14,r3		<- here
 2854 0ed6 711F                 mov.l   r7,@(4,r15)
 2855 0ed8 EC36                 add     r14,r6		<- here
 2856 0eda 0B50                 mov.l   @(44,r0),r0
 2857 0edc 06A0                 bra     .L318
 2858 0ede 7CE7                 mov     #124,r7
...
4626                   .L495:
 4627 1724 4CE7                 mov     #76,r7
 4628 1726 40E0                 mov     #64,r0		<- here
 4629 1728 EC37                 add     r14,r7
 4630 172a 27D1                 mov.l   .L545,r1
 4631 172c EC30                 add     r14,r0		<- here
 4632 172e 7267                 mov.l   @r7,r7
 4633 1730 01E3                 mov     #1,r3
 4634 1732 0AE5                 mov     #10,r5
 4635 1734 3C63                 extu.b  r3,r3
 4636 1736 E227                 mov.l   r14,@r7
 4637 1738 01E6                 mov     #1,r6
 4638 173a EA52                 mov.l   @(40,r14),r2
 4639 173c E367                 mov     r14,r7
 4640 173e 0254                 mov.l   @(8,r0),r4
 4641 1740 1C77                 add     #28,r7
 4642 1742 3910                 mov.l   r3,@(36,r0)
 4643 1744 1072                 add     #16,r2
 4644 1746 7B10                 mov.l   r7,@(44,r0)
 4645 1748 2810                 mov.l   r2,@(32,r0)
 4646 174a E362                 mov     r14,r2
 4647 174c 1472                 add     #20,r2
 4648 174e 0B41                 jsr     @r1
 4649 1750 2A10                 mov.l   r2,@(40,r0)
 4654 1752 4CE3                 mov     #76,r3
 4655 1754 EC33                 add     r14,r3
 4656 1756 3263                 mov.l   @r3,r3
 4657 1758 3261                 mov.l   @r3,r1
 4658 175a 1261                 mov.l   @r1,r1
 4659 175c 1223                 mov.l   r1,@r3
 4662 175e 03E5                 mov     #3,r5
 4665 1760 40E0                 mov     #64,r0		<- here
 4666 1762 2992                 mov.w   .L546,r2
 4667 1764 EC30                 add     r14,r0		<- here
 4668 1766 40E3                 mov     #64,r3
 4669 1768 0250                 mov.l   @(8,r0),r0
 4670 176a 00E7                 mov     #0,r7
 4671 176c EC33                 add     r14,r3
 4672 176e 0654                 mov.l   @(24,r0),r4
 4673 1770 7913                 mov.l   r7,@(36,r3)
 4674 1772 4351                 mov.l   @(12,r4),r1
 4675 1774 2C31                 add     r2,r1
 4676 1776 1162                 mov.w   @r1,r2
 4677 1778 1151                 mov.l   @(4,r1),r1
 4678 177a 0B41                 jsr     @r1
 4679 177c 2C34                 add     r2,r4
...
 4800 183e 40E3                 mov     #64,r3		<- here
 4801 1840 CC97                 mov.w   .L550,r7
 4802 1842 EC33                 add     r14,r3		<- here
 4803 1844 40E0                 mov     #64,r0		<- here
 4804 1846 3853                 mov.l   @(32,r3),r3
 4805 1848 EC30                 add     r14,r0		<- here
 4806 184a 0055                 mov.l   @(0,r0),r5
 4807 184c 3654                 mov.l   @(24,r3),r4
 4808 184e 4351                 mov.l   @(12,r4),r1
 4809 1850 7C31                 add     r7,r1
 4810 1852 1162                 mov.w   @r1,r2
 4811 1854 1151                 mov.l   @(4,r1),r1
 4812 1856 0B41                 jsr     @r1
 4813 1858 2C34                 add     r2,r4
 4821 185a 40E1                 mov     #64,r1		<- here
 4822 185c BF92                 mov.w   .L551,r2
 4823 185e EC31                 add     r14,r1		<- here
 4824 1860 01E5                 mov     #1,r5
 4825 1862 1451                 mov.l   @(16,r1),r1
 4826 1864 0366                 mov     r0,r6
 4827 1866 1654                 mov.l   @(24,r1),r4
 4828 1868 4351                 mov.l   @(12,r4),r1
 4829 186a 2C31                 add     r2,r1
 4830 186c 1162                 mov.w   @r1,r2
 4831 186e 1151                 mov.l   @(4,r1),r1
 4832 1870 0B41                 jsr     @r1
 4833 1872 2C34                 add     r2,r4
 4843 1874 40E3                 mov     #64,r3		<- here
 4844 1876 B197                 mov.w   .L550,r7
 4845 1878 EC33                 add     r14,r3		<- here
 4846 187a 40E0                 mov     #64,r0		<- here
 4847 187c 3853                 mov.l   @(32,r3),r3
 4848 187e EC30                 add     r14,r0		<- here
 4849 1880 0155                 mov.l   @(4,r0),r5
 4850 1882 3654                 mov.l   @(24,r3),r4
 4851 1884 4351                 mov.l   @(12,r4),r1
 4852 1886 7C31                 add     r7,r1
 4853 1888 1162                 mov.w   @r1,r2
 4854 188a 1151                 mov.l   @(4,r1),r1
 4855 188c 0B41                 jsr     @r1
 4856 188e 2C34                 add     r2,r4
...
 4864 1890 40E1                 mov     #64,r1		<- here
 4865 1892 A492                 mov.w   .L551,r2
 4866 1894 EC31                 add     r14,r1		<- here
 4867 1896 02E5                 mov     #2,r5
 4868 1898 1451                 mov.l   @(16,r1),r1
 4869 189a 0366                 mov     r0,r6
 4870 189c 1654                 mov.l   @(24,r1),r4
 4871 189e 4351                 mov.l   @(12,r4),r1
 4872 18a0 2C31                 add     r2,r1
 4873 18a2 1162                 mov.w   @r1,r2
 4874 18a4 1151                 mov.l   @(4,r1),r1
 4875 18a6 0B41                 jsr     @r1
 4876 18a8 2C34                 add     r2,r4
 4886 18aa EA57                 mov.l   @(40,r14),r7
 4889 18ac EF50                 mov.l   @(60,r14),r0
 4892 18ae 4C77                 add     #76,r7
 4895 18b0 9693                 mov.w   .L552,r3
 4898 18b2 0840                 shll2   r0
 4899 18b4 7451                 mov.l   @(16,r7),r1
 4900 18b6 B477                 add     #-76,r7
 4901 18b8 7A1E                 mov.l   r7,@(40,r14)
 4902 18ba 1A57                 mov.l   @(40,r1),r7
 4903 18bc 7E02                 mov.l   @(r0,r7),r2
 4906 18be EA50                 mov.l   @(40,r14),r0
 4907 18c0 3E01                 mov.l   @(r0,r3),r1
 4910 18c2 1A53                 mov.l   @(40,r1),r3
 4913 18c4 40E1                 mov     #64,r1		<- here
 4916 18c6 2223                 mov.l   r2,@r3
 4919 18c8 EC31                 add     r14,r1		<- here
 4920 18ca 40E2                 mov     #64,r2		<- here
 4921 18cc 1050                 mov.l   @(0,r1),r0
 4922 18ce EC32                 add     r14,r2		<- here
 4923 18d0 0840                 shll2   r0
 4924 18d2 7E01                 mov.l   @(r0,r7),r1
 4925 18d4 2150                 mov.l   @(4,r2),r0
 4928 18d6 1113                 mov.l   r1,@(4,r3)
 4931 18d8 0840                 shll2   r0
 4932 18da 7E01                 mov.l   @(r0,r7),r1
 4935 18dc 1213                 mov.l   r1,@(8,r3)
 4938 18de 40E0                 mov     #64,r0		<- here
 4939 18e0 EC53                 mov.l   @(48,r14),r3
 4940 18e2 EC30                 add     r14,r0		<- here
 4941 18e4 7D97                 mov.w   .L553,r7
 4942 18e6 3654                 mov.l   @(24,r3),r4
 4943 18e8 4351                 mov.l   @(12,r4),r1
 4944 18ea 4073                 add     #64,r3		
 4945 18ec 3510                 mov.l   r3,@(20,r0)
 4946 18ee 7C31                 add     r7,r1
 4947 18f0 3256                 mov.l   @(8,r3),r6
 4948 18f2 1162                 mov.w   @r1,r2
 4949 18f4 EF55                 mov.l   @(60,r14),r5
 4950 18f6 1151                 mov.l   @(4,r1),r1
 4951 18f8 0B41                 jsr     @r1
 4952 18fa 2C34                 add     r2,r4
...
 4960 18fc 40E1                 mov     #64,r1		<- here
 4961 18fe 7192                 mov.w   .L554,r2
 4962 1900 EC31                 add     r14,r1		<- here
 4963 1902 40E3                 mov     #64,r3		<- here
 4964 1904 1251                 mov.l   @(8,r1),r1
 4965 1906 EC33                 add     r14,r3		<- here
 4966 1908 00E5                 mov     #0,r5
 4967 190a 3257                 mov.l   @(8,r3),r7
 4968 190c 1654                 mov.l   @(24,r1),r4
 4969 190e 4077                 add     #64,r7
 4970 1910 0CF4                 fmov    fr0,fr4
 4971 1912 4351                 mov.l   @(12,r4),r1
 4972 1914 7613                 mov.l   r7,@(24,r3)
 4973 1916 2C31                 add     r2,r1
 4974 1918 7256                 mov.l   @(8,r7),r6
 4975 191a 1162                 mov.w   @r1,r2
 4976 191c 1151                 mov.l   @(4,r1),r1
 4977 191e 0B41                 jsr     @r1
 4978 1920 2C34                 add     r2,r4
...
 5060 1984 40E0                 mov     #64,r0		<- here
 5061 1986 2D92                 mov.w   .L554,r2
 5062 1988 EC30                 add     r14,r0		<- here
 5063 198a 40E3                 mov     #64,r3		<- here
 5064 198c 0250                 mov.l   @(8,r0),r0
 5065 198e EC33                 add     r14,r3		<- here
 5066 1990 02E5                 mov     #2,r5
 5067 1992 3653                 mov.l   @(24,r3),r3
 5068 1994 0654                 mov.l   @(24,r0),r4
 5069 1996 3256                 mov.l   @(8,r3),r6
 5070 1998 4351                 mov.l   @(12,r4),r1
 5071 199a 0CF4                 fmov    fr0,fr4
 5072 199c 2C31                 add     r2,r1
 5073 199e 1162                 mov.w   @r1,r2
 5074 19a0 1151                 mov.l   @(4,r1),r1
 5075 19a2 0B41                 jsr     @r1
 5076 19a4 2C34                 add     r2,r4
 5077                   .LBE339:
 5078                   .LBE336:
6512:./vtkTriangleStrip.ii ****       }
6513:./vtkTriangleStrip.ii ****
6514:./vtkTriangleStrip.ii ****     this->Triangle.Points.SetPoint(0,this->Points.GetPoint(id1));
6515:./vtkTriangleStrip.ii ****     this->Triangle.Points.SetPoint(1,this->Points.GetPoint(id2));
6516:./vtkTriangleStrip.ii ****     this->Triangle.Points.SetPoint(2,this->Points.GetPoint(id3));
6517:./vtkTriangleStrip.ii ****
6518:./vtkTriangleStrip.ii ****     this->Triangle.PointIds.SetId(0,this->PointIds.GetId(id1));
6519:./vtkTriangleStrip.ii ****     this->Triangle.PointIds.SetId(1,this->PointIds.GetId(id2));
6520:./vtkTriangleStrip.ii ****     this->Triangle.PointIds.SetId(2,this->PointIds.GetId(id3));
6521:./vtkTriangleStrip.ii ****
6522:./vtkTriangleStrip.ii ****     triScalars->SetScalar(0,cellScalars->GetScalar(id1));
6523:./vtkTriangleStrip.ii ****     triScalars->SetScalar(1,cellScalars->GetScalar(id2));
6524:./vtkTriangleStrip.ii ****     triScalars->SetScalar(2,cellScalars->GetScalar(id3));
6525:./vtkTriangleStrip.ii ****

6526:./vtkTriangleStrip.ii ****     this->Triangle.Clip(value, triScalars, locator, tris, inPd, outPd,
6527:./vtkTriangleStrip.ii ****                         inCd, cellId, outCd, insideOut);
 5080                   .LM559:
 5081 19a6 7CE7                 mov     #124,r7		<- here
 5082 19a8 E47F                 add     #-28,r15
 5083 19aa 7CE0                 mov     #124,r0
 5084 19ac EC37                 add     r14,r7		<- here
 5085 19ae 7CE1                 mov     #124,r1		<- here
 5086 19b0 7957                 mov.l   @(36,r7),r7
 5087 19b2 EC30                 add     r14,r0
 5088 19b4 7CE3                 mov     #124,r3		<- here
 5089 19b6 EC31                 add     r14,r1		<- here
 5090 19b8 722F                 mov.l   r7,@r15
 5091 19ba EC33                 add     r14,r3		<- here
 5092 19bc 0A50                 mov.l   @(40,r0),r0
 5093 19be 7CE7                 mov     #124,r7		<- here
 5094 19c0 1192                 mov.w   .L555,r2
 5095 19c2 EC37                 add     r14,r7		<- here
 5096 19c4 011F                 mov.l   r0,@(4,r15)
 5097 19c6 1B51                 mov.l   @(44,r1),r1
 5098 19c8 7CE0                 mov     #124,r0		<- here
 5099 19ca EA54                 mov.l   @(40,r14),r4
 5100 19cc EC30                 add     r14,r0		<- here
 5101 19ce 121F                 mov.l   r1,@(8,r15)
 5102 19d0 3C53                 mov.l   @(48,r3),r3
 5103 19d2 2C34                 add     r2,r4
 5104 19d4 04D1                 mov.l   .L556,r1
 5105 19d6 09A0                 bra     .L548
 5106 19d8 40E2                 mov     #64,r2
...
6530:./vtkTriangleStrip.ii ****   triScalars->Delete();
 5172                   .LM563:
 5173 1a34 40E2                 mov     #64,r2		<- here
 5174 1a36 E367                 mov     r14,r7
 5175 1a38 EC32                 add     r14,r2		<- here
 5176 1a3a 40E3                 mov     #64,r3
 5177 1a3c 2252                 mov.l   @(8,r2),r2
 5178 1a3e EC33                 add     r14,r3
 5179 1a40 E360                 mov     r14,r0
 5180 1a42 1C77                 add     #28,r7
 5181 1a44 2351                 mov.l   @(12,r2),r1
 5182 1a46 1470                 add     #20,r0
 5183 1a48 7B13                 mov.l   r7,@(44,r3)
 5184 1a4a FC7F                 add     #-4,r15
 5185 1a4c 3254                 mov.l   @(8,r3),r4
 5186 1a4e 0871                 add     #8,r1
 5187 1a50 00E7                 mov     #0,r7
 5188 1a52 1162                 mov.w   @r1,r2
 5189 1a54 0A13                 mov.l   r0,@(40,r3)
 5190 1a56 1151                 mov.l   @(4,r1),r1
 5191 1a58 2C34                 add     r2,r4
 5192 1a5a 0B41                 jsr     @r1
 5193 1a5c 7913                 mov.l   r7,@(36,r3)
 5194                   .LBE286:
 5195 1a5e 047F                 add     #4,r15
...
6531:./vtkTriangleStrip.ii **** }
 5197                   .LM564:
 5198 1a60 707E                 add     #112,r14
 5199 1a62 E36F                 mov     r14,r15
 5200 1a64 264F                 lds.l   @r15+,pr
 5201 1a66 F9FF                 fmov.s  @r15+,fr15
 5202 1a68 F9FE                 fmov.s  @r15+,fr14
 5203 1a6a F9FD                 fmov.s  @r15+,fr13
...
 5222                   .L566:
 5223 1aa2 14D3                 mov.l   .L560,r3
 5224 1aa4 EC30                 add     r14,r0
 5225 1aa6 40E2                 mov     #64,r2		<- here
 5226 1aa8 0260                 mov.l   @r0,r0
 5227 1aaa EC32                 add     r14,r2		<- here
 5228 1aac 0261                 mov.l   @r0,r1
 5229 1aae 151E                 mov.l   r1,@(20,r14)
 5230 1ab0 00E1                 mov     #0,r1
 5231 1ab2 161E                 mov.l   r1,@(24,r14)
 5232 1ab4 6CE1                 mov     #108,r1
 5233 1ab6 EC31                 add     r14,r1
 5234 1ab8 1261                 mov.l   @r1,r1
 5235 1aba E221                 mov.l   r14,@r1
 5236 1abc 3111                 mov.l   r3,@(4,r1)
 5237 1abe F211                 mov.l   r15,@(8,r1)
 5238 1ac0 40E1                 mov     #64,r1		<- here
 5239 1ac2 EC31                 add     r14,r1		<- here
 5240 1ac4 1A51                 mov.l   @(40,r1),r1
 5241 1ac6 1220                 mov.l   r1,@r0
 5242 1ac8 2952                 mov.l   @(36,r2),r2
 5243 1aca 2822                 tst     r2,r2
 5244 1acc 048D                 bt.s    .L502
 5245 1ace 40E3                 mov     #64,r3		<- here
 5246 1ad0 09D1                 mov.l   .L561,r1
 5247 1ad2 EC33                 add     r14,r3		<- here
 5248 1ad4 0B41                 jsr     @r1
 5249 1ad6 3254                 mov.l   @(8,r3),r4
 5250                   .L502:
 5251 1ad8 5CE7                 mov     #92,r7
 5252 1ada EC37                 add     r14,r7
 5253 1adc 7267                 mov.l   @r7,r7
 5254 1ade 7261                 mov.l   @r7,r1
 5255 1ae0 1261                 mov.l   @r1,r1
 5256 1ae2 1227                 mov.l   r1,@r7
 5257 1ae4 05D1                 mov.l   .L562,r1
 5258 1ae6 0B41                 jsr     @r1
 5259 1ae8 0900                 nop

Toshi




More information about the Gcc-bugs mailing list