<div dir="ltr"><div>I am maintaining proprietary extensions to the RISCV backend for our custom application.</div><div><br></div><div>I have defined intrinsics for many of the custom instructions.  Against LLVM 7 this was working well.</div><div><br></div><div>When I try to merge my changes into LLVM 10, I get:</div><div><br></div><div><span style="font-family:monospace">/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’<br>         GIM_CheckIntrinsicID, /*MI*/0, /*Op*/0, Intrinsic::idaho_mt_begin,</span></div><div><br></div><div>This intrinsic is defined pretty simply:</div><div><br></div><div><span style="font-family:monospace">let TargetPrefix = "idaho" in {<br>def int_idaho_mt_begin : Intrinsic<[], [llvm_ptr_ty,llvm_i64_ty], []>;</span></div><div><span style="font-family:monospace">}</span></div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>I tried renaming my intrinsics to replace "idaho" with "riscv" speculating that this was the filtering condition, but that did not make any difference.</div><div><br></div><div>What has changed?</div><div><br></div><div><br></div></div>