@@ -1824,3 +1824,55 @@ extern "C" size_t LLVMRustEnzymeGetMaxTypeDepth() {
1824
1824
return 6 ; // Default fallback depth
1825
1825
}
1826
1826
#endif
1827
+
1828
+ // Statically assert that the fixed metadata kind IDs declared in
1829
+ // `metadata_kind.rs` match the ones actually used by LLVM.
1830
+ #define FIXED_MD_KIND (VARIANT, VALUE ) \
1831
+ static_assert (::llvm::LLVMContext::VARIANT == VALUE);
1832
+ // Must be kept in sync with the corresponding list in `metadata_kind.rs`.
1833
+ FIXED_MD_KIND (MD_dbg, 0 )
1834
+ FIXED_MD_KIND (MD_tbaa, 1 )
1835
+ FIXED_MD_KIND (MD_prof, 2 )
1836
+ FIXED_MD_KIND (MD_fpmath, 3 )
1837
+ FIXED_MD_KIND (MD_range, 4 )
1838
+ FIXED_MD_KIND (MD_tbaa_struct, 5 )
1839
+ FIXED_MD_KIND (MD_invariant_load, 6 )
1840
+ FIXED_MD_KIND (MD_alias_scope, 7 )
1841
+ FIXED_MD_KIND (MD_noalias, 8 )
1842
+ FIXED_MD_KIND (MD_nontemporal, 9 )
1843
+ FIXED_MD_KIND (MD_mem_parallel_loop_access, 10 )
1844
+ FIXED_MD_KIND (MD_nonnull, 11 )
1845
+ FIXED_MD_KIND (MD_dereferenceable, 12 )
1846
+ FIXED_MD_KIND (MD_dereferenceable_or_null, 13 )
1847
+ FIXED_MD_KIND (MD_make_implicit, 14 )
1848
+ FIXED_MD_KIND (MD_unpredictable, 15 )
1849
+ FIXED_MD_KIND (MD_invariant_group, 16 )
1850
+ FIXED_MD_KIND (MD_align, 17 )
1851
+ FIXED_MD_KIND (MD_loop, 18 )
1852
+ FIXED_MD_KIND (MD_type, 19 )
1853
+ FIXED_MD_KIND (MD_section_prefix, 20 )
1854
+ FIXED_MD_KIND (MD_absolute_symbol, 21 )
1855
+ FIXED_MD_KIND (MD_associated, 22 )
1856
+ FIXED_MD_KIND (MD_callees, 23 )
1857
+ FIXED_MD_KIND (MD_irr_loop, 24 )
1858
+ FIXED_MD_KIND (MD_access_group, 25 )
1859
+ FIXED_MD_KIND (MD_callback, 26 )
1860
+ FIXED_MD_KIND (MD_preserve_access_index, 27 )
1861
+ FIXED_MD_KIND (MD_vcall_visibility, 28 )
1862
+ FIXED_MD_KIND (MD_noundef, 29 )
1863
+ FIXED_MD_KIND (MD_annotation, 30 )
1864
+ FIXED_MD_KIND (MD_nosanitize, 31 )
1865
+ FIXED_MD_KIND (MD_func_sanitize, 32 )
1866
+ FIXED_MD_KIND (MD_exclude, 33 )
1867
+ FIXED_MD_KIND (MD_memprof, 34 )
1868
+ FIXED_MD_KIND (MD_callsite, 35 )
1869
+ FIXED_MD_KIND (MD_kcfi_type, 36 )
1870
+ FIXED_MD_KIND (MD_pcsections, 37 )
1871
+ FIXED_MD_KIND (MD_DIAssignID, 38 )
1872
+ FIXED_MD_KIND (MD_coro_outside_frame, 39 )
1873
+ FIXED_MD_KIND (MD_mmra, 40 )
1874
+ FIXED_MD_KIND (MD_noalias_addrspace, 41 )
1875
+ // If some fixed metadata kinds are not present and consistent in all supported
1876
+ // LLVM versions, it's fine to omit them from this list; in that case Rust-side
1877
+ // code cannot declare them as fixed IDs and must look them up by name instead.
1878
+ #undef FIXED_MD_KIND
0 commit comments