[LLVMdev] Supporting heterogeneous computing in llvm.

Sergey Ostanevich sergos.gnu at gmail.com
Tue Jun 9 08:40:19 PDT 2015


Chirs,

>From those two replies you sent I can't get the point.
Here you say modules compiled independently for host and target
(accelerator) and that IR is not a good place to tackle the
architecture differences:

On Tue, Jun 9, 2015 at 10:17 AM, Christos Margiolas
<chrmargiolas at gmail.com> wrote:
> In fact, I have two modules:
> a) the Host one
> b) the Accelerator one
>
> Each one gets compiled independently. The runtime takes care of the
> offloading operations and loads the accelerator code. Imagine that you want
> to compile for amd64 and nvidia ptx. You cannot do it in a single module and
> even if you support it, it is gonna become scary. How are you gonna handle
> architecture differences that affect the IR in a nice way? e.g. pointer
> size, stack alignment and much more...
>

And 11 minutes later you write:

On Tue, Jun 9, 2015 at 10:28 AM, Christos Margiolas
<chrmargiolas at gmail.com> wrote:
> Hello,
>
> I can see some fundamental differences between this work and my work.
> However, I think they are more complementary than "competitive". My work
> handles code extraction for offloading (in IR level) and offloading control

[...]

> The scheme you refer could be supported on the top of my infrastructure. I
> personally believe that code extraction and transformations for offloading
> should be done in IR and not in source level. The reason is that in IR level
> you have enough information about your program (e.g. datatypes) and a good
> idea about your target architectures.
>

Can you please clarify the scheme you propose: whether modules are
different from the source level?
How do you plan to address the architecture differences in the IR level?

Regards,
Sergos



More information about the llvm-dev mailing list