X86ISelLowering takes too long to compile. Split call lowering out into
its own file so that developers working on call lowering can be more
productive.
Now one can test calling convention changes with <5s rebuilds. The rest
of X86ISelLowering still takes a long time to compile. Previous
investigations shows that lots of static functions are aggressively
inlined into the two major large switch functions, LowerOperation and
PerformDAGCombine. It may be possible to make further compile time
improvements by blocking inlining into those large dispatch functions.
clang-format complains, but I didn't want to reformat because it will
make it harder for git rename detection and blame tools.
Would it be better to use X86ISelLoweringCall? I think it's more clean to start with X86ISelLowering if we have more such split in the future, and it's easy to understand they are extracted from X86ISelLowering.