Anastasia added inline comments.

================
Comment at: lib/CodeGen/CGCall.cpp:3972
+          // we don't want to perform address space cast for it, since that
+          // leads to casting __private * (default addr space in OpenCL) to
+          // __global * which is not valid. Create memcpy call instead.
----------------
This statement is incorrect. Private is only default AS in CL versions before 
2.0.

I feel this can be expressed simpler. I guess the observation here is that if 
addr space mismatches it has to generate a copy because even if it would be a 
generic we can't get what the original specific addr space was? So it's safe to 
generate a copy.


================
Comment at: test/CodeGenOpenCL/addr-space-struct-arg.cl:4
 // RUN: %clang_cc1 %s -emit-llvm -o - -cl-std=CL2.0 -O0 
-finclude-default-header -triple amdgcn | FileCheck -enable-var-scope 
-check-prefixes=COM,AMDGCN,AMDGCN20 %s
+// RUN: %clang_cc1 %s -emit-llvm -o - -cl-std=CL1.2 -O0 
-finclude-default-header -triple spir-unknown-unknown-unknown | FileCheck 
-enable-var-scope -check-prefixes=SPIR %s
 
----------------
Do you know why we need `-finclude-default-header` here? If it's just for 
vector types perhaps we should just declare them here... headers parsing is 
expensive in terms of time.


Repository:
  rC Clang

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

https://reviews.llvm.org/D54947



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

Reply via email to