<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I found a something that I quite not understand when compiling a common piece of code using the -Os flags. <div class="">I found it while testing my own backend but then I got deeper and found that at least the x86 is affected as well. This is the referred code:<div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="color: #ba2da2" class="">char</span> pp[<span style="color: #272ad8" class="">3</span>];</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="color: #ba2da2" class="">char</span> *scscx = pp;</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="color: #ba2da2" class="">int</span> tst( <span style="color: #ba2da2" class="">char</span> i, <span style="color: #ba2da2" class="">char</span> j, <span style="color: #ba2da2" class="">char</span> k )</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class="">{</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""> scscx[<span style="color: #272ad8" class="">0</span>] = i;</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""> scscx[<span style="color: #272ad8" class="">1</span>] = j; </div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""> scscx[<span style="color: #272ad8" class="">2</span>] = k;</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; color: rgb(186, 45, 162); background-color: rgb(255, 255, 255);" class=""><span style="color: #000000" class=""> </span>return<span style="color: #000000" class=""> </span><span style="color: #272ad8" class="">0</span><span style="color: #000000" class="">;</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class="">}</div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class="">The above gets compiled for the x86 architecture like this:</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><div style="margin: 0px; line-height: normal;" class="">; Function Attrs: nofree norecurse nounwind optsize uwtable</div><div style="margin: 0px; line-height: normal;" class="">define i32 @tst(i8 signext %i, i8 signext %j, i8 signext %k) local_unnamed_addr #1 {</div><div style="margin: 0px; line-height: normal;" class="">entry:</div><div style="margin: 0px; line-height: normal;" class=""> %0 = load i8*, i8** @scscx, align 8, !tbaa !11</div><div style="margin: 0px; line-height: normal;" class=""> store i8 %i, i8* %0, align 1, !tbaa !13</div><div style="margin: 0px; line-height: normal;" class=""> %1 = load i8*, i8** @scscx, align 8, !tbaa !11</div><div style="margin: 0px; line-height: normal;" class=""> %arrayidx1 = getelementptr inbounds i8, i8* %1, i64 1</div><div style="margin: 0px; line-height: normal;" class=""> store i8 %j, i8* %arrayidx1, align 1, !tbaa !13</div><div style="margin: 0px; line-height: normal;" class=""> %2 = load i8*, i8** @scscx, align 8, !tbaa !11</div><div style="margin: 0px; line-height: normal;" class=""> %arrayidx2 = getelementptr inbounds i8, i8* %2, i64 2</div><div style="margin: 0px; line-height: normal;" class=""> store i8 %k, i8* %arrayidx2, align 1, !tbaa !13</div><div style="margin: 0px; line-height: normal;" class=""> ret i32 0</div><div style="margin: 0px; line-height: normal;" class="">}</div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class="">According to that, the variable ‘scscx’ is loaded three times despite it’s never modified. The resulting assembly code is this:</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.globl<span class="Apple-tab-span" style="white-space:pre"> </span>_tst</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">_tst:</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_startproc</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>pushl<span class="Apple-tab-span" style="white-space:pre"> </span>%ebp</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_def_cfa_offset <span style="color: #272ad8" class="">8</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_offset %ebp, <span style="color: #272ad8" class="">-8</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>%esp, %ebp</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_def_cfa_register %ebp</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>pushl<span class="Apple-tab-span" style="white-space:pre"> </span>%esi</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_offset %esi, <span style="color: #272ad8" class="">-12</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movb<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">16</span>(%ebp), %al</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movb<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">12</span>(%ebp), %cl</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movb<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">8</span>(%ebp), %dl</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>_scscx, %esi</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movb<span class="Apple-tab-span" style="white-space:pre"> </span>%dl, (%esi)</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>_scscx, %edx</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movb<span class="Apple-tab-span" style="white-space:pre"> </span>%cl, <span style="color: #272ad8" class="">1</span>(%edx)</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>_scscx, %ecx</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movb<span class="Apple-tab-span" style="white-space:pre"> </span>%al, <span style="color: #272ad8" class="">2</span>(%ecx)</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>xorl<span class="Apple-tab-span" style="white-space:pre"> </span>%eax, %eax</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>popl<span class="Apple-tab-span" style="white-space:pre"> </span>%esi</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>popl<span class="Apple-tab-span" style="white-space:pre"> </span>%ebp</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>retl</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_endproc</div><div style="margin: 0px; line-height: normal; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.comm<span class="Apple-tab-span" style="white-space:pre"> </span>_pp,<span style="color: #272ad8" class="">3</span>,<span style="color: #272ad8" class="">0</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.section<span class="Apple-tab-span" style="white-space:pre"> </span>__DATA,__data</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.globl<span class="Apple-tab-span" style="white-space:pre"> </span>_scscx</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.p2align<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">3</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">_scscx:</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.long<span class="Apple-tab-span" style="white-space:pre"> </span>_pp</div><div class=""><br class=""></div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class="">Again, the _scscx is loaded three times instead of reusing a register, which is suboptimal.</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class="">NOW, if I replace the original code by this:</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span style="color: #ba2da2" class="">int</span> pp[<span style="color: #272ad8" class="">3</span>];</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span style="color: #ba2da2" class="">int</span> *scscx = pp;</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span style="color: #ba2da2" class="">int</span> tst( <span style="color: #ba2da2" class="">int</span> i, <span style="color: #ba2da2" class="">int</span> j, <span style="color: #ba2da2" class="">int</span> k )</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">{</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""> scscx[<span style="color: #272ad8" class="">0</span>] = i;</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""> scscx[<span style="color: #272ad8" class="">1</span>] = j; </div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""> scscx[<span style="color: #272ad8" class="">2</span>] = k;</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; color: rgb(186, 45, 162);" class=""><span style="color: #000000" class=""> </span>return<span style="color: #000000" class=""> </span><span style="color: #272ad8" class="">0</span><span style="color: #000000" class="">;</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class="">}</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><br class=""></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span style="font-family: Helvetica; font-size: 12px;" class="">I get the following:</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco;" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><div style="margin: 0px; line-height: normal;" class="">; Function Attrs: nofree norecurse nounwind optsize uwtable</div><div style="margin: 0px; line-height: normal;" class="">define i32 @tst(i32 %i, i32 %j, i32 %k) local_unnamed_addr #1 {</div><div style="margin: 0px; line-height: normal;" class="">entry:</div><div style="margin: 0px; line-height: normal;" class=""> %0 = load i32*, i32** @scscx, align 8, !tbaa !11</div><div style="margin: 0px; line-height: normal;" class=""> store i32 %i, i32* %0, align 4, !tbaa !13</div><div style="margin: 0px; line-height: normal;" class=""> %arrayidx1 = getelementptr inbounds i32, i32* %0, i64 1</div><div style="margin: 0px; line-height: normal;" class=""> store i32 %j, i32* %arrayidx1, align 4, !tbaa !13</div><div style="margin: 0px; line-height: normal;" class=""> %arrayidx2 = getelementptr inbounds i32, i32* %0, i64 2</div><div style="margin: 0px; line-height: normal;" class=""> store i32 %k, i32* %arrayidx2, align 4, !tbaa !13</div><div style="margin: 0px; line-height: normal;" class=""> ret i32 0</div><div style="margin: 0px; line-height: normal;" class="">}</div></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.globl<span class="Apple-tab-span" style="white-space:pre"> </span>_tst</div><div style="margin: 0px; line-height: normal;" class="">_tst:</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_startproc</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>pushl<span class="Apple-tab-span" style="white-space:pre"> </span>%ebp</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_def_cfa_offset <span style="color: #272ad8" class="">8</span></div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_offset %ebp, <span style="color: #272ad8" class="">-8</span></div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>%esp, %ebp</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_def_cfa_register %ebp</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>pushl<span class="Apple-tab-span" style="white-space:pre"> </span>%esi</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_offset %esi, <span style="color: #272ad8" class="">-12</span></div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">16</span>(%ebp), %eax</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">12</span>(%ebp), %ecx</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">8</span>(%ebp), %edx</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>_scscx, %esi</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>%edx, (%esi)</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>%ecx, <span style="color: #272ad8" class="">4</span>(%esi)</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>movl<span class="Apple-tab-span" style="white-space:pre"> </span>%eax, <span style="color: #272ad8" class="">8</span>(%esi)</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>xorl<span class="Apple-tab-span" style="white-space:pre"> </span>%eax, %eax</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>popl<span class="Apple-tab-span" style="white-space:pre"> </span>%esi</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>popl<span class="Apple-tab-span" style="white-space:pre"> </span>%ebp</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>retl</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.cfi_endproc</div><div style="margin: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.comm<span class="Apple-tab-span" style="white-space:pre"> </span>_pp,<span style="color: #272ad8" class="">12</span>,<span style="color: #272ad8" class="">2</span></div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.section<span class="Apple-tab-span" style="white-space:pre"> </span>__DATA,__data</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.globl<span class="Apple-tab-span" style="white-space:pre"> </span>_scscx</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.p2align<span class="Apple-tab-span" style="white-space:pre"> </span><span style="color: #272ad8" class="">3</span></div><div style="margin: 0px; line-height: normal;" class="">_scscx:</div><div style="margin: 0px; line-height: normal;" class=""><span class="Apple-tab-span" style="white-space:pre"> </span>.long<span class="Apple-tab-span" style="white-space:pre"> </span>_pp</div><div class=""><br class=""></div></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class="">In this case the compiler optimises the load of _scscx into a register and reuses its value instead of loading the variable multiple times. This results in a cleaner and more optimal code, specially when compared with the first case.</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class="">I would like to understand why this happens, and whether there’s a way (or workaround) to improve it?</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class="">Should I file a bug report for that?</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class="">Thanks.</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255);" class="">Joan</div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; background-color: rgb(255, 255, 255);" class=""><span style="font-family: Helvetica; font-size: 12px;" class=""><br class=""></span></div></div></body></html>