On Mon, Mar 06, 2017 at 05:10:10AM +0000, Hurugalawadi, Naveen wrote: > Hi, > > Please find attached the patch that implements alu_branch fusion > for AArch64. > The patch doesn't change spec but improve other benchmarks. > > Bootstrapped and Regression tested on aarch64-thunder-linux. > Please review the patch and let us know if its okay for Stage-1?
This description is insufficient for me to review this patch - in particular I'd need more detail on what types of instruction pairs you are trying to fuse. From inspection you will be trying to fuse any ALU operation with an unconditional direct branch. Is that what you intend? i.e. you are looking to fuse instruction sequences like: add x0, x1, #5 b .L3 csel x0, x1, x1, gt b .L4 Have I understood that right? > + if (aarch64_fusion_enabled_p (AARCH64_FUSE_ALU_BRANCH) > + && any_uncondjump_p (curr)) > + { > + /* These types correspond to the reservation "vulcan_alu_basic" for > + Broadcom Vulcan: these are ALU operations that produce a single uop > + during instruction decoding. */ This comment looks incorrect - there is no vulcan_alu_basic reservation in trunk GCC. Thanks, James