craig.topper added inline comments.

================
Comment at: lib/CodeGen/CodeGenFunction.cpp:2342
       // Only positive features are "required".
-      if (F.getValue())
+      if (F.getValue()) {
+        if (std::any_of(ParsedAttr.Features.begin(), ParsedAttr.Features.end(),
----------------
Rather than walking the ParsedAttr.Features for each feature in the map. And 
having to shift the ReqFeatures vectors sometimes. How about doing this

-Walk through all features in ParsedAttr, for each feature with a +, query the 
callee feature map. If it's enabled there, push it to ReqFeatures.
-Walk through all features in the callee feature map and if enabled push those.

This will lead to duplicates in the list, but all the explicitly mentioned 
features will be listed first.


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