diff options
Diffstat (limited to 'gcc-4.9/gcc/cse.c')
-rw-r--r-- | gcc-4.9/gcc/cse.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/cse.c b/gcc-4.9/gcc/cse.c index 852d13ebf..b8223f7a3 100644 --- a/gcc-4.9/gcc/cse.c +++ b/gcc-4.9/gcc/cse.c @@ -4642,6 +4642,13 @@ cse_insn (rtx insn) && REGNO (dest) >= FIRST_PSEUDO_REGISTER) sets[i].src_volatile = 1; + /* Also do not record result of a non-volatile inline asm with + more than one result or with clobbers, we do not want CSE to + break the inline asm apart. */ + else if (GET_CODE (src) == ASM_OPERANDS + && GET_CODE (x) == PARALLEL) + sets[i].src_volatile = 1; + #if 0 /* It is no longer clear why we used to do this, but it doesn't appear to still be needed. So let's try without it since this |