Hi Andrew, > OK, let me word it a different way. What is create_stmt_ann (stmt) > going to do with the annotation it creates? You are moving the > stmt_ann_t pointer from the stmt node to the tree_statement_list_node... > so there will be nothing in the stmt node to attach the annotation to > like there is now.
Ah, OK. I am going to keep union tree_ann_d *ann; in tree_common. So create_stmt_ann will store a pointer to stmt_ann_d in ann in tree_common just like before. In other words, for normal cases, we would have tree_statement_list_node+stmt_ann_d | ^ | via stmt | via ann in tree_common v | MODIFY_EXPR -------------+ For DOM's case, we would have stmt_ann_d ^ | via ann in tree_common | MODIFY_EXPR -------------+ So stmt_ann_d won't be hanging in space. > I though the whole point of this exercise was to remove the > stmt_ann_t pointer from the stmt node, and put it directly in the > tree_statement_list_node. Im saying that will not work until you > either change DOM to not use these fake stmt's, or figure out some > way of associating a stmt_ann to these fake stmts. No, I would like to remove stmt_ann_t pointer from the stmt node, but not yet. All I want to do in this project is to put tree_statement_list_node and stmt_ann_d next to each other in memory while doing necessary adjustments in the compiler. Nothing more than that. Yes, it is nice to get rid of stmt_ann_t pointer from the stmt node, and I want to eventually get that, but not in this project. I think there are so many places that use "stmt" instead of "bsi". They may either pass it to subroutines or put it in some internal data structures, so I would like to do that separately. So if you like, the roadmap might be something like 1. Put tree_statement_list_node and stmt_ann_d next to each other in memory while doing necessary adjustments. 2. Provide stmt_ann_from_bsi(), a function that gives you stmt_ann given bsi. 3. Let everybody use stmt_ann_from_bsi(), replace stmt_ann(), and remove the stmt_ann_t pointer from the stmt node (if these are possible at all). 4. Hand off to Zdenek for his flat statement project. I hope this message clarifies things. Kazu Hirata