diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-11 04:38:29 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-11 04:38:29 +0000 |
commit | 74e01dd8fa00067efa4d6b82afcf273b5191889f (patch) | |
tree | 34d32bf44c63f2514522542dc6962b351ebe6453 /gcc/config/ia64/ia64.md | |
parent | 67b61273f0fd4b24c38485817bdec8cf9d076fcc (diff) | |
download | gcc-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.md | 15 |
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 |