<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 10, 2016, at 2:53 PM, Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><hr id="zwchr" style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; text-decoration: none; font-family: Helvetica, Arial, sans-serif; font-size: 12pt;" class=""><b class="">From:<span class="Apple-converted-space"> </span></b>"Adam Nemet" <<a href="mailto:anemet@apple.com" class="">anemet@apple.com</a>><br class=""><b class="">To:<span class="Apple-converted-space"> </span></b>"Hal Finkel" <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>><br class=""><b class="">Cc:<span class="Apple-converted-space"> </span></b>"Dangeti Tharun kumar" <<a href="mailto:cs15mtech11002@iith.ac.in" class="">cs15mtech11002@iith.ac.in</a>>, "Santanu Das" <<a href="mailto:cs15mtech11018@iith.ac.in" class="">cs15mtech11018@iith.ac.in</a>>, <a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class=""><b class="">Sent:<span class="Apple-converted-space"> </span></b>Monday, October 10, 2016 4:52:18 PM<br class=""><b class="">Subject:<span class="Apple-converted-space"> </span></b>Re: [llvm-dev] On Loop Distribution pass<br class=""><br class=""><br class=""><div class=""><blockquote class=""><div class="">On Oct 10, 2016, at 2:50 PM, Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="" target="_blank">hfinkel@anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><br class="Apple-interchange-newline"><hr id="zwchr" class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><blockquote class="" style="font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; text-decoration: none; font-family: Helvetica, Arial, sans-serif; font-size: 12pt;"><b class="">From:<span class="Apple-converted-space"> </span></b>"Dangeti Tharun kumar via llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org" class="" target="_blank">llvm-dev@lists.llvm.org</a>><br class=""><b class="">To:<span class="Apple-converted-space"> </span></b><a href="mailto:llvm-dev@lists.llvm.org" class="" target="_blank">llvm-dev@lists.llvm.org</a><br class=""><b class="">Cc:<span class="Apple-converted-space"> </span></b>"Santanu Das" <<a href="mailto:cs15mtech11018@iith.ac.in" class="" target="_blank">cs15mtech11018@iith.ac.in</a>><br class=""><b class="">Sent:<span class="Apple-converted-space"> </span></b>Sunday, October 9, 2016 12:09:01 PM<br class=""><b class="">Subject:<span class="Apple-converted-space"> </span></b>[llvm-dev] On Loop Distribution pass<br class=""><br class=""><div dir="ltr" class="">Dear community,<div class=""><br class=""></div><div class="">Our team at IITH have been experimenting with loop-distribution pass in LLVM. We see the following results on few benchmarks.</div><div class=""><br class=""></div><div class=""><span id="gmail-docs-internal-guid-e7e6be9a-aa54-3006-2059-effa9157d485" class=""><div class="" style="margin: 0pt 0px; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; font-family: 'courier new'; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">clang -O3 -mllvm -enable-loop-distribute -Rpass=loop-distribute file.c</span></div><div class="" style="margin: 0pt 0px; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; font-family: 'courier new'; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><span class="" style="font-size: 13.3333px; line-height: 18.4px;">clang -O3 -mllvm -enable-loop-distribute -Rpass-analysis=loop-distribute file.c</span><br class=""></span></div><br class=""><br class=""><div class="" style="margin: 0pt 0px; line-height: 1.38; text-indent: 36pt;"><font class="" face="monospace, monospace"><a href="http://crd.lbl.gov/departments/computer-science/PAR/research/previous-projects/torch-testbed/" target="_blank" class="" style="text-decoration: none;"><span class="" style="font-size: 16px; font-weight: 700; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">TORCH</span></a><span class="" style="font-size: 16px; font-weight: 700; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">:</span></font></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38;"><span class="" style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" face="monospace, monospace">There are nearly 488 loops in this benchmark. LLVM was not able to distribute any loop.</font></span></div><font class="" face="monospace, monospace"><br class=""></font><div class="" style="margin: 0pt 0px; line-height: 1.38; text-indent: 36pt;"><font class="" face="monospace, monospace"><a href="https://github.com/shantanuatiith/TSVC_" target="_blank" class="" style="text-decoration: none;"><span class="" style="font-size: 16px; font-weight: 700; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">TSVC</span></a><span class="" style="font-size: 16px; font-weight: 700; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">:</span></font></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38;"><font class="" face="monospace, monospace"><span class="" style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">There are 151 loops coded in plain ‘C’, </span><span class="" style="font-size: 16px; font-weight: 700; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">none</span><span class="" style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"> of them got distributed. TSVC has particularly candidates valid for distribution like the one below. The inner loop in this example can be distributed.</span></font></div><font class="" face="monospace, monospace"><br class=""></font><div class="" style="margin: 0pt 0px 0pt 36pt; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" color="#444444" face="monospace, monospace">for (int nl = 0; nl < ntimes/2; nl++) {</font></span></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" color="#444444" face="monospace, monospace">for (int i = 1; i < LEN; i++) {</font></span></div><div class="" style="margin: 0pt 0px 0pt 108pt; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" color="#444444" face="monospace, monospace">a[i] += c[i] * d[i];</font></span></div><div class="" style="margin: 0pt 0px 0pt 108pt; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" color="#444444" face="monospace, monospace">b[i] = b[i - 1] + a[i] + d[i];</font></span></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" color="#444444" face="monospace, monospace">}</font></span></div></span></div></div></blockquote></div></blockquote></div></blockquote></div></blockquote><div><br class=""></div><div><div>There are two problems why we can’t currently distribute this:</div><div><br class=""></div><div>1. Load-PRE in GVN replaces the b[i-1] with the value from the previous iterations.</div><div><br class=""></div><div>This is the reason that we no longer see the backward dependence and report the above message.  The plan is to disable *loop* Load-PRE  in GVN and have LoopLoadElimination handle this which is run after LoopDist.  Unfortunately even with disabling load-pre in GVN we have this:</div><div><br class=""></div><div>2. We can’t currently duplicate load operations across the resulting loops (a[I] and d[I] in the loop above). </div><div><br class=""></div><div>This constraint had to do with the limitation in the dependence analysis (LAA) at the time.  This is no longer a problem because we now represent all dependences in the loop thus we don't need to preserve the original program order of the memory accesses.</div><div><br class=""></div><div>Adam</div></div><blockquote type="cite" class=""><div class=""><blockquote style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; text-decoration: none; font-family: Helvetica, Arial, sans-serif; font-size: 12pt;" class=""><div class=""><blockquote class=""><div class=""><blockquote class="" style="font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; text-decoration: none; font-family: Helvetica, Arial, sans-serif; font-size: 12pt;"><div dir="ltr" class=""><div class=""><span id="gmail-docs-internal-guid-e7e6be9a-aa54-3006-2059-effa9157d485" class=""><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" color="#444444" face="monospace, monospace">dummy(a, b, c, d, e, aa, bb, cc, 0.);</font></span></div><div class="" style="margin: 0pt 0px 0pt 36pt; line-height: 1.38; text-indent: 36pt;"><span class="" style="font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" color="#444444" face="monospace, monospace"> }</font></span></div><font class="" face="monospace, monospace"><br class=""></font><div class="" style="margin: 0pt 0px; line-height: 1.38;"><font class="" face="monospace, monospace"><span class="" style="font-size: 16px; vertical-align: baseline; background-color: transparent;">     <a href="http://vhosts.eecs.umich.edu/mibench//" target="_blank" class="" style="font-weight: 700; white-space: pre-wrap; text-decoration: none;">MiBench</a></span><span class="" style="font-size: 16px; font-weight: 700; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">:</span></font></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38;"><span class="" style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;"><font class="" face="monospace, monospace">There are 6539 loops in MiBench. <b class="">None</b> of the loops were distributed by the loop-distribution pass of LLVM.</font></span></div><font class="" face="monospace, monospace"><br class=""></font><div class="" style="margin: 0pt 0px; line-height: 1.38;"><font class="" face="monospace, monospace"><span class="" style="font-size: 16px; vertical-align: baseline; background-color: transparent;">     <a href="https://github.com/exmatex/CoMD" target="_blank" class="" style="font-weight: 700; white-space: pre-wrap; text-decoration: none;">CoMD</a></span><span class="" style="font-size: 16px; font-weight: 700; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;">:</span></font></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38;"><span class="" style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"><font class="" face="monospace, monospace">CoMD is a reference implementation of typical classical molecular dynamics algorithms and workloads.</font></span></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38;"><font class="" face="monospace, monospace"><span class="" style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;">Out of 112 loops </span><span class="" style="font-size: 16px; font-weight: 700; vertical-align: baseline; white-space: pre-wrap;">none</span><span class="" style="font-size: 16px; vertical-align: baseline; white-space: pre-wrap;"> of them are distributed.</span></font></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38;"><span class="" style="font-size: 16px; font-family: arial; vertical-align: baseline; white-space: pre-wrap;"><br class=""></span></div><div class="" style="margin: 0pt 0px 0pt 72pt; line-height: 1.38;"><span class="" style="font-size: 16px; font-family: arial; vertical-align: baseline; white-space: pre-wrap;"><br class=""></span></div>For the specific loop I have shown above which is straight forward a good distribution candidate, the remark is "<b class="">loop not distributed: memory operations are safe for vectorization [-Rpass-analysis=loop-distribute]</b>". </span></div><div class=""><span class=""><br class=""></span></div><div class=""><span class="">Can someone reason these results and this remark?</span></div><div class=""><span id="DWT390" class=""><br class=""></span></div></div></blockquote><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;">The current loop distribution implementation is focused on enabling vectorization. The comment at the top of the file says:</span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;">  // This file implements the Loop Distribution Pass.  Its main focus is to</span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;">  // distribute loops that cannot be vectorized due to dependence cycles.  It</span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;">  // tries to isolate the offending dependences into a new loop allowing</span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;">  // vectorization of the remaining parts.</span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;">Hopefully, this helps explain the diagnostic. Regarding why the loop you highlight is not distributed to enable the vectorization of the a[i] update, I don't know. Adam?</span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"></div></blockquote><div class=""><br class=""></div><div id="DWT737" class="">Yeah, it’s not immediate clear to me why we’re not distributing that.  I think it’s s221() from TSVC.  I will take a look later.</div></div></blockquote><span style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Yes, it looks like s221.</span></div></blockquote><blockquote type="cite" class=""><div class=""><br style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class=""> -Hal</span><br style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; text-decoration: none; font-family: Helvetica, Arial, sans-serif; font-size: 12pt;" class=""><div class=""><div class=""></div><div class=""><br class=""></div><div class="">Adam</div><br class=""><blockquote class=""><div class=""><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;"> -Hal</span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span id="gmail-docs-internal-guid-e7e6be9a-aa54-3006-2059-effa9157d485" class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"></span><blockquote class="" style="font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; border-left-width: 2px; border-left-style: solid; border-left-color: rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; text-decoration: none; font-family: Helvetica, Arial, sans-serif; font-size: 12pt;"><div dir="ltr" class=""><div class=""><span class=""><br class="">I humbly request the community to correct me, if am missing something in my analysis.</span><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class="">Thank you<div class="">D Tharun kumar</div><div class="">CS15MTECH11002</div><div class="">9948373970</div><div class="">CSE-IITH</div></div></div></div></div></div></div><br class="">_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="" target="_blank">llvm-dev@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" class="" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class=""></blockquote><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; float: none; display: inline !important;">--<span class="Apple-converted-space"> </span></span><br class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><div class="" style="font-family: arial, helvetica, sans-serif; font-size: 13.3333px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><span class=""></span>Hal Finkel<br class="">Lead, Compiler Technology and Programming Languages<br class="">Leadership Computing Facility<br class="">Argonne National Laboratory</div></div></blockquote></div><br class=""></blockquote><br style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">--<span class="Apple-converted-space"> </span></span><br style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div style="font-family: arial, helvetica, sans-serif; font-size: 13.333333015441895px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span name="x" class=""></span>Hal Finkel<br class="">Lead, Compiler Technology and Programming Languages<br class="">Leadership Computing Facility<br class="">Argonne National Laboratory</div></div></blockquote></div><br class=""></body></html>