Commit Graph

119630 Commits

Author SHA1 Message Date
Jan Hubicka
4d84e22c4b builtins.def (BUILT_IN_UNREACHABLE): Make ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST.
* builtins.def (BUILT_IN_UNREACHABLE): Make ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST.
	* builtin-attrs.def (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.

From-SVN: r192632
2012-10-20 10:12:36 +00:00
Jonathan Wakely
ae40b500d2 * include/std/scoped_allocator: Avoid badname.
From-SVN: r192629
2012-10-20 03:08:37 +01:00
GCC Administrator
8ddc008379 Daily bump.
From-SVN: r192628
2012-10-20 00:18:42 +00:00
Michael Meissner
ad1a0853e6 rs6000-cpus.def (POWERPC_MASKS): Don't assume OPTION_MASK_STRICT_ALIGN is defined.
[gcc]
2012-10-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Dominique Dhumieres  <dominiq@lps.ens.fr>

	* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Don't assume
	OPTION_MASK_STRICT_ALIGN is defined.
	(MASK_STRICT_ALIGN): If OPTION_MASK_STRICT_ALIGN is not defined,
	define this to 0 for the 3 ports that use it.

	* config/rs6000/rs6000.c (OPTION_MASK_STRICT_ALIGN): Don't do
	check for ports not having -mstrict-align here, move test to
	rs6000-cpus.def.
	(MASK_STRICT_ALIGN): Likewise.
	(rs6000_debug_reg_global): Print out correct target flag words if
	-mdebug=reg.

[libobjc]
2012-10-19  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* encoding.c (TARGET_VSX): Provide definitions based on the
	current compilation options, and not based off the target options
	structure.
	(TARGET_ALTIVEC): Likewise.
	(TARGET_64BIT): Likewise.


Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>

From-SVN: r192623
2012-10-19 19:10:03 +00:00
Janus Weil
704fc8502f re PR fortran/54224 (Warn for unused internal procedures)
2012-10-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54224
	* trans-expr.c (conv_function_val): Set TREE_USED.

2012-10-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54224
	* gfortran.dg/warn_unused_function.f90: New.

From-SVN: r192620
2012-10-19 19:14:46 +02:00
Marek Polacek
af89bd042d re PR middle-end/54945 (Too strong non-aliasing analysis?)
PR54945

From-SVN: r192617
2012-10-19 16:53:39 +00:00
Jonathan Wakely
db2415a9a1 * doc/xml/manual/status_cxx2011.xml: Update.
From-SVN: r192616
2012-10-19 17:53:32 +01:00
Greta Yorsh
cf5607f85a target-supports.exp (check_effective_target_arm_prefer_ldrd_strd): New procedure.
2012-10-19  Greta Yorsh  <Greta.Yorsh@arm.com>

gcc/testsuite/

        * gcc.target/arm/target-supports.exp (check_effective_target_arm_prefer_ldrd_strd): 
        New procedure.

gcc/

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	new effective target keyword arm_prefer_ldrd_strd.

From-SVN: r192615
2012-10-19 17:33:28 +01:00
Jonathan Wakely
644b2e4c0d scoped_allocator (__outermost_alloc_traits): Define.
* include/std/scoped_allocator (__outermost_alloc_traits): Define.
	(scoped_allocator_adaptor::destroy): Use it.
	(scoped_allocator_adaptor::construct): Likewise. Overload for
	piecewise construction of std::pair objects.
	* testsuite/20_util/scoped_allocator/2.cc: New.
	* doc/xml/manual/status_cxx2011.xml: Update.

From-SVN: r192613
2012-10-19 17:16:11 +01:00
Richard Guenther
e665269ada re PR tree-optimization/54981 (Different code generated with / without `-g')
2012-10-19  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/54981
	* tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p):
	Do not consider debug stmts as uses.

	* gcc.dg/pr54981.c: New testcase.

From-SVN: r192612
2012-10-19 13:05:40 +00:00
Richard Biener
dfc2e2acc9 re PR tree-optimization/54976 (FAIL: gcc.dg/torture/pr47975.c (internal compiler error))
2012-10-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/54976
	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
	Robustify against odd inner_mode inputs.

From-SVN: r192611
2012-10-19 10:32:29 +00:00
Zhenqiang Chen
57fc62cb32 re PR target/54892 (, ICE in extract_insn, at recog.c:2123)
gcc/ChangeLog
	PR target/54892
	* config/arm/arm.c (arm_expand_compare_and_swap): Use SImode to make
	sure the mode is correct when falling through from above cases.

	gcc/testsuite/ChangeLog
	PR target/54892
	* gcc.target/arm/pr54892.c: New.

From-SVN: r192609
2012-10-19 09:24:39 +00:00
Jan Hubicka
c8379865b3 cunroll-1.c: New testcase.
* gcc.dg/tree-ssa/cunroll-1.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-2.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-3.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-4.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-5.c: New testcase.

From-SVN: r192608
2012-10-19 09:17:06 +00:00
Bin Cheng
b11f0116d6 common.opt (flag_ira_hoist_pressure): New.
gcc/ChangeLog
	* common.opt (flag_ira_hoist_pressure): New.
	* doc/invoke.texi (-fira-hoist-pressure): Describe.
	* ira-costs.c (ira_set_pseudo_classes): New parameter.
	* ira.h: Update copyright dates.
	(ira_set_pseudo_classes): Update prototype.
	* haifa-sched.c (sched_init): Update call.
	* ira.c (ira): Update call.
	* regmove.c: Update copyright dates.
	(regmove_optimize): Update call.
	* loop-invariant.c: Update copyright dates.
	(move_loop_invariants): Update call.
	* gcse.c: (struct bb_data): New structure.
	(BB_DATA): New macro.
	(curr_bb, curr_reg_pressure): New static variables.
	(should_hoist_expr_to_dom): Rename from hoist_expr_reaches_here_p.
	Change parameter expr_index to expr.
	New parameters pressure_class, nregs and hoisted_bbs.
	Use reg pressure to determine the distance expr can be hoisted.
	(hoist_code): Use reg pressure to direct the hoist process.
	(get_regno_pressure_class, get_pressure_class_and_nregs)
	(change_pressure, calculate_bb_reg_pressure): New.
	(one_code_hoisting_pass): Calculate register pressure. Allocate
	and free data.

	gcc/testsuite/ChangeLog
	* testsuite/gcc.dg/hoist-register-pressure.c: New test.

From-SVN: r192604
2012-10-19 05:42:24 +00:00
Bin Cheng
8cba9a0536 gcse.c: Update copyright dates.
* gcse.c: Update copyright dates.
	(hoist_expr_reaches_here_p): Change parameter type from char *
	to sbitmap.

From-SVN: r192603
2012-10-19 05:34:44 +00:00
Sebastian Huber
0524295766 config.host (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename "arm*-*-rtemseabi*" to "arm*-*-rtems*".
2012-10-18  Sebastian Huber <sebastian.huber@embedded-brains.de>

	* config.host
	(arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
	"arm*-*-rtemseabi*" to "arm*-*-rtems*".

From-SVN: r192600
2012-10-19 01:18:36 +00:00
Sebastian Huber
153c839726 config.host (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename "arm*-*-rtemseabi*" to "arm*-*-rtems*".
2012-10-18  Sebastian Huber <sebastian.huber@embedded-brains.de>

	* config.host
	(arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename
	"arm*-*-rtemseabi*" to "arm*-*-rtems*".

From-SVN: r192599
2012-10-19 01:17:53 +00:00
GCC Administrator
31f63cfa42 Daily bump.
From-SVN: r192598
2012-10-19 00:18:48 +00:00
Alan Modra
38e1b75fc8 configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
* configure.ac (HAVE_LD_NO_DOT_SYMS): Set if using gold.
	(HAVE_LD_LARGE_TOC): Likewise.
	* configure: Regenerate.

From-SVN: r192593
2012-10-19 09:32:25 +10:30
Paolo Carlini
69e3fb7d12 re PR c++/54501 (infinite recursion on illegal code)
/cp
2012-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54501
	* decl.c (reshape_init_array_1): Avoid infinite loops.

/testsuite
2012-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54501
	* g++.dg/init/array30.C: New.
	* g++.dg/init/array31.C: Likewise.

From-SVN: r192592
2012-10-18 22:48:35 +00:00
Alan Modra
abe6d88d4a predicates.md (splat_input_operand): Don't call input_operand for MEMs.
* config/rs6000/predicates.md (splat_input_operand): Don't call
	input_operand for MEMs.  Instead check for volatile and call
	memory_address_addr_space_p with modified mode.

From-SVN: r192590
2012-10-19 09:03:15 +10:30
Uros Bizjak
13299a8e75 i386.md (rdpmc): Remove expander.
* config/i386/i386.md (rdpmc): Remove expander.
	(rdtsc): Ditto.
	(rdtscp): Ditto.
	(rdpmc): Rename from *rdpmc.
	(rdpmc_rex64): Rename from *rdpmc_rex64.
	(rdtsc): Rename from *rdtsc.
	(rdtsc_rex64): Rename from *rdtsc_rex64.
	(rdtscp): Rename from *rdtscp.
	(rdtscp_rex64): Rename from *rdtscp_rex64.

	* config/i386/i386.c (struct builtin_description bdesc_special_args)
	<IX86_BUILTIN_RDTSC>: Use CODE_FOR_NOTHING.
	<IX86_BUILTIN_RDTSCP>: Ditto.
	(struct builtin_description bdesc__args) <IX86_BUILTIN_RDPMC>: Ditto.
	(ix86_expand_builtin) <IX86_BUILTIN_{RDPMC,RDTSC,RDTSCP}>: Handle here.

From-SVN: r192589
2012-10-18 23:46:52 +02:00
Jonathan Wakely
7aad1ae2b2 forward_list.h: Add C++11 allocator support.
* include/bits/forward_list.h: Add C++11 allocator support.
	* include/bits/forward_list.tcc: Likewise.
	* doc/xml/manual/status_cxx2011.xml: Update.
	* testsuite/23_containers/forward_list/allocator/copy.cc: New.
	* testsuite/23_containers/forward_list/allocator/copy_assign.cc: New.
	* testsuite/23_containers/forward_list/allocator/minimal.cc: New.
	* testsuite/23_containers/forward_list/allocator/move_assign.cc: New.
	* testsuite/23_containers/forward_list/allocator/noexcept.cc: New.
	* testsuite/23_containers/forward_list/allocator/swap.cc: New.

From-SVN: r192588
2012-10-18 22:06:21 +01:00
François Dumont
14cbb5d84c formatter.h (_Debug_msg_id): Add __msg_valid_load_factor.
2012-10-18  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/formatter.h (_Debug_msg_id): Add
	__msg_valid_load_factor.
	* include/debug/macros.h (__glibcxx_check_max_load_factor): New.
	* include/debug/unordered_set
	(unordered_set<>::max_load_factor(float)): Check max load factor
	is positive.
	(unordered_multiset<>::max_load_factor(float)): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::max_load_factor(float)): Likewise.
	(unordered_multimap<>::max_load_factor(float)): Likewise.
	* testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
	New.
	* testsuite/23_containers/unordered_multimap/debug/
	max_load_factor_neg.cc: New.
	* testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc:
	New.
	* testsuite/23_containers/unordered_multiset/debug/
	max_load_factor_neg.cc: New.

From-SVN: r192575
2012-10-18 19:50:37 +00:00
Eric Botcazou
67e4210bf1 c-ada-spec.c (LOCATION_COL): Delete.
* c-ada-spec.c (LOCATION_COL): Delete.
	(compare_location): New function.
	(compare_node): Use it.
	(compare_comment): Likewise.

From-SVN: r192574
2012-10-18 18:47:23 +00:00
Jan-Benedict Glaw
21a11667fc Changelog: Fix whitespace.
2012-10-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

gcc/
	* Changelog: Fix whitespace.

From-SVN: r192573
2012-10-18 18:07:17 +00:00
Jan-Benedict Glaw
86cf62b8b5 sh.c: Fix comment to silence warning.
2012-10-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

gcc/
	* config/sh/sh.c: Fix comment to silence warning.

From-SVN: r192572
2012-10-18 17:59:37 +00:00
Tobias Burnus
fd0611850d re PR fortran/54884 (Externally used PRIVATE module procedure wrongly marked as TREE_PUBLIC()=0)
2012-10-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54884
        * resolve.c (specification_expr): Change to bool.
        (resolve_formal_arglist, resolve_symbol): Set
        specification_expr to true before resolving the array spec.
        (resolve_variable, resolve_charlen, resolve_fl_variable):
        Properly reset specification_expr.
        (resolve_function): Set public_use when used in
        a specification expr.

2012-10-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/54884
        * gfortran.dg/public_private_module_7.f90: New.

From-SVN: r192571
2012-10-18 19:09:13 +02:00
Paolo Carlini
0fb2e99454 re PR c++/29633 (syntax error in do/while condition with templates reports incorrect line number)
2012-10-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/29633
	* g++.dg/template/pr29633.C: New.

From-SVN: r192570
2012-10-18 17:02:10 +00:00
Matthew Gretton-Dann
855828f1b1 A15 neon description.
2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
            Sameera Deshpande  <sameera.deshpande@arm.com>

           * config/arm/cortex-a15-neon.md: New file.
           * config/arm/cortex-a15.md (cortex_a15_call): Adjust reservation.
           (cortex_a15_load1): Likewise.
           (cortex_a15_load3): Likewise.
           (cortex_a15_store1): Likewise.
           (cortex_a15_store3): Likewise.
           (cortex-a15-neon.md): Include.




Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Co-Authored-By: Sameera Deshpande <sameera.deshpande@arm.com>

From-SVN: r192569
2012-10-18 16:43:15 +00:00
Segher Boessenkool
1ba24090f6 altivec.md (altivec_lvsl, [...]): Add mode.
gcc/
	* config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Add mode.
	(altivec_vsumsws_nomode): Delete.
	(reduc_splus_<mode>, reduc_uplus_<mode>): Call gen_altivec_vsumsws
	instead of gen_altivec_vsumsws_nomode.
	(altivec_lvlx, altivec_lvlxl, altivec_lvrx, altivec_lvrxl):
	Add mode.
	* config/rs6000/rs6000.md (probe_stack): Rename to...
	(probe_stack_<mode>): ... this.  Add mode.  Change pattern to
	use std instead of stw when appropriate.
	(probe_stack): New expander.
	(move_from_CR_ov_bit): Add mode.
	(splitter for compare_plus_ne0_<mode>, splitter for
	compare_plus_ne0_<mode>_1): Remove constraints.
	* config/rs6000/sync.md (loadsync): Rename to...
	(loadsync_<mode>): ... this.  Add mode.
	(atomic_load<mode>): Adjust.

From-SVN: r192568
2012-10-18 18:35:07 +02:00
Eric Botcazou
1a17bd3504 loop-invariant.c: Include target.h.
* loop-invariant.c: Include target.h.
	(check_dependency): Return false for an uninitialized argument register
	that is likely to be spilled.
	* Makefile.in (loop-invariant.o): Add $(TARGET_H).

From-SVN: r192566
2012-10-18 15:46:04 +00:00
Eric Botcazou
27a9462d4f * except.c (sjlj_emit_function_enter): Remove unused variable.
From-SVN: r192565
2012-10-18 15:38:26 +00:00
Matthew Gretton-Dann
c42163885f Add support for fma intrinsics for ARM.
Correct dates in changelog from earlier commit.


2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/arm/arm.c (neon_builtin_data): Add vfma and vfms
      	builtins.
        * config/arm/neon-docgen.ml (intrinsic_groups): Add
        fused-multiply-* groups.
        * config/neon-gen.ml (print_feature_test_start): New function.
        (print_feature_test_end): Likewise.
        (print_variant): Print feature test macros.
        * config/arm/neon-testgen.ml (emit_prologue): Allow different
        tests to require different effective targets.
        (effective_target): New function.
        (test_intrinsic): Specify correct effective targets.
        * gcc/config/arm/neon.md (fma<VCVTF:mode>4_intrinsic): New pattern.
        (fmsub<VCVTF:mode>4_intrinsic): Likewise.
        (neon_vfma<VCVFT:mode>): New expand.
        (neon_vfms<VCVFT:mode>): Likewise.
        * config/neon.ml (opcode): Add Vfma and Vfms.
        (features): Add Requires_feature.
        (ops): Add VFMA and VFMS intrinsics.
        * config/arm/arm_neon.h: Regenerate.
        * doc/arm-neon-intrinsics.texi: Likewise.





2012-10-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

        * gcc.target/arm/neon/vfmaQf32.c: New testcase.
        * gcc.target/arm/neon/vfmaf32.c: Likewise.
        * gcc.target/arm/neon/vfmsQf32.c: Likewise.
        * gcc.target/arm/neon/vfmsf32.c: Likewise.



Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

From-SVN: r192560
2012-10-18 12:02:01 +00:00
Richard Guenther
c61f8c3b79 lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
2012-10-18  Richard Guenther  <rguenther@suse.de>

	* lto-streamer.h (enum LTO_tags): Add LTO_integer_cst.
	* lto-streamer-in.c (lto_input_tree): Use it.
	* lto-streamer-out.c (lto_output_tree): Likewise, for
	!TREE_OVERFLOW integer constants only.
	* tree-streamer-in.c (unpack_ts_int_cst_value_fields): New function.
	(unpack_value_fields): Call it.
	(streamer_read_integer_cst): Simplify.
	* tree-streamer-out.c (pack_ts_int_cst_value_fields): New function.
	(streamer_pack_tree_bitfields): Call it.
	(streamer_write_integer_cst): Adjust.

From-SVN: r192559
2012-10-18 10:59:55 +00:00
Matthew Gretton-Dann
595fefee5d Add basic armv8-a support
2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

	* config/arm/lib1funcs.S (__ARM_ARCH__): Define for ARMv8-A.

2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>

        * gcc.target/arm/ftest-armv8a-arm.c: New testcase.
        * gcc.target/arm/ftest-armv8a-thumb.c: Likewise.
        * gcc.target/arm/ftest-support-arm.h (feature_matrix): Add
        ARMv8-A row.
        * gcc.target/arm/ftest-support-thumb.h (feature_matrix):
        Likewise.
        * gcc.target/arm/ftest-support.h (architecture): Add ARMv8-A.
        * lib/target-supports.exp: Add ARMv8-A architecture expectation.

2012-10-17  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config.gcc: Add support for ARMv8 for arm*-*-* targets.
        * config/arm/arm-arches.def: Add armv8-a
        * config/arm/arm-fpus.def: Add fp-armv8, neon-fp-armv8,
        crypto-neon-fp-armv8.  Add crypto field.
        * config/arm/arm-tables.opt: Regenerate.
        * config/arm/arm.c (FL_FOR_ARCH8A): Likewise.
        (arm_arch8): New global variable.
        (ARM_FPU): Add crypto parameter.
        (arm_option_override): Set arm_arch8, update comments.
        * config/arm/arm.h (TARGET_CRYPTO): New macro.
        (arm_fpu_desc): Add crypto field.
        (base_architecture): Add ARMv8 entry.
        (arm_arch8): New variable declaration.
        * config/arm/bpabi.h: ARMv8 supports BE8.
        * doc/invoke.texi: Document ARMv8 options.






Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>

From-SVN: r192558
2012-10-18 10:49:23 +00:00
Benjamin Kosnik
a9ba8ba56c move.h (move_if_noexcept): Mark constexpr.
2012-10-17  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/move.h (move_if_noexcept): Mark constexpr.
	* include/std/array (front, back): Same.
	* include/std/chrono: Add comment.
	* include/std/tuple (__tuple_compare): Mark __eq, __less constexpr.
	(operator ==, <, >, !=, <=, >=): Same.
	* testsuite/20_util/forward/c_neg.cc: Adjust line numbers.
	* testsuite/20_util/forward/f_neg.cc: Same.
	* testsuite/20_util/move_if_noexcept/constexpr.cc: New.
	* testsuite/20_util/tuple/comparison_operators/constexpr.cc: New.
	* testsuite/20_util/tuple/creation_functions/constexpr.cc: Add.
	* testsuite/23_containers/array/element_access/
	constexpr_element_access.cc: Same.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
	line numbers.
	* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
	Same.

	* testsuite/20_util/tuple/comparison_operators/35480_neg.cc:
          Temporarily add dg-excess-errors.

From-SVN: r192556
2012-10-18 08:36:06 +00:00
GCC Administrator
2167642932 Daily bump.
From-SVN: r192552
2012-10-18 00:18:37 +00:00
Aldy Hernandez
a3770d3b7d re PR middle-end/54893 (unable to access volatile variable within relaxed transaction)
PR middle-end/54893
        * trans-mem.c (diagnose_tm_1_op): Allow volatiles inside relaxed
        transactions.

From-SVN: r192549
2012-10-17 21:18:16 +00:00
Aldy Hernandez
a7b159a4dc re PR rtl-optimization/54900 (write introduction incorrect wrt the C11 memory model (2))
PR rtl-optimization/54900
	* ifcvt.c (noce_can_store_speculate_p): Call
	memory_must_be_modified_in_insn_p.
	* alias.c (memory_must_be_modified_in_insn_p): New.
	(set_dest_equal_p): New.
	* rtl.h (memory_must_be_modified_in_p): Protoize.

From-SVN: r192548
2012-10-17 20:59:40 +00:00
Michael Meissner
4d9675496a rs6000.opt (rs6000_isa_flags): New flag word to replace target_flags that gives us 63 possible switches.
2012-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (rs6000_isa_flags): New flag word to
	replace target_flags that gives us 63 possible switches.
	(x_rs6000_isa_flags): Save area for rs6000_isa_flags.
	(x_rs6000_isa_flags_explicit): Save area for
	rs6000_isa_flags_explicit.
	(rs6000_target_flags_explicit): Delete in favor of
	x_rs6000_isa_flags_explicit.
	(-mpowerpc64): Change all switches that used to be in target_flags
	to now be in rs6000_isa_flags.  In using rs6000_isa_flags, the
	options machinary will generate names of the form OPITON_<xxx>
	instead of TARGET_<xxx> and OPTION_MASK_<xxx> instead of
	MASK_<xxx>.
	(-mpowerpc-gpopt): Likewise.
	(-mpowerpc-gfxopt): Likewise.
	(-mmfcrf): Likewise.
	(-mpopcntb): Likewise.
	(-mfprnd): Likewise.
	(-mcmpb): Likewise.
	(-mmfpgpr): Likewise.
	(-maltivec): Likewise.
	(-mhard-dfp): Likewise.
	(-mmulhw): Likewise.
	(-mdlmzb): Likewise.
	(-mmultiple): Likewise.
	(-mstring): Likewise.
	(-msoft-float): Likewise.
	(-mhard-float): Likewise.
	(-mpopcntd): Likewise.
	(-mvsx): Likewise.
	(-mno-update): Likewise.
	(-mupdate): Likewise.
	(-mrecip-precision): Likewise.
	(-mminimal-toc): Likewise.
	(-misel): Likewise.
	* config/rs6000/aix64.opt (-maix64): Likewise.
	(-maix32): Likewise.
	* config/rs6000/sysv4.opt (-mstrict-align): Likewise.
	(-mrelocatable): Likewise.
	(-mlittle-endian): Likewise.
	(-mlittle): Likewise.
	(-mbig-endian): LIkewise.
	(-mbig): Likewise.
	(-meabi): Likewise.
	(-m64): Likewise.
	(-m32): Likewise.
	* config/rs6000/darwin.opt (-m64): Likewise.
	(-m32): Likewise.

	* config/rs6000/rs6000-cpus.def (ISA_2_1_MASKS): Move the various
	masks used in rs6000.c here, since they are more logically in this
	file.  Convert from being enums to just #defines, since the types
	of these masks is now HOST_WIDE_INT instead of int.  For
	POWERPC_MASKS, add MASK_SOFT_FLOAT, since the only use case or'ed
	in the mask.  Change the use in rs6000.c not to do the OR of
	MASK_SOFT_FLOAT.
	(ISA_2_1_MASKS): Likewise.
	(ISA_2_2_MASKS): Likewise.
	(ISA_2_4_MASKS): Likewise.
	(ISA_2_5_MASKS_EMBEDDED): Likewise.
	(ISA_2_5_MASKS_SERVER): Likewise.
	(POWERPC_7400_MASK): Likewise.
	(POWERPC_MASKS): Likewise.
	* config/rs6000/rs6000.c (ISA_2_1_MASKS): Likewise.
	(ISA_2_1_MASKS): Likewise.
	(ISA_2_2_MASKS): Likewise.
	(ISA_2_4_MASKS): Likewise.
	(ISA_2_5_MASKS_EMBEDDED): Likewise.
	(ISA_2_5_MASKS_SERVER): Likewise.
	(POWERPC_7400_MASK): Likewise.
	(POWERPC_MASKS): Likewise.
	(rs6000_option_override_internal): Likewise.

	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Change
	all uses of target_flags to rs6000_isa_flags.  Change all uses of
	target_flags_explicit to rs6000_isa_flags_explicit.  Change the
	use of MASK_<xxx> to OPTION_MASK_<xxx> that options.h defines when
	we use a secondary flags word.  Save/restore/print the new flags
	word when switching contexts with different target attributes.
	(rs6000_option_override_internal): Likewise.
	(rs6000_darwin_file_start): Likewise.
	(rs6000_opt_masks): Likewise.
	(rs6000_inner_target_options): Likewise.
	(rs6000_pragma_target_parse): Likewise.
	(rs6000_set_current_function): Likewise.
	(rs6000_function_specific_save): Likewise.
	(rs6000_function_specific_restore): Likewise.
	(rs6000_function_specific_print): Likewise.
	(rs6000_can_inline_p): Likewise.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
	Likewise.
	(rs6000_cpu_cpp_builtins): Likewise.
	* common/config/rs6000/rs6000-driver.c (rs6000_handle_option):
	Likewise.

	* config/rs6000/rs6000.h (MASK_ALTIVEC): In moving to using
	Var(...) for all of the isa switches, the options machinery now
	uses OPTION_MASK_<xxx> instead of MASK_<xxx> for the mask name.
	Use #define to map the old name into the new name.  For switches
	that are defined in aix64.opt, sysv4.opt, and darwin.opt, only do
	the definition if those switches were defined.
	(MASK_ALTIVEC): Likewise.
	(MASK_CMPB): Likewise.
	(MASK_DFP): Likewise.
	(MASK_DLMZB): Likewise.
	(MASK_EABI): Likewise.
	(MASK_FPRND): Likewise.
	(MASK_HARD_FLOAT): Likewise.
	(MASK_ISEL): Likewise.
	(MASK_MFCRF): Likewise.
	(MASK_MFPGPR): Likewise.
	(MASK_MULHW): Likewise.
	(MASK_MULTIPLE): Likewise.
	(MASK_NO_UPDATE): Likewise.
	(MASK_POPCNTB): Likewise.
	(MASK_POPCNTD): Likewise.
	(MASK_PPC_GFXOPT): Likewise.
	(MASK_PPC_GPOPT): Likewise.
	(MASK_RECIP_PRECISION): Likewise.
	(MASK_SOFT_FLOAT): Likewise.
	(MASK_STRICT_ALIGN): Likewise.
	(MASK_STRING): Likewise.
	(MASK_UPDATE): Likewise.
	(MASK_VSX): Likewise.
	(MASK_POWERPC64): Likewise.
	(MASK_64BIT): Likewise.
	(MASK_RELOCATABLE): Likewise.
	(MASK_LITTLE_ENDIAN): Likewise.
	(MASK_MINIMAL_TOC): Likewise.
	(MASK_REGNAMES): Likewise.
	(MASK_PROTOTYPE): Likewise.
	(rs6000_isa_flags_explicit): Define in terms of the
	global_options_set structure.

	* gcc/config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS):
	Change use of target_flags to rs6000_isa_flags,
	target_flags_explicit to rs6000_isa_flags_explicit, and MASK_<xxx>
	to OPTION_MASK_<xxx>.
	* gcc/config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS):
	Likewise.
	* gcc/config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS):
	Likewise.
	* gcc/config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS):
	Likewise.
	* gcc/config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS):
	Likewise.
	* gcc/config/rs6000/freebsd64.h (RELOCATABLE_NEEDS_FIXUP):
	Likewise.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
	* gcc/config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP):
	Likewise.
	* gcc/config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP):
	Likewise.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(OPTION_LITTLE_ENDIAN): Likewise.
	(OPTION_RELOCATABLE): Likewise.
	(OPTION_EABI): Likewise.
	(OPTION_PROTOTYPE): Likewise.
	* gcc/config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Likewise.
	* gcc/config/rs6000/option-defaults.h (OPTION_MASK_64BIT):
	Likewise.
	(OPT_ARCH32): Likewise.
	(OPT_ARCH64): Likewise.
	* gcc/config/rs6000/sysv4.h (TARGET_TOC): Likewise.
	(SUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
	(TARGET_OS_SYSV_CPP_BUILTINS): Likewise.

	* config/rs6000/t-rs6000 (rs6000.o): Add rs6000-cpus.def as a
	dependency.

From-SVN: r192545
2012-10-17 20:12:38 +00:00
Jan Hubicka
bf45c4c0c1 cfgloopmanip.c (copy_loop_info): New function.
* cfgloopmanip.c (copy_loop_info): New function.
	(duplicate_loop): Use it.
	(loop_version): Use it.
	* loop-unswitch.c (unswitch_loop): Use it.
	* cfgloop.h (copy_loop_info): Declare.

From-SVN: r192543
2012-10-17 19:50:16 +00:00
Jan Hubicka
b7442c2fe0 tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel parameter and use it to estimate code optimized out in the...
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Add edge_to_cancel
	parameter and use it to estimate code optimized out in the final iteration.
	(loop_edge_to_cancel): New function.
	(try_unroll_loop_completely): New IRRED_IVALIDATED parameter;
	handle unrolling loops with bounds given via max_loop_iteratins;
	handle unrolling non-inner loops when code size shrinks;
	tidy dump output; when the last iteration loop still stays
	as loop in the CFG forcongly redirect the latch to
	__builtin_unreachable.
	(canonicalize_loop_induction_variables): Add irred_invlaidated
	parameter; record niter bound derrived; dump
	max_loop_iterations bounds; call try_unroll_loop_completely
	even if no niter bound is given.
	(canonicalize_induction_variables): Handle irred_invalidated.
	(tree_unroll_loops_completely): Handle non-innermost loops;
	handle irred_invalidated.
	* cfgloop.h (unlop): Declare.
	* cfgloopmanip.c (unloop): Export.
	* tree.c (build_common_builtin_nodes): Build BULTIN_UNREACHABLE.

	* gcc.target/i386/l_fma_float_?.c: Update.
	* gcc.target/i386/l_fma_double_?.c: Update.
	* gfortran.dg/do_1.f90: XFAIL
	* gcc.dg/tree-ssa/cunroll-1.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-2.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-3.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-4.c: New testcase.
	* gcc.dg/tree-ssa/cunroll-5.c: New testcase.
	* gcc.dg/tree-ssa/ldist-17.c: Block cunroll to make testcase still
	valid.

From-SVN: r192538
2012-10-17 17:12:05 +00:00
Michael Meissner
90922d3638 opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx> for Mask options, whether they use Var(...) or not.
2012-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* opth-gen.awk (TARGET_* generation): Always generate TARGET_<xxx>
	for Mask options, whether they use Var(...) or not.

	* config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): Use
	TARGET_<xxx> instead of OPTION_<xxx>.
	* config/i386/i386.h (TARGET_64BIT): Likewise.
	(TARGET_MMX): Likewise.
	(TARGET_3DNOW): Likewise.
	(TARGET_3DNOW_A): Likewise.
	(TARGET_SSE): Likewise.
	(TARGET_SSE2): Likewise.
	(TARGET_SSE3): Likewise.
	(TARGET_SSSE3): Likewise.
	(TARGET_SSE4_1): Likewise.
	(TARGET_SSE4_2): Likewise.
	(TARGET_AVX): Likewise.
	(TARGET_AVX2): Likewise.
	(TARGET_FMA): Likewise.
	(TARGET_SSE4A): Likewise.
	(TARGET_FMA4): Likewise.
	(TARGET_XOP): Likewise.
	(TARGET_LWP): Likewise.
	(TARGET_ROUND): Likewise.
	(TARGET_ABM): Likewise.
	(TARGET_BMI): Likewise.
	(TARGET_BMI2): Likewise.
	(TARGET_LZCNT): Likewise.
	(TARGET_TBM): Likewise.
	(TARGET_POPCNT): Likewise.
	(TARGET_SAHF): Likewise.
	(TARGET_MOVBE): Likewise.
	(TARGET_CRC32): Likewise.
	(TARGET_AES): Likewise.
	(TARGET_PCLMUL): Likewise.
	(TARGET_CMPXCHG16B): Likewise.
	(TARGET_FSGSBASE): Likewise.
	(TARGET_RDRND): Likewise.
	(TARGET_F16C): Likewise.
	(TARGET_RTM     ): Likewise.
	(TARGET_HLE): Likewise.
	(TARGET_RDSEED): Likewise.
	(TARGET_PRFCHW): Likewise.
	(TARGET_ADX): Likewise.
	(TARGET_64BIT): Likewise.
	(TARGET_MMX): Likewise.
	(TARGET_3DNOW): Likewise.
	(TARGET_3DNOW_A): Likewise.
	(TARGET_SSE): Likewise.
	(TARGET_SSE2): Likewise.
	(TARGET_SSE3): Likewise.
	(TARGET_SSSE3): Likewise.
	(TARGET_SSE4_1): Likewise.
	(TARGET_SSE4_2): Likewise.
	(TARGET_AVX): Likewise.
	(TARGET_AVX2): Likewise.
	(TARGET_FMA): Likewise.
	(TARGET_SSE4A): Likewise.
	(TARGET_FMA4): Likewise.
	(TARGET_XOP): Likewise.
	(TARGET_LWP): Likewise.
	(TARGET_ROUND): Likewise.
	(TARGET_ABM): Likewise.
	(TARGET_BMI): Likewise.
	(TARGET_BMI2): Likewise.
	(TARGET_LZCNT): Likewise.
	(TARGET_TBM): Likewise.
	(TARGET_POPCNT): Likewise.
	(TARGET_SAHF): Likewise.
	(TARGET_MOVBE): Likewise.
	(TARGET_CRC32): Likewise.
	(TARGET_AES): Likewise.
	(TARGET_PCLMUL): Likewise.
	(TARGET_CMPXCHG16B): Likewise.
	(TARGET_FSGSBASE): Likewise.
	(TARGET_RDRND): Likewise.
	(TARGET_F16C): Likewise.
	(TARGET_RTM): Likewise.
	(TARGET_HLE): Likewise.
	(TARGET_RDSEED): Likewise.
	(TARGET_PRFCHW): Likewise.
	(TARGET_ADX): Likewise.
	(TARGET_LP64): Likewise.
	(TARGET_X32): Likewise.
	(TARGET_ISA_ROUND): Likewise.
	* config/i386/darwin.h (TARGET_64BIT): Likewise.

	* doc/options.texi (Mask): Update documentation to specify only
	TARGET_<xxx> is generated.

From-SVN: r192537
2012-10-17 16:49:26 +00:00
Greta Yorsh
4208399956 arm.md (UNSPEC_PROLOGUE_USE): Rename this...
* config/arm/arm.md (UNSPEC_PROLOGUE_USE): Rename this...
        (UNSPEC_REGISTER_USE): ... to this.
        (prologue_use): Rename this...
	  (force_register_use): ... to this and update output assembly.
        (epilogue) Rename gen_prologue_use to gen_force_register_use.
        * config/arm/arm.c (arm_expand_prologue): Likewise.
        (thumb1_expand_epilogue): Likewise.
        (arm_expand_epilogue): Likewise.
        (arm_expand_epilogue): Likewise.

From-SVN: r192533
2012-10-17 14:17:30 +01:00
Georg-Johann Lay
eb5af262af avr-arch.h (avr_extra_arch_macro): Remove prototype.
* config/avr/avr-arch.h (avr_extra_arch_macro): Remove prototype.
	* config/avr/avr.c (avr_extra_arch_macro): Remove variable.
	(avr_option_override): Remove setting of avr_extra_arch_macro.
	* config/avr/avr-c.c (avr_extra_arch_macro): Replace with
	avr_current_device->macro.

From-SVN: r192532
2012-10-17 12:53:22 +00:00
Richard Biener
3855380a5f tree-streamer-out.c (write_ts_decl_common_tree_pointers): Do not write TREE_CHAIN of PARM_DECLs.
2012-10-17  Richard Biener  <rguenther@suse.de>

	* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
	Do not write TREE_CHAIN of PARM_DECLs.
	(write_ts_decl_non_common_tree_pointers): Instead stream
	the DECL_ARGUMENTS chain.
	* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
	Do not read TREE_CHAIN of PARM_DECLs.
	(lto_input_ts_decl_non_common_tree_pointes): Instead read
	the DECL_ARGUMENTS as chain.

From-SVN: r192529
2012-10-17 10:25:56 +00:00
Steven Bosscher
e0de0c3b40 iq2000.h (call_used_regs): Remove definition.
* config/iq2000/iq2000.h (call_used_regs): Remove definition.

From-SVN: r192528
2012-10-17 09:51:02 +00:00
Eric Botcazou
3768afe916 Add missing entry.
From-SVN: r192527
2012-10-17 07:03:35 +00:00
Steven Bosscher
8c266ffa32 df-problems.c (df_kill_notes): Split up in two functions.
* df-problems.c (df_kill_notes): Split up in two functions.
	(df_remove_dead_and_unused_notes): New function, first half of
	df_kill notes to remove all REG_DEAD and REG_UNUSED notes.
	(df_remove_dead_eq_notes): New function, second half of df_kill_notes
	to remove REG_EQUAL and REG_EQUIV notes referring to dead registers.
	(df_note_bb_compute): Call df_remove_dead_and_unused_notes instead
	of df_kill_notes.  Call df_remove_dead_eq_notes after processing insn.

	* web.c (web): Re-add DF_RD_PRUNE_DEAD_DEFS;

From-SVN: r192526
2012-10-17 06:15:38 +00:00