craig.topper added inline comments.
================ Comment at: lib/CodeGen/CodeGenFunction.cpp:2271 +static bool hasRequiredFeature(StringRef Feature, + llvm::StringMap<bool>& CallerFeatureMap, + std::string &Missing) { ---------------- '&' should be in front of the variable name not after the type. ================ Comment at: lib/CodeGen/CodeGenFunction.cpp:2305 + return Feature == ExplicitFeature.substr(1); + })) + if (!hasRequiredFeature(Feature, CallerFeatureMap, FirstMissing)) ---------------- Please run clang-format on this. There's some weird indentation happening. ================ Comment at: lib/CodeGen/CodeGenFunction.cpp:2345 StringRef(FeatureList).split(ReqFeatures, ','); - if (!hasRequiredFeatures(ReqFeatures, CGM, FD, MissingFeature)) + if (!hasRequiredFeatures(ReqFeatures, CGM, FD, TargetDecl, MissingFeature)) CGM.getDiags().Report(E->getLocStart(), diag::err_builtin_needs_feature) ---------------- Can we call getAttr here and pass the result of that instead of the TargetDecl? We know the attribute exists. Then rename getFunctionTargetAttrs and make it only responsible for removing unknown features. Push its other call site back into the 'if' there. This removes the need to return an empty ParsedTargetAttr. ================ Comment at: lib/CodeGen/CodeGenModule.cpp:4998 -// Fills in the supplied string map with the set of target features for the -// passed in function. -void CodeGenModule::getFunctionFeatureMap(llvm::StringMap<bool> &FeatureMap, - const FunctionDecl *FD) { - StringRef TargetCPU = Target.getTargetOpts().CPU; +TargetAttr::ParsedTargetAttr CodeGenModule::getFunctionTargetAttrs(const FunctionDecl *FD) +{ ---------------- Open curly brace should be on previous line. ================ Comment at: lib/CodeGen/CodeGenModule.cpp:5024 + TargetAttr::ParsedTargetAttr ParsedAttr = getFunctionTargetAttrs(FD); + if (ParsedAttr.Features.size() != 0) { // Make a copy of the features as passed on the command line into the ---------------- !ParsedAttr.Features.empty() Repository: rC Clang https://reviews.llvm.org/D46541 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits