Am 21.12.18 um 15:30 schrieb Jose Fonseca: > On 21/12/2018 14:28, Roland Scheidegger wrote: >> Am 21.12.18 um 08:46 schrieb Jose Fonseca: >>> On 21/12/2018 01:42, srol...@vmware.com wrote: >>>> From: Roland Scheidegger <srol...@vmware.com> >>>> >>>> Whenever llvm removes an intrinsic (we're using), we're hitting >>>> segfaults >>>> due to llvm doing calls to address 0 in the jitted code instead. >>>> However, Jose figured out we can actually detect this with >>>> LLVMGetIntrinsicID(), so use this to abort, so we don't have to wonder >>>> what got broken. (Of course, someone still needs to fix the code to >>>> no longer use this intrinsic.) >>>> --- >>>> src/gallium/auxiliary/gallivm/lp_bld_intr.c | 10 ++++++++++ >>>> 1 file changed, 10 insertions(+) >>>> >>>> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.c >>>> b/src/gallium/auxiliary/gallivm/lp_bld_intr.c >>>> index 74ed16f33f0..c9df136b103 100644 >>>> --- a/src/gallium/auxiliary/gallivm/lp_bld_intr.c >>>> +++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.c >>>> @@ -241,6 +241,16 @@ lp_build_intrinsic(LLVMBuilderRef builder, >>>> function = lp_declare_intrinsic(module, name, ret_type, >>>> arg_types, num_args); >>>> + /* >>>> + * If llvm removes an intrinsic we use, we'll hit this abort >>>> (rather >>>> + * than a call to address zero in the jited code). >>>> + */ >>>> + if (LLVMGetIntrinsicID(function) == 0) { >>>> + printf("llvm (version 0x%x) found no intrinsic for %s, going >>>> to crash...\n", >>>> + HAVE_LLVM, name); >>> >>> Better to use _debug_printf() so it's redirected to stderr (or >>> OutpuDebug on Windows.) >> Alright, though this will drop the output on non-debug builds. > > Not really: debug_printf only prints on debug build, but _debug_printf > (note the leading underscore) always print. Ahh right I failed to catch the difference here.
Roland > > Perhaps it's not the smartest naming convention, but it should do the > expected. > > > Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev