Commit Graph

112323 Commits

Author SHA1 Message Date
Nick Clifton
58e9ddb14d arm.h (EMIT_EABI_ATTRIBUTE): New macro.
* config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
	emit a .eabi_attribute assembler directive, possibly with a
	comment attached.
	* config/arm/arm.c (arm_file_start): Use the new macro.
	* config/arm/arm-c.c (arm_output_c_attributes): Likewise.

From-SVN: r179844
2011-10-12 10:18:17 +00:00
Georg-Johann Lay
9bc9ee6799 re PR target/49939 ([avr] Skip 2-word instructions if applicable)
PR target/49939
	* config/avr/avr.md (*movqi): Rename to movqi_insn.
	(*call_insn): Rename to call_insn.
	(*call_value_insn): Rename to call_value_insn.
	* config/avr/avr.c (avr_2word_insn_p): New static function.
	(jump_over_one_insn_p): Use it.

From-SVN: r179843
2011-10-12 09:59:30 +00:00
Richard Sandiford
2ba87a294f expr.h (copy_blkmode_to_reg): Declare.
gcc/
	* expr.h (copy_blkmode_to_reg): Declare.
	* expr.c (copy_blkmode_to_reg): New function.
	(expand_assignment): Don't expand register RESULT_DECLs before
	the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
	RESULT_DECL register.
	(expand_expr_real_1): Handle BLKmode decls when looking for promotion.
	* stmt.c (expand_return): Move BLKmode-to-register code into
	copy_blkmode_to_reg.

From-SVN: r179839
2011-10-12 07:46:58 +00:00
GCC Administrator
e755e54342 Daily bump.
From-SVN: r179835
2011-10-12 00:18:27 +00:00
Eric Botcazou
d0e2a1f832 re PR target/49965 (libgomp.c++/reduction-4.C and libgomp.c++/task-8.C FAIL on Solaris 11/SPARC)
PR target/49965
	* config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
	(mov<F:mode>cc): Likewise.

From-SVN: r179827
2011-10-11 21:33:24 +00:00
Ian Lance Taylor
60ca0fe697 Remove incorrect ChangeLog entry, correct spacing.
From-SVN: r179826
2011-10-11 21:29:04 +00:00
Bill Schmidt
2c3784e190 tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.

From-SVN: r179825
2011-10-11 21:21:43 +00:00
Michael Meissner
e79983f458 Convert standard builtin functions from being arrays to using a functional interface
From-SVN: r179820
2011-10-11 19:55:09 +00:00
Bill Schmidt
f0286f9573 tree.h (copy_ref_info): Expose existing function.
2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* tree.h (copy_ref_info): Expose existing function.
	* tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
	* tree-ssa-address.c (copy_ref_info): ...here, and remove static token.

From-SVN: r179818
2011-10-11 18:39:51 +00:00
Georg-Johann Lay
8efab2c5ea avr-protos.h (avr_mode_code_base_reg_class): New prototype.
* config/avr/avr-protos.h (avr_mode_code_base_reg_class): New prototype.
	(avr_regno_mode_code_ok_for_base_p): New prototype.
	* config/avr/avr.h (BASE_REG_CLASS): Remove.
	(REGNO_OK_FOR_BASE_P): Remove.
	(REG_OK_FOR_BASE_NOSTRICT_P): Remove.
	(REG_OK_FOR_BASE_STRICT_P): Remove.
	(MODE_CODE_BASE_REG_CLASS): New define.
	(REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
	* config/avr/avr.c (avr_mode_code_base_reg_class): New function.
	(avr_regno_mode_code_ok_for_base_p): New function.
	(avr_reg_ok_for_addr_p): New static function.
	(avr_legitimate_address_p): Use it.  Beautify.

From-SVN: r179817
2011-10-11 18:34:16 +00:00
Georg-Johann Lay
05058b6e31 re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
PR target/50447
	* config/avr/avr.md (cc): Add out_plus attribute alternative.
	(addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
	avr_out_plus for all CONST_INT addends.
	* config/avr/avr-protos.h (avr_out_plus): Change prototype.
	* config/avr/avr.c (notice_update_cc): Call avr_out_plus on
	CC_OUT_PLUS.
	(avr_out_plus_1): Change prototype and report effect on cc0.
	(avr_out_plus): Ditto.
	(adjust_insn_length): Adapt call to avr_out_plus to new prototype.

From-SVN: r179816
2011-10-11 18:28:49 +00:00
Jason Merrill
a4474a3854 re PR c++/49855 (internal compiler error: in fold_convert_const_int_from_real)
PR c++/49855
	PR c++/49896
	* cp-tree.def (IMPLICIT_CONV_EXPR): New.
	* call.c (perform_implicit_conversion_flags): Build it
	instead of NOP_EXPR.
	* cp-objcp-common.c (cp_common_init_ts): It's typed.
	* cxx-pretty-print.c (pp_cxx_cast_expression): Handle it.
	(pp_cxx_expression): Likewise.
	* error.c (dump_expr): Likewise.
	* semantics.c (potential_constant_expression_1): Likewise.
	* tree.c (cp_tree_equal): Likewise.
	(cp_walk_subtrees): Likewise.
	* pt.c (iterative_hash_template_arg): Likewise.
	(for_each_template_parm_r): Likewise.
	(type_dependent_expression_p): Likewise.
	(tsubst_copy, tsubst_copy_and_build): Handle IMPLICIT_CONV_EXPR
	and CONVERT_EXPR.
	* cp-tree.h (IMPLICIT_CONV_EXPR_DIRECT_INIT): New.

From-SVN: r179813
2011-10-11 13:53:07 -04:00
H.J. Lu
816e239ae1 Remove the extra break.
2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_special_args_builtin): Remove
	the extra break.

From-SVN: r179812
2011-10-11 10:25:07 -07:00
Artjoms Sinkarovs
cdbb5ba334 New warning -Wvector-operation-performance.
From-SVN: r179807
2011-10-11 16:10:59 +00:00
Andreas Krebbel
945bad22b8 pr49994-3.c: Add -mbackchain for s390 and s390x.
2011-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.dg/pr49994-3.c: Add -mbackchain for s390 and s390x.

From-SVN: r179805
2011-10-11 14:11:50 +00:00
Paolo Carlini
8e07ab9fe8 re PR c++/50611 (Error reporting routines re-entered)
2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50611
	* pt.c (tsubst_copy_and_build): If (complain & tf_error) is false
	do not call unqualified_name_lookup_error.

From-SVN: r179802
2011-10-11 13:07:52 +00:00
Emil Wojak
92b2342a6e re PR libstdc++/50661 (std::equal should use more efficient version for arrays of pointers)
2011-10-11  Emil Wojak  <emil@wojak.eu>

	PR c++/50661
	* include/bits/stl_algobase.h (equal): Compare arrays of pointers
	too with memcmp.

From-SVN: r179801
2011-10-11 12:39:18 +00:00
Richard Guenther
45ce6084c2 re PR tree-optimization/50204 (Missed fully redundant load found in crafty (SPEC 2k))
2011-10-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50204
	* tree-ssa-alias.c (get_continuation_for_phi_1): Split out
	two argument handling from ...
	(get_continuation_for_phi): ... here.  Handle arbitrary number
	of PHI args.

	* gcc.dg/tree-ssa/ssa-fre-36.c: New testcase.

From-SVN: r179799
2011-10-11 11:57:23 +00:00
Andreas Krebbel
12d31b36a8 20090223-1.c: Add -Wno-attributes.
2011-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.target/s390/20090223-1.c: Add -Wno-attributes.

From-SVN: r179798
2011-10-11 10:59:26 +00:00
Paolo Carlini
7bc3074123 re PR c++/33067 (Awkward long decimal expansion for double literal in error.)
2011-10-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/33067
	* c-family/c-pretty-print.c (pp_c_floating_constant): Output
	max_digits10 (in the ISO C++ WG N1822 sense) decimal digits.

From-SVN: r179797
2011-10-11 10:57:40 +00:00
Kirill Yukhin
d42c1fcaf4 fma_double_1.c: Add -mfpmath=sse.
* gcc.target/i386/fma_double_1.c: Add -mfpmath=sse.
	* gcc.target/i386/fma_double_2.c: Ditto.
	* gcc.target/i386/fma_double_3.c: Ditto.
	* gcc.target/i386/fma_double_4.c: Ditto.
	* gcc.target/i386/fma_double_5.c: Ditto.
	* gcc.target/i386/fma_double_6.c: Ditto.
	* gcc.target/i386/fma_float_1.c: Ditto.
	* gcc.target/i386/fma_float_2.c: Ditto.
	* gcc.target/i386/fma_float_3.c: Ditto.
	* gcc.target/i386/fma_float_4.c: Ditto.
	* gcc.target/i386/fma_float_5.c: Ditto.
	* gcc.target/i386/fma_float_6.c: Ditto.
	* gcc.target/i386/l_fma_double_1.c: Ditto.
	* gcc.target/i386/l_fma_double_2.c: Ditto.
	* gcc.target/i386/l_fma_double_3.c: Ditto.
	* gcc.target/i386/l_fma_double_4.c: Ditto.
	* gcc.target/i386/l_fma_double_5.c: Ditto.
	* gcc.target/i386/l_fma_double_6.c: Ditto.
	* gcc.target/i386/l_fma_float_1.c: Ditto.
	* gcc.target/i386/l_fma_float_2.c: Ditto.
	* gcc.target/i386/l_fma_float_3.c: Ditto.
	* gcc.target/i386/l_fma_float_4.c: Ditto.
	* gcc.target/i386/l_fma_float_5.c: Ditto.
	* gcc.target/i386/l_fma_float_6.c: Ditto.
	* gcc.target/i386/l_fma_run_double_1.c: Ditto.
	* gcc.target/i386/l_fma_run_double_2.c: Ditto.
	* gcc.target/i386/l_fma_run_double_3.c: Ditto.
	* gcc.target/i386/l_fma_run_double_4.c: Ditto.
	* gcc.target/i386/l_fma_run_double_5.c: Ditto.
	* gcc.target/i386/l_fma_run_double_6.c: Ditto.
	* gcc.target/i386/l_fma_run_float_1.c: Ditto.
	* gcc.target/i386/l_fma_run_float_2.c: Ditto.
	* gcc.target/i386/l_fma_run_float_3.c: Ditto.
	* gcc.target/i386/l_fma_run_float_4.c: Ditto.
	* gcc.target/i386/l_fma_run_float_5.c: Ditto.
	* gcc.target/i386/l_fma_run_float_6.c: Ditto.

From-SVN: r179796
2011-10-11 12:18:48 +02:00
Richard Sandiford
3e6aef7c25 modulo-sched.c: Fix comment typo.
gcc/
	* modulo-sched.c: Fix comment typo.  Mention the possibility
	of using scheduling windows of II+1 cycles.

From-SVN: r179788
2011-10-11 08:17:26 +00:00
Tristan Gingold
6637388fdc c.opt: (fallow-parameterless-variadic-functions): New.
c-family/ChangeLog
2011-10-11  Tristan Gingold  <gingold@adacore.com>

        * c.opt: (fallow-parameterless-variadic-functions): New.

ChangeLog
2011-10-11  Tristan Gingold  <gingold@adacore.com>

        * doc/invoke.texi (C Dialect Options): Document
        -fallow-parameterless-variadic-functions.
        * c-parser.c (c_parser_parms_list_declarator): Handle it.

testsuite/ChangeLog
2011-10-11  Tristan Gingold  <gingold@adacore.com>

        * gcc.dg/va-arg-4.c: New test.
        * gcc.dg/va-arg-5.c: Ditto.

From-SVN: r179786
2011-10-11 07:13:59 +00:00
Tobias Burnus
10d1dc24ff ChangeLog: Fix PR number.
2011-10-11  Tobias Burnus  <burnus@net-b.de>

        * gcc/fortran/ChangeLog: Fix PR number.
        * gcc/testsuite/ChangeLog: Ditto.

From-SVN: r179785
2011-10-11 09:12:14 +02:00
Paolo Carlini
6dc99b7927 re PR c++/50660 (warning about pass NULL to non pointer argument happens twice)
2011-10-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/50660
	* call.c (conversion_null_warnings): Don't look through references.

From-SVN: r179779
2011-10-11 01:28:34 +00:00
GCC Administrator
e44f4f11a5 Daily bump.
From-SVN: r179778
2011-10-11 00:19:09 +00:00
Uros Bizjak
665f4c1f16 target-supports.exp (check_effective_target_fd_truncate): Close and unlink test file before exit.
* lib/target-supports.exp (check_effective_target_fd_truncate):
	Close and unlink test file before exit.

From-SVN: r179774
2011-10-11 00:24:21 +02:00
Ian Lance Taylor
d58818f7ba re PR c++/48665 (type of const member function)
PR c++/48665
	* cp-demangle.c (d_cv_qualifiers): If qualifiers are applied to a
	function type, change them to apply to the "this" parameter.
	* testsuite/demangle-expected: Add test case.

From-SVN: r179772
2011-10-10 20:34:20 +00:00
Matthias Klose
06fe026c0c posix95: Remove empty directory.
2011-10-10  Matthias Klose  <doko@ubuntu.com>

        * config/posix95: Remove empty directory.

From-SVN: r179771
2011-10-10 19:27:31 +00:00
Thomas Koenig
2855325f50 re PR fortran/50564 (Front-end optimization - ICE with FORALL)
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
2011-10-10 19:07:35 +00:00
Benjamin Kosnik
50da34bb1b re PR libstdc++/49818 (libsupc++ does not export __cxa_get_globals or related functions)
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
2011-10-10 19:03:39 +00:00
Aldy Hernandez
13d563f074 simulate-thread.gdb: Call wrappers for *other_threads() and *final_verify().
* 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
2011-10-10 18:32:07 +00:00
Uros Bizjak
fa6963330d gcc-gdb-test.exp (gdb-test): Delete $cmd_file before return.
* lib/gcc-gdb-test.exp (gdb-test): Delete $cmd_file before return.

From-SVN: r179767
2011-10-10 20:23:30 +02:00
Georg-Johann Lay
16bbc87591 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
2011-10-10 17:25:48 +00:00
Uros Bizjak
19f4664b8d * ChangeLog: Add PR number.
From-SVN: r179764
2011-10-10 19:07:56 +02:00
Uros Bizjak
6e0893157c re PR bootstrap/50665 (Bootstrap failure)
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
2011-10-10 19:04:41 +02:00
Janis Johnson
cf327057da * gcc.dg/graphite/id-pr46845.c: Include powerpc for warning options.
From-SVN: r179762
2011-10-10 16:41:12 +00:00
Anatoly Sokolov
45dbdfd482 cris.c (cris_preferred_reload_class): New function.
* 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
2011-10-10 20:39:26 +04:00
Georg-Johann Lay
917e14f3d2 avr.md (*tablejump_rjmp): Change insn condition to !AVR_HAVE_JMP_CALL.
* 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
2011-10-10 16:31:22 +00:00
Richard Henderson
82675d94de * doc/md.texi (vec_perm_const): Fix typo in cindex.
From-SVN: r179759
2011-10-10 09:22:21 -07:00
Kirill Yukhin
aafdb0d754 Fix a typo in x86 FMA.
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
2011-10-10 09:07:15 -07:00
Richard Guenther
a24ac4609a 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
2011-10-10 15:45:53 +00:00
Richard Guenther
40b6510f2e ipa-split.c (pass_split_functions): Add verification TODOs.
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
2011-10-10 15:42:28 +00:00
Richard Guenther
4d8b88e8f2 re PR middle-end/50195 (Linking time error with -fast-math -O0)
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
2011-10-10 14:25:34 +00:00
Aldy Hernandez
ff8e7c4d68 gcc-simulate-thread.exp: New.
* 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
2011-10-10 13:42:41 +00:00
Nick Clifton
53fbb7241f 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
2011-10-10 13:31:03 +00:00
Michael Matz
88fe4be8e1 re PR middle-end/50638 (emulated TLS fails)
PR middle-end/50638
        * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.

From-SVN: r179745
2011-10-10 11:59:29 +00:00
Richard Sandiford
752cdc4e29 modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
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
2011-10-10 11:42:55 +00:00
Richard Sandiford
1287d8ea2c modulo-sched.c (ps_insn): Adjust comment.
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
2011-10-10 11:42:38 +00:00
Richard Sandiford
88e9c867a9 modulo-sched.c (ps_insn): Replace node field with an identifier.
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
2011-10-10 11:42:21 +00:00