This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] 19/n: trans-mem: middle end/misc patches (LAST PATCH)



Actually, the table organization is irrelevant, because upon
registering of the table in the runtime, we qsort the entire thing.

False. You get the equivalent of bootstrap comparison mismatches. If we actually used tm during the bootstrap.

The simplest thing to do is to change the hash this table uses.
E.g. use the DECL_UID right from the start, rather than the pointer.

Argh, will fix in a followup patch.


-          if (!computed_goto_p (stmt))
+         if (!computed_goto_p (stmt))
             {
-             tree new_dest = main_block_label (gimple_goto_dest (stmt));
-             gimple_goto_set_dest (stmt, new_dest);
+             label = gimple_goto_dest (stmt);
+             new_label = main_block_label (label);
+             if (new_label != label)
+               gimple_goto_set_dest (stmt, new_label);

What's the reason for this changes? Optimization?

Yes. Rth can elaborate if you deem necessary.

Really? I have no idea what this change achieves. I actually wonder if this is a merge error.

I won't complain :). I have reverted the original patch and am including it in the final (attched) version I will commit.


+    case GIMPLE_TRANSACTION:
+      /* The ABORT edge has a stored label associated with it, otherwise
+        the edges are simply redirectable.  */
+      /* ??? We don't really need this label after the cfg is created.  */
+      if (e->flags == 0)
+       gimple_transaction_set_label (stmt, gimple_block_label (dest));

So why set it (and thus keep it live)?

This seems like leftovers from a previous incantation. However, I'm not 100% sure, so I have disabled the code, but left it in a comment. A full bootstrap/regtest revealed no regressions.


rth, do you have any objections to remove this?

I think that the comment is wrong. We need that edge, and the label updated until pass_tm_edges, at which point the GIMPLE_TRANSACTION itself goes away. Thus that label is live throughout the live of the GIMPLE_TRANSACTION node.


Delete that ??? comment instead.

Done.


Patch is otherwise ok.

Attched is the final revision of the patch. I will commit once tests finish.


thank you.

Attachment: curr
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]