[PATCH] D71499: Add builtins for aligning and checking alignment of pointers and integers

Alexander Richardson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Dec 14 03:30:21 PST 2019


arichardson marked an inline comment as done.
arichardson added inline comments.


================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:14323
+    Result = Builder.CreateIntrinsic(
+        Intrinsic::ptrmask, {Args.SrcType, SrcForMask->getType(), Args.IntType},
+        {SrcForMask, NegatedMask}, nullptr, "aligned_result");
----------------
lebedev.ri wrote:
> Is sufficient amount of passes, analyses know about this intrinsic?
Good question. In the simple test cases that I looked at the code generation was equivalent. 

In our fork we still use ptrtoint+inttoptr since I implemented them before the new intrinsic existed. But since the ptrmask instrinsic exists now I thought I'd use it for upstreaming.
I'll investigate if this results in worse codegen for more complex uses.



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71499





More information about the cfe-commits mailing list