sunfishcode wrote:

> I do think its reasonable for all those decoders to support overlong LEBs. 
> But I think I don't see the advantage that adding this new pseudo feature 
> offers. Wouldn't it be simpler to simply not add it?

I see it more as exposing existing complexity, rather than creating new 
complexity. It's already surprising that enabling the reference-types feature 
changes how LLVM isel and MC handle indirect calls, and changes the encoding 
for call indirects,  when no actual reference types are involved. This new 
call-indirect-overlongs flag just exposes that behavior change as a distinct 
feature.

Adding call-indirect-overlongs to Lime1 simplifies plausible scenarios. Perhaps 
some users will run "generic" code in their Lime1-supporting engines, in cases 
where that works. Perhaps some users will use Lime1 and compile some things 
with reference-types enabled (even when it doesn't need to be, because 
Makefiles are complex). Perhaps a future Lime2 will include exception-handling, 
and then include more of reference-types, in order to support `exnref`. If 
Lime1 includes call-indirect-overlongs now, then none of these scenarios risks 
having indirect call encoding changes popping up and causing confusing binary 
decoder errors in the middle of things.

https://github.com/llvm/llvm-project/pull/117087
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to