summaryrefslogtreecommitdiff
path: root/gcc/trans-mem.c
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-08 22:26:37 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-08 22:26:37 +0000
commit1910089e3529a2ef4cec042003758dc1d67173a3 (patch)
treea216d949954f2fa084d0f5e143e1be32b84e03fd /gcc/trans-mem.c
parent5cf40b7e54256e2dd9b4abd82876a4b32bb28e97 (diff)
downloadgcc-1910089e3529a2ef4cec042003758dc1d67173a3.tar.gz
* trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
if GTMA_HAS_NO_INSTRUMENTATION. (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit. (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION. * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define. * gimple-pretty-print.c (dump_gimple_transaction): Handle GTMA_HAS_NO_INSTRUMENTATION. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196562 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/trans-mem.c')
-rw-r--r--gcc/trans-mem.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 71eaa4464e0..b0f18b552bb 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -2602,7 +2602,7 @@ expand_transaction (struct tm_region *region, void *data ATTRIBUTE_UNUSED)
flags |= PR_HASNOABORT;
if ((subcode & GTMA_HAVE_STORE) == 0)
flags |= PR_READONLY;
- if (inst_edge)
+ if (inst_edge && !(subcode & GTMA_HAS_NO_INSTRUMENTATION))
flags |= PR_INSTRUMENTEDCODE;
if (uninst_edge)
flags |= PR_UNINSTRUMENTEDCODE;
@@ -2806,7 +2806,8 @@ generate_tm_state (struct tm_region *region, void *data ATTRIBUTE_UNUSED)
if (subcode & GTMA_DOES_GO_IRREVOCABLE)
subcode &= (GTMA_DECLARATION_MASK | GTMA_DOES_GO_IRREVOCABLE
- | GTMA_MAY_ENTER_IRREVOCABLE);
+ | GTMA_MAY_ENTER_IRREVOCABLE
+ | GTMA_HAS_NO_INSTRUMENTATION);
else
subcode &= GTMA_DECLARATION_MASK;
gimple_transaction_set_subcode (region->transaction_stmt, subcode);
@@ -5069,8 +5070,9 @@ ipa_tm_transform_transaction (struct cgraph_node *node)
&& bitmap_bit_p (d->irrevocable_blocks_normal,
region->entry_block->index))
{
- transaction_subcode_ior (region, GTMA_DOES_GO_IRREVOCABLE);
- transaction_subcode_ior (region, GTMA_MAY_ENTER_IRREVOCABLE);
+ transaction_subcode_ior (region, GTMA_DOES_GO_IRREVOCABLE
+ | GTMA_MAY_ENTER_IRREVOCABLE
+ | GTMA_HAS_NO_INSTRUMENTATION);
continue;
}