This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/80929] [6/7/8 Regression] Division with constant no more optimized to mult highpart
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 27 Nov 2017 12:33:02 +0000
- Subject: [Bug middle-end/80929] [6/7/8 Regression] Division with constant no more optimized to mult highpart
- Auto-submitted: auto-generated
- References: <bug-80929-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80929
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The problem is that for non-single set PARALLELs there is just not a good guess
what to do without target's help. For some targets and such insns, the best
cost estimate could be maximum of the cost of both sets, for others ignoring
one of them and looking only at the other one, for others the sum of both
costs.
E.g. the various compare + arithmetics pattern on many targets really have the
cost of the arithmetics - pattern_cost even has code for that case.
insn_cost (I'm not aware of insn_rtx_cost) has a way for the target to override
it and therefore you could in the backend decide what to do.
seq_cost doesn't, perhaps it could just call insn_cost for non-single_set
insns.