6 ms·
I would recommend starting with a test case and a missed optimization bug report. GCC has some support for macro-ops fusion. [0] is the first message in a gcc-
by tjalfi 9y ago
I would recommend starting with a test case and a missed optimization bug report.
GCC has some support for macro-ops fusion. [0] is the first message in a gcc-patches thread where the feature was added.
[0] https://gcc.gnu.org/ml/gcc-patches/2013-09/msg00168.html https://gcc.gnu.org/ml/gcc-patches/2013-09/msg00168.html
- nkurz 9y agoThanks, this does indeed look like exact issue I'm referring to. I don't think it ever made it in to release, though. Despite apparent agreement that it's a useful optimization, it appears the final result of the two-month 59-message thread is that after many reworks of the patch and lots of feedback, the OP eventually gives up on getting it included due to interactions with another feature: http://gcc.1065356.n8.nabble.com/Fwd-PATCH-Scheduling-result-adjustment-to-enable-macro-fusion-tc965571.html http://gcc.1065356.n8.nabble.com/Fwd-PATCH-Scheduling-result...
- tjalfi 9y agoSorry about that, I thought it was committed. A comparable patch was committed to LLVM version 5, though. [0] is the macro-op fusion pass for x86. [0] https://github.com/llvm-mirror/llvm/blob/master/lib/Target/X86/X86MacroFusion.cpp https://github.com/llvm-mirror/llvm/blob/master/lib/Target/X...