r153680 - in /branches/transactional-memory/gcc...
rth@gcc.gnu.org
rth@gcc.gnu.org
Wed Oct 28 17:00:00 GMT 2009
Author: rth
Date: Wed Oct 28 17:00:53 2009
New Revision: 153680
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=153680
Log:
* c-common.c (c_common_attribute_table): Add
transaction_may_cancel_outer.
(tm_attr_to_mask, tm_mask_to_attr): Remove TM_ATTR_UNKNOWN; add
TM_ATTR_MAY_CANCEL_OUTER.
* c-common.h (TM_ATTR_UNKNOWN): Remove.
(TM_ATTR_MAY_CANCEL_OUTER): New.
* c-parser.c (c_parser_transaction): Don't pass the outer
TM_STMT_ATTR_OUTER attribute into c_finish_transaction.
* cp/parser.c (cp_parser_transaction): Similarly.
* gimple-pretty-print.c (dump_gimple_tm_atomic): Subtract
bits from subcode as we print them; print remaining mask at the end.
* gimple.c (walk_gimple_stmt): Separate out from OMP cases.
* trans-mem.c (get_attrs_for): Extract the type from any
* expression;
handle METHOD_TYPE properly.
(is_tm_pure, is_tm_irrevocable): Tidy.
(is_tm_safe): Include transaction_may_cancel_outer.
(is_tm_callable): Likewise.
(DIAG_TM_OUTER, DIAG_TM_SAFE, DIAG_TM_RELAXED): New.
(struct diagnose_tm): New.
(diagnose_tm_1): Rename from diagnose_tm_safe_1. Handle
transaction_may_cancel_outer, relaxed and outer transactions.
(diagnose_tm_blocks): Walk all functions. Set tm_may_enter_irr.
(pass_diagnose_tm_blocks): Use TV_TRANS_MEM.
(lower_tm_atomic): Preserve GTMA_DECLARATION_MASK.
(tm_atomic_subcode_ior): Tidy.
(expand_call_tm): Simplify call to is_tm_safe.
(execute_tm_mark): Preserve GTMA_DECLARATION_MASK.
(ipa_tm_scan_calls_tm_atomic): Don't set tm_may_enter_irr here.
(ipa_tm_scan_calls_clone): Likewise.
(ipa_tm_transform_clone): Likewise.
(ipa_tm_mayenterirr_function): New.
(ipa_tm_diagnose_tm_safe, ipa_tm_diagnose_tm_atomic): New.
(ipa_tm_transform_calls): Mark tm_may_enter_irr here.
(ipa_tm_execute): Queue even local tm_callable functions early.
Use ipa_tm_mayenterirr_function and propagate tm_may_enter_irr
around the cgraph. Validate tm_safe and atomic regions.
* testsuite/c-c++-common/tm/safe-1.c: Add
* transaction_may_cancel_outer
tests; add indirect function call tests.
* testsuite/gcc.dg/tm/memopt-3.c: Mark test transaction_safe.
* testsuite/c-c++-common/tm/outer-1.c: New.
* testsuite/c-c++-common/tm/safe-2.c: New.
* testsuite/c-c++-common/tm/safe-3.c: New.
* testsuite/gcc.dg/tm/props-1.c: Rename from props.c.
Added:
branches/transactional-memory/gcc/testsuite/c-c++-common/tm/outer-1.c
branches/transactional-memory/gcc/testsuite/c-c++-common/tm/safe-2.c
branches/transactional-memory/gcc/testsuite/c-c++-common/tm/safe-3.c
branches/transactional-memory/gcc/testsuite/gcc.dg/tm/props-1.c
- copied, changed from r153679, branches/transactional-memory/gcc/testsuite/gcc.dg/tm/props.c
Removed:
branches/transactional-memory/gcc/testsuite/gcc.dg/tm/props.c
Modified:
branches/transactional-memory/gcc/ChangeLog.tm
branches/transactional-memory/gcc/c-common.c
branches/transactional-memory/gcc/c-common.h
branches/transactional-memory/gcc/c-parser.c
branches/transactional-memory/gcc/cp/parser.c
branches/transactional-memory/gcc/gimple-pretty-print.c
branches/transactional-memory/gcc/gimple.c
branches/transactional-memory/gcc/testsuite/c-c++-common/tm/safe-1.c
branches/transactional-memory/gcc/testsuite/gcc.dg/tm/memopt-3.c
branches/transactional-memory/gcc/trans-mem.c
More information about the Gcc-cvs
mailing list