Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 18:52

    rootjalex on arm-optimize

    remove logging and fix merge is… (compare)

  • 18:39

    rootjalex on arm-optimize

    fix case without WITH_X86 Merge branch 'rootjalex/x86-opt… implement ARM TRS for vector in… and 10 more (compare)

  • 18:06
    steven-johnson commented #6919
  • 17:36
    alexreinking commented #6919
  • 17:36
    alexreinking commented #6919
  • 17:16
    steven-johnson commented #6924
  • 17:06
    alexreinking synchronize #6919
  • 17:06

    alexreinking on upgrade

    Fix CBLAS header in linear_alge… (compare)

  • 16:35
    steven-johnson commented #6919
  • 16:34
    steven-johnson commented #6919
  • 12:56
    LebedevRI synchronize #6775
  • 12:43
    LebedevRI commented #6775
  • 12:43
    LebedevRI ready_for_review #6775
  • 12:43
    LebedevRI synchronize #6775
  • 10:22

    vksnk on xtensa-codegen

    LICENSE.txt: Include full text … LICENSE.txt: add spirv license … LICENSE.txt: add BLAS license. … and 7 more (compare)

  • 05:28
    alexreinking edited #6919
  • 05:22
    alexreinking synchronize #6919
  • 05:22

    alexreinking on upgrade

    Drive-by: fix autotune_loop.sh … (compare)

  • 05:12
    alexreinking edited #6919
  • 05:11
    alexreinking synchronize #6919
Roman Lebedev
@LebedevRI
note that i'm not saying: please implement this now; i would look into it myself if it's reasonable and maybe with some guidance if needed
Alex Reinking
@alexreinking:matrix.org
[m]
Gotcha
Roman Lebedev
@LebedevRI
so i guess i should just try and see what it would take to add msan support
Alex Reinking
@alexreinking:matrix.org
[m]
Yes, hopefully not too much.
Roman Lebedev
@LebedevRI
alexreinking: thank you
Roman Lebedev
@LebedevRI
ah, hmm, so there is already some msan support, missed that
Yeah, we have m/t/asan feature flags
Roman Lebedev
@LebedevRI
yeah, somehow i didn't see msan
Alex Reinking
@alexreinking:matrix.org
[m]
It's not next to the others for some reason 🤷‍♂️
I was surprised when you said there was no msan support... I should have checked.
Roman Lebedev
@LebedevRI
i mean, msan pass isn't being run in CodeGen_LLVM::optimize_module(), unlike asan/tsan, there's custom instrumentation that all input buffers are defined, which is actually the right way do to this
Alex Reinking
@alexreinking:matrix.org
[m]
So you just need the coverage sanitizer still?
Roman Lebedev
@LebedevRI
"just"
Alex Reinking
@alexreinking:matrix.org
[m]
🙂
Roman Lebedev
@LebedevRI
there's also the question of translating -fsanitize to halide features
Alex Reinking
@alexreinking:matrix.org
[m]
In what sense?
Halide compiled with a sanitizer doesn't need to always produce binaries with that sanitizer
And vice versa...
Roman Lebedev
@LebedevRI
sure, that's not the question
Alex Reinking
@alexreinking:matrix.org
[m]
Okay, then where is this translation taking place?
Roman Lebedev
@LebedevRI
what i mean is, when i pass CFLAGS=-fsanitize=address, clang enables ASAN. will that just magically also enable halide's asan feature
?
Alex Reinking
@alexreinking:matrix.org
[m]
No, that's what I'm saying. It would be wrong to do that
Roman Lebedev
@LebedevRI
nono, not when compiling halide itself
e.g. when compiling halide/apps
Alex Reinking
@alexreinking:matrix.org
[m]
Clang doesn't read the CFLAGS env var AFAIK. CMake and Makefile default rules honor that variable when constructing compiler command lines.
Roman Lebedev
@LebedevRI
sure, i used env variable as an example
Alex Reinking
@alexreinking:matrix.org
[m]
I could see introducing Halide_TARGET_FEATURES as a CMake (package) variable to allow a user to add some features globally (through add_halide_library)
1 reply
-DHalide_TARGET_FEATURES=msan at the command line or set() it in a toolchain file
The sanitizers are toolchain-y anyway... that approach makes sense to me
Alex Reinking
@alexreinking:matrix.org
[m]
We should probably use some custom target properties for this... hmm. To-do.
Roman Lebedev
@LebedevRI
unless halide could directly consume CFLAGS, ask clang to interpret them, and then introspect what sanitizers/sanitizer options got enabled, i'm afraid it's not really feacible
Alex Reinking
@alexreinking:matrix.org
[m]
I'm not understanding. If you want Halide to enable a sanitizer, you add it to the list of target features. It's a downstream responsibility to configure Halide correctly, i.e. you're in control of your flags, so it's your responsibility to make sure that your various flags agree between all the compilers you're using.
Halide isn't and can't possibly be responsible for sniffing all the innumerable locations that -fsanitize might be slipped into the command lines of surrounding compiler invocations
There's CFLAGS, CXXFLAGS, hard-coded Makefile command lines, CMake's add_compile_options and target_compile_options (and abuses of related functions), compiler wrappers, etc.
Roman Lebedev
@LebedevRI
the more concrete question is: it isn't sufficient to just add ModuleSanitizerCoveragePass, it takes a number options. as i can see, in other sanitizer cases they are simply hardcoded in halide. would the suggestion be to do the same here?
Alex Reinking
@alexreinking:matrix.org
[m]
Yes, or dependent upon the other features that are enabled on the Target
E.g. if you combine multiple sanitizers
Roman Lebedev
@LebedevRI
i very much disagree that this is not halide's responsibility, it quite clearly is. the real question being, how do the knobs to configure it look like
Alex Reinking
@alexreinking:matrix.org
[m]
The Halide equivalent of a compiler command line is the Target feature set, pretty much
Roman Lebedev
@LebedevRI
that's my point actually
the unfortunate consequence of that is that each downstream will have to second-guess what clang will do, and manually tell halide do do the same
Alex Reinking
@alexreinking:matrix.org
[m]
Where is Clang involved in this?
Halide goes through LLVM for codegen, never passes through clang (unless you go through the C backend and choose to)
Roman Lebedev
@LebedevRI
perhas s/will/would/. imagine the following situation: there was some C codebase, it was being compiled with clang, with whatever sanitization flags. now, some part of that C code is replaced with AOT halide code
as far as i understand, unless explicitly enabled via halide target features, halide will not apply ASAN/MSAN, which makes sense
but the caveat is, said codebase will need some glue somewhere to toggle said halide features when the original C code would have been compiled with said sanitizers