1. 10 Oct, 2011 26 commits
    • re PR fortran/50564 (Front-end optimization - ICE with FORALL) · 2855325f
      2011-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/50564
      	* frontend-passes (forall_level):  New variable.
      	(cfe_register_funcs):  Don't register functions if we
      	are within a forall loop.
      	(optimize_namespace):  Set forall_level to 0 before entry.
      	(gfc_code_walker):  Increase/decrease forall_level.
      
      2011-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/50564
      	* gfortran.dg/forall_15.f90:  New test case.
      
      From-SVN: r179770
      Thomas Koenig committed
    • re PR libstdc++/49818 (libsupc++ does not export __cxa_get_globals or related functions) · 50da34bb
      2011-10-10  Benjamin Kosnik  <bkoz@redhat.com>
      
      	PR libstdc++/49818
      	* config/abi/pre/gnu.ver (CXXABI_1.3.6): Add symbols.
      	* testsuite/util/testsuite_abi.cc: Same.
      	* libsupc++/unwind-cxx.h: Move required eh API...
      	* libsupc++/cxxabi.h: ... to here. Add required forward declarations.
      	Use _GLIBCXX_NOTHROW.
      	* libsupc++/pure.cc (__cxa_deleted_virtual): Add.
      	* libsupc++/eh_alloc.cc: Use _GLIBCXX_NOTHROW.
      	* libsupc++/eh_catch.cc: Same.
      	* libsupc++/eh_globals.cc: Same.
      	* libsupc++/eh_type.cc: Same.
      
      From-SVN: r179769
      Benjamin Kosnik committed
    • simulate-thread.gdb: Call wrappers for *other_threads() and *final_verify(). · 13d563f0
              * gcc.dg/simulate-thread/simulate-thread.gdb: Call
              wrappers for *other_threads() and *final_verify().
              * gcc.dg/simulate-thread/simulate-thread.h
              (simulate_thread_wrapper_other_threads): New.
              (simulate_thread_wrapper_final_verify): New.
      
      
      Co-Authored-By: Andrew MacLeod <amacleod@redhat.com>
      
      From-SVN: r179768
      Aldy Hernandez committed
    • gcc-gdb-test.exp (gdb-test): Delete $cmd_file before return. · fa696333
      	* lib/gcc-gdb-test.exp (gdb-test): Delete $cmd_file before return.
      
      From-SVN: r179767
      Uros Bizjak committed
    • avr.c (avr_option_override): Set flag_omit_frame_pointer to 0 if frame pointer… · 16bbc875
      avr.c (avr_option_override): Set flag_omit_frame_pointer to 0 if frame pointer is needed for unwinding.
      
      	* config/avr/avr.c (avr_option_override): Set
      	flag_omit_frame_pointer to 0 if frame pointer is needed for
      	unwinding.
      
      From-SVN: r179765
      Georg-Johann Lay committed
    • * ChangeLog: Add PR number. · 19f4664b
      From-SVN: r179764
      Uros Bizjak committed
    • re PR bootstrap/50665 (Bootstrap failure) · 6e089315
      	PR bootstrap/50665
      	* optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
      	optab_index to enum direct_optab_index.
      	(vec_perm_optab): Update.
      
      From-SVN: r179763
      Uros Bizjak committed
    • cris.c (cris_preferred_reload_class): New function. · 45dbdfd4
      	* config/cris/cris.c (cris_preferred_reload_class): New function.
      	(TARGET_PREFERRED_RELOAD_CLASS): Define.
      	* config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
      
      From-SVN: r179761
      Anatoly Sokolov committed
    • avr.md (*tablejump_rjmp): Change insn condition to !AVR_HAVE_JMP_CALL. · 917e14f3
      	* config/avr/avr.md (*tablejump_rjmp): Change insn condition to
      	!AVR_HAVE_JMP_CALL.
      	(*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
      	(*tablejump_enh, *tablejump): Remove insns.
      	* config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
      	EIJMP for indirect jump.  Use LPM Z+ where available.
      
      From-SVN: r179760
      Georg-Johann Lay committed
    • * doc/md.texi (vec_perm_const): Fix typo in cindex. · 82675d94
      From-SVN: r179759
      Richard Henderson committed
    • Fix a typo in x86 FMA. · aafdb0d7
      gcc/
      
      2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
      	    Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
      
      	* config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
      
      gcc/testsuite/
      
      2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
      	    Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
      
      	* gcc.target/i386/fma_1.h: New file.
      	* gcc.target/i386/fma_2.h: Likewise.
      	* gcc.target/i386/fma_3.h: Likewise.
      	* gcc.target/i386/fma_4.h: Likewise.
      	* gcc.target/i386/fma_5.h: Likewise.
      	* gcc.target/i386/fma_6.h: Likewise.
      	* gcc.target/i386/fma_double_1.c: Likewise.
      	* gcc.target/i386/fma_double_2.c: Likewise.
      	* gcc.target/i386/fma_double_3.c: Likewise.
      	* gcc.target/i386/fma_double_4.c: Likewise.
      	* gcc.target/i386/fma_double_5.c: Likewise.
      	* gcc.target/i386/fma_double_6.c: Likewise.
      	* gcc.target/i386/fma_float_1.c: Likewise.
      	* gcc.target/i386/fma_float_2.c: Likewise.
      	* gcc.target/i386/fma_float_3.c: Likewise.
      	* gcc.target/i386/fma_float_4.c: Likewise.
      	* gcc.target/i386/fma_float_5.c: Likewise.
      	* gcc.target/i386/fma_float_6.c: Likewise.
      	* gcc.target/i386/fma_main.h: Likewise.
      	* gcc.target/i386/fma_run_double_1.c: Likewise.
      	* gcc.target/i386/fma_run_double_2.c: Likewise.
      	* gcc.target/i386/fma_run_double_3.c: Likewise.
      	* gcc.target/i386/fma_run_double_4.c: Likewise.
      	* gcc.target/i386/fma_run_double_5.c: Likewise.
      	* gcc.target/i386/fma_run_double_6.c: Likewise.
      	* gcc.target/i386/fma_run_double_results_1.h: Likewise.
      	* gcc.target/i386/fma_run_double_results_2.h: Likewise.
      	* gcc.target/i386/fma_run_double_results_3.h: Likewise.
      	* gcc.target/i386/fma_run_double_results_4.h: Likewise.
      	* gcc.target/i386/fma_run_double_results_5.h: Likewise.
      	* gcc.target/i386/fma_run_double_results_6.h: Likewise.
      	* gcc.target/i386/fma_run_float_1.c: Likewise.
      	* gcc.target/i386/fma_run_float_2.c: Likewise.
      	* gcc.target/i386/fma_run_float_3.c: Likewise.
      	* gcc.target/i386/fma_run_float_4.c: Likewise.
      	* gcc.target/i386/fma_run_float_5.c: Likewise.
      	* gcc.target/i386/fma_run_float_6.c: Likewise.
      	* gcc.target/i386/fma_run_float_results_1.h: Likewise.
      	* gcc.target/i386/fma_run_float_results_2.h: Likewise.
      	* gcc.target/i386/fma_run_float_results_3.h: Likewise.
      	* gcc.target/i386/fma_run_float_results_4.h: Likewise.
      	* gcc.target/i386/fma_run_float_results_5.h: Likewise.
      	* gcc.target/i386/fma_run_float_results_6.h: Likewise.
      	* gcc.target/i386/l_fma_1.h: Likewise.
      	* gcc.target/i386/l_fma_2.h: Likewise.
      	* gcc.target/i386/l_fma_3.h: Likewise.
      	* gcc.target/i386/l_fma_4.h: Likewise.
      	* gcc.target/i386/l_fma_5.h: Likewise.
      	* gcc.target/i386/l_fma_6.h: Likewise.
      	* gcc.target/i386/l_fma_double_1.c: Likewise.
      	* gcc.target/i386/l_fma_double_2.c: Likewise.
      	* gcc.target/i386/l_fma_double_3.c: Likewise.
      	* gcc.target/i386/l_fma_double_4.c: Likewise.
      	* gcc.target/i386/l_fma_double_5.c: Likewise.
      	* gcc.target/i386/l_fma_double_6.c: Likewise.
      	* gcc.target/i386/l_fma_float_1.c: Likewise.
      	* gcc.target/i386/l_fma_float_2.c: Likewise.
      	* gcc.target/i386/l_fma_float_3.c: Likewise.
      	* gcc.target/i386/l_fma_float_4.c: Likewise.
      	* gcc.target/i386/l_fma_float_5.c: Likewise.
      	* gcc.target/i386/l_fma_float_6.c: Likewise.
      	* gcc.target/i386/l_fma_main.h: Likewise.
      	* gcc.target/i386/l_fma_run_double_1.c: Likewise.
      	* gcc.target/i386/l_fma_run_double_2.c: Likewise.
      	* gcc.target/i386/l_fma_run_double_3.c: Likewise.
      	* gcc.target/i386/l_fma_run_double_4.c: Likewise.
      	* gcc.target/i386/l_fma_run_double_5.c: Likewise.
      	* gcc.target/i386/l_fma_run_double_6.c: Likewise.
      	* gcc.target/i386/l_fma_run_float_1.c: Likewise.
      	* gcc.target/i386/l_fma_run_float_2.c: Likewise.
      	* gcc.target/i386/l_fma_run_float_3.c: Likewise.
      	* gcc.target/i386/l_fma_run_float_4.c: Likewise.
      	* gcc.target/i386/l_fma_run_float_5.c: Likewise.
      	* gcc.target/i386/l_fma_run_float_6.c: Likewise.
      
      Co-Authored-By: Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
      
      From-SVN: r179758
      Kirill Yukhin committed
    • re PR tree-optimization/50389 (ICE: in execute_todo, at passes.c:1730 with -O… · a24ac460
      re PR tree-optimization/50389 (ICE: in execute_todo, at passes.c:1730 with -O -freorder-blocks -ftracer and __builtin___memcpy_chk())
      
      2011-10-10  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/50389
      	* gimple-fold.c (gimplify_and_update_call_from_tree): Do not
      	mark symbols for renaming.  Append the VUSE to all statements
      	that possibly can have one.
      
      	* gcc.dg/torture/pr50389.c: New testcase.
      
      From-SVN: r179757
      Richard Guenther committed
    • ipa-split.c (pass_split_functions): Add verification TODOs. · 40b6510f
      2011-10-10  Richard Guenther  <rguenther@suse.de>
      
      	* ipa-split.c (pass_split_functions): Add verification TODOs.
      	(pass_feedback_split_functions): Likewise.
      
      From-SVN: r179756
      Richard Guenther committed
    • re PR middle-end/50195 (Linking time error with -fast-math -O0) · 4d8b88e8
      2011-10-10  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/50195
      	* fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
      	only when optimizing.
      
      	* gcc.dg/builtins-47.c: Optimize.
      
      From-SVN: r179752
      Richard Guenther committed
    • gcc-simulate-thread.exp: New. · ff8e7c4d
              * lib/gcc-simulate-thread.exp: New.
              * gcc.dg/simulate-thread/guality.h: New.
              * gcc.dg/simulate-thread/simulate-thread.h: New.
              * gcc.dg/simulate-thread/simulate-thread.exp: New.
              * gcc.dg/simulate-thread/simulate-thread.gdb: New.
              * gcc.dg/simulate-thread/README: New.
              * g++.dg/simulate-thread/guality.h: New.
              * g++.dg/simulate-thread/simulate-thread.h: New.
              * g++.dg/simulate-thread/simulate-thread.exp: New.
              * g++.dg/simulate-thread/simulate-thread.gdb: New.
              * c-c++-common/cxxbitfields-2.c: Remove.
              * c-c++-common/cxxbitfields.c: Remove.
              * c-c++-common/cxxbitfields-4.c: Remove.
              * c-c++-common/cxxbitfields-5.c: Remove.
              * c-c++-common/simulate-thread/bitfields-1.c: New.
              * c-c++-common/simulate-thread/bitfields-2.c: New.
              * c-c++-common/simulate-thread/bitfields-3.c: New.
              * c-c++-common/simulate-thread/bitfields-4.c: New.
      
      From-SVN: r179751
      Aldy Hernandez committed
    • re PR middle-end/49801 (df_live_verify_transfer_functions fails with to use of… · 53fbb724
      re PR middle-end/49801 (df_live_verify_transfer_functions fails with to use of CC_REGNUM and checking enabled in rx backend)
      
      	PR middle-end/49801
      	* compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
      	df_get_live_out instead of accessing the bitmaps directly.
      	(execute_compare_elim_after_reload): Remove calls to df_set_flags,
      	df_live_add_problem and df_analyze.
      
      From-SVN: r179749
      Nick Clifton committed
    • re PR middle-end/50638 (emulated TLS fails) · 88fe4be8
              PR middle-end/50638
              * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
      
      From-SVN: r179745
      Michael Matz committed
    • modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages. · 752cdc4e
      gcc/
      	* modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
      	(SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
      	(node_sched_params): Remove first_reg_move and nreg_moves.
      	(ps_num_consecutive_stages, extend_node_sched_params): New functions.
      	(update_node_sched_params): Move up file.
      	(print_node_sched_params): Print the stage.  Don't dump info related
      	to first_reg_move and nreg_moves.
      	(set_columns_for_row): New function.
      	(set_columns_for_ps): Move up file and use set_columns_for_row.
      	(schedule_reg_move): New function.
      	(schedule_reg_moves): Call extend_node_sched_params and
      	schedule_reg_move.  Extend size of uses bitmap.  Initialize
      	num_consecutive_stages.  Return false if a move could not be
      	scheduled.
      	(apply_reg_moves): Don't emit moves here.
      	(permute_partial_schedule): Handle register moves.
      	(duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
      	to the same stage-count test as ddg nodes.
      	(generate_prolog_epilog): Update calls accordingly.
      	(sms_schedule): Allow move-scheduling to add a new first stage.
      
      From-SVN: r179744
      Richard Sandiford committed
    • modulo-sched.c (ps_insn): Adjust comment. · 1287d8ea
      gcc/
      	* modulo-sched.c (ps_insn): Adjust comment.
      	(ps_reg_move_info): New structure.
      	(partial_schedule): Add reg_moves field.
      	(SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
      	(node_sched_params): Turn first_reg_move into an identifier.
      	(ps_reg_move): New function.
      	(ps_rtl_insn): Cope with register moves.
      	(ps_first_note): Adjust comment and assert that the instruction
      	isn't a register move.
      	(node_sched_params): Replace with...
      	(node_sched_param_vec): ...this vector.
      	(set_node_sched_params): Adjust accordingly.
      	(print_node_sched_params): Take a partial schedule instead of a ddg.
      	Use ps_rtl_insn and ps_reg_move.
      	(generate_reg_moves): Rename to...
      	(schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
      	move in the partial schedule, but don't emit it here.  Don't perform
      	register substitutions here either.
      	(apply_reg_moves): New function.
      	(duplicate_insns_of_cycles): Use register indices directly,
      	rather than finding instructions using PREV_INSN.  Use ps_reg_move.
      	(sms_schedule): Call schedule_reg_moves before committing to
      	a partial schedule.   Try the next ii if the schedule fails.
      	Use apply_reg_moves instead of generate_reg_moves.  Adjust
      	call to print_node_sched_params.  Free node_sched_param_vec
      	instead of node_sched_params.
      	(create_partial_schedule): Initialize reg_moves.
      	(free_partial_schedule): Free reg_moves.
      
      From-SVN: r179743
      Richard Sandiford committed
    • modulo-sched.c (ps_insn): Replace node field with an identifier. · 88e9c867
      gcc/
      	* modulo-sched.c (ps_insn): Replace node field with an identifier.
      	(SCHED_ASAP): Replace with..
      	(NODE_ASAP): ...this macro.
      	(SCHED_PARAMS): New macro.
      	(SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
      	(SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
      	(node_sched_params): Remove asap.
      	(ps_rtl_insn, ps_first_note): New functions.
      	(set_node_sched_params): Use XCNEWVEC.  Don't copy across the
      	asap values.
      	(print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
      	(generate_reg_moves): Pass ids to the SCHED_* macros.
      	(update_node_sched_params): Take a ps insn identifier rather than
      	a node as parameter.  Use ps_rtl_insn.
      	(set_columns_for_ps): Update for above field and SCHED_* macro changes.
      	(permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
      	(optimize_sc): Update for above field and SCHED_* macro changes.
      	Update calls to try_scheduling_node_in_cycle and
      	update_node_sched_params.
      	(duplicate_insns_of_cycles): Adjust for above field and SCHED_*
      	macro changes.  Use ps_rtl_insn and ps_first_note.
      	(sms_schedule): Pass ids to the SCHED_* macros.
      	(get_sched_window): Adjust for above field and SCHED_* macro changes.
      	Use NODE_ASAP instead of SCHED_ASAP.
      	(try_scheduling_node_in_cycle): Remove node parameter.  Update
      	call to ps_add_node_check_conflicts.  Pass ids to the SCHED_*
      	macros.
      	(sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
      	(ps_insert_empty_row): Adjust for above field changes.
      	(compute_split_row): Use ids rather than nodes.
      	(verify_partial_schedule): Adjust for above field changes.
      	(print_partial_schedule): Use ps_rtl_insn.
      	(create_ps_insn): Take an id rather than a node.
      	(ps_insn_find_column): Adjust for above field changes.
      	Use ps_rtl_insn.
      	(ps_insn_advance_column): Adjust for above field changes.
      	(add_node_to_ps): Remove node parameter.  Update call to
      	create_ps_insn.
      	(ps_has_conflicts): Use ps_rtl_insn.
      	(ps_add_node_check_conflicts): Replace node parameter than an id.
      
      From-SVN: r179742
      Richard Sandiford committed
    • modulo-sched.c (undo_replace_buff_elem): Delete. · be5af15f
      gcc/
      	* modulo-sched.c (undo_replace_buff_elem): Delete.
      	(generate_reg_moves): Don't build and return an undo list.
      	(free_undo_replace_buff): Delete.
      	(sms_schedule): Adjust call to generate_reg_moves.
      	Don't call free_undo_replace_buff.
      
      From-SVN: r179741
      Richard Sandiford committed
    • m32c: Remove empty directory. · 8a0180e7
      2011-10-10  Matthias Klose <doko@ubuntu.com>
      
      	* common/config/m32c: Remove empty directory.
      
      From-SVN: r179740
      Matthias Klose committed
    • avr.md (*mulhi3_enh): Treat squaring smarter. · beddf669
      	* config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
      
      From-SVN: r179739
      Georg-Johann Lay committed
    • re PR target/50652 ([avr] Incorrect data start value for atmega164a) · e12693c1
      	PR target/50652
      	* config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
      	atmega164a to 0x100.
      
      From-SVN: r179737
      Georg-Johann Lay committed
    • Daily bump. · a959e906
      From-SVN: r179735
      GCC Administrator committed
  2. 09 Oct, 2011 14 commits