azabaznov added a comment.

I have one more though.

I like the idea of turning `opencl-c.h` into the test: as it is already in the 
repo and is already being used for quite a while we can assume it as a mainline 
for now. I think the first step should be to test that 
`-fdeclare-oprencl-builtins` generates the same built-ins which are declared in 
`opencl-c.h`. If we can't do this //programmable way// we can use AST 
pretty-printing for tablegen header and `opencl-c.h` and compare these with 
//diff //(we can also do a clean-up of AST files with //rm// while running that 
tests).

Once this is done we can incrementally modify either `opencl-c.h` header and 
tablegen header. Testing changes to either of them can combine sanity check as 
@svenvh suggested in **builtins-opencl2.0.check** and diff for AST pretty 
printing.

Advantages:

- Time of testing. Locally I get nice results: 

  $ time ./build_release/bin/clang-check -extra-arg=-cl-std=CL2.0 --ast-print  
llvm-project/clang/lib/Headers/opencl-c.h &> header.h
  real    0m0.182s
  user    0m0.162s
  sys     0m0.020s

  But not yet clear how much time such printing will take for tablegen header. 
I assume it won't take a lot longer.

- This will keep changes to `opencl-h` header and tablegen header consistent 
(until `opencl-c.h` will be deprecated)

 
Disadvantages:

- Still doesn't eliminate subtle errors, need to carefully collect information 
from the spec about amount of the built-ins


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97869/new/

https://reviews.llvm.org/D97869

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to