- User Since
- Jul 31 2018, 10:55 AM (55 w, 3 d)
Thu, Aug 22
Rebased and addressed a couple of comments.
Tue, Aug 20
Rebased, and modified the logic to find the insertion point for the epilogue code.
Mon, Aug 19
Fri, Aug 16
Committed (ill formed commit message so phabricator did not pick it up)
Rebased prior to commit.
Thu, Aug 15
Rebased prior to commit.
Wed, Aug 14
Mon, Aug 5
Thu, Aug 1
Abandoned since this is no longer relevant to RISC-V; other individual fixes for issues relating to this problem have been merged since. I will keep D61907 around for discussion even though it's a similar 'big hammer' approach to the problem.
Wed, Jul 31
Mon, Jul 29
Jul 25 2019
Rebased and updated to use '0(' prefix for memory constraints.
Jul 22 2019
Add support for a split save/restore approach when callee saved registers from the floating point ABIs are used.
Jul 12 2019
Jul 11 2019
Jul 5 2019
Jul 4 2019
I've reworked this patch to safely work around the implementation of save/restore via libcalls. These place constraints on the save/restore points that can be chosen by the shrink wrapping algorithm.
Rebase, and only use the getUseSaveRestoreLibCalls getter method rather than the useSaveRestoreLibCalls method which does not save its result.
Jun 26 2019
Jun 19 2019
Quick end-of-file newline fix
Added additional tests
Rebased to incorporate the recent CFI additions.
Just a quick comment, I'm assuming this depends on D58335 based on the test file you've modified?
Should the error change at all? We'll still get 'error: operand must be a bare symbol name' for call foo, bar. I guess this patch doesn't put us in a greate situation now that parseCallSymbol can return NoMatch even though technically we parsed a call symbol...
Abandoned in favour of D61907
Updated to address comments
Jun 18 2019
Jun 17 2019
Added nounwind to test functions.
Jun 13 2019
Rebased and added testing using -relocation-model=pic in 'calls.ll'. Also added a dso_local callee to 'calls.ll' since this affects whether PLT is used for PIC.
Rebased patch after addition of matchRegisterNameHelper
Add Constraint_A to account for future modifications to Constraint_m handling. Constraint_A should only ever utilize a single base address without an offset.
Jun 11 2019
Jun 6 2019
- Rebased and fixed test run line
- Updated llc test check lines
- Add invalid constraint test
- Address use of auto
Jun 5 2019
Revert previous change as the information needed to check the size cost was not available.
Jun 4 2019
Added a basic check to avoid using save/restore libcalls if we know it will make the code size worse.
May 31 2019
- Replaced split fixed/nonfixed vectors by simply interpreting the CSI vector differently depending if save/restore calls will be used or not.
May 30 2019
I might need to go through the variable/function names to replace 'CSR' with CalleeSavedRegister or something that doesn't cause confusion with RISC-V 'CSR' meaning 'Control & Status Register'...