I'm not sure that's true, the pointer support is there for front-ends
> - Another aspect is the runtime, aka the bit that takes some low-level
> IR and actually executes it. Breadth here is good.
>
> Options include:
>
> - Ye olde weave-like compile-and-link-into-interpreter method
> - LLVM JIT infrastructure
> - OpenCL
> - CUDA driver interface
>
> Again, I've probably missed some here--feel free to fill in missing bits.
>
> - In addition to the runtime, there's the decision of what Python
> interface to use for the runtime. Disagreement here can once again
> create friction for users.
>
> I've also got some personal opinions, which I'll put up for comment here:
>
> - Numpy's type system is fairly limited, but I feel like that might be a
> good thing. By supporting full-blown pointers, for example, PyKit
> already locks itself out of working with many aspects of OpenCL.
> (buffer+offset is roughly equivalent to a pointer, but this quirk
> needs to be reflected.)
that want to use pointers. If your front-end doesn't, then you won't
use them. Lowering passes could introduce pointers (e.g. to pass
things around by reference), but such things can hopefully be
controlled in a clear way. I imagine it will have a "CPU" and "GPU"
set of pass configurations, with the GPU set having restrictions on
what you can do.
- James
--
You received this message because you are subscribed to the Google Groups "NumFOCUS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to numfocus+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
In the XDATA world, the Apache license is preferred because of some promises it makes about not having patent time bombs in the software.
I could see either way.
Travis
On 8 July 2013 22:26, Rahul Garg <rahul...@gmail.com> wrote:Yes, but producers don't have to generate SSA. They can use
> It does not use SSA but the framework does provide some common analysis like
> live variable analysis. SSA would have been nice but I also wanted it to be
> easy to generate, which SSA is not.
alloca/load/store, and use an pre-existing SSA pass to convert to SSA.
Yes. What is advantageous however is to assign each sub-expression to
> SSA is also not that advantageous when
> it comes to dealing with arrays.
a temporary, essentially converting to a three-address like
representation. I've found things are a lot easier this way, as well
as representing control flow uniformly through jumps and conditional
jumps, making all analyses easier (with a completely flat structure of
blocks). This is basically the representation LLVM uses, except you
should be able to extend it with your own instructions and types more
easily, while still being able to have those extensions participate in
existing optimizations.