- User Since
- Jul 31 2018, 10:55 AM (50 w, 3 d)
Fri, Jul 12
Thu, Jul 11
Fri, Jul 5
Thu, Jul 4
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.
Wed, Jun 26
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'...
May 23 2019
May 21 2019
Add pseudo instructions to getInstSizeInBytes.
May 20 2019
Looks like this has already been addressed in D61412!
May 14 2019
May 13 2019
Rebased and modified expandLoadAddress.
May 9 2019
Apr 29 2019
Should the following case be considered for RISC-V? It's impossible to solve with this patch:
Apr 24 2019
Rebased and added documentation comments
Apr 23 2019
Thanks for this. I realize D58843 is a very heavy-handed approach so I'd be happy if we could avoid it cleanly with target-specific changes, however I'm not certain we would be able to cover all the combinations we would need to with patches like this?
Rebased prior to commit.