pengfei added a comment.

In D136040#3862265 <https://reviews.llvm.org/D136040#3862265>, @uweigand wrote:

> In D136040#3862225 <https://reviews.llvm.org/D136040#3862225>, @pengfei wrote:
>
>> 3. Add semacheck for prefetch write to instruction cache;
>>
>> I think the affected ARM and SystemZ tests are not valid before. Could 
>> @t.p.northover and @uweigand help to have a look?
>
> This seems to be a semantic change.   The Language Reference does not spell 
> out that a write prefetch on the instruction cache is prohibited.  In fact, I 
> read it to explicitly state that every flavor of the prefetch intrinsic that 
> doesn't match anything supported on the target architecture should simply be 
> a no-op.  (I could imagine that on certain architectures, you might even have 
> such a prefetch, e.g. to handle self-modifying code more efficiently.)

Sure, it is possible. But at least for now, there's no real target requires it. 
Checked with `grep -rwn 'llvm.prefetch.*i32 0\s*)' llvm/test/CodeGen/`.
The reason I do it is it's ambiguity to backend when lower it to a target that 
has "write data", "read data" and "read instruction" prefetches. It's clear if 
we just support the semantic of "read instruction" and lower it to "read data" 
when available.
I think we can modify Language Reference for it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136040/new/

https://reviews.llvm.org/D136040

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to