[PATCH] Mangling for intrinsic names w/function type parameters

Philip Reames listmail at philipreames.com
Thu Oct 9 15:33:40 PDT 2014


Thanks for the code comments.  I'm going to hold off fixing these until 
we have the overall direction settled.

Philip

On 10/09/2014 02:52 PM, Juergen Ributzka wrote:
> Just a few coding style nitpicks. Otherwise LGTM.
>
> ================
> Comment at: lib/IR/Function.cpp:427-433
> @@ +426,9 @@
> +  std::string Result;
> +  if (PointerType* PTyp = dyn_cast<PointerType>(Ty) ) {
> +    Result += "p" + llvm::utostr(PTyp->getAddressSpace()) +
> +      getTypeMunge(PTyp->getElementType());
> +  } else if( ArrayType* ATyp = dyn_cast<ArrayType>(Ty) ) {
> +    Result += "a" + llvm::utostr(ATyp->getNumElements()) +
> +      getTypeMunge(ATyp->getElementType());
> +  } else if( StructType* ST = dyn_cast<StructType>(Ty) ) {
> +    if( !ST->isLiteral() ) {
> ----------------
> No {} needed
>
> ================
> Comment at: lib/IR/Function.cpp:451-453
> @@ +450,5 @@
> +    }
> +    if( FT->isVarArg() ) {
> +      Result += "vararg";
> +    }
> +    Result += "f"; //ensure distinguishable
> ----------------
> No {} needed
>
> ================
> Comment at: lib/IR/Function.cpp:460
> @@ +459,3 @@
> +  } else {
> +    // ??? Is this possible?
> +  }
> ----------------
> assert or llvm_unreachable?
>
> ================
> Comment at: lib/IR/Function.cpp:683
> @@ -644,1 +682,3 @@
> +                             ArrayRef<Type*> Tys, LLVMContext &Context,
> +                             bool& isVarArg) {
>     using namespace Intrinsic;
> ----------------
> isVarArg -> IsVarArg
>
> ================
> Comment at: lib/IR/Function.cpp:694
> @@ -651,1 +693,3 @@
> +    isVarArg = true;
> +    return NULL;
>     case IITDescriptor::MMX: return Type::getX86_MMXTy(Context);
> ----------------
> nullptr ;-)
>
> ================
> Comment at: lib/IR/Function.cpp:744
> @@ +743,3 @@
> +                             ArrayRef<Type*> Tys, LLVMContext &Context) {
> +  bool isVarArg = false;
> +  Type* Ty = DecodeFixedType(Infos, Tys, Context, isVarArg);
> ----------------
> ditto
>
> ================
> Comment at: lib/IR/Function.cpp:764-766
> @@ +763,5 @@
> +    Type* Ty = DecodeFixedType(TableRef, Tys, Context, isVarArg);
> +    if( Ty ) {
> +      ArgTys.push_back(Ty);
> +    } else if( isVarArg ) {
> +      assert( TableRef.empty() && "var arg must be last" );
> ----------------
> No {} needed
>
> ================
> Comment at: lib/IR/Function.cpp:769-771
> @@ +768,5 @@
> +      break;
> +    } else {
> +      llvm_unreachable("Type must be non-null unless isVarArg");
> +    }
> +  }
> ----------------
> ditto
>
> http://reviews.llvm.org/D4608
>
>




More information about the llvm-commits mailing list