public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "Rudolf dot Leitgeb at gmx dot at" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/29560] [avr] Poor optimization for byte shifts Date: Thu, 18 Feb 2010 13:28:00 -0000 [thread overview] Message-ID: <20100218132819.1515.qmail@sourceware.org> (raw) In-Reply-To: <bug-29560-13448@http.gcc.gnu.org/bugzilla/> ------- Comment #5 from Rudolf dot Leitgeb at gmx dot at 2010-02-18 13:28 ------- Right away: I am NOT an expert in compiler or optimizer design, so please bear with me. I understand, that (((unsigned char)1) << ((unsigned char)something)) may need more than 8 bits for representation and that gcc's default int size on the ATmega platform is 16 bits. But the result is assigned to an 8 bit value. I take it that there is no way to back propagate this potential optimization from the assignment to the shifting step. If you look in my assembly code, r25 is computed with great effort yet never transferred anywhere. The trick with &7 is nice but introduces another unnecessary AND operation. And it is only correct if the input numebr is guaranteed to be between 0 and 7. Am I correct that this whole optimization issue comes from the fact that ATmega is an 8 bit architecture yet gcc's int on that platform is 16 bit? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29560
next prev parent reply other threads:[~2010-02-18 13:28 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2006-10-23 11:39 [Bug target/29560] New: Poor optimization for character shifts on Atmel AVR gcc-bugzilla at gcc dot gnu dot org 2006-10-24 7:32 ` [Bug target/29560] " r dot leitgeb at x-pin dot com 2009-08-24 17:18 ` [Bug target/29560] [avr] Poor optimization for byte shifts eric dot weddington at atmel dot com 2009-12-31 3:16 ` hutchinsonandy at gcc dot gnu dot org 2010-02-18 13:28 ` Rudolf dot Leitgeb at gmx dot at [this message] [not found] <bug-29560-4@http.gcc.gnu.org/bugzilla/> 2011-06-21 18:25 ` gjl at gcc dot gnu.org 2011-07-23 14:51 ` gjl at gcc dot gnu.org 2011-07-23 14:55 ` gjl at gcc dot gnu.org 2011-07-25 12:49 ` gjl at gcc dot gnu.org 2011-08-10 8:59 ` gjl at gcc dot gnu.org 2011-08-10 9:20 ` gjl at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20100218132819.1515.qmail@sourceware.org \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).