tra added a comment.

`-E` by default prints preprocessed output to stdout. CUDA will print 
preprocessed output from all subcompilations. What does HIP do in this case? 
Printing out the bundle is probably not what the user will expect.
IMO preprocessed output is frequently used as a debugging tool, so it's 
important for users to be able to read it. Bundled output is rather cumbersome 
to deal with. It's possible to manually unbundle it, but the tool is not 
documented well and it's not particularly suitable for human use.

I think we should preserve the long-established meaning of `-E` and keep its 
output as plain text.

Perhaps we need a flag telling the driver to bundle the outputs. Somthing like 
`-fhip-bundle-outputs`. I think it may be useful in other cases. E.g. what if 
we want so compile to assembly and then assemble to the object file. It's not 
that different from preprocess and compile you're trying to achieve here. This 
may be a more general solution.



================
Comment at: clang/lib/Driver/Driver.cpp:2523-2524
         // this input.
-        if (IA->getType() != types::TY_CUDA &&
-            IA->getType() != types::TY_HIP) {
+        if (IA->getType() != types::TY_CUDA && IA->getType() != types::TY_HIP 
&&
+            IA->getType() != types::TY_PP_HIP) {
           // The builder will ignore this input.
----------------
Nit: too many negations in the condition. `if (! (IA->getType() == 
types::TY_CUDA || IA->getType() == types::TY_HIP  || IA->getType() == 
types::TY_PP_HIP))` would be easier to understand, IMO.




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

https://reviews.llvm.org/D92720

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

Reply via email to