+2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ Backport from mainline:
+ 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ PR tree-optimization/68799
+ * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
+ look up phi candidates in the statement-candidate map.
+ (phi_add_costs): Likewise.
+ (record_phi_increments): Likewise.
+ (phi_incr_cost): Likewise.
+ (ncd_with_phi): Likewise.
+ (all_phi_incrs_profitable): Likewise.
+
2016-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/68648
slsr_cand_t basis = lookup_cand (c->basis);
int nargs = gimple_phi_num_args (from_phi);
basic_block phi_bb = gimple_bb (from_phi);
- slsr_cand_t phi_cand = base_cand_from_table (gimple_phi_result (from_phi));
+ slsr_cand_t phi_cand = *((slsr_cand_t *)
+ pointer_map_contains (stmt_cand_map, from_phi));
phi_args.create (nargs);
/* Process each argument of the existing phi that represents
{
unsigned i;
int cost = 0;
- slsr_cand_t phi_cand = base_cand_from_table (gimple_phi_result (phi));
+ slsr_cand_t phi_cand = *((slsr_cand_t *)
+ pointer_map_contains (stmt_cand_map, phi));
/* If we work our way back to a phi that isn't dominated by the hidden
basis, this isn't a candidate for replacement. Indicate this by
record_phi_increments (slsr_cand_t basis, gimple phi)
{
unsigned i;
- slsr_cand_t phi_cand = base_cand_from_table (gimple_phi_result (phi));
+ slsr_cand_t phi_cand = *((slsr_cand_t *)
+ pointer_map_contains (stmt_cand_map, phi));
for (i = 0; i < gimple_phi_num_args (phi); i++)
{
unsigned i;
int cost = 0;
slsr_cand_t basis = lookup_cand (c->basis);
- slsr_cand_t phi_cand = base_cand_from_table (gimple_phi_result (phi));
+ slsr_cand_t phi_cand = *((slsr_cand_t *)
+ pointer_map_contains (stmt_cand_map, phi));
for (i = 0; i < gimple_phi_num_args (phi); i++)
{
{
unsigned i;
slsr_cand_t basis = lookup_cand (c->basis);
- slsr_cand_t phi_cand = base_cand_from_table (gimple_phi_result (phi));
+ slsr_cand_t phi_cand = *((slsr_cand_t *)
+ pointer_map_contains (stmt_cand_map, phi));
for (i = 0; i < gimple_phi_num_args (phi); i++)
{
{
unsigned i;
slsr_cand_t basis = lookup_cand (c->basis);
- slsr_cand_t phi_cand = base_cand_from_table (gimple_phi_result (phi));
+ slsr_cand_t phi_cand = *((slsr_cand_t *)
+ pointer_map_contains (stmt_cand_map, phi));
for (i = 0; i < gimple_phi_num_args (phi); i++)
{