https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118328
--- Comment #17 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >Can we have the same implementation/interface of LLVM? Is there real documentation on this attribute or is it just ad hoc on what it does on the LLVM side about the ABI implications? It seems to me there should be 2 seperate attributes, one to change the argument passing and one for preserve_none part. >Anyway I re-ran the benchmarks and the binary without preserve_none is >actually 6% slower than the build without tail-calling interpreter. I am not sure if I understand this correctly. Can you make a simple table: w/o tail-call - 1 with tail-call but not preserve_none - XYZ with tail-call and preserve_none - PQR >From my read is that with tail-call but not preserve_none is 0.94 but with both it is some increase or close to 1. Maybe this is an argument that for aarch64, using the tail-calling interpreter is not useful rather than an argument to add preserve_none.