nemanjai added inline comments.

================
Comment at: llvm/include/llvm/IR/IntrinsicsPowerPC.td:1535
-  def int_ppc_ldarx : GCCBuiltin<"__builtin_ppc_ldarx">,
-                      Intrinsic<[llvm_i64_ty], [llvm_ptr_ty], [IntrNoMem]>;
 }
----------------
lkail wrote:
> Just curious, compiler optimizes the instruction out even setting 
> `IntrArgMemOnly` and `IntrReadMem` here?
Yes. Well, those two more or less tell it to go ahead and optimize it out if 
there are no uses. What is more surprising is that even with 
`IntrHasSideEffects`. Heck, it even optimizes with all of:
```
IntrReadMem
IntrArgMemOnly
IntrHasSideEffects
Throws
IntrNoDuplicate
IntrNoMerge
```
I certainly found that surprising but I assume there is some justification as 
to why that is. There is some precedent for producing inline asm for builtins 
(see `EmitX86BitTestIntrinsic()` and similar). I don't know why that intrinsic 
was implemented using inline asm (commit messages don't say) but I presume it 
might have been for a similar reason.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105754

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

Reply via email to