tra marked an inline comment as done.
tra added a comment.
In http://reviews.llvm.org/D12917#247868, @jpienaar wrote:
> Nice, so this will allow parsing/AST construction with builtins from 2
> architectures but will fail to compile if a builtin for the host/device is
> called from device/host.
It CUDA target call checks are in effect, we'll get a usual error that H->D or
D->H call is illegal. If we're compiling with
-fcuda-disable-target-call-checks, then we'll fail during codegen phase
complaining that builtin has not been implemented.
> You mention this is not generally possible. Can you give some examples?
It's mostly related to mixing include files and preprocessor macros from
multiple targets.
If an include is written to conditionally provide mutually exclusive constructs
for targets A and B, then compiling for A with -aux-triple B will produce
something uncompilable. For instance following include will fail due to
redefinition of foo() if compiled with -triple x86_64 -aux-triple nvptx64
#ifdef __amd64__
int foo() {return 1;}
#endif
#ifdef __PTX__
int foo() {return 2;}
#endif
================
Comment at: include/clang/Driver/CC1Options.td:329
@@ -328,1 +328,3 @@
+def aux_triple : Separate<["-"], "aux-triple">,
+ HelpText<"Auxiliary triple.">;
def code_completion_at : Separate<["-"], "code-completion-at">,
----------------
jpienaar wrote:
> You use aux target in all the errors to the user so perhaps for consistency
> "Triple for aux target". It could be more self-documenting too ("Triple for
> aux target used during CUDA compilation."?) as I don't know if a lot of
> people would be able to guess what the auxiliary triple is or where it is
> used.
Changed to "Auxiliary target triple." While CUDA uses the aux target triple for
preprocessor macros and builtins, nothing stops anyone else using this
information for other purposes, so I kept the name and the comment generic.
http://reviews.llvm.org/D12917
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits