[PATCH] D41633: [InstCombine] Remove unneeded VarArg casts.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 2 11:01:29 PST 2018


efriedma added a comment.

There are many ABIs with special cases for varargs.  The x86-64 Linux ABI specifically defines that vararg calls need to initialize AL, and other calls don't.  The hard-float ABI on ARM Linux usually pass "double" arguments in floating-point regsiters, but varargs functions pass them in integer registers.  Other ABIs might do more exotic things I'm not thinking of.

If you can prove the callee is in fact not a varargs function, you might be able to do something like this, but the type of a function declaration isn't enough to prove that.


https://reviews.llvm.org/D41633





More information about the llvm-commits mailing list