https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #22 from GCC Commits ---
The master branch has been updated by Jeff Law :
https://gcc.gnu.org/g:df2e832c90fe0915c0ab89e5c115bd0c6536c833
commit r15-5602-gdf2e832c90fe0915c0ab89e5c115bd0c6536c833
Author: Jeff Law
Date: Fri Nov 22
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #21 from Jeffrey A. Law ---
WRT c#20. Those cases are pretty easy to handle with the additional work
Raphael and I have done over the last year. Let me that that.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #20 from Wojciech Mula ---
This constants is worth checking (appears in division by 10):
```
unsigned long ccd() {
return 0xcccd;
}
```
riscv64-unknown-linux-gnu-g++ (crosstool-NG UNKNOWN) 15.0.0 2024
(experime
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #19 from Vineet Gupta ---
FWIW with today's change, splitter is now hidden from IRA, but we are still
getting the extraneous mv.
2023-10-06 c1bc7513b1d7 RISC-V: const: hide mvconst splitter from IRA
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #18 from Vineet Gupta ---
(In reply to Vineet Gupta from comment #17)
> (In reply to Vineet Gupta from comment #16)
> > > Which is what this produces:
> > > ```
> > > long long f(void)
> > > {
> > > unsigned t = 16843009;
> > > l
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #17 from Vineet Gupta ---
(In reply to Vineet Gupta from comment #16)
> > Which is what this produces:
> > ```
> > long long f(void)
> > {
> > unsigned t = 16843009;
> > long long t1 = t;
> > long long t2 = ((unsigned long long
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #16 from Vineet Gupta ---
> Which is what this produces:
> ```
> long long f(void)
> {
> unsigned t = 16843009;
> long long t1 = t;
> long long t2 = ((unsigned long long )t) << 32;
> asm("":"+r"(t1));
> return t1 | t2;
> }
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
Vineet Gupta changed:
What|Removed |Added
CC||vineetg at gcc dot gnu.org
S
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #14 from Vineet Gupta ---
(In reply to Andrew Pinski from comment #12)
> Here is something to look into:
> #define const1 0x0101010101010101ULL
> #define const0 const1
> unsigned long long f(unsigned long long occ, const unsigned
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #13 from Vineet Gupta ---
Ok it seems I missed _some_ improvement with prev change, although not ideal
still.
With 2e886eef7f2b
li a0,0x0101_
addia0,a0,0x0101
sllia0,a0,16
addia0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #12 from Andrew Pinski ---
Here is something to look into:
#define const1 0x0101010101010101ULL
#define const2 0x0080402010080400ULL
#define const0 const1
unsigned long long g(unsigned long long occ, const unsigned int sq) {
retu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #11 from Vineet Gupta ---
With change suggested by @pinksia, I do see that in split1,
riscv_move_integer() -> riscv_split_integer() is now called.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #10 from Vineet Gupta ---
I tried removing the in_splitter check (in 2 places), but no change in
results.
@@ -1313,7 +1313,7 @@ riscv_force_temporary (rtx dest, rtx value, bool
in_splitter)
- if (can_create_pseudo_p () && !in_spl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #9 from Andrew Pinski ---
The comment in riscv.cc:
/* We can't call gen_reg_rtx from a splitter, because this might realloc
the regno_reg_rtx array, which would invalidate reg rtx pointers in the
combine undo buffer. */
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #8 from Andrew Pinski ---
oh right this is because can_create_pseudo is false
This code is just so broken ...
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
--- Comment #7 from Andrew Pinski ---
riscv_split_integer does something similarlly to what I was suggesting but for
some reason it is not kicking in for this case ...
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109279
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed||2023-03-24
Status|UNCONFIRM
17 matches
Mail list logo