| Summary: | Barrier Analysis does not match barriers (CDT AST changes) | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Tools] PTP | Reporter: | Beth Tibbitts <beth> | ||||
| Component: | PLDT | Assignee: | Beth Tibbitts <beth> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | ||||||
| Version: | 4.0 | ||||||
| Target Milestone: | 4.0.4 | ||||||
| Hardware: | PC | ||||||
| OS: | Mac OS X - Carbon (unsup.) | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Beth Tibbitts
The above should say ptp 4.0, not ptp 2.0 In CDT 6.0 (used by PTP 3.0, and Eclipse 3.5=Galileo, the previous version), function arguments in the AST are wrappered by an IASTExpressionList node. In CDT 7.0 this node is not there. PTP MPI Barrier Analysis uses the AST to determine matching barriers, and relied on this node to process function arguments. That node is no longer there. While the IASTExpressionList node is not longer in the AST, we can still create a node of that type by calling IASTFunctionCallExpression.getParameterExpression(); However this node will NOT be encountered now when walking the AST tree in the ASTVisitors. Most of this logic is in MPIMVAnalysis.java Created attachment 166487 [details]
Image showing the old and new AST structure
For now we will reinstate as much previous behavior as possible by getting the IASTExpressionList node from the IASTFunctionCallExpression.getParameterExpression() when we are processing the IASTFunctionCallExpression node, and do the push/pop/etc of saving state at that time. Note that both visit() and leave() are used with assumptions about which nodes are contained in which other nodes, so this is complex. Note: most of the changes necessary are in MPIMVAnalysis.java Some additional reference that may be helpful CDT AST changes in CDT 7.0 http://dev.eclipse.org/mhonarc/lists/cdt-dev/msg18616.html http://wiki.eclipse.org/CDT/planning/7.0 Fixed in ptp_4_0 branch. changes to MPIBarrierExpr.java Need to commit to HEAD too. should be in 4.0.4 committed to HEAD for PTP 5.0 as well fixed. |