r141200 - in /branches/transactional-memory/gcc...

rth@gcc.gnu.org rth@gcc.gnu.org
Fri Oct 17 20:21:00 GMT 2008


Author: rth
Date: Fri Oct 17 20:21:22 2008
New Revision: 141200

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141200
Log:
        * except.c (struct eh_region): Add ERT_TRANSACTION.
        (gen_eh_region): Allow if flag_tm.
        (gen_eh_region_transaction, get_eh_region_from_number): New.
        (remove_eh_handler): Export.
        (current_function_has_exception_handlers): Handle ERT_TRANSACTION.
        (build_post_landing_pads, reachable_next_level): Likewise.
        (collect_one_action_chain): Likewise.
        (foreach_reachable_transaction): New.
        * except.h: Add new exported decls.
        * gimple-low.c (struct lower_data): Remove in_transaction.
        (lower_tm_atomic, record_vars_into_tm): Remove.
        * gimple-pretty-print.c (dump_gimple_fmt): Add %x.
        (dump_gimple_assign): Handle TM_LOAD/STORE.
        (dump_gimple_tm_atomic): Dump the subcode.
        * gimple.h (GTMA_HAVE_ABORT, GTMA_HAVE_LOAD, GTMA_HAVE_STORE,
        GTMA_HAVE_CALL_TM, GTMA_HAVE_CALL_IRREVOKABLE,
        GTMA_MUST_CALL_IRREVOKABLE, GTMA_HAVE_CALL_INDIRECT): New.
        (gimple_tm_atomic_subcode, gimple_tm_atomic_set_subcode): New.
        * gtm-low.c (struct ltm_state, add_stmt_to_transaction,
        lower_assign_tm, lower_call_tm, remove_tm_commits,
        lower_tm_atomic, lower_sequence_tm, lower_sequence_no_tm): New.
        (execute_lower_tm): Use them.
        (TM_START_RESTORE_LIVE_IN, TM_START_ABORT): New.
        (checkpoint_live_in_variables): Rewrite.
        (checkpoint_tm_txn, checkpoint_tm): Remove.
        (expand_tm_atomic): New.
        (execute_checkpoint_tm): Use it.
        (make_tm_edge_1, make_tm_edge, is_transactional_stmt): New.
        (pass_lower_tm): Rename from pass_expand_tm.
        * passes.c (init_optimization_passes): Run pass_lower_tm
        immediately after pass_lower_eh.  Run pass_checkpoint_tm
        after early optimizations.
        * tree-cfg.c (make_edges): Call make_tm_edge.  Conditionally
        create the __tm_atomic abort edge. 
        (cleanup_dead_labels): Handle GIMPLE_TM_ATOMIC.  Avoid unnecessary
        writes into the statements to update labels.
        (is_ctrl_altering_stmt): Include is_transactional_stmt.
        (verify_stmt): Handle transactional edges.
        * tree-eh.c (collect_finally_tree): Walk GIMPLE_TM_ATOMIC.
        (lower_eh_constructs_2): Create EH regions for them.
        (verify_eh_edges): Handle transactional edges.
        * tree-flow.h (make_tm_edge, is_transactional_stmt): Declare.

        * c-parser.c (c_parser_tm_abort): Call add_stmt.
        * cgraphbuild.c (prepare_tm_clone): Disable for now.

Modified:
    branches/transactional-memory/gcc/ChangeLog.tm
    branches/transactional-memory/gcc/c-parser.c
    branches/transactional-memory/gcc/cgraphbuild.c
    branches/transactional-memory/gcc/except.c
    branches/transactional-memory/gcc/except.h
    branches/transactional-memory/gcc/gimple-low.c
    branches/transactional-memory/gcc/gimple-pretty-print.c
    branches/transactional-memory/gcc/gimple.h
    branches/transactional-memory/gcc/gtm-low.c
    branches/transactional-memory/gcc/passes.c
    branches/transactional-memory/gcc/tree-cfg.c
    branches/transactional-memory/gcc/tree-eh.c
    branches/transactional-memory/gcc/tree-flow.h
    branches/transactional-memory/gcc/tree-pass.h



More information about the Gcc-cvs mailing list