julia
3a884a72 - Don't include NI tags when verifying external module data layouts. (#60720)

Commit
102 days ago
Don't include NI tags when verifying external module data layouts. (#60720) We're currently excepting callers of `addExternalModule` to provide modules with a DL that contains NI tags: ``` ERROR: LoadError: LLVM error: Added modules have incompatible data layouts: e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32 (module) vs e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32-ni:10:11:12:13 (jit) ``` Doing so is invalid and asserts later during compilation: ``` Assertion failed: (Target.isCompatibleDataLayout(getDataLayout()) && "Can't create a MachineFunction using a Module with a " "Target-incompatible DataLayout attached\n"), function init, file /workspace/srcdir/llvm-project/llvm/lib/CodeGen/MachineFunction.cpp, line 248. ``` The NI tags are stripped during optimization, and modules passed to `addExternalModule` are expected to be optimized as they are passed straight to the JIT (as opposed to `addModule`), so we should make sure to use the correct data layout.
Author
Parents
Loading