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

Reply via email to