summaryrefslogtreecommitdiff
path: root/gcc/config/ia64/ia64.md
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-11 04:38:29 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-11 04:38:29 +0000
commit74e01dd8fa00067efa4d6b82afcf273b5191889f (patch)
tree34d32bf44c63f2514522542dc6962b351ebe6453 /gcc/config/ia64/ia64.md
parent67b61273f0fd4b24c38485817bdec8cf9d076fcc (diff)
downloadgcc-74e01dd8fa00067efa4d6b82afcf273b5191889f.tar.gz
Add performance related explanatory comment.
* config/ia64/ia64.md (insv): Add comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33836 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/ia64/ia64.md')
-rw-r--r--gcc/config/ia64/ia64.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index 7ccf89dd110..4a55b030a91 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -684,6 +684,21 @@
DONE;
}
+ /* We could handle remaining cases by emitting multiple dep
+ instructions.
+
+ If we need more than two dep instructions then we lose. A 6
+ insn sequence mov mask1,mov mask2,shl;;and,and;;or is better than
+ mov;;dep,shr;;dep,shr;;dep. The former can be executed in 3 cycles,
+ the latter is 6 cycles on an Itanium (TM) processor, because there is
+ only one function unit that can execute dep and shr immed.
+
+ If we only need two dep instruction, then we still lose.
+ mov;;dep,shr;;dep is still 4 cycles. Even if we optimize away
+ the unnecessary mov, this is still undesirable because it will be
+ hard to optimize, and it creates unnecessary pressure on the I0
+ function unit. */
+
FAIL;
#if 0