From: David Miller > Sent: 14 August 2017 04:09 > From: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> > Date: Sun, 13 Aug 2017 00:03:06 +0300 > > > Looks like gcc isn't always able to figure out that 3 *if* branches in > > of_phy_register_fixed_link() calling fixed_phy_register() at their ends > > are similar enough and thus can be merged. The "manual" merge saves 40 > > bytes of the object code (AArch64 gcc 4.8.5), and still saves 12 bytes > > even if gcc was able to merge the branch tails (ARM gcc 4.8.5)... > > > > Signed-off-by: Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> > > Applied, but if two instances of the "same" compiler just with > different targets changes the optimization, it could be because of a > tradeoff which is specific to parameters expressed in that target's > backend. > > So in the future we should probably back away from trying to "help" > the compiler in this way. Probably a trade off between code size and execution speed. I've had 'fun' trying to stop gcc merging tail code paths in order to avoid the cost of the branch instruction. David -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html