[llvm-dev] Issues porting intrinsics to LLVM 10

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Wed May 6 11:19:39 PDT 2020


Intrinsic headers have been broken up into smaller files.  Now you need to include the target-specific intrinsic header, e.g. IntrinsicsRISCV.h.

--
Krzysztof Parzyszek  kparzysz at quicinc.com<mailto:kparzysz at quicinc.com>   AI tools development

From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of David Jones via llvm-dev
Sent: Wednesday, May 6, 2020 1:08 PM
To: llvm-dev <llvm-dev at lists.llvm.org>
Subject: [EXT] [llvm-dev] Issues porting intrinsics to LLVM 10

I am maintaining proprietary extensions to the RISCV backend for our custom application.

I have defined intrinsics for many of the custom instructions.  Against LLVM 7 this was working well.

When I try to merge my changes into LLVM 10, I get:

/home/dej/work/llvm_git/llvm-project/llvm/build/lib/Target/RISCV/RISCVGenGlobalISel.inc:11582:60: error: ‘idaho_mt_begin’ is not a member of ‘llvm::Intrinsic’
         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::idaho_mt_begin,

This intrinsic is defined pretty simply:

let TargetPrefix = "idaho" in {
def int_idaho_mt_begin : Intrinsic<[], [llvm_ptr_ty,llvm_i64_ty], []>;
}

With LLVM 7, I notice that build/include/llvm/IntrinsicEnums.inc contains an entry for each intrinsic in the system.  This is no longer the case for LLVM 10: there are only 277 definitions in the file. It seems that LLVM 10 imposes some filter condition where it deems inclusion in the IntrinsicEnums.inc unnecessary.

The other thing I notice: GlobalISel was not built (by default) in LLVM 7, but it is for LLVM 10.  This is the entity referencing the enums.

I tried renaming my intrinsics to replace "idaho" with "riscv" speculating that this was the filtering condition, but that did not make any difference.

What has changed?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200506/0c4c592a/attachment.html>


More information about the llvm-dev mailing list