On Jul 6, 2007, at 4:00 AM, Rafael Espindola wrote: >> The patch looks good. Some questions/comments: >>
Sorry, just now catching up on this thread. :( >> +++ include/llvm/CodeGen/SelectionDAGNodes.h (working copy) >> >> + SturtByVal = 1<<4, ///< Struct passed by value >> >> This looks like a typo "sturt" > Changed to "ByVal" based on Duncan's comment. Ok, sounds good. >> +++ utils/TableGen/CallingConvEmitter.cpp (working copy) >> @@ -67,12 +67,14 @@ >> O << IndentStr << "if ("; >> >> if (Action->isSubClassOf("CCIfType")) { >> + O << "!(ArgFlags & ISD::ParamFlags::StructByVal) && ("; >> >> >> I don't think CCIfType should automatically mask out byval >> arguments. Instead, Plz add a new "notbyval" predicate or something >> so that this logic is explicit in the .td files. > > The reason I did this is that if CCIfType matches "byval" arguments, > the current backends will generate invalid code (handle it like a > normal pointer). I have just removed the checks for now, since nothing > is generating "byval"s. > > If a add a notbyval predicated, should I add it to all the current > uses of CCIfType? I'd suggest that we just let the backends upgrade as they add support for byval. By default, they will codegen as if the thing is passed like a pointer. Target authors should add support for byval if they care, before llvm-gcc support goes in. -Chris _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits