[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