MaskRay added a comment.

In D152279#4420312 <https://reviews.llvm.org/D152279#4420312>, @asb wrote:

> In D152279#4415974 <https://reviews.llvm.org/D152279#4415974>, @MaskRay wrote:
>
>> However, RISC-V `-msmall-data-limit=` is probably a case warranting a 
>> difference.
>> The global pointer relaxation has a very limited value (benchmarked by 
>> multiple parties, including a party which implemented this feature in the 
>> GNU toolchain: even they can only say the optimization only applies to very 
>> specific projects).
>> The default value is confusing: as explained by the summary.
>>
>> I suspect that `-msmall-data-limit=8` is too conservative, maybe 16 would be 
>> better, I don't know. I think global pointer relaxation users should toggle 
>> this by themselves, not relying on `0` or `8` default decided by a bunch of 
>> strange conditions.
>
> I don't disagree that the small data limit being 8 rather than something else 
> doesn't seem to be particularly well motivated, but I understand that the 
> case where the option does make a difference is on embedded targets (I think 
> the data that was shared before was for SPEC, but could be wrong?). I think 
> we can generally expect more willingness for people targeting embedded 
> systems to explore different compiler flags,

Agree.

> but just matching gcc does feel like a better default. What do you think 
> about keeping the default for bare metal targets?

I am unsure we want to add the complexity and refrain from changing the default 
for bare metal targets due to haunted graveyards 
https://www.usenix.org/sites/default/files/conference/protected-files/srecon17americas_slides_reese.pdf

We are already different from GCC in a number of ways:

- for `-fpie`, we may emit `.sdata`/`.sbss` but GCC won't
- we accept `-G` while GCC doesn't.
- we don't emit `.srodata`.

I made a comment on https://lists.riscv.org/g/sig-toolchains/message/619 and 
informed GCC folks in case they can change the default as well.
If they don't, I think we made a good choice for not following this particular 
behavior.

(I feel sad that I did not see D57497 <https://reviews.llvm.org/D57497> and it 
landed with a blocked review. If we started from scratch, we would probably run 
into a cleaner state.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D152279/new/

https://reviews.llvm.org/D152279

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to