OpenCL parsing / type support

I am also looking into OpenCL support in Clang, and am learning quite a few
of hacks Chris and Arnaud are referring to. It would be good, however, to
implement OpenCL features properly, so that setting LangOpts.OpenCL=1 would
just work. I suggest we make a conscious community-wide effort here so that
various implementations do not reinvent the wheel. (So Arnaud it would be
great if you could contribute to Clang head your patch for address space and
kernel attributes!)

I'm fine with improving infrastructure to support this, but there is no reason to add first class language support for things like __kernel. It just makes the compiler more complex for no reason. If you're interested in driving this, a better thing to focus on would be to provide an implementation of the *implicit include* which provides the #defines etc.

-Chris