diff options
author | Maxim Kuvyrkov <maxim@codesourcery.com> | 2008-08-06 06:23:47 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <mkuvyrkov@gcc.gnu.org> | 2008-08-06 06:23:47 +0000 |
commit | c275297bdd09468bb84ab839e89f585ca9541fee (patch) | |
tree | 8f3b78a1d1981ab8d1ecf8b75384494399203c58 /gcc/haifa-sched.c | |
parent | a0d33ff828f123b1682eeb346885b2f40e2db224 (diff) | |
download | gcc-c275297bdd09468bb84ab839e89f585ca9541fee.zip gcc-c275297bdd09468bb84ab839e89f585ca9541fee.tar.gz gcc-c275297bdd09468bb84ab839e89f585ca9541fee.tar.bz2 |
re PR target/35659 (Miscompiled code with -O2 (but not with -O2 -funroll-loops) on ia64)
PR target/35659
* haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
* sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
Don't allow predicated instructions for data speculation.
* sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
declaration.
From-SVN: r138759
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index db1d66f..76282bd 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -4019,32 +4019,6 @@ change_pattern (rtx insn, rtx new_pat) dfa_clear_single_insn_cache (insn); } -/* Return true if INSN can potentially be speculated with type DS. */ -bool -sched_insn_is_legitimate_for_speculation_p (const_rtx insn, ds_t ds) -{ - if (HAS_INTERNAL_DEP (insn)) - return false; - - if (!NONJUMP_INSN_P (insn)) - return false; - - if (SCHED_GROUP_P (insn)) - return false; - - if (IS_SPECULATION_CHECK_P (insn)) - return false; - - if (side_effects_p (PATTERN (insn))) - return false; - - if ((ds & BE_IN_SPEC) - && may_trap_p (PATTERN (insn))) - return false; - - return true; -} - /* -1 - can't speculate, 0 - for speculation with REQUEST mode it is OK to use current instruction pattern, |