public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "wilson at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug other/97417] RISC-V Unnecessary andi instruction when loading volatile bool Date: Thu, 05 Nov 2020 22:57:37 +0000 [thread overview] Message-ID: <bug-97417-4-yOyOCNCQlG@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-97417-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97417 --- Comment #13 from Jim Wilson <wilson at gcc dot gnu.org> --- The attachments show the entire riscv.c file being deleted and then readded with your change. This is due to a line ending problem. The original file has the unix style linefeed and the new file has the windows style carriage return and linefeed. Git has a setting called core.autocrlf that can help with this. This will require using git diff instead of just diff though to generate patche, but should give better diffs. Or alternatively, maybe to can force the original file to have msdos line endings before you make the diff, e.g. maybe just loading the original file into your editor and saving it without making changes will fix the line endings. You have in the second patch (mode == QImode || mode == SImode || mode == HImode) which is wrong but harmless for rv32 since we can't extend SImode, and is also wrong for the eventual rv128 support. You can fix this by using something like (GET_MODE_CLASS (mode) == MODE_INT && GET_MODE_SIZE (mode) < UNITS_PER_WORD There is one place in riscv_legitimize_move that already uses this. The code inside the if statement is a lot more verbose then necessary. You can use some helper functions to simplify it. First you can use word_mode which is DImode for rv64 and SImode for rv32 (and will be OImode for rv128). Then you can call a helper to do the mode conversion. So for instance something like temp_reg = force_reg (word_mode, convert_to_mode (word_mode, src, 1)); should work. That should emit an insn to do the zero extend and put it in a reg. Now you no longer need to check src mode or TARGET_64BIT as the code is the same in all cases. So it should just be about 3 or 4 lines of code for the body of the if statement. You have a check for REG_P (dest). This is stricter than you need, since it only works for REG and doesn't accept SUBREG. We should handle both. Also, it isn't hard to also handle non-reg or non-subreg dests. You just need to force the source to a reg, and you already did that when you generated the zero_extend operation. So this code looks like it should work for any dest and you should be able to drop the REG_P (dest) check.
next prev parent reply other threads:[~2020-11-05 22:57 UTC|newest] Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-10-14 11:56 [Bug other/97417] New: " kjetilos at gmail dot com 2020-10-15 20:34 ` [Bug other/97417] " wilson at gcc dot gnu.org 2020-10-21 3:36 ` jiawei at iscas dot ac.cn 2020-10-21 5:58 ` wilson at gcc dot gnu.org 2020-10-27 11:18 ` jiawei at iscas dot ac.cn 2020-10-27 15:25 ` wilson at gcc dot gnu.org 2020-10-29 5:27 ` admin at levyhsu dot com 2020-10-29 22:49 ` wilson at gcc dot gnu.org 2020-10-30 8:35 ` admin at levyhsu dot com 2020-10-30 12:46 ` admin at levyhsu dot com 2020-11-04 6:10 ` admin at levyhsu dot com 2020-11-04 6:35 ` kito at gcc dot gnu.org 2020-11-04 7:03 ` admin at levyhsu dot com 2020-11-05 22:57 ` wilson at gcc dot gnu.org [this message] 2020-11-06 1:20 ` wilson at gcc dot gnu.org 2020-11-06 2:40 ` wilson at gcc dot gnu.org 2020-11-06 2:44 ` kito at gcc dot gnu.org 2020-11-06 3:35 ` wilson at gcc dot gnu.org 2020-11-06 9:46 ` admin at levyhsu dot com 2020-11-06 11:38 ` admin at levyhsu dot com 2020-11-06 20:44 ` wilson at gcc dot gnu.org 2020-11-06 21:08 ` wilson at gcc dot gnu.org 2020-11-09 8:35 ` admin at levyhsu dot com 2020-11-09 9:22 ` admin at levyhsu dot com 2020-11-10 5:20 ` admin at levyhsu dot com 2020-11-10 5:29 ` kito at gcc dot gnu.org 2020-11-10 5:34 ` admin at levyhsu dot com 2020-11-10 5:36 ` admin at levyhsu dot com 2020-11-10 6:01 ` admin at levyhsu dot com 2020-11-10 10:47 ` admin at levyhsu dot com 2020-11-11 1:21 ` wilson at gcc dot gnu.org 2020-11-11 5:43 ` admin at levyhsu dot com 2020-11-11 6:43 ` admin at levyhsu dot com 2020-11-11 19:35 ` wilson at gcc dot gnu.org 2020-11-12 1:26 ` admin at levyhsu dot com 2020-11-13 0:00 ` wilson at gcc dot gnu.org 2020-11-16 1:17 ` admin at levyhsu dot com 2020-11-16 3:24 ` kito at gcc dot gnu.org 2020-11-17 10:19 ` admin at levyhsu dot com 2020-11-18 6:09 ` admin at levyhsu dot com 2020-11-18 18:31 ` [Bug target/97417] " wilson at gcc dot gnu.org 2020-11-20 2:41 ` admin at levyhsu dot com 2020-11-20 3:32 ` wilson at gcc dot gnu.org 2020-11-23 6:17 ` admin at levyhsu dot com 2020-11-23 6:38 ` admin at levyhsu dot com 2020-11-23 7:43 ` admin at levyhsu dot com 2020-12-01 3:03 ` admin at levyhsu dot com 2020-12-08 9:22 ` admin at levyhsu dot com 2020-12-14 10:43 ` admin at levyhsu dot com 2020-12-15 9:55 ` admin at levyhsu dot com 2020-12-16 2:40 ` wilson at gcc dot gnu.org 2020-12-16 2:42 ` wilson at gcc dot gnu.org 2020-12-17 18:13 ` wilson at gcc dot gnu.org 2020-12-17 18:26 ` jiawei at iscas dot ac.cn 2020-12-21 15:08 ` jiawei at iscas dot ac.cn 2020-12-21 15:38 ` kito at gcc dot gnu.org 2020-12-21 16:09 ` jiawei at iscas dot ac.cn 2020-12-22 6:35 ` admin at levyhsu dot com 2020-12-25 3:31 ` kito at gcc dot gnu.org 2020-12-25 9:09 ` jiawei at iscas dot ac.cn 2021-02-13 20:24 ` cvs-commit at gcc dot gnu.org 2021-02-13 20:37 ` cvs-commit at gcc dot gnu.org 2021-02-13 20:48 ` wilson 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=bug-97417-4-yOyOCNCQlG@http.gcc.gnu.org/bugzilla/ \ --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).