[llvm-commits] [126379] apply reid's patch for PR1146

Christopher Lamb christopher.lamb at gmail.com
Sun Apr 22 00:32:23 PDT 2007


How long does it usually take for these to propagate to the public  
SVN site?
--
Christopher Lamb

On Apr 22, 2007, at 12:52 AM, clattner at apple.com wrote:

> Revision: 126379
> Author:   clattner
> Date:     2007-04-21 22:52:13 -0700 (Sat, 21 Apr 2007)
>
> Log Message:
> -----------
> apply reid's patch for PR1146
>
> Modified Paths:
> --------------
>     apple-local/branches/llvm/gcc/llvm-types.cpp
>
> Modified: apple-local/branches/llvm/gcc/llvm-types.cpp
> ===================================================================
> --- apple-local/branches/llvm/gcc/llvm-types.cpp	2007-04-21  
> 06:48:37 UTC (rev 126378)
> +++ apple-local/branches/llvm/gcc/llvm-types.cpp	2007-04-22  
> 05:52:13 UTC (rev 126379)
> @@ -751,15 +751,17 @@
>    for (; Args && TREE_TYPE(Args) != void_type_node; Args =  
> TREE_CHAIN(Args))
>      ABIConverter.HandleArgument(TREE_TYPE(Args));
>
> -  ParamAttrsList *ParamAttrs = 0;
> +  ParamAttrsList *PAL = 0;
>
>    if (static_chain) {
>      // Pass the static chain in a register.
> -    ParamAttrs = new ParamAttrsList();
> -    ParamAttrs->addAttributes(1, ParamAttr::InReg);
> +    ParamAttrsVector Attrs;
> +    ParamAttrsWithIndex PAWI; PAWI.index = 1; PAWI.attrs =  
> ParamAttr::InReg;
> +    Attrs.push_back(PAWI);
> +    PAL = ParamAttrsList::get(Attrs);
>    }
>
> -  return FunctionType::get(RetTy, ArgTys, false, ParamAttrs);
> +  return FunctionType::get(RetTy, ArgTys, false, PAL);
>  }
>
>  const FunctionType *TypeConverter::ConvertFunctionType(tree type,
> @@ -811,7 +813,7 @@
>    // the parameter attribute in the FunctionType so any arguments  
> passed to
>    // the function will be correctly sign or zero extended to 32- 
> bits by
>    // the LLVM code gen.
> -  ParamAttrsList Attrs;
> +  ParamAttrsVector Attrs;
>    uint16_t RAttributes = ParamAttr::None;
>    if (CallingConv == CallingConv::C) {
>      tree ResultTy = TREE_TYPE(type);
> @@ -827,8 +829,10 @@
>            RAttributes |= ParamAttr::SExt;
>      }
>    }
> -  if (RAttributes != ParamAttr::None)
> -    Attrs.addAttributes(0, RAttributes);
> +  if (RAttributes != ParamAttr::None) {
> +    ParamAttrsWithIndex PAWI; PAWI.index = 0; PAWI.attrs =  
> RAttributes;
> +    Attrs.push_back(PAWI);
> +  }
>
>    unsigned Idx = 1;
>    bool isFirstArg = true;
> @@ -838,16 +842,21 @@
>    LLVM_TARGET_INIT_REGPARM(lparam, type);
>  #endif // LLVM_TARGET_ENABLE_REGPARM
>
> -  if (static_chain)
> +  if (static_chain) {
>      // Pass the static chain in a register.
> -    Attrs.addAttributes(Idx++, ParamAttr::InReg);
> +    ParamAttrsWithIndex PAWI; PAWI.index = Idx++; PAWI.attrs =  
> ParamAttr::InReg;
> +    Attrs.push_back(PAWI);
> +  }
>
>    // The struct return attribute must be associated with the first
>    // parameter but that parameter may have other attributes too so  
> we set up
>    // the first Attributes value here based on struct return. This  
> only works
>    // Handle the structure return calling convention
> -  if (ABIConverter.isStructReturn())
> -    Attrs.addAttributes(Idx++, ParamAttr::StructRet);
> +  if (ABIConverter.isStructReturn()) {
> +    ParamAttrsWithIndex PAWI;
> +    PAWI.index = Idx++; PAWI.attrs = ParamAttr::StructRet;
> +    Attrs.push_back(PAWI);
> +  }
>
>    for (tree Args = TYPE_ARG_TYPES(type);
>         Args && TREE_VALUE(Args) != void_type_node; Args =  
> TREE_CHAIN(Args)) {
> @@ -873,18 +882,20 @@
>                                      isVarArg, lparam);
>  #endif // LLVM_TARGET_ENABLE_REGPARM
>
> -    if (Attributes != ParamAttr::None)
> -      Attrs.addAttributes(Idx, Attributes);
> +    if (Attributes != ParamAttr::None) {
> +     ParamAttrsWithIndex PAWI; PAWI.index = Idx; PAWI.attrs =  
> Attributes;
> +     Attrs.push_back(PAWI);
> +    }
>      Idx++;
>    }
>
>    // Only instantiate the parameter attributes if we got some
> -  ParamAttrsList *ParamAttrs = 0;
> +  ParamAttrsList *PAL = 0;
>    if (!Attrs.empty())
> -    ParamAttrs = new ParamAttrsList(Attrs);
> +    PAL = ParamAttrsList::get(Attrs);
>
>    // Finally, make the function type
> -  return FunctionType::get(RetTy, ArgTypes, isVarArg, ParamAttrs);
> +  return FunctionType::get(RetTy, ArgTypes, isVarArg, PAL);
>  }
>
>  // 
> ===------------------------------------------------------------------- 
> ---===//
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070422/414b9e80/attachment.html>


More information about the llvm-commits mailing list