rnk added subscribers: dexonsmith, rjmccall.
rnk added inline comments.

================
Comment at: lib/CodeGen/TargetInfo.cpp:919
 /// IsX86_MMXType - Return true if this is an MMX type.
 bool IsX86_MMXType(llvm::Type *IRType) {
-  // Return true if the type is an MMX type <2 x i32>, <4 x i16>, or <8 x i8>.
----------------
I think looking at the LLVM type to decide how something should be passed is a 
bad pattern to follow. We should look at the clang AST to decide how things 
will be passed, not LLVM types. Would that be complicated? Are there aggregate 
types that end up getting passed directly in MMX registers?


================
Comment at: lib/CodeGen/TargetInfo.cpp:9489
+      // System V i386 ABI requires __m64 value passing by MMX registers.
+      bool EnableMMX = getContext().getTargetInfo().getABI() != "no-mmx";
       return SetCGInfo(new X86_32TargetCodeGenInfo(
----------------
I think this needs to preserve existing behavior for Darwin and PS4 based on 
comments from @rjmccall and @dexonsmith in D60748.


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

https://reviews.llvm.org/D59744



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

Reply via email to