Conversation
|
/gemini review |
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Code Review
This pull request primarily focuses on modernizing the C++ codebase to C++11 standards, improving memory management, and enhancing the parsing and representation of OpenACC clauses. Key changes include updating CMakeLists.txt to strictly enforce C++17, replacing NULL with nullptr across the codebase, and introducing a stripStringLiteral helper function to correctly handle quoted string literals in clauses like bind and indirect. A significant refactoring was performed in OpenACCIR.cpp and OpenACCIR.h to improve clause management within directives: OpenACCDirective now directly owns std::vector<OpenACCClause *> objects instead of pointers to them, simplifying memory handling and preventing leaks by adding a proper destructor. Additionally, the grammar was updated to support gang(dim:int_expr) and wait(devnum:int_expr:queues:int_expr_list) clauses, and device_type clauses were added to data directives, along with corresponding updates to parsing logic and test cases.
Summary
device_type,waitargument, routinegang(dim:...), bind string literals)Testing