diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1992-10-13 11:31:01 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1992-10-13 11:31:01 -0700 |
commit | cab554610be863878e01ceacee6c8360c8e48d7b (patch) | |
tree | 2f74e0650dcf6fd12e08302d585773f606b12926 | |
parent | aad3ab2fc718aa5bb361507ebac04b2f474531ac (diff) | |
download | gcc-cab554610be863878e01ceacee6c8360c8e48d7b.zip gcc-cab554610be863878e01ceacee6c8360c8e48d7b.tar.gz gcc-cab554610be863878e01ceacee6c8360c8e48d7b.tar.bz2 |
(in_branch_delay): Allow fpload and fpstore.
From-SVN: r2438
-rw-r--r-- | gcc/config/sparc/sparc.md | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 5139adb..6cf9eaa 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -93,9 +93,16 @@ ;; branches. This would allow us to remove the nop always inserted before ;; a floating point branch. +;; ??? It is OK for fill_simple_delay_slots to put load/store instructions +;; in a delay slot, but it is not OK for fill_eager_delay_slots to do so. +;; This is because doing so will add several pipeline stalls to the path +;; that the load/store did not come from. Unfortunately, there is no way +;; to prevent fill_eager_delay_slots from using load/store without completely +;; disabling them. For the SPEC benchmark set, this is a serious lose, +;; because it prevents us from moving back the final store of inner loops. (define_attr "in_branch_delay" "false,true" - (if_then_else (and (eq_attr "type" "!uncond_branch,branch,call,call_no_delay_slot,multi,fpload,fpstore") + (if_then_else (and (eq_attr "type" "!uncond_branch,branch,call,call_no_delay_slot,multi") (eq_attr "length" "1")) (const_string "true") (const_string "false"))) |