The future of Int128 support in D language

deadalnix deadalnix at gmail.com
Mon Jan 9 17:26:58 UTC 2023


On Sunday, 8 January 2023 at 03:11:15 UTC, Siarhei Siamashka 
wrote:
> What's the best way to get some inline LLVM IR optimizations 
> for Int128 included in the next release of LDC? So that it 
> works fast out of the box. The struct alignment is causing some 
> troubles though.

I'm going to be the party pooper but this is completely and 100% 
useless work. It's not a dunk on you and your work, more on all 
the decision that preceeds it that lead to you even attempting to 
do this.

D has cent/ucent, and what's required is actually support that. 
At some point, someone decided nonono, what we need instead is a 
retarded library implementation that is obviously going to be 
terrible, and that will then lead people to be like, hey we can 
improve this with intrinsics, specific for each compiler and 
plateform, and now we have this thread, where well meaning people 
are putting in work to solve problem we shouldn't be having in 
the first place.

All modern backends understand the concept of an int128, so it's 
literally half an hour of work to support this in LDC/GDC. The 
fact Walter chose to have its own backend to maintain is all well 
and good, but it is not my problem as a user, nor it is the 
problem of most people here. Just forward cent/ucent to 
core.int128 in there and generate horrible codegen for all that 
matter if it cannot support int128.

And just in case you wonder who I am to assert this forcefully: 
I'm the guy who made it so that LLVM generate half decent codegen 
for int128 to begin with. I'm very familiar with the problem, in 
fact, as frightening as it may seems, I may even be one of the 
world finest expert on the matter (a very scary prospect indeed). 
Don't believe me? https://reviews.llvm.org/D29872


More information about the Digitalmars-d mailing list