diff options
author | Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com> | 2013-11-06 05:38:09 +0000 |
---|---|---|
committer | Ganesh Gopalasubramanian <gganesh@gcc.gnu.org> | 2013-11-06 05:38:09 +0000 |
commit | 4a1db8e16460fddf419fa96e64d0e41d2d19e3de (patch) | |
tree | 72c1866db7362c2294af57b73f110258ae449b60 /gcc/config/i386/bdver3.md | |
parent | 3118d595a64f3673786c8c06642f92d95bf6b27c (diff) | |
download | gcc-4a1db8e16460fddf419fa96e64d0e41d2d19e3de.tar.gz |
scheduler improvements for BD architectures
From-SVN: r204442
Diffstat (limited to 'gcc/config/i386/bdver3.md')
-rw-r--r-- | gcc/config/i386/bdver3.md | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/gcc/config/i386/bdver3.md b/gcc/config/i386/bdver3.md index 52418b5e5c9..421a3d1b30e 100644 --- a/gcc/config/i386/bdver3.md +++ b/gcc/config/i386/bdver3.md @@ -34,20 +34,22 @@ (define_cpu_unit "bdver3-decode0" "bdver3") (define_cpu_unit "bdver3-decode1" "bdver3") -(define_cpu_unit "bdver3-decodev" "bdver3") +(define_cpu_unit "bdver3-decode2" "bdver3") +(define_cpu_unit "bdver3-decode3" "bdver3") ;; Double decoded instructions take two cycles whereas ;; direct instructions take one cycle. -;; Therefore four direct instructions can be decoded by -;; two decoders in two cycles. ;; Vectorpath instructions are single issue instructions. -;; So, we have separate unit for vector instructions. -(exclusion_set "bdver3-decodev" "bdver3-decode0,bdver3-decode1") +;; So, we engage all units vector instructions. +(define_reservation "bdver3-vector" "bdver3-decode0+bdver3-decode1+bdver3-decode2+bdver3-decode3") + +;; Direct instructions can be issued to any of the four decoders +(define_reservation "bdver3-direct" "(bdver3-decode0|bdver3-decode1|bdver3-decode2|bdver3-decode3)") -(define_reservation "bdver3-vector" "bdver3-decodev") -(define_reservation "bdver3-direct" "(bdver3-decode0|bdver3-decode1)") ;; Double instructions take two cycles to decode. -(define_reservation "bdver3-double" "(bdver3-decode0|bdver3-decode1)*2") +(define_reservation "bdver3-double" "(bdver3-decode0,bdver3-decode0)| + (bdver3-decode1,bdver3-decode1)| (bdver3-decode2,bdver3-decode2)| + (bdver3-decode3,bdver3-decode3)") (define_cpu_unit "bdver3-ieu0" "bdver3_ieu") (define_cpu_unit "bdver3-ieu1" "bdver3_ieu") |