Support call ABI. For now only Linux C and X86_64_SysV calling conventions supported. Variadic function not supported.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/X86/X86CallLowering.cpp | ||
---|---|---|
300 ↗ | (On Diff #103865) | Since you do not modify OrigArg you can define it as const & |
317 ↗ | (On Diff #103865) | Could you please add a test that checks the case where the callee is a register? |
324 ↗ | (On Diff #103865) | typo arguments |
327 ↗ | (On Diff #103865) | Please consider having a separate method for handling call results. |
344 ↗ | (On Diff #103865) | Could you please document the immediate additions? |
test/CodeGen/X86/GlobalISel/callingconv.ll | ||
123 ↗ | (On Diff #103865) | Could you please add tests that exercise arguments and return values that are spitted (like structures)? |
lib/Target/X86/X86CallLowering.cpp | ||
---|---|---|
317 ↗ | (On Diff #103865) | test_indirect_call cover this case |
lib/Target/X86/X86CallLowering.cpp | ||
---|---|---|
77 ↗ | (On Diff #105029) | You don't realy need to pass the DataLayout. MachineFunction &MF = MIRBuilder.getMF(); Same goes for STI. |
84 ↗ | (On Diff #105029) | Consider calling DL.getPointerSizeOnBits(0) once and assign it to a variable |
109 ↗ | (On Diff #105029) | Please don't submit commented code |
122 ↗ | (On Diff #105029) | Since you don't handle variadic functions, an assert should be added before returning true |
- Fix according to comments and rebase.
lib/Target/X86/X86CallLowering.cpp | ||
---|---|---|
122 ↗ | (On Diff #105029) | I need graceful fallback to DAGSEL in case something not supported yet. Eventually it should be supported. |
lib/Target/X86/X86CallLowering.cpp | ||
---|---|---|
141 ↗ | (On Diff #105416) | I am not sure why you made this members as public but i believe that they should be private as no one outside the class scope should change them. It is especially important for non const members. |
test/CodeGen/X86/GlobalISel/callingconv.ll | ||
3 ↗ | (On Diff #105416) | Remove --check-prefix=X64_GISEL which is not needed. |
123 ↗ | (On Diff #103865) | Where are the tests for returned/passed structures? |
test/CodeGen/X86/GlobalISel/callingconv.ll | ||
---|---|---|
123 ↗ | (On Diff #103865) | struct not supported yet. |