[PATCH] D11438: Fix x86_64 fp128 calling convention

David Li via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 5 11:22:31 PDT 2015


davidxl added inline comments.

================
Comment at: lib/CodeGen/SelectionDAG/InstrEmitter.cpp:169
@@ -164,1 +168,3 @@
+    // If TRI->getCommonSubClass(UseRC, RC) returns some register class,
+    // e.g. FR128, that does not contain VT, it should not be used for DstRC.
     DstRC = UseRC;
----------------
What is VT in this case? What reg class is ComRC here? How about the DstRC below TLI->getRegClassFor(VT)?

================
Comment at: lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:291
@@ +290,3 @@
+/// Expands the Constant node to a load from the constant pool.
+SDValue SelectionDAGLegalize::ExpandConstant(ConstantSDNode *CP) {
+  SDLoc dl(CP);
----------------
Change the name to ExpandConstantFP128?

================
Comment at: lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:3535
@@ +3534,3 @@
+    ConstantSDNode *CP = cast<ConstantSDNode>(Node);
+    Results.push_back(ExpandConstant(CP));
+    break;
----------------
I don't see what expected EVTs are checked in this method?

================
Comment at: lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp:64
@@ +63,3 @@
+  // return false, otherwise, mark this node as done and return true.
+  if (KeepFloat)
+    switch (N->getOpcode()) {
----------------
Does the following change affects other types other than f128?


http://reviews.llvm.org/D11438





More information about the llvm-commits mailing list