Re: plugin hooks for plugin-provided builtins?

2010-09-14 Thread Marcus Daniels

 On 9/14/10 8:46 AM, Basile Starynkevitch wrote:

  My current work aims to translate some Gimple into OpenCL source
code, thus providing GCC with the ability to take advantage of GPU
running their proprietary OpenCL compilers without asking the user to
learn OpenCL.
My understanding is that Gimple does not have the notion of data 
parallel operations.

For example, in Fortran, array operators are lowered to scalarized form.
OpenCL does have these semantics.   kernels enqueued as an NDRanges are 
item-by-item data parallel and there are often not any loops expressed 
in the kernel itself.  And kernels that do have lots of control logic, 
and use lots of registers, global memory, etc. will tend not to work 
well on GPUs.

Remember that for geographical  political reasons all my GCC work is
more source to source that source to machine oriented. I don't
have the expertise, and I am not legitimate (internally in my CEA LIST
organization at least, and also w.r.t. of funding French government
agencies) to work on anything close to the target processor or silicon
in GCC.
It seems to me a source to source compiler should definitely retain 
high level constructs like array operators, DO ALL, OpenMP directives, etc.


Marcus


Re: plugin hooks for plugin-provided builtins?

2010-09-14 Thread Marcus Daniels

 On 9/14/10 10:58 AM, Basile Starynkevitch wrote:

It seems to me a source to source compiler should definitely retain
high level constructs like array operators, DO ALL, OpenMP directives, etc

One can use #pragma-s  builtin-s  attributes for these. This is why I was 
trying to push the idea of plugin hooks for builtins.
In this use case, what is the GCC middle-end *for* if it does not 
understand data parallel operations?  Even GENERIC lacks the notion, 
right?  (We've been working directly from the Fortran parse tree.)


Marcus




Re: Merging Apple's Objective-C 2.0 compiler changes

2010-09-13 Thread Marcus Daniels

 On 9/13/10 2:04 PM, Ian Lance Taylor wrote:

Therefore, I see a clear benefit to clang-gcc, but I
do not see a clear benefit to gcc-llvm.
Suppose you have large Fortran applications, and want to accelerate 
parts of them on graphics processors.
Several of the OpenCL implementations use LLVM for runtime code 
generation, so one could compile the application to LTO, and let it go 
through some expensive stages of the GCC optimizer, and have LLVM 
bitcode staged for final translation to the GPU ISA.


In general, make the distinction between heavy ahead-of-time compilation 
and light just-in-time compilation along the lines of GCC and LLVM.