Harald van Dijk
Harald van Dijk
> Hi @hvdijk, thanks for the report. > > I would close this as not a bug, because the C++ program you have is essentially ill-formed due to use of...
> It can https://registry.khronos.org/SPIR-V/specs/unified1/OpenCL.ExtendedInstructionSet.100.html#printf I stand corrected! You can see a remnant of what I originally included in my report, "either ... or an extension should be used", I took...
> @hvdijk is this behavior okay? Having it use an extension is fine, but it seems like the result still does not pass validation: > error: line 165: OpenCL.std printf:...
> At what point do you see this error message? When I run `spirv-val` like in my original message, using a fresh clone from current https://github.com/KhronosGroup/SPIRV-Tools
This looks like it's fixed to me, though the previously generated invalid SPIR-V was (IIRC) accepted by the Intel OpenCL driver, the newly generated valid SPIR-V results in errors there....
> Also, `Vec` is heap-allocated and `alloca` is stack-allocated. Shouldn't we try to preserve this? Ideally, yes, but that may not be possible as Rust does not have `alloca`. There...
> https://github.com/playXE/alloca-rs That only handles a subset of the possible uses of `alloca` as well, and I suspect it may be a smaller subset than what will be handled by...
> I wasn't able to identify any way by which WithStmts can hold variable declaration statements that are meant to "bubble up" to the start of the function block. In...
> Only the declaration of the variable needs to be at the start of the function. So `let mut freshN: Vec;` or whatever. It can be left uninitialised, or given...
Just testing to see what is possible: it shouldn't need a lot of work. All that should be needed is for the client to have a way to override a...