<div dir="ltr"><div>I have a filed a bug regarding this.<br></div><div>To achieve my goal of block prefetching using llvm,  can I modify the llvm.prefetch instrinsic implementation to handle the icache prefetch variant for X86 target? Is this possible?<br></div><div>Or will I have to add a new instruction to llvm. I am planning to modify a CPU simulator that will support this instruction or the icache intrinsic for X86 target.<br></div><div>I just need some starting point as to where to make the modifications in LLVM.<br><br></div><div>Thanks,<br></div><div>Usha</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 23, 2014 at 11:59 AM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">----- Original Message -----<br>
> From: "usha shau" <<a href="mailto:ushashau1@gmail.com">ushashau1@gmail.com</a>><br>
</span><span class="">> To: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>><br>
> Cc: <a href="mailto:llvmdev@cs.uiuc.edu">llvmdev@cs.uiuc.edu</a><br>
> Sent: Monday, September 22, 2014 10:09:31 PM<br>
> Subject: Re: [LLVMdev] Use of llvm.prefetch intrinsic for basicblock prefetching<br>
><br>
><br>
><br>
><br>
> Hi,<br>
><br>
><br>
</span><span class="">> Thanks,<br>
> I am targetting x86 architecture.<br>
<br>
</span>Interesting; looks like something needs to be fixed. Please file a bug using <a href="http://llvm.org/bugs/" target="_blank">http://llvm.org/bugs/</a> (select "libraries" as the product and "Backend: X86" as the component).<br>
<span class="HOEnZb"><font color="#888888"><br>
 -Hal<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> -Usha<br>
><br>
><br>
><br>
> On Mon, Sep 22, 2014 at 10:39 PM, Hal Finkel < <a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a> ><br>
> wrote:<br>
><br>
><br>
><br>
><br>
> ----- Original Message -----<br>
> > From: "usha shau" < <a href="mailto:ushashau1@gmail.com">ushashau1@gmail.com</a> ><br>
> > To: <a href="mailto:llvmdev@cs.uiuc.edu">llvmdev@cs.uiuc.edu</a><br>
> > Sent: Monday, September 22, 2014 7:01:20 AM<br>
> > Subject: [LLVMdev] Use of llvm.prefetch intrinsic for basicblock<br>
> > prefetching<br>
> ><br>
> > Hi,<br>
> ><br>
> ><br>
> > I am new to LLVM and using it for my project where I want to<br>
> > perform<br>
> > software prefetching of code blocks.<br>
> > I am not able to use the llvm.prefetch instruction to fetch a block<br>
> > of code in instruction cache. The LangRef manual mentions that<br>
> > giving last argument as '0' performs prefetch on instruction cache.<br>
> > However, I get the following error when I do that.<br>
> ><br>
> > LLVM ERROR: Cannot select: 0x2a39348: ch = Prefetch 0x2a39030,<br>
> > 0x2a39138, 0x2a38c10, 0x2a39240, 0x2a38c10<LD1[%x1]> [ORD=9]<br>
> > [ID=15]<br>
> > 0x2a39138: i64 = FrameIndex<1> [ID=4]<br>
> > 0x2a38c10: i32 = Constant<0> [ID=1]<br>
> > 0x2a39240: i32 = Constant<1> [ID=5]<br>
> > 0x2a38c10: i32 = Constant<0> [ID=1]<br>
> > In function: main<br>
> ><br>
> ><br>
> > What does this error mean?<br>
> > Can anyone please tell me if I can inform the processor to prefetch<br>
> > code to instruction cache?<br>
><br>
> It means that the target backend does not implement that prefetch<br>
> variant and that it does not provide the appropriate fall-back<br>
> behavior. What architecture are you targeting?<br>
><br>
> Generally speaking, please file a bug report.<br>
><br>
> -Hal<br>
><br>
> ><br>
> > Thanks in advance.<br>
> > Usha<br>
> ><br>
> > _______________________________________________<br>
> > LLVM Developers mailing list<br>
> > <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
> ><br>
><br>
> --<br>
> Hal Finkel<br>
> Assistant Computational Scientist<br>
> Leadership Computing Facility<br>
> Argonne National Laboratory<br>
><br>
><br>
<br>
--<br>
Hal Finkel<br>
Assistant Computational Scientist<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
</div></div></blockquote></div><br></div>