Re: Is there a way to tell GCC not to reorder a specific instruction?

2020-09-30 Thread Richard Biener via Gcc
On Wed, Sep 30, 2020 at 10:01 PM Jim Wilson wrote: > > On Tue, Sep 29, 2020 at 11:40 PM Richard Biener > wrote: > > But this also doesn't work on GIMPLE. On GIMPLE riscv_vlen would > > be a barrier for code motion if you make it __attribute__((returns_twice)) > > since then abnormal edges distor

Re: 10-12% performance decrease in benchmark going from GCC8 to GCC9

2020-09-30 Thread Soul Studios
Created a bug report a while back, also have recently identified the smallest code change necessary to 'turn off' the bug and have updated with that: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96750 If anyone has any input I'd love to see this fixed. Thanks- M On 11/08/2020 12:58 am, Bill Sc

Re: Expose 'array_length()' macro in or

2020-09-30 Thread Alejandro Colomar via Gcc
On 2020-09-30 17:58, Joseph Myers wrote: For some reason http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2529.pdf doesn't seem to have reached the agenda of a WG14 meeting yet, but adding a language feature like that to the standard would be another approach. Hi Joseph, Yes, that would be

Re: Is there a way to tell GCC not to reorder a specific instruction?

2020-09-30 Thread Jim Wilson
On Tue, Sep 29, 2020 at 11:40 PM Richard Biener wrote: > But this also doesn't work on GIMPLE. On GIMPLE riscv_vlen would > be a barrier for code motion if you make it __attribute__((returns_twice)) > since then abnormal edges distort the CFG in a way preventing such motion. At the gimple level,

Re: Is there a way to tell GCC not to reorder a specific instruction?

2020-09-30 Thread Jim Wilson
On Tue, Sep 29, 2020 at 7:22 PM 夏 晋 wrote: > vint16m1_t foo3(vint16m1_t a, vint16m1_t b){ > vint16m1_t add = a+b; > vint16m1_t mul = a*b; > vsetvl_e8m1(32); > return add + mul; > } Taking another look at your example, you have type confusion. Using vsetvl to specify an element width of 8