Hi all, I've decided to organise the aarch64 macro fusion patches into a series. Some of them have been posted last week and gotten review feedback and have been reworked:
- [1/5] Implement TARGET_SCHED_MACRO_FUSION_PAIR_P: This implements the hook itself and adds logic for fusing MOV+MOVK instructions as used when synthesising immediates. - [2/5] Implement adrp+add fusion: Implements fusion of ADRP+ADD instructions when the appropriate register dependencies are met. - [3/5] Implement fusion of MOVK+MOVK: Implements fusion of MOVK+MOVK instructions as used when synthesising immediates. - [4/5] Implement fusion of ARDP+LDR: Implements fusion of ADRP+LDR instructions when the appropriate register constraints are met. - [5/5] Add macro fusion support for cmp/b.X for ThunderX: This is a rebase of Andrews' patch on top of the previous four and implements fusion of flag-setting instructions together with a conditional branch. These have been bootstrapped and tested on aarch64-none-linux-gnu. Ok for trunk? Thanks, Kyrill