On 11/30/18 1:50 PM, Jakub Jelinek wrote: > Hi! > > Until we stop depending on BRANCH_COST and LOGICAL_OP_NON_SHORT_CIRCUIT > macros at least for early GIMPLE, I'm afraid the current state for the > testsuite is terrible, on some targets it is enough to use > -mbranch-cost={1,2} to pick either of the setting, but other targets, > while they implement -mbranch-cost=, redefine LOGICAL_OP_NON_SHORT_CIRCUIT, > so it ignores BRANCH_COST altogether, or sometimes, other targets don't > implement -mbranch-cost= and have various complex definitions of BRANCH_COST > or LOGICAL_OP_NON_SHORT_CIRCUIT depending on other command line options. > > The following patch introduces a new param (not an option, to make it > clearer it is intended primarily for the testsuite and we can more easily > remove it again) that overrides the target's LOGICAL_OP_NON_SHORT_CIRCUIT > and adjusts the testsuite to use it. > > Bootstrapped/regtested on x86_64-linux and i686-linux, Christophe has kindly > tested it on ARM. Ok for trunk? > > 2018-11-30 Jakub Jelinek <ja...@redhat.com> > > PR testsuite/85368 > * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. > * tree-ssa-ifcombine.c (ifcombine_ifandif): If > --param logical-op-non-short-circuit is present, override > LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. > * fold-const.c (fold_range_test, fold_truth_andor): Likewise. > > * lib/target-supports.exp (logical_op_short_circuit): Remove. > * gcc.dg/builtin-bswap-7.c: Remove logical_op_short_circuit > effective target, drop -mbranch-cost= options from the test and > instead pass --param logical-op-non-short-circuit=0 or > --param logical-op-non-short-circuit=1 depending on what the > tests meant to test. > * gcc.dg/pr21643.c: Likewise. > * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise. > * gcc.dg/tree-ssa/phi-opt-11.c: Likewise. > * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. > * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. > * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise. > * gcc.dg/tree-ssa/ssa-thread-14.c: Likewise. > * gcc.dg/tree-ssa/vrp47.c: Likewise. > * gcc.dg/tree-ssa/ssa-dom-thread-11.c: Likewise. > * gcc.dg/tree-ssa/ssa-dom-thread-16.c: Likewise. > * gcc.dg/tree-ssa/ssa-dom-thread-14.c: Likewise. > * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. > * gcc.dg/tree-ssa/vrp87.c: Likewise. > * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. > * gcc.dg/tree-ssa/phi-opt-2.c: Likewise. > * gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise. > * gcc.dg/tree-ssa/ssa-thread-11.c: Likewise. > * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. > * gcc.dg/tree-ssa/forwprop-28.c: Likewise. > * gcc.dg/binop-xor1.c: Likewise. > * gcc.dg/pr46309.c: Likewise. > * gcc.dg/tree-ssa/ssa-dom-thread-18.c: New test. > * gcc.dg/tree-ssa/reassoc-32.c: Add > --param logical-op-non-short-circuit=1 to dg-options. > * gcc.dg/tree-ssa/reassoc-33.c: Likewise. > * gcc.dg/tree-ssa/reassoc-34.c: Likewise. > * gcc.dg/tree-ssa/reassoc-35.c: Likewise. > * gcc.dg/tree-ssa/reassoc-36.c: Likewise. OK.
Jeff