[PATCH] D25022: Register Calling Convention - CodeGen Basic Additions

Oren Ben Simhon via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 5 04:24:07 PDT 2016


oren_ben_simhon marked 3 inline comments as done.
oren_ben_simhon added inline comments.


> mkuper wrote in X86CallingConv.td:37
> This is really odd. Maybe fix AssignToReg?

AssignToReg, takes the list of registers and creates a static constant list of registers. For example:

  static const MCPhysReg RegList1[] = {
    X86::ECX, X86::EDX, X86::R8D, X86::R9D
  };

Empty static constant list is forbidden in C.

Changing the expansion of AssignToReg (to check if the list is empty) will require LLVM infrastructure change.
I would prefer to leave it out of the scope of this review.

> mkuper wrote in X86CallingConv.td:95
> If I'm reading this correctly, with this definition, you'll pass f80 in an incompatible way - which sounds fairly bad. The right thing to do would be to either implement it in one go, or leave a TODO, but refuse to compile cases which use f80.
> Otherwise, once you want to fix this, you'll have an unsolvable compatibility problem, since you can't be compatible with both old versions of clang, and with ICC.

Anyway, i added an assertion for the unhandled types.

Repository:
  rL LLVM

https://reviews.llvm.org/D25022





More information about the llvm-commits mailing list