[cfe-dev] OpenCL vec_step feature implementation - Updated
Anton Lokhmotov
Anton.Lokhmotov at arm.com
Wed Feb 16 06:36:21 PST 2011
Hi Guy,
Index: lib/Sema/SemaDeclCXX.cpp
===================================================================
- } else if (isa<SizeOfAlignOfExpr>(S)) {
+ } else if (isa<UnaryTypePropertyExpr>(S)) {
// sizeof/alignof doesn't reference contents, do not warn.
return false;
Index: include/clang/Frontend/StmtXML.def
===================================================================
-NODE_XML(SizeOfAlignOfExpr, "SizeOfAlignOfExpr") // sizeof(expr) or
alignof(expr)
+NODE_XML(UnaryTypePropertyExpr, "UnaryTypePropertyExpr") //
sizeof(expr) or alignof(expr)
Can you please update the comments as well?
Index: test/CodeGenOpenCL/opencl_vecstep.cl
===================================================================
This test is CodeGenOpenCL, so the prefix "opencl_" is superfluous. Perhaps
call this file vec_step.cl?
Can you please add invalid test cases verifying that vec_step() cannot be
applied to types other than scalar and vector built-in types, including
pointer types?
> I took care of the rest of your comments, and changed the
> SizeOfAlignOfExpr name to UnaryTypePropertyExpr.
Aside: While I'm not aware of any binary type property expressions, I guess
there could be an operator, say, is_compatible(type1, type2) returning true
if type1 is in some sense "compatible" with type2 and false otherwise. For
example, if "compatible" would mean "type1 can be implicitly converted to
type2", for OpenCL is_compatible(int4, int4) would return true and
is_compatible(int4, uint4) would return false. Currently this is only of
theoretical interest of course :).
Many thanks,
Anton.
More information about the cfe-dev
mailing list