Sebastian Pop [Wed, 25 Nov 2009 04:58:45 +0000 (04:58 +0000)]
graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence): Do not replace cross BB scalar dependences ending on PHI nodes.
2009-10-09 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence): Do
not replace cross BB scalar dependences ending on PHI nodes.
(rewrite_cross_bb_scalar_deps): Filter out GIMPLE_PHI nodes.
Sebastian Pop [Wed, 25 Nov 2009 04:58:16 +0000 (04:58 +0000)]
graphite-poly.c (apply_poly_transforms): Implement the high level driver for flag_loop_block.
2009-10-09 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (apply_poly_transforms): Implement the high
level driver for flag_loop_block.
* tree-ssa-loop.c (gate_graphite_transforms): Remove call to sorry for
flag_loop_block.
Sebastian Pop [Wed, 25 Nov 2009 04:55:53 +0000 (04:55 +0000)]
graphite-dependences.c (reduction_dr_1): New.
2009-10-06 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (reduction_dr_1): New.
(reduction_dr_p): New.
(graphite_legal_transform_dr): Call reduction_dr_p.
(reduction_ddr): Renamed reduction_ddr_p.
* graphite-poly.h (same_pdr_p): New.
(number_of_write_pdrs): New.
* graphite-sese-to-poly.c (nb_data_writes_in_bb): New.
(split_reduction_stmt): Do not split reduction statements
when there are no writes to memory.
(translate_scalar_reduction_to_array_for_stmt): Insert the
memory reduction statement just after the scalar reduction statement.
* gcc.dg/graphite/interchange-10.c: Updated to differ from interchange-4.c.
Un-XFAIL-ed.
* gcc.dg/graphite/interchange-3.c: Un-XFAIL-ed.
* gcc.dg/graphite/interchange-4.c: Un-XFAIL-ed.
Sebastian Pop [Wed, 25 Nov 2009 04:51:41 +0000 (04:51 +0000)]
graphite-sese-to-poly.c (partition_drs_to_sets): Drs is not modified, so don't pass a pointer to it.
2009-09-27 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (partition_drs_to_sets): Drs is not modified,
so don't pass a pointer to it.
(build_alias_set_for_drs): Same.
(build_base_obj_set_for_drs): Same.
(build_scop_drs): Same.
* graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): New.
(build_scop_drs): When debugging, write the alias graph to file,
otherwise, should be disabled.
David Edelsohn [Wed, 25 Nov 2009 04:49:22 +0000 (04:49 +0000)]
scop-dsyrk.c: New File.
2009-09-17 David Edelsohn <edelsohn@gnu.org>
* testsuite/gcc.dg/graphite/scop-dsyrk.c: New File.
* testsuite/gcc.dg/graphite/scop-dsyr2k.c: New File.
* testsuite/gcc.dg/graphite/scop-mvt.c: New File.
* testsuite/gcc.dg/graphite/scop-sor.c: New File.
* graphite-sese-to-poly.c (struct irp_data): Removed.
(idx_record_params): Removed.
(find_params_in_bb): Scan for parameters the access functions; don't
parse the tree representation.
Sebastian Pop [Wed, 25 Nov 2009 04:33:03 +0000 (04:33 +0000)]
Partially revert the previous patch, except the following.
2009-09-02 Sebastian Pop <sebastian.pop@amd.com>
Partially revert the previous patch, except the following.
* tree-scalar-evolution.c (instantiate_scev_not): Adapted to pass
as parameters the operands of the not expression.
* tree-scalar-evolution.c (instantiate_scev_assign): New.
Do not call analyze_scalar_evolution on assignments.
(instantiate_scev_phi): Call analyze_scalar_evolution.
(instantiate_scev_name): Call instantiate_scev_assign and
instantiate_scev_phi.
(instantiate_scev_not): Adapted to pass as parameters the operands
of the not expression.
pa.c (output_call): Only use sr4 for long interspace calls if call binds local and generating non...
* pa.c (output_call): Only use sr4 for long interspace calls if
call binds local and generating non PIC code.
(attr_length_call): Adjust length calculation for above.
Jason Merrill [Tue, 24 Nov 2009 20:55:24 +0000 (15:55 -0500)]
re PR c++/42137 (error: expected constructor, destructor, or type conversion before ‘{’ token)
PR c++/42137
* parser.c (cp_parser_mem_initializer_id): Pass typename_type to
cp_parser_class_name.
(cp_parser_unqualified_id): Same, rather than class_type.
PR c++/11764
* parser.c (cp_parser_expression_statement): Give helpful error
for constructor name used as type.
Eric Botcazou [Tue, 24 Nov 2009 20:25:58 +0000 (20:25 +0000)]
sem_util.adb (Set_Debug_Info_Needed): For an E_Class_Wide_Subtype, also set the flag on the Equivalent_Type.
* sem_util.adb (Set_Debug_Info_Needed): For an E_Class_Wide_Subtype,
also set the flag on the Equivalent_Type.
* gcc-interface/utils.c (finish_record_type): Replace DO_NOT_FINALIZE
parameter with DEBUG_INFO_P. Rename FIELDLIST into FIELD_LIST.
(rest_of_record_type_compilation): Rename FIELDLIST into FIELD_LIST.
(build_vms_descriptor32): Adjust call to finish_record_type.
(build_vms_descriptor): Likewise.
(build_unc_object_type): Likewise.
* decl.c (gnat_to_gnu_entity): Adjust calls to finish_record_type and
components_to_record.
(make_packable_type): Adjust call to finish_record_type.
(maybe_pad_type): Likewise. Tweak condition.
(components_to_record): Likewise. Replace DO_NOT_FINALIZE parameter
with MAYBE_UNUSED. Adjust recursive call.
(create_variant_part_from): Adjust call to finish_record_type. Do not
call rest_of_record_type_compilation on the new record types.
* trans.c (gigi): Adjust call to finish_record_type.
* gigi.h (finish_record_type): Adjust prototype and comment.
(rest_of_record_type_compilation): Adjust comment.
Eric Botcazou [Tue, 24 Nov 2009 20:02:40 +0000 (20:02 +0000)]
exp_util.adb (Make_CW_Equivalent_Type): Do not mark the type as frozen for targets that do not require front-end layout.
* exp_util.adb (Make_CW_Equivalent_Type): Do not mark the type as
frozen for targets that do not require front-end layout.
(New_Class_Wide_Subtype): Always reset the freezing status to False.
* exp_ch8.adb: Do not 'with' Targparm.
(Expand_N_Object_Renaming_Declaration): Always freeze a class-wide
subtype that has been built from the expression.
* exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
class wide, freeze the implicit type that has been built from the
expression at the dereference point.
* freeze.adb (Freeze_Entity): Adjust comment.
* gcc-interface/decl.c (Gigi_Equivalent_Type) <E_Class_Wide_Type>:
Remove useless test.
* gcc-interface/trans.c (process_freeze_entity): Do not special-case
class-wide subtypes.
David Binderman [Tue, 24 Nov 2009 12:59:00 +0000 (12:59 +0000)]
cfgrtl.c (commit_one_edge_insertion): Remove set but not used local variable bb_note.
2009-11-24 David Binderman <dcb314@hotmail.com>
* cfgrtl.c (commit_one_edge_insertion): Remove set but not used
local variable bb_note.
* dominance.c (get_dominated_by): Likewise local var n.
(output_file_names): Likewise local var idx.
(add_location_or_const_value_attribute): Likewise local var status.
* dwarf2out.c (gen_variable_die): Likewise local var field.
* emit-rtl.c (no_line_numbers): Remove.
(init_emit_once): Remove line_numbers parameter.
* rtl.h (init_emit_once): Adjust prototype.
* toplev.c (backend_init): Adjust init_emit_once call.
Richard Guenther [Tue, 24 Nov 2009 11:57:26 +0000 (11:57 +0000)]
re PR tree-optimization/42142 (DCE miscompiles a certain quicksort implementation when optimizing with -O1 or higher)
2009-11-24 Richard Guenther <rguenther@suse.de>
PR tree-optimization/42142
* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
Handle iv-dependent (non-)kills properly.
(mark_aliased_reaching_defs_necessary): Pass the basic-block
of the reference statement to mark_aliased_reaching_defs_necessary_1.
Martin Jambor [Tue, 24 Nov 2009 10:56:14 +0000 (11:56 +0100)]
re PR tree-optimization/42154 (Wrong code from (early) SRA)
2009-11-24 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42154
* tree-sra.c (struct access): Added comments.
(sra_modify_expr): Build references to the old aggregate with
build_ref_for_offset instead of reusing access->expr.
(load_assign_lhs_subreplacements): Likewise.
* testsuite/gcc.c-torture/execute/pr42154.c: New test.
Janus Weil [Tue, 24 Nov 2009 08:16:32 +0000 (09:16 +0100)]
re PR fortran/42045 ([F03] passing a procedure pointer component to a procedure pointer dummy)
2009-11-24 Janus Weil <janus@gcc.gnu.org>
PR fortran/42045
* resolve.c (resolve_actual_arglist): Make sure procedure pointer
actual arguments are resolved correctly.
(resolve_function): An EXPR_FUNCTION which is a procedure pointer
component, has already been resolved.
(resolve_fl_derived): Procedure pointer components should not be
implicitly typed.
2009-11-24 Janus Weil <janus@gcc.gnu.org>
PR fortran/42045
* gfortran.dg/proc_ptr_comp_2.f90: Correct invalid test case.
* gfortran.dg/proc_ptr_comp_3.f90: Extended test case.
* gfortran.dg/proc_ptr_comp_24.f90: New.
Uros Bizjak [Mon, 23 Nov 2009 23:18:02 +0000 (00:18 +0100)]
i386.md (add<mode>3_carry): Change insn pattern to expander.
* config/i386/i386.md (add<mode>3_carry): Change insn pattern
to expander.
(sub<mode>3_carry): Ditto.
(x86_mov<mode>cc_0_m1): Ditto.
(*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
for ix86_carry_flag_operator operator predicate.
(*sub<mode>3_carry): Ditto.
(*x86_mov<mode>cc_0_m1): Ditto.
(*addsi3_carry_zext): Use VOIDmode match_operator for
ix86_carry_flag_operator operator predicate.
(*subsi3_carry_zext): Ditto.
(*x86_mov<mode>cc_0_m1_s): Ditto.
(*x86_mov<mode>cc_0_m1_neg): Ditto.
* config/i386/predocates.md (ix86_carry_flag_operator): Do not
check operator sub-expressions for FLAGS_REG and const0_rtx.
* config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
(ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
(ix86_expand_int_addcc): Update calls to
gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op.
(ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
Do not set mode of compare operation.
Andy Hutchinson [Mon, 23 Nov 2009 22:10:18 +0000 (22:10 +0000)]
re PR c/36470 (sizeof UTF-32 is 2 on AVR)
PR testsuite/36470
* gcc.dg/utf-cvt.c: Skip int test for 16bit int targets.
Enable short test for avr target.
* gcc.dg/utf32-1.c: Enable test for avr and m32 targets.
* gcc.dg/utf32-2.c: Ditto.
* gcc.dg/utf32-3.c: Ditto.
* gcc.dg/utf32-4.c: Enable test for non-32bit targets.
Andy Hutchinson [Mon, 23 Nov 2009 21:38:32 +0000 (21:38 +0000)]
pr36998.c: Frame pointer required for avr target.
* gcc.dg/pr36998.c: Frame pointer required for avr target.
* gcc.dg/debug/pr41264-1.c: Use long if int size 16bit or smaller.
* gcc.dg/pr39226.c: Use smaller bitfield if int size is 16bit.
* gcc.dg/pr41340.c: Test requires long pointer target.
* gcc.dg/profile-generate-3.c: Test requires profiling support.
Jan Hubicka [Mon, 23 Nov 2009 20:01:29 +0000 (21:01 +0100)]
ipa-cp.c (ipcp_compute_node_scale): Work around completely wrong profile updates.
* ipa-cp.c (ipcp_compute_node_scale): Work around completely
wrong profile updates.
* predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
having largest frequency.
* ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
used uninitalized warning.
* tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
frequencies.
Eric Botcazou [Mon, 23 Nov 2009 18:55:50 +0000 (18:55 +0000)]
decl.c (gnat_to_gnu_entity): Pass the list of attributes when building the corresponding variable of a constant.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Pass the list
of attributes when building the corresponding variable of a constant.
* gcc-interface/utils.c (create_var_decl_1): Do not process attributes
for constants.
Dodji Seketeli [Mon, 23 Nov 2009 13:29:50 +0000 (13:29 +0000)]
re PR c++/14777 (typedef doesn't fully expose base class type)
Fix PR c++/14777
gcc/cp/ChangeLog:
PR c++/14777
* cp-tree.def <TEMPLATE_INFO>: Declare new kind of tree
node.
* cp-tree.h (struct tree_template_info,
struct qualified_typedef_usage_s): New.
(cp_tree_node_structure_enum): add TS_CP_TEMPLATE_INFO.
(union lang_tree_node): Add template_info.
(TI_TEMPLATE, TI_ARGS, TI_TYPEDEFS_NEEDING_ACCESS_CHECKING):
Adjust.
(build_template_info): Declare.
(get_types_needing_access_check): Adjust return type.
(add_typedef_to_current_template_for_access_check): Declare.
* cp-objcp-common.c (cp_tree_size): Handle TEMPLATE_INFO.
* semantics.c (add_typedef_to_current_template_for_access_check):
Split from ...
(check_accessibility_of_qualified_id): ... here.
* decl.c (make_typename_type): Use it.
* pt.c (build_template_info): Define.
(check_explicit_specialization, find_parameter_packs_r,
push_template_decl_real, lookup_template_class,
for_each_template_parm_r, tsubst_decl, tsubst): Use
build_template_info.
(get_types_needing_access_check): Adjust return type.
(append_type_to_template_for_access_check_1): Record the
location of the usage point of the typedef. Adjust to TEMPLATE_INFO.
(append_type_to_template_for_access_check): Add new location
parameter. Pass it to append_type_to_template_for_access_check_1.
Adjust to TEMPLATE_INFO.
(perform_typedefs_access_check): Temporarily set input_location to
the usage point of the typedef we are checking access for. Adjust
to new TEMPLATE_INFO tree node.
* tree.c (bind_template_template_parm): Use build_template_info.
* call.c (add_template_candidate_real): Likewise.
* decl.c (grokfndecl): Likewise.
(cp_tree_node_structure): Handle TEMPLATE_INFO.
Paul Brook [Mon, 23 Nov 2009 13:03:28 +0000 (13:03 +0000)]
arm.c (arm_compute_save_reg0_reg12_mask): Add special case for noreturn functions.
2009-11-23 Paul Brook <paul@codesourcery.com>
gcc/
* config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
case for noreturn functions.
(arm_compute_save_reg_mask): Remove special noreturn handling.
Ben Elliston [Mon, 23 Nov 2009 04:42:32 +0000 (04:42 +0000)]
pex-unix.c (pex_child_error): Improve warning avoidance by checking the results of write(3) and exiting with...
* pex-unix.c (pex_child_error): Improve warning avoidance by
checking the results of write(3) and exiting with -2 if any write
returns a negative value.
Co-Authored-By: Ian Lance Taylor <iant@google.com>
From-SVN: r154431