[PATCH] D38821: [COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

Martin Storsjö via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 12 00:00:49 PDT 2017


mstorsjo added a comment.

In https://reviews.llvm.org/D38821#895527, @compnerd wrote:

> Don't you need a change to the intrinsics to actually map the builtin?


This seems to be automatically mapped via this piece of code in CGBuiltin.cpp:

  // See if we have a target specific intrinsic.
  const char *Name = getContext().BuiltinInfo.getName(BuiltinID);
  Intrinsic::ID IntrinsicID = Intrinsic::not_intrinsic;
  StringRef Prefix =
      llvm::Triple::getArchTypePrefix(getTarget().getTriple().getArch());
  if (!Prefix.empty()) {
    IntrinsicID = Intrinsic::getIntrinsicForGCCBuiltin(Prefix.data(), Name);
    // NOTE we dont need to perform a compatibility flag check here since the
    // intrinsics are declared in Builtins*.def via LANGBUILTIN which filter the
    // MS builtins via ALL_MS_LANGUAGES and are filtered earlier.
    if (IntrinsicID == Intrinsic::not_intrinsic)
      IntrinsicID = Intrinsic::getIntrinsicForMSBuiltin(Prefix.data(), Name);
  } 

And these target specific intrinsics are already hooked up on the LLVM side in SVN r310502.


https://reviews.llvm.org/D38821





More information about the cfe-commits mailing list