This is an archive of the discontinued LLVM Phabricator instance.

[OpenCL] Traverse vector types for ocl extensions support
ClosedPublic

Authored by vmaksimo on Aug 27 2018, 5:00 AM.

Details

Summary

Given the following kernel:
__kernel void foo()
{

double d;
double4 dd;

}

and cl_khr_fp64 disabled, the compilation would fail due to
the presence of 'double d', but when removed, it passes.

The expectation is that extended vector types of unsupported types
will also be unsupported.

The patch adds the check for this scenario.

Diff Detail

Event Timeline

vmaksimo created this revision.Aug 27 2018, 5:00 AM
vmaksimo created this object with edit policy "vmaksimo (Viktoria Maximova)".
Anastasia accepted this revision.Aug 28 2018, 9:21 AM

LGTM! Thanks! Could you please change the commit title tag:
[Sema] -> [OpenCL]

lib/Sema/Sema.cpp
42

It would be better to undo this formatting change. Clang code base seems to be inconsistent on that anyway.

This revision is now accepted and ready to land.Aug 28 2018, 9:21 AM
vmaksimo updated this revision to Diff 163287.Aug 30 2018, 2:25 AM
vmaksimo retitled this revision from [Sema] Traverse vector types for ocl extensions support to [OpenCL] Traverse vector types for ocl extensions support.
vmaksimo edited the summary of this revision. (Show Details)
This revision was automatically updated to reflect the committed changes.