Hi, Thanks to everyone for all their feedback. Please review the updated patch. I modified the implementation to use attributed statements on the loop stmts to pass loop hints to the code generator. The benefit of using this method is that c++11 loop attributes won’t take too much more work to support, such as defining the syntax. Also attributed statements are part of the AST, along with their data. The syntax remains unchanged as: #pragma loop vectorize(enable/disable/value) interleave(enable/disable/value) In response to Alexey Bataev: 1. Multiple-inheritance: Fixed using attributes to pass loop hints instead. 2. Support range-based loop: Done. 3. Loop Attributes: In theory this should work, but its untested. I couldn’t find any attributes that apply to loops or statements in general. 4. Serialization/deserialization: Should be supported with attributed stmts. 5. Expressions: Fixed. The value is now interpreted as a constant integer _expression_. 6. Contradictory directives: I don’t think this is a problem because there are only really two options vectorize and interleave. Contradictions could be easily checked if you think it would be a problem. 7. ast-dump and ast-print: Should be supported on attributed stmts. 8. Templates: Done and tests have been added. In response to Hal Finkel: - I made the changes you suggested. If I missed anything please let me know. - I think the documentation should be added in an separate commit. I’ll get started on that next. - I don’t know Doug or Richard, could you add them to the cc-list. Looking forward to more feedback, Tyler |
pragma_loop-svn.patch
Description: Binary data
On Apr 22, 2014, at 11:25 PM, Alexey Bataev <[email protected]> wrote:
|
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
