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