platform/upstream/gcc.git
11 years ago* pt.c (retrieve_specialization): Handle null tmpl argument.
Jason Merrill [Thu, 21 Mar 2013 03:25:23 +0000 (23:25 -0400)]
* pt.c (retrieve_specialization): Handle null tmpl argument.

From-SVN: r196850

11 years agore PR c++/17232 ([DR 1640] classes and class template specializations treated differe...
Jason Merrill [Thu, 21 Mar 2013 03:25:16 +0000 (23:25 -0400)]
re PR c++/17232 ([DR 1640] classes and class template specializations treated differently w.r.t. core issue #337)

PR c++/17232
PR c++/56642
* pt.c (tsubst_decl): Check return value of register_specialization.
* typeck2.c (abstract_virtuals_error_sfinae): Re-apply complete_type
change.

From-SVN: r196849

11 years agoAdd an atomic test and set pattern on tilegx.
Walter Lee [Thu, 21 Mar 2013 02:08:26 +0000 (02:08 +0000)]
Add an atomic test and set pattern on tilegx.

      * config/tilegx/sync.md (atomic_test_and_set): New pattern.

From-SVN: r196848

11 years agoDaily bump.
GCC Administrator [Thu, 21 Mar 2013 00:16:48 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r196847

11 years ago2013-03-20 Robert Mason <rbmj@verizon.net>
Robert Mason [Wed, 20 Mar 2013 22:01:25 +0000 (22:01 +0000)]
2013-03-20  Robert Mason  <rbmj@verizon.net>

* config/vxlib-tls.c (__gthread_get_tsd_data,)
(__gthread_set_tsd_data, __gthread_enter_tsd_dtor_context,)
(__gthread_leave_tsd_dtor_context): Add prototypes.
(tls_delete_hook): Update.

From-SVN: r196842

11 years agoi386.md (*movoi_internal_avx): Emit insn template depending on type attribute.
Uros Bizjak [Wed, 20 Mar 2013 19:54:47 +0000 (20:54 +0100)]
i386.md (*movoi_internal_avx): Emit insn template depending on type attribute.

* config/i386/i386.md (*movoi_internal_avx): Emit insn template
depending on type attribute.
(*movti_internal): Ditto.
(*movtf_internal): Ditto.
(*movxf_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.

From-SVN: r196841

11 years agoi386.md (*movti_internal): Set prefix attribute to maybe_vex for sselog1 and ssemov...
Uros Bizjak [Wed, 20 Mar 2013 16:49:06 +0000 (17:49 +0100)]
i386.md (*movti_internal): Set prefix attribute to maybe_vex for sselog1 and ssemov types.

* config/i386/i386.md (*movti_internal): Set prefix attribute to
maybe_vex for sselog1 and ssemov types.
(*movdi_internal): Reorder operand constraints.
(*movsi_internal): Ditto.  Set prefix attribute to
maybe_vex for sselog1 and ssemov types.
(*movtf_internal): Set prefix attribute to maybe_vex
for sselog1 and ssemov types.
(*movdf_internal): Ditto.  Set prefix_data16 attribute for
DImode ssemov types.  Reorder operand constraints.
(*movsf_internal): Set type of alternatives 3,4 to imov.  Set prefix
attribute to maybe_vex for sselog1 and ssemov types.  Set prefix_data16
attribute for SImode ssemov types.  Reorder operand constraints.

From-SVN: r196834

11 years agoparams.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
Martin Jambor [Wed, 20 Mar 2013 16:20:22 +0000 (17:20 +0100)]
params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.

2013-03-20  Martin Jambor  <mjambor@suse.cz>

* params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
* ipa-cp.c (hint_time_bonus): Add abonus for known array indices.

From-SVN: r196832

11 years agopredicates.md (indexed_address, [...]): New predicates.
Michael Meissner [Wed, 20 Mar 2013 15:50:27 +0000 (15:50 +0000)]
predicates.md (indexed_address, [...]): New predicates.

[gcc]
2013-03-20  Pat Haugen <pthaugen@us.ibm.com>

* config/rs6000/predicates.md (indexed_address, update_address_mem
update_indexed_address_mem): New predicates.
* config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
attribute for load/store instructions.
* config/rs6000/dfp.md (movsd_store): Likewise.
(movsd_load): Likewise.
* config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
(unnamed HI->DI extend define_insn): Likewise.
(unnamed SI->DI extend define_insn): Likewise.
(unnamed QI->SI extend define_insn): Likewise.
(unnamed QI->HI extend define_insn): Likewise.
(unnamed HI->SI extend define_insn): Likewise.
(unnamed HI->SI extend define_insn): Likewise.
(extendsfdf2_fpr): Likewise.
(movsi_internal1): Likewise.
(movsi_internal1_single): Likewise.
(movhi_internal): Likewise.
(movqi_internal): Likewise.
(movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
attribute for load/store instructions.
(mov<mode>_hardfloat): Set correct "type" attribute for load/store
instructions.
(mov<mode>_softfloat): Likewise.
(mov<mode>_hardfloat32): Likewise.
(mov<mode>_hardfloat64): Likewise.
(mov<mode>_softfloat64): Likewise.
(movdi_internal32): Likewise.
(movdi_internal64): Likewise.
(probe_stack_<mode>): Likewise.

2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
floating point, and decimal floating point to reload iterator.

* config/rs6000/constraints.md (wl constraint): New constraints to
return FLOAT_REGS if certain options are used to reduce the number
of separate patterns that exist in the file.
(wx constraint): Likewise.
(wz constraint): Likewise.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
-mdebug=reg, print wg, wl, wx, and wz constraints.
(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
Initialize the reload functions for 64-bit binary/decimal floating
point types.
(reg_offset_addressing_ok_p): If we are on a power7 or later, use
LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
create the buffer on the stack to overcome not having a 32-bit
load and store.
(rs6000_emit_move): Likewise.
(rs6000_secondary_memory_needed_rtx): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
via xxlxor, just like DFmode 0.0.

* config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
define as 1 if we are running on a power7 or newer.
(enum r6000_reg_class_enum): Add new constraints.

* config/rs6000/dfp.md (movsd): Delete, combine with binary
floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
with other moves by using conditional constraits (wg).  Use LFIWZX
and STFIWX for loading SDmode on power7.  Use xxlxor to create
0.0f.
(movsd splitter): Likewise.
(movsd_hardfloat): Likewise.
(movsd_softfloat): Likewise.

* config/rs6000/rs6000.md (FMOVE32): New iterators to combine
binary and decimal floating point moves.
(fmove_ok): New attributes to combine binary and decimal floating
point moves, and to combine power6x (mfpgpr) moves along normal
floating moves.
(real_value_to_target): Likewise.
(f32_lr): Likewise.
(f32_lm): Likewise.
(f32_li): Likewise.
(f32_sr): Likewise.
(f32_sm): Likewise.
(f32_si): Likewise.
(movsf): Combine binary and decimal floating point moves.  Combine
power6x (mfpgpr) moves with other moves by using conditional
constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on
power7.
(mov<mode> for SFmode/SDmode); Likewise.
(SFmode/SDmode splitters): Likewise.
(movsf_hardfloat): Likewise.
(mov<mode>_hardfloat for SFmode/SDmode): Likewise.
(movsf_softfloat): Likewise.
(mov<mode>_softfloat for SFmode/SDmode): Likewise.

* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
wx and wz constraints.

* config/rs6000/constraints.md (wg constraint): New constraint to
return FLOAT_REGS if -mmfpgpr (power6x) was used.

* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
constraint.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
-mdebug=reg, print wg, wl, wx, and wz constraints.
(rs6000_init_hard_regno_mode_ok): Initialize new constraints.
Initialize the reload functions for 64-bit binary/decimal floating
point types.
(reg_offset_addressing_ok_p): If we are on a power7 or later, use
LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
create the buffer on the stack to overcome not having a 32-bit
load and store.
(rs6000_emit_move): Likewise.
(rs6000_secondary_memory_needed_rtx): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
via xxlxor, just like DFmode 0.0.

* config/rs6000/dfp.md (movdd): Delete, combine with binary
floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
with other moves by using conditional constraits (wg).  Use LFIWZX
and STFIWX for loading SDmode on power7.
(movdd splitters): Likewise.
(movdd_hardfloat32): Likewise.
(movdd_softfloat32): Likewise.
(movdd_hardfloat64_mfpgpr): Likewise.
(movdd_hardfloat64): Likewise.
(movdd_softfloat64): Likewise.

* config/rs6000/rs6000.md (FMOVE64): New iterators to combine
64-bit binary and decimal floating point moves.
(FMOVE64X): Likewise.
(movdf): Combine 64-bit binary and decimal floating point moves.
Combine power6x (mfpgpr) moves with other moves by using
conditional constraits (wg).
(mov<mode> for DFmode/DDmode): Likewise.
(DFmode/DDmode splitters): Likewise.
(movdf_hardfloat32): Likewise.
(mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
(movdf_softfloat32): Likewise.
(movdf_hardfloat64_mfpgpr): Likewise.
(movdf_hardfloat64): Likewise.
(mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
(movdf_softfloat64): Likewise.
(mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
(reload_<mode>_load): Move to later in the file so they aren't in
the middle of the floating point move insns.
(reload_<mode>_store): Likewise.

* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
constraint.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
constraint if -mdebug=reg.
(rs6000_initi_hard_regno_mode_ok): Enable wg constraint if
-mfpgpr.  Enable using dd reload support if needed.

* config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
binary and decimal floating point moves in rs6000.md.
(movtd_internal): Likewise.

* config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
decimal floating point moves.
(movtf): Likewise.
(movtf_internal): Likewise.
(mov<mode>_internal, TDmode/TFmode): Likewise.
(movtf_softfloat): Likewise.
(mov<mode>_softfloat, TDmode/TFmode): Likewise.

* config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
movdi_internal64, using wg constraint for move direct operations.
(movdi_internal64): Likewise.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
MODES_TIEABLE_P for selected modes.  Print the numerical value of
the various virtual registers. Use GPR/FPR first/last values,
instead of hard coding the register numbers.  Print which modes
have reload functions registered.
(rs6000_option_override_internal): If -mdebug=reg, trace the
options settings before/after setting cpu, target and subtarget
settings.
(rs6000_secondary_reload_trace): Improve the RTL dump for
-mdebug=addr and for secondary reload failures in
rs6000_secondary_reload_inner.
(rs6000_secondary_reload_fail): Likewise.
(rs6000_secondary_reload_inner): Likewise.

* config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
macros for first/last GPR and FPR registers.
(LAST_GPR_REGNO): Likewise.
(FIRST_FPR_REGNO): Likewise.
(LAST_FPR_REGNO): Likewise.

* config/rs6000/vector.md (mul<mode>3): Use the combined macro
VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
(vcond<mode><mode>): Likewise.
(vcondu<mode><mode>): Likewise.
(vector_gtu<mode>): Likewise.
(vector_gte<mode>): Likewise.
(xor<mode>3): Don't allow logical operations on TImode in 32-bit
to prevent the compiler from converting DImode operations to
TImode.
(ior<mode>3): Likewise.
(and<mode>3): Likewise.
(one_cmpl<mode>2): Likewise.
(nor<mode>3): Likewise.
(andc<mode>3): Likewise.

* config/rs6000/constraints.md (wt constraint): New constraint
that returns VSX_REGS if TImode is allowed in VSX registers.

* config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
constant under VSX.

* config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
similar to TImode, but it is restricted to being in the GPRs.

* config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
TImode to occupy a single VSX register.

* config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
-mvsx-timode for power7/power8.
(power7 cpu): Likewise.
(power8 cpu): Likewise.

* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
sure that TFmode/TDmode take up two registers if they are ever
allowed in the upper VSX registers.
(rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
registers.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_debug_reg_global): Add debugging for PTImode and wt
constraint.  Print if LRA is turned on.
(rs6000_option_override_internal): Give an error if -mvsx-timode
and VSX is not enabled.
(invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
-mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
to reg+offset addressing.  Use PTImode when checking offset
addresses for validity.
(reg_offset_addressing_ok_p): Likewise.
(rs6000_legitimate_offset_address_p): Likewise.
(rs6000_legitimize_address): Likewise.
(rs6000_legitimize_reload_address): Likewise.
(rs6000_legitimate_address_p): Likewise.
(rs6000_eliminate_indexed_memrefs): Likewise.
(rs6000_emit_move): Likewise.
(rs6000_secondary_reload): Likewise.
(rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
reloads to fpr registers to continue to use reg+offset addressing,
but 64-bit reloads to altivec registers need reg+reg addressing.
Drop test for PRE_MODIFY, since VSX loads/stores no longer support
it.  Treat LO_SUM like a PLUS operation.
(rs6000_secondary_reload_class): If type is 64-bit, prefer to use
FLOAT_REGS instead of VSX_RGS to allow use of reg+offset
addressing.
(rs6000_cannot_change_mode_class): Do not allow TImode in VSX
registers to share a register with a smaller sized type, since VSX
puts scalars in the upper 64-bits.
(print_operand): Add support for PTImode.
(rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
registers, but don't have arithmetic support.
(rs6000_memory_move_cost): Add test for VSX.
(rs6000_opt_masks): Add -mvsx-timode.

* config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
for TImode.
(VSs): Likewise.
(VSr): Use wt constraint for TImode.
(VSv): Drop TImode support.
(vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
(vsx_movti_64bit): Likewise.
(vsx_movti_32bit): Likewise.
(vec_store_<mode>): Use VSX iterator instead of vector iterator.
(vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
one '?' on the appropriate output constraint.  Do not allow TImode
logical operations on 32-bit systems.
(vsx_ior<mode>3): Likewise.
(vsx_xor<mode>3): Likewise.
(vsx_one_cmpl<mode>2): Likewise.
(vsx_nor<mode>3): Likewise.
(vsx_andc<mode>3): Likewise.
(vsx_concat_<mode>): Likewise.
(vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.

* config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
OPTION_MASK_VSX_TIMODE.
(enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
(STACK_SAVEAREA_MODE): Use PTImode instead of TImode.

* config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
(TI2 iterator): New iterator for TImode, PTImode.
(wd mode attribute): Add values for vector types.
(movti_string): Replace TI move operations with operations for
TImode and PTImode.  Add support for TImode being allowed in VSX
registers.
(mov<mode>_string, TImode/PTImode): Likewise.
(movti_ppc64): Likewise.
(mov<mode>_ppc64, TImode/PTImode): Likewise.
(TI mode splitters): Likewise.

* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
constraint.

[gcc/testsuite]
2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/mmfpgpr.c: New test.
* gcc.target/powerpc/sd-vsx.c: Likewise.
* gcc.target/powerpc/sd-pwr6.c: Likewise.
* gcc.target/powerpc/vsx-float0.c: Likewise.

From-SVN: r196831

11 years agore PR tree-optimization/56355 (abs and multiplication)
Marc Glisse [Wed, 20 Mar 2013 15:16:09 +0000 (16:16 +0100)]
re PR tree-optimization/56355 (abs and multiplication)

2013-03-20  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/56355
gcc/
* fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
Also handle integers with undefined overflow.

gcc/testsuite/
* gcc.dg/pr56355-1.c: New file.

From-SVN: r196829

11 years agoextend.texi: (micromips, nomicromips, nocompression): Document new function attributes.
Catherine Moore [Wed, 20 Mar 2013 14:37:52 +0000 (10:37 -0400)]
extend.texi: (micromips, nomicromips, nocompression): Document new function attributes.

gcc/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
    Maciej W. Rozycki  <macro@codesourcery.com>
    Tom de Vries  <tom@codesourcery.com>
    Nathan Sidwell <nathan@codesourcery.com>
    Iain Sandoe  <iain@codesourcery.com>
    Nathan Froyd  <froydnj@codesourcery.com>
    Chao-ying Fu <fu@mips.com>

* doc/extend.texi: (micromips, nomicromips, nocompression):
Document new function attributes.
* doc/invoke.texi (minterlink-compressed, mmicromips,
m14k, m14ke, m14kec): Document new options.
(minterlink-mips16): Update documentation.
* doc/md.texi (ZC, ZD): Document new constraints.
* configure.ac (gcc_cv_as_micromips): Check if linker
supports the .set micromips directive.
* configure: Regenerate.
* config.in: Regenerate.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/micromips.md: New file.
* constraints.md (ZC, ZD): New constraints.
* config/mips/predicates.md (movep_src_register): New predicate.
(movep_src_operand): New predicate.
(non_volatile_mem_operand): New predicate.
* config/mips/mips.md (multimem): New type.
(length): Differentiate between 17-bit and 18-bit branch offsets.
(MOVEP1, MOVEP2): New mode iterator.
  (mov_<load>l): Use ZC constraint.
(mov_<load>r): Likewise.
(mov_<store>l): Likewise.
(mov_<store>r): Likewise.
(*branch_equality<mode>_inverted): Add microMIPS support.
(*branch_equality<mode>): Likewise.
(*jump_absolute): Likewise.
(indirect_jump_<mode>): Likewise.
(tablejump_<mode>): Likewise.
(<optab>_internal): Likewise.
(sibcall_internal): Likewise.
(sibcall_value_internal): Likewise.
(prefetch): Use constraint ZD.
* config/mips/mips.opt (minterlink-compressed): New option.
(minterlink-mips16): Now an alias for minterlink-compressed.
(mmicromips): New option.
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
(compare_and_swap_12): Likewise.
(sync_add<mode>): Likewise.
(sync_<optab>_12): Likewise.
(sync_old_<optab>_12): Likewise.
(sync_new_<optab>_12): Likewise.
(sync_nand_12): Likewise.
(sync_old_nand_12): Likewise.
(sync_new_nand_12): Likewise.
(sync_sub<mode>): Likewise.
(sync_old_add<mode>): Likewise.
(sync_old_sub<mode>): Likewise.
(sync_new_add<mode>): Likewise.
(sync_new_sub<mode>): Likewise.
(sync_<optab><mode>): Likewise.
(sync_old_<optab><mode>): Likewise.
(sync_new_<optab><mode>): Likewise.
(sync_nand<mode>): Likewise.
(sync_old_nand<mode>): Likewise.
(sync_new_nand<mode>): Likewise.
(sync_lock_test_and_set<mode>): Likewise.
(test_and_set_12): Likewise.
(atomic_compare_and_swap<mode>): Likewise.
(atomic_exchange<mode>_llsc): Likewise.
(atomic_fetch_add<mode>_llsc): Likewise.
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
(umips_save_restore_pattern_p): Likewise.
(umips_load_store_pair_p): Likewise.
(umips_output_load_store_pair): Likewise.
(umips_movep_target_p): Likewise.
(umips_12bit_offset_address_p): Likewise.
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this. Update all uses.
(mips_attribute_table): Add micromips, nomicromips and nocompression.
(mips_mips16_decl_p): Delete.
(mips_nomips16_decl_p): Delete.
  (mips_get_compress_on_flags): New function.
(mips_get_compress_off_flags): New function.
(mips_get_compress_mode): New function.
(mips_get_compress_on_name): New function.
(mips_get_compress_off_name): New function.
(mips_insert_attributes): Support multiple compression types.
(mips_merge_decl_attributes): Likewise.
(umips_12bit_offset_address_p): New function.
(mips_start_function_definition): Emit .set micromips directive.
(mips_call_may_need_jalx_p): New function.
(mips_function_ok_for_sibcall): Add microMIPS support.
(mips_print_operand_punctuation): Support short delay slots and
compact jumps.
(umips_swm_mask, umips_swm_encoding): New.
(umips_build_save_restore): New function.
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
(was_mips16_p): Remove.
(old_compression_mode): New.
(mips_set_compression_mode): New function.
(mips_set_current_function): Add microMIPS support.
(mips_option_override): Likewise.
(umips_save_restore_pattern_p): New function.
(umips_output_save_restore): New function.
(umips_load_store_pair_p_1): New function.
(umips_load_store_pair_p): New function.
(umips_output_load_store_pair_1): New function.
(umips_output_load_store_pair): New function.
(umips_movep_target_p) New function.
(mips_prepare_pch_save): Add microMIPS support.
* config/mips/mips.h (TARGET_COMPRESSION): New.
(TARGET_CPU_CPP_BUILTINS): Update macro
to use new compression flags and to support microMIPS.
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
(MIPS_ARCH_FLOAT_SPEC): Likewise.
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
(ASM_SPEC): Support mmicromips and mno-micromips.
(M16STORE_REG_P): New macro.
(MIPS_CALL): Support TARGET_MICROMIPS.
(MICROMIPS_J): New macro.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this.
(UMIPS_12BIT_OFFSET_P): New macro.
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
(MULTILIB_DIRNAMES): Likewise.
libgcc/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
    Joseph Myers  <joseph@codesourcery.com>
    Chao-ying Fu  <fu@mips.com>

* config/mips/mips16.S:  Don't build for microMIPS.
* config/mips/linux-unwind.h: Handle microMIPS frame.
* config/mips/crtn.S (fini, init): New labels.
gcc/testsuite/
2013-03-20  Catherine Moore  <clm@codesourcery.com>
    Richard Sandiford <rdsandiford@googlemail.com>

* gcc.target/mips/mips.exp: Add microMIPS support.
* gcc.target/mips/umips-movep-2.c: New test.
* gcc.target/mips/umips-lwp-2.c: New test.
* gcc.target/mips/umips-swp-5.c: New test.
* gcc.target/mips/umips-constraints-1.c: New test.
* gcc.target/mips/umips-lwp-3.c: New test.
* gcc.target/mips/umips-swp-6.c: New test.
* gcc.target/mips/umips-constraints-2.c: New test.
* gcc.target/mips/umips-save-restore-1.c: New test.
* gcc.target/mips/umips-lwp-4.c: New test.
* gcc.target/mips/umips-swp-7.c: New test.
* gcc.target/mips/umips-save-restore-2.c: New test.
* gcc.target/mips/umips-lwp-swp-volatile.c: New test.
* gcc.target/mips/umips-lwp-5.c: New test.
* gcc.target/mips/umips-save-restore-3.c: New test.
* gcc.target/mips/umips-lwp-6.c: New test.
* gcc.target/mips/umips-swp-1.c: New test.
* gcc.target/mips/umips-lwp-7.c: New test.
* gcc.target/mips/umips-swp-2.c: New test.
* gcc.target/mips/umips-lwp-8.c: New test.
* gcc.target/mips/umips-swp-3.c: New test.
* gcc.target/mips/umips-movep-1.c: New test.
* gcc.target/mips/umips-lwp-1.c: New test.
* gcc.target/mips/umips-swp-4.c: New test.

Co-Authored-By: Chao-ying Fu <fu@mips.com>
Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com>
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r196828

11 years agore PR tree-optimization/56661 (Incorrect code with -O1 -ftree-pre)
Richard Biener [Wed, 20 Mar 2013 13:26:19 +0000 (13:26 +0000)]
re PR tree-optimization/56661 (Incorrect code with -O1 -ftree-pre)

2013-03-20  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56661
* tree-ssa-sccvn.c (visit_use): Only value-number calls if
the result does not have to be distinct.

* gcc.dg/torture/pr56661.c: New testcase.

From-SVN: r196825

11 years agotree-inline.c (copy_tree_body_r): Sync MEM_REF code with remap_gimple_op_r.
Richard Biener [Wed, 20 Mar 2013 13:25:08 +0000 (13:25 +0000)]
tree-inline.c (copy_tree_body_r): Sync MEM_REF code with remap_gimple_op_r.

2013-03-20  Richard Biener  <rguenther@suse.de>

* tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
remap_gimple_op_r.

From-SVN: r196824

11 years agore PR rtl-optimization/56605 (Redundant branch introduced during loop2 phases)
Bill Schmidt [Wed, 20 Mar 2013 13:24:12 +0000 (13:24 +0000)]
re PR rtl-optimization/56605 (Redundant branch introduced during loop2 phases)

gcc:

2013-03-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
    Steven Bosscher <steven@gcc.gnu.org>

PR rtl-optimization/56605
* loop-iv.c (implies_p): Handle equal RTXs and subregs.

gcc/testsuite:

2013-03-13  Bill Schmidt  wschmidt@linux.vnet.ibm.com>

PR rtl-optimization/56605
* gcc.target/powerpc/pr56605.c: New.

Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>
From-SVN: r196823

11 years agoDon't XFAIL gfortran.dg/do_1.f90 (PR fortran/54932)
Rainer Orth [Wed, 20 Mar 2013 11:34:56 +0000 (11:34 +0000)]
Don't XFAIL gfortran.dg/do_1.f90 (PR fortran/54932)

PR fortran/54932
* gfortran.dg/do_1.f90: Don't xfail.

From-SVN: r196821

11 years agoi-fortra.ads: Update comment...
Tobias Burnus [Wed, 20 Mar 2013 09:24:59 +0000 (10:24 +0100)]
i-fortra.ads: Update comment...

2013-03-20  Tobias Burnus  <burnus@net-b.de>

        * i-fortra.ads: Update comment, add Ada 2012's optional
        Star and Kind data types for enhanced interoperability.

From-SVN: r196814

11 years agore PR bootstrap/56656 (Suffix or operands invalid for 'movq')
Uros Bizjak [Wed, 20 Mar 2013 09:23:39 +0000 (10:23 +0100)]
re PR bootstrap/56656 (Suffix or operands invalid for 'movq')

PR bootstrap/56656
* config/i386/i386.md (*movdi_internal): Handle broken assemblers
that require movd instead of movq.

From-SVN: r196813

11 years agotree-ssa-structalias.c (struct variable_info): Add pointer to the first field of...
Richard Biener [Wed, 20 Mar 2013 09:06:24 +0000 (09:06 +0000)]
tree-ssa-structalias.c (struct variable_info): Add pointer to the first field of an aggregate with sub-vars.

2013-03-20  Richard Biener  <rguenther@suse.de>

* tree-ssa-structalias.c (struct variable_info): Add pointer
to the first field of an aggregate with sub-vars.  Make
this and the pointer to the next subfield its ID.
(vi_next): New function.
(nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
storedanything_id, integer_id): Increment by one.
(new_var_info, get_call_vi, lookup_call_clobber_vi,
get_call_clobber_vi): Adjust.
(solution_set_expand): Simplify and speedup.
(solution_set_add): Inline into ...
(set_union_with_increment): ... this.  Adjust accordingly.
(do_sd_constraint): Likewise.
(do_ds_constraint): Likewise.
(do_complex_constraint): Simplify.
(build_pred_graph): Adjust.
(solve_graph): Likewise.  Simplify and speedup.
(get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
get_constraint_for_component_ref, get_constraint_for_1,
first_vi_for_offset, first_or_preceding_vi_for_offset,
create_function_info_for, create_variable_info_for_1,
create_variable_info_for, intra_create_variable_infos): Adjust.
(init_base_vars): Push NULL for ID zero.
(compute_points_to_sets): Adjust.

From-SVN: r196812

11 years agocfgloop.c (verify_loop_structure): Streamline and avoid ICEing on corrupt loop tree.
Richard Biener [Wed, 20 Mar 2013 09:03:06 +0000 (09:03 +0000)]
cfgloop.c (verify_loop_structure): Streamline and avoid ICEing on corrupt loop tree.

2013-03-20  Richard Biener  <rguenther@suse.de>

* cfgloop.c (verify_loop_structure): Streamline and avoid
ICEing on corrupt loop tree.
* graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
loop tree.

From-SVN: r196811

11 years agotree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not check whether an SSA...
Richard Biener [Wed, 20 Mar 2013 09:01:52 +0000 (09:01 +0000)]
tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not check whether an SSA update is needed.

2013-03-20  Richard Biener  <rguenther@suse.de>

* tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
check whether an SSA update is needed.

From-SVN: r196810

11 years agoconstraints.md (T): Rename to...
Richard Sandiford [Wed, 20 Mar 2013 08:07:51 +0000 (08:07 +0000)]
constraints.md (T): Rename to...

gcc/
* config/mips/constraints.md (T): Rename to...
(Yf): ...this.
(U): Rename to...
(Yd): ...this.
* config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
(*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.

From-SVN: r196807

11 years agore PR fortran/51825 (Fortran runtime error: Cannot match namelist object name)
Tilo Schwarz [Wed, 20 Mar 2013 07:56:02 +0000 (07:56 +0000)]
re PR fortran/51825 (Fortran runtime error: Cannot match namelist object name)

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * io/list_read.c (nml_read_obj): Don't end the component loop on
        a nested derived type, but continue with the next loop iteration.
        (nml_get_obj_data): Don't move the first_nl pointer further in
        the list if a qualifier was found.

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/51825
        * gcc/testsuite/gfortran.dg/namelist_77.f90: New.
        * gcc/testsuite/gfortran.dg/namelist_78.f90: New.

From-SVN: r196806

11 years agore PR libfortran/48618 (Negative unit number in OPEN(...) is sometimes allowed)
Tilo Schwarz [Wed, 20 Mar 2013 07:45:49 +0000 (07:45 +0000)]
re PR libfortran/48618 (Negative unit number in OPEN(...) is sometimes allowed)

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/48618
        * io/open.c (st_open): Raise error for unit number < 0 only if
        unit number does not exist already.

2013-03-20  Tilo Schwarz  <tilo@tilo-schwarz.de>

        PR libfortran/48618
        * gfortran.dg/open_negative_unit_1.f90: New.

From-SVN: r196805

11 years agoDaily bump.
GCC Administrator [Wed, 20 Mar 2013 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r196804

11 years agoYet another ChangeLog fix.
Jakub Jelinek [Tue, 19 Mar 2013 18:34:05 +0000 (19:34 +0100)]
Yet another ChangeLog fix.

From-SVN: r196800

11 years agoAnother ChangeLog entry fix.
Jakub Jelinek [Tue, 19 Mar 2013 17:54:12 +0000 (18:54 +0100)]
Another ChangeLog entry fix.

From-SVN: r196799

11 years agoAArch64 backend support for SBC instruction.
Ian Bolton [Tue, 19 Mar 2013 16:23:08 +0000 (16:23 +0000)]
AArch64 backend support for SBC instruction.

From-SVN: r196797

11 years agoAArch64 backend support for ROR instruction.
Ian Bolton [Tue, 19 Mar 2013 16:18:46 +0000 (16:18 +0000)]
AArch64 backend support for ROR instruction.

From-SVN: r196796

11 years agoAArch64 backend support for EXTR instruction.
Ian Bolton [Tue, 19 Mar 2013 16:17:14 +0000 (16:17 +0000)]
AArch64 backend support for EXTR instruction.

From-SVN: r196795

11 years agore PR tree-optimization/56273 (Bogus -Warray-bounds warning)
Richard Biener [Tue, 19 Mar 2013 12:57:33 +0000 (12:57 +0000)]
re PR tree-optimization/56273 (Bogus -Warray-bounds warning)

2013-03-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56273
* passes.c (init_optimization_passes): Move second VRP after DOM.

* gcc.dg/tree-ssa/vrp47.c: Adjust.
* c-c++-common/uninit-17.c: Likewise.

From-SVN: r196792

11 years agoUse C99 bool instead of enum try.
Janne Blomqvist [Tue, 19 Mar 2013 11:13:32 +0000 (13:13 +0200)]
Use C99 bool instead of enum try.

2013-03-19  Janne Blomqvist  <jb@gcc.gnu.org>

* libgfortran.h: Include stdbool.h.
(enum try): Remove.
(notify_std): Change return type to bool.
* intrinsics/chmod.c: Don't include stdbool.h.
* intrinsics/execute_command_line.c: Likewise.
* io/format.c: Likewise.
* io/list_read.c (nml_parse_qualifier): Change return type to bool.
(nml_read_obj): Likewise.
(nml_get_obj_data): Likewise.
* io/transfer.c (read_block_form): Fix comment.
(write_buf): Change return type to bool.
* io/write.c: Don't include stdbool.h.
* io/write_float.def (output_float): Change return type to bool.
(output_float_FMT_G_ ## x): Change type of result variable.
* runtime/error.c (notify_std): Change return type to bool.

From-SVN: r196791

11 years agoRemove gcc/testsuite/ and testsuite/ leading paths from
Jakub Jelinek [Tue, 19 Mar 2013 10:35:47 +0000 (11:35 +0100)]
Remove gcc/testsuite/ and testsuite/ leading paths from
filenames.

From-SVN: r196790

11 years agoFix up ChangeLog entry formatting.
Jakub Jelinek [Tue, 19 Mar 2013 10:02:23 +0000 (11:02 +0100)]
Fix up ChangeLog entry formatting.

From-SVN: r196789

11 years agoDaily bump.
GCC Administrator [Tue, 19 Mar 2013 09:20:32 +0000 (09:20 +0000)]
Daily bump.

From-SVN: r196788

11 years agoi386.md (*movti_internal): Merge from *movti_internal_rex64 and *movti_internal_sse.
Uros Bizjak [Tue, 19 Mar 2013 07:36:15 +0000 (08:36 +0100)]
i386.md (*movti_internal): Merge from *movti_internal_rex64 and *movti_internal_sse.

* config/i386/i386.md (*movti_internal): Merge from
*movti_internal_rex64 and *movti_internal_sse.  Use x64 isa attribute.
(*movdi_internal): Merge with *movdi_internal_rex64.  Use x64 and
nox64 isa attributes.

From-SVN: r196784

11 years agotree-ssa-structalias.c (find): Use gcc_checking_assert.
Richard Biener [Mon, 18 Mar 2013 13:58:29 +0000 (13:58 +0000)]
tree-ssa-structalias.c (find): Use gcc_checking_assert.

2013-03-18  Richard Biener  <rguenther@suse.de>

* tree-ssa-structalias.c (find): Use gcc_checking_assert.
(unite): Likewise.
(merge_node_constraints): Likewise.
(build_succ_graph): Likewise.
(valid_graph_edge): Inline into single caller.
(unify_nodes): Likewise.  Use bitmap_set_bit return value
and cache varinfo.
(scc_visit): Fix formatting and variable use.
(do_sd_constraint): Use gcc_checking_assert.
(do_ds_constraint): Likewise.
(do_complex_constraint): Likewise.
(condense_visit): Likewise.  Cleanup.
(dump_pred_graph): New function.
(perform_var_substitution): Dump the pred-graph before
variable substitution.
(find_equivalent_node): Use gcc_checking_assert.
(rewrite_constraints): Guard checking loop with ENABLE_CHECKING.

From-SVN: r196783

11 years agotree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Remove cond_expr_stmt_lis...
Richard Biener [Mon, 18 Mar 2013 13:57:33 +0000 (13:57 +0000)]
tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Remove cond_expr_stmt_list argument and do not gimplify the built expression.

2013-03-18  Richard Biener  <rguenther@suse.de>

* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
Remove cond_expr_stmt_list argument and do not gimplify the
built expression.
(vect_loop_versioning): Adjust.
* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
Cleanup to use less temporaries.
(vect_create_data_ref_ptr): Cleanup.

From-SVN: r196782

11 years agore PR tree-optimization/56635 (internal compiler error: in find_lattice_value, at...
Jakub Jelinek [Mon, 18 Mar 2013 13:01:49 +0000 (14:01 +0100)]
re PR tree-optimization/56635 (internal compiler error: in find_lattice_value, at tree-complex.c:15)

PR tree-optimization/56635
* fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
require types_compatible_p types.

* g++.dg/torture/pr56635.C: New test.

From-SVN: r196781

11 years agostormy16.c (xstormy16_expand_prologue): Remove spurious backslash.
Nick Clifton [Mon, 18 Mar 2013 10:43:50 +0000 (10:43 +0000)]
stormy16.c (xstormy16_expand_prologue): Remove spurious backslash.

* config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
spurious backslash.

From-SVN: r196779

11 years agomn10300.c (mn10300_get_live_callee_saved_regs): Add missing line to comment describin...
Nick Clifton [Mon, 18 Mar 2013 10:40:24 +0000 (10:40 +0000)]
mn10300.c (mn10300_get_live_callee_saved_regs): Add missing line to comment describing function.

* config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
Add missing line to comment describing function.

From-SVN: r196778

11 years agore PR tree-optimization/56210 (invalid -Warray-bounds warning)
Richard Biener [Mon, 18 Mar 2013 10:33:11 +0000 (10:33 +0000)]
re PR tree-optimization/56210 (invalid -Warray-bounds warning)

2013-03-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/56210
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
Handle string / character search functions.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.

From-SVN: r196777

11 years agore PR middle-end/56483 (LTO issue with expanding GIMPLE_COND)
Richard Biener [Mon, 18 Mar 2013 10:29:43 +0000 (10:29 +0000)]
re PR middle-end/56483 (LTO issue with expanding GIMPLE_COND)

2013-03-18  Richard Biener  <rguenther@suse.de>

PR middle-end/56483
* cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
and implement properly.
* gimple.h (gimple_cond_single_var_p): Remove.

From-SVN: r196776

11 years agotree-data-ref.h (find_data_references_in_loop): Declare.
Richard Biener [Mon, 18 Mar 2013 10:25:42 +0000 (10:25 +0000)]
tree-data-ref.h (find_data_references_in_loop): Declare.

2013-03-18  Richard Biener  <rguenther@suse.de>

* tree-data-ref.h (find_data_references_in_loop): Declare.
* tree-data-ref.c (get_references_in_stmt): Use a stack
vector pre-allocated in the callers.
(find_data_references_in_stmt): Adjust.
(graphite_find_data_references_in_stmt): Likewise.
(create_rdg_vertices): Likewise.
(find_data_references_in_loop): Export.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
Compute dependences here...
(vect_analyze_data_refs): ...not here.  When we encounter
a non-vectorizable data reference in basic-block vectorization
truncate the data reference vector.  Do not bother to
fixup data-dependence information for gather loads.
* tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
of data references, as reported.

From-SVN: r196775

11 years agoPR libstdc++/55977 (partial, std::vector and std::deque bits)
Paolo Carlini [Mon, 18 Mar 2013 10:15:56 +0000 (10:15 +0000)]
PR libstdc++/55977 (partial, std::vector and std::deque bits)

2013-03-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/55977 (partial, std::vector and std::deque bits)
* include/bits/stl_vector.h (_M_range_initialize(_InputIterator,
_InputIterator, std::input_iterator_tag)): Use emplace_back.
* include/bits/deque.tcc (_M_range_initialize(_InputIterator,
_InputIterator, std::input_iterator_tag)): Likewise.
* testsuite/23_containers/vector/cons/55977.cc: New.
* testsuite/23_containers/deque/cons/55977.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.

From-SVN: r196774

11 years agogfortran.h (gfc_option_t): Remove flag_whole_file.
Tobias Burnus [Mon, 18 Mar 2013 09:50:23 +0000 (10:50 +0100)]
gfortran.h (gfc_option_t): Remove flag_whole_file.

2013-03-18  Tobias Burnus  <burnus@net-b.de>

        * gfortran.h (gfc_option_t): Remove flag_whole_file.
        * invoke.texi (-fno-whole-file): Remove.
        * lang.opt (fwhole-file): Change to Ignore.
        * options.c (gfc_init_options, gfc_post_options,
        gfc_handle_option): Remove !flag_whole_file handling
        * parse.c (resolve_all_program_units,
        * translate_all_program_units,
        gfc_parse_file): Ditto.
        * resolve.c (resolve_global_procedure): Ditto.
        * trans-decl.c (gfc_get_symbol_decl,
        * gfc_get_extern_function_decl,
        gfc_create_module_variable): Ditto.
        * trans-types.c (gfc_get_derived_type): Ditto.

From-SVN: r196773

11 years agore PR tree-optimization/3713 (Pointers to functions or member functions are not folde...
Richard Biener [Mon, 18 Mar 2013 08:53:42 +0000 (08:53 +0000)]
re PR tree-optimization/3713 (Pointers to functions or member functions are not folded or inlined)

2013-03-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/3713
* tree-ssa-sccvn.c (visit_copy): Simplify.  Always propagate
has_constants and expr.
(stmt_has_constants): Properly valueize SSA names when deciding
whether the stmt has constants.

* g++.dg/ipa/devirt-12.C: New testcase.

From-SVN: r196771

11 years agotree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the whole function when...
Richard Biener [Mon, 18 Mar 2013 08:50:35 +0000 (08:50 +0000)]
tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the whole function when there is nothing to do.

2013-03-18  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
whole function when there is nothing to do.
* tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
* tree-vectorizer.c (vectorize_loops): Update virtual and
loop-closed SSA once.
* tree-vect-loop.c (vect_transform_loop): Do not update SSA here.

From-SVN: r196770

11 years agore PR c/56113 (out of memory when compiling a function with many goto labels (50k...
Richard Biener [Mon, 18 Mar 2013 08:46:44 +0000 (08:46 +0000)]
re PR c/56113 (out of memory when compiling a function with many goto labels (50k > ))

2013-03-18  Richard Biener  <rguenther@suse.de>

PR middle-end/56113
* domwalk.c (bb_postorder): New global static.
(cmp_bb_postorder): New function.
(walk_dominator_tree): Replace scheme imposing an order for
visiting dominator sons by one sorting them at the time they
are pushed on the stack.

From-SVN: r196769

11 years agore PR middle-end/39326 (Segmentation fault with -O1, out of memory with -O2)
Richard Biener [Mon, 18 Mar 2013 08:42:57 +0000 (08:42 +0000)]
re PR middle-end/39326 (Segmentation fault with -O1, out of memory with -O2)

2013-03-18  Richard Biener  <rguenther@suse.de>

PR tree-optimization/39326
* tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
(struct mem_ref): Replace mem member with ao_ref typed member.
(MEM_ANALYZABLE): Adjust.
(memref_eq): Likewise.
(mem_ref_alloc): Likewise.
(gather_mem_refs_stmt): Likewise.
(mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
(execute_sm_if_changed_flag_set): Adjust.
(execute_sm): Likewise.
(ref_always_accessed_p): Likewise.
(refs_independent_p): Likewise.
(can_sm_ref_p): Likewise.

From-SVN: r196768

11 years agore PR c/56566 (bogus "is narrower than values of its type" warning)
Jakub Jelinek [Mon, 18 Mar 2013 07:10:33 +0000 (08:10 +0100)]
re PR c/56566 (bogus "is narrower than values of its type" warning)

PR c/56566
* tree.c (tree_int_cst_min_precision): For integer_zerop (value)
return 1 even for !unsignedp.

* c-c++-common/pr56566.c: New test.

From-SVN: r196767

11 years agore PR c++/54359 ([C++0x] decltype in member function's trailing return type when...
Jason Merrill [Mon, 18 Mar 2013 03:41:10 +0000 (23:41 -0400)]
re PR c++/54359 ([C++0x] decltype in member function's trailing return type when defined outside of class)

PR c++/54359
PR c++/56639
* parser.c (cp_parser_direct_declarator): Bail if we see a
qualified-id not at namespace scope.

From-SVN: r196765

11 years ago* g++.dg/template/abstract-dr337.C: XFAIL.
Jason Merrill [Mon, 18 Mar 2013 03:40:16 +0000 (23:40 -0400)]
* g++.dg/template/abstract-dr337.C: XFAIL.

From-SVN: r196764

11 years agoDaily bump.
GCC Administrator [Mon, 18 Mar 2013 00:22:10 +0000 (00:22 +0000)]
Daily bump.

From-SVN: r196762

11 years agore PR c++/17232 ([DR 1640] classes and class template specializations treated differe...
Jason Merrill [Sun, 17 Mar 2013 20:32:17 +0000 (16:32 -0400)]
re PR c++/17232 ([DR 1640] classes and class template specializations treated differently w.r.t. core issue #337)

PR c++/17232
PR c++/56642
* typeck2.c (abstract_virtuals_error_sfinae): Revert complete_type
change for now.

From-SVN: r196758

11 years agoi386.md (isa): Add x64 and nox64.
Uros Bizjak [Sun, 17 Mar 2013 19:33:40 +0000 (20:33 +0100)]
i386.md (isa): Add x64 and nox64.

* config/i386/i386.md (isa): Add x64 and nox64.
(enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
(*pushtf): Enable *roF alternative for x64 isa only.
(*pushxf): Merge with *pushxf_nointeger.  Use Yx*r constraint. Set
mode attribute of integer alternatives to DImode for TARGET_64BIT.
(*pushdf): Merge with *pushdf_rex64.  Use x64 and nox64 isa attributes.
(*movtf_internal): Merge from *movtf_internal_rex64 and
*movtf_internal_sse.  Use x64 and nox64 isa attributes.
(*movxf_internal): Merge with *movxf_internal_rex64.  Use x64 and
nox64 isa attributes.
(*movdf_internal): Merge with *movdf_internal_rex64.  Use x64 and
nox64 isa attributes.
* config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.

From-SVN: r196757

11 years agoalpha.c (TARGET_LRA_P): New define.
Uros Bizjak [Sun, 17 Mar 2013 19:01:36 +0000 (20:01 +0100)]
alpha.c (TARGET_LRA_P): New define.

* config/alpha/alpha.c (TARGET_LRA_P): New define.

From-SVN: r196756

11 years agore PR libstdc++/55979 ([C++11] std::list range construction imposes unnecessary conve...
Paolo Carlini [Sun, 17 Mar 2013 18:27:52 +0000 (18:27 +0000)]
re PR libstdc++/55979 ([C++11] std::list range construction imposes unnecessary conversion constraints)

2013-03-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/55979
* include/bits/stl_list.h (_M_initialize_dispatch(_InputIterator,
_InputIterator, __false_type)): Use emplace_back.
* testsuite/23_containers/list/cons/55979.cc: New.
* testsuite/23_containers/list/modifiers/1.h: Adjust.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.

From-SVN: r196755

11 years agore PR target/56640 (bootstrap failure on arm-linux-gnueabi{,hf})
Jakub Jelinek [Sun, 17 Mar 2013 16:28:16 +0000 (17:28 +0100)]
re PR target/56640 (bootstrap failure on arm-linux-gnueabi{,hf})

PR target/56640
* config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
class names.  Remove trailing comma after "ALL_REGS".

From-SVN: r196753

11 years ago* sv.po: Update.
Joseph Myers [Sun, 17 Mar 2013 15:50:07 +0000 (15:50 +0000)]
* sv.po: Update.

From-SVN: r196751

11 years agocgraph.h (cgraph_get_create_real_symbol_node): Declare.
Jan Hubicka [Sun, 17 Mar 2013 15:43:13 +0000 (16:43 +0100)]
cgraph.h (cgraph_get_create_real_symbol_node): Declare.

* cgraph.h (cgraph_get_create_real_symbol_node): Declare.
* cgraph.c (cgraph_get_create_real_symbol_node): New function.
* cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
of cgraph_get_create_node.
* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.

From-SVN: r196750

11 years agodecl.c (grokdeclarator): Assert that we won't see a pointer to METHOD_TYPE.
Jason Merrill [Sun, 17 Mar 2013 03:11:07 +0000 (23:11 -0400)]
decl.c (grokdeclarator): Assert that we won't see a pointer to METHOD_TYPE.

* decl.c (grokdeclarator): Assert that we won't see a pointer to
METHOD_TYPE.

From-SVN: r196748

11 years agore PR c++/54277 (Template class member referred to with implicit this inside lambda...
Jason Merrill [Sun, 17 Mar 2013 02:41:22 +0000 (22:41 -0400)]
re PR c++/54277 (Template class member referred to with implicit this inside lambda is incorrectly const-qualified)

PR c++/54277
* cp-tree.h (WILDCARD_TYPE_P): Split out from...
(MAYBE_CLASS_TYPE_P): ...here.
* semantics.c (lambda_capture_field_type): Only build a
magic decltype for wildcard types.
(lambda_proxy_type): Likewise.
(finish_non_static_data_member): Get the quals from
the object.

From-SVN: r196747

11 years agore PR c++/55931 ([C++11] Constexpr member function inside a static member is not...
Jason Merrill [Sun, 17 Mar 2013 02:39:51 +0000 (22:39 -0400)]
re PR c++/55931 ([C++11] Constexpr member function inside a static member is not working)

PR c++/55931
* parser.c (cp_parser_template_argument): Don't
fold_non_dependent_expr.

From-SVN: r196746

11 years agoparser.c (cp_parser_lambda_declarator_opt): Use cp_parser_trailing_type_id.
Jason Merrill [Sun, 17 Mar 2013 02:39:37 +0000 (22:39 -0400)]
parser.c (cp_parser_lambda_declarator_opt): Use cp_parser_trailing_type_id.

* parser.c (cp_parser_lambda_declarator_opt): Use
cp_parser_trailing_type_id.

From-SVN: r196745

11 years agore PR c++/45917 (inaccessible types allowed as template argument in nested-name-speci...
Jason Merrill [Sun, 17 Mar 2013 02:39:22 +0000 (22:39 -0400)]
re PR c++/45917 (inaccessible types allowed as template argument in nested-name-specifier)

PR c++/45917
* parser.c (cp_parser_template_id): Don't forget access checks.

From-SVN: r196744

11 years agore PR c++/52374 ([C++11] Fails to transform id-expression into dependent base member...
Jason Merrill [Sun, 17 Mar 2013 02:39:04 +0000 (22:39 -0400)]
re PR c++/52374 ([C++11] Fails to transform id-expression into dependent base member access in lambda expression)

PR c++/52374
* pt.c (tsubst_qualified_id): Use current_nonlambda_class_type.

From-SVN: r196743

11 years agore PR c++/54764 (In class initialization of non-static lambda member can't be used...
Jason Merrill [Sun, 17 Mar 2013 02:38:50 +0000 (22:38 -0400)]
re PR c++/54764 (In class initialization of non-static lambda member can't be used in class with default template paramer)

PR c++/54764
PR c++/55972
* name-lookup.h (tag_scope): Add ts_lambda.
* semantics.c (begin_lambda_type): Use it.
* decl.c (xref_tag_1): Set CLASSTYPE_LAMBDA_EXPR.
* pt.c (check_default_tmpl_args): Ignore lambdas.
(push_template_decl_real): Handle lambdas.
* tree.c (no_linkage_check): Adjust lambda check.

From-SVN: r196742

11 years agore PR c++/56039 (ICE in iterative_hash_template_arg, at cp/pt.c:1606)
Jason Merrill [Sun, 17 Mar 2013 02:38:35 +0000 (22:38 -0400)]
re PR c++/56039 (ICE in iterative_hash_template_arg, at cp/pt.c:1606)

PR c++/56039
* tree.c (strip_typedefs_expr): Complain about lambda, don't abort.

From-SVN: r196741

11 years agore PR c++/54359 ([C++0x] decltype in member function's trailing return type when...
Jason Merrill [Sun, 17 Mar 2013 02:38:21 +0000 (22:38 -0400)]
re PR c++/54359 ([C++0x] decltype in member function's trailing return type when defined outside of class)

PR c++/54359
* parser.c (cp_parser_direct_declarator): Fix late return
for out-of-class defn of member function.

From-SVN: r196740

11 years agore PR c++/55357 (-Wshadow warns about lambda function parameters matching variables...
Jason Merrill [Sun, 17 Mar 2013 02:38:01 +0000 (22:38 -0400)]
re PR c++/55357 (-Wshadow warns about lambda function parameters matching variables in outer scope)

PR c++/55357
* semantics.c (maybe_add_lambda_conv_op): Clear DECL_NAME of copied
parms to avoid duplicate -Wshadow warnings.

From-SVN: r196739

11 years ago* search.c (lookup_base): Handle NULL_TREE.
Jason Merrill [Sun, 17 Mar 2013 02:37:33 +0000 (22:37 -0400)]
* search.c (lookup_base): Handle NULL_TREE.

From-SVN: r196738

11 years agore PR c++/56481 (endless loop compiling a C++ file)
Jason Merrill [Sun, 17 Mar 2013 02:37:21 +0000 (22:37 -0400)]
re PR c++/56481 (endless loop compiling a C++ file)

PR c++/56481
* semantics.c (potential_constant_expression_1): Use of 'this' in
a non-constexpr function makes the expression not potentially
constant.

From-SVN: r196737

11 years agore PR c++/52748 ([C++11] N3276 changes to decltype)
Jason Merrill [Sun, 17 Mar 2013 02:37:09 +0000 (22:37 -0400)]
re PR c++/52748 ([C++11] N3276 changes to decltype)

N3276
PR c++/52748
* cp-tree.h (tsubst_flags): Add tf_decltype.
* call.c (build_cxx_call): Don't build a temporary if it's set.
(build_over_call): Make sure it's only passed to build_cxx_call.
* parser.c (cp_parser_primary_expression): Add decltype_p parm.
(cp_parser_unary_expression): Likewise.
(cp_parser_cast_expression): Likewise.
(cp_parser_binary_expression): Likewise.
(cp_parser_assignment_expression): Likewise.
(cp_parser_postfix_expression): Likewise.  Pass tf_decltype.
(cp_parser_explicit_instantiation): Add decltype_p.  Force a
temporary for a call on the LHS of a comma.
(cp_parser_decltype): Pass true to decltype_p parms.
* pt.c (tsubst) [DECLTYPE_TYPE]: Pass tf_decltype.
(tsubst_copy_and_build): Pass tf_decltype down only for
CALL_EXPR and the RHS of COMPOUND_EXPR.
* tree.c (build_cplus_new): Call complete_type_or_maybe_complain.

From-SVN: r196736

11 years agocp-tree.h (abstract_class_use): New enum.
Jason Merrill [Sun, 17 Mar 2013 02:36:55 +0000 (22:36 -0400)]
cp-tree.h (abstract_class_use): New enum.

* cp-tree.h (abstract_class_use): New enum.
* typeck2.c (pending_abstract_type): Add use field.
(abstract_virtuals_error_sfinae): Add overloads taking
abstract_class_use instead of tree.
* typeck.c (build_static_cast_1): Call it.
* except.c (is_admissible_throw_operand_or_catch_parameter): Call it.
* pt.c: Adjust calls.
* decl.c (cp_finish_decl): Don't handle functions specially.
(grokdeclarator): Always check return type.
* init.c (build_new_1): Adjust call.

From-SVN: r196735

11 years agoDR 337 PR c++/17232
Jason Merrill [Sun, 17 Mar 2013 02:36:40 +0000 (22:36 -0400)]
DR 337 PR c++/17232

DR 337
PR c++/17232
* pt.c (tsubst) [ARRAY_TYPE]: Use abstract_virtuals_error_sfinae.
* typeck2.c (abstract_virtuals_error_sfinae): Call complete_type.

From-SVN: r196734

11 years agoDR 657
Jason Merrill [Sun, 17 Mar 2013 02:36:26 +0000 (22:36 -0400)]
DR 657

DR 657
* pt.c (tsubst_function_type): Call abstract_virtuals_error_sfinae.
(tsubst_arg_types): Likewise.

From-SVN: r196733

11 years agoDR 1518 PR c++/54835
Jason Merrill [Sun, 17 Mar 2013 02:36:08 +0000 (22:36 -0400)]
DR 1518 PR c++/54835

DR 1518
PR c++/54835
* call.c (convert_like_real): Check for explicit constructors
even for value-initialization.

From-SVN: r196732

11 years agore PR c++/54946 (ICE on template parameter from cast char-pointer in C++11 constexpr...
Jason Merrill [Sun, 17 Mar 2013 02:35:50 +0000 (22:35 -0400)]
re PR c++/54946 (ICE on template parameter from cast char-pointer in C++11 constexpr struct)

PR c++/54946
* pt.c (convert_nontype_argument): Handle invalid pointer.

From-SVN: r196731

11 years ago* parser.c (cp_parser_lambda_expression): Use nreverse.
Jason Merrill [Sun, 17 Mar 2013 02:35:36 +0000 (22:35 -0400)]
* parser.c (cp_parser_lambda_expression): Use nreverse.

From-SVN: r196730

11 years agore PR c++/56447 ([C++11] Lambda in template has conversion op it shouldn't have)
Jason Merrill [Sun, 17 Mar 2013 02:35:18 +0000 (22:35 -0400)]
re PR c++/56447 ([C++11] Lambda in template has conversion op it shouldn't have)

PR c++/56447
PR c++/55532
* pt.c (instantiate_class_template_1): Instantiate lambda capture
list here.
(tsubst_copy_and_build): Not here.

From-SVN: r196729

11 years agore PR c++/55017 ([DR 1051] [C++11] Rvalue-reference member should cause copy construc...
Jason Merrill [Sun, 17 Mar 2013 02:35:01 +0000 (22:35 -0400)]
re PR c++/55017 ([DR 1051] [C++11] Rvalue-reference member should cause copy constructor to be deleted, but still declared)

PR c++/55017
* method.c (walk_field_subobs): Disallow copy of rvalue ref.

From-SVN: r196728

11 years agore PR c++/55240 ([c++0x] ICE on non-static data member initialization using 'auto...
Jason Merrill [Sun, 17 Mar 2013 02:34:45 +0000 (22:34 -0400)]
re PR c++/55240 ([c++0x] ICE on non-static data member initialization using 'auto' variable from containing function)

PR c++/55240
* parser.c (parsing_nsdmi): New.
* semantics.c (outer_automatic_var_p): Check it.
(finish_id_expression): Likewise.
* cp-tree.h: Declare it.

From-SVN: r196727

11 years agore PR c++/55241 ([C++11] diagnostics show sizeof...(T) as sizeof(T...))
Jason Merrill [Sun, 17 Mar 2013 02:34:31 +0000 (22:34 -0400)]
re PR c++/55241 ([C++11] diagnostics show sizeof...(T) as sizeof(T...))

PR c++/55241
* error.c (dump_expr) [SIZEOF_EXPR]: Print sizeof... properly.

From-SVN: r196726

11 years agoparser.c (lookup_literal_operator): Correct parm/arg naming mixup.
Jason Merrill [Sun, 17 Mar 2013 02:34:20 +0000 (22:34 -0400)]
parser.c (lookup_literal_operator): Correct parm/arg naming mixup.

* parser.c (lookup_literal_operator): Correct parm/arg naming
mixup.

From-SVN: r196725

11 years agore PR c++/56238 (ICE in tree check: expected record_type or union_type or qual_union_...
Jason Merrill [Sun, 17 Mar 2013 02:34:03 +0000 (22:34 -0400)]
re PR c++/56238 (ICE in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_conversions, at cp/search.c:2515)

PR c++/56238
* pt.c (fold_non_dependent_expr_sfinae): Check
instantiation_dependent_expression_p.

From-SVN: r196724

11 years agore PR debug/49090 (provide a way to recognize defaulted template parameters)
Jason Merrill [Sun, 17 Mar 2013 02:33:50 +0000 (22:33 -0400)]
re PR debug/49090 (provide a way to recognize defaulted template parameters)

PR debug/49090
* dwarf2out.c (gen_generic_params_dies): Indicate default arguments
with DW_AT_default_value.

From-SVN: r196723

11 years agore PR c++/56095 (Crash casting function pointer as non-type template argument)
Jason Merrill [Sun, 17 Mar 2013 02:33:38 +0000 (22:33 -0400)]
re PR c++/56095 (Crash casting function pointer as non-type template argument)

PR c++/56095
* class.c (resolve_address_of_overloaded_function): Accept a
reference to function for target_type.
(instantiate_type): Likewise.
* pt.c (convert_nontype_argument): Pass it to
convert_nontype_argument_function.

From-SVN: r196722

11 years agoDaily bump.
GCC Administrator [Sun, 17 Mar 2013 00:21:11 +0000 (00:21 +0000)]
Daily bump.

From-SVN: r196721

11 years agore PR libstdc++/56468 (Clang exposes bug with unexpected forward-declaration of type_...
Jonathan Wakely [Sat, 16 Mar 2013 20:01:16 +0000 (20:01 +0000)]
re PR libstdc++/56468 (Clang exposes bug with unexpected forward-declaration of type_info)

PR libstdc++/56468
* libsupc++/exception_ptr.h (type_info): Declare.

From-SVN: r196709

11 years agore PR libstdc++/56002 ([C++11] allow generic locks to be used without requiring platt...
Jonathan Wakely [Sat, 16 Mar 2013 19:45:53 +0000 (19:45 +0000)]
re PR libstdc++/56002 ([C++11] allow generic locks to be used without requiring plattform support for threads)

PR libstdc++/56002
* include/std/mutex (lock_guard, unique_lock, lock): Define without
depending on _GLIBCXX_HAS_GTHREADS.
* testsuite/30_threads/lock_guard/cons/1.cc: Run on all targets.

From-SVN: r196706

11 years ago* tree.c (cp_tree_equal): Fix a pasto.
Jakub Jelinek [Sat, 16 Mar 2013 19:36:41 +0000 (20:36 +0100)]
* tree.c (cp_tree_equal): Fix a pasto.

From-SVN: r196705

11 years agore PR c++/56607 (GCC fails to warn on division by zero)
Jakub Jelinek [Sat, 16 Mar 2013 19:35:41 +0000 (20:35 +0100)]
re PR c++/56607 (GCC fails to warn on division by zero)

PR c++/56607
* typeck.c (cp_build_binary_op): When calling warn_for_div_by_zero,
pass op1 through maybe_constant_value first.

* g++.dg/warn/Wdiv-by-zero-2.C: New test.
* c-c++-common/pr56607.c: New test.

From-SVN: r196704

11 years agore PR c++/56582 (ICE on negative array index in C++11 constant expression evaluation)
Paolo Carlini [Sat, 16 Mar 2013 10:02:11 +0000 (10:02 +0000)]
re PR c++/56582 (ICE on negative array index in C++11 constant expression evaluation)

/cp
2013-03-16  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/56582
* semantics.c (cxx_eval_array_reference): Check for negative index.

/testsuite
2013-03-16  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/56582
* g++.dg/cpp0x/constexpr-array5.C: New.

From-SVN: r196701

11 years ago* gnatvsn.ads (Library_Version): Bump to 4.9.
Eric Botcazou [Sat, 16 Mar 2013 09:16:49 +0000 (09:16 +0000)]
* gnatvsn.ads (Library_Version): Bump to 4.9.

From-SVN: r196700

11 years ago* crontab: Enable snapshots from gcc-4_8-branch.
Jakub Jelinek [Sat, 16 Mar 2013 07:22:35 +0000 (08:22 +0100)]
* crontab: Enable snapshots from gcc-4_8-branch.

From-SVN: r196698

11 years ago* BASE-VER: Set to 4.9.0.
Jakub Jelinek [Sat, 16 Mar 2013 07:09:59 +0000 (08:09 +0100)]
* BASE-VER: Set to 4.9.0.

From-SVN: r196697

11 years agore PR libstdc++/56492 (std::packaged_task requires CopyConstructible stored task)
Jonathan Wakely [Sat, 16 Mar 2013 02:48:06 +0000 (02:48 +0000)]
re PR libstdc++/56492 (std::packaged_task requires CopyConstructible stored task)

PR libstdc++/56492
* include/std/future (__future_base::_Result): Add result_type
typedef.
(__future_base::_S_allocate_result): Overload for std::allocator.
(__future_base::_Task_setter): Use _Result::result_type instead of
deducing the type from the task.
(__future_base::_Task_state): Store allocator to allow shared state
to be reset.  Replace std::function with member of target object type
accessed via ...
(__future_base::_Task_state_base): New abstract base class.
(__future_base::_Task_state_base::_M_run): New virtual function to
invoke type-erased target object.
(__future_base::_Task_state_base::_M_reset): New virtual function to
create new shared_state using same target object and allocator.
(__future_base::__create_task_state): Allocate a new _Task_state.
(packaged_task::packaged_task): Use __create_task_state.
(packaged_task::reset): Use _Task_state_base::_M_reset.
* testsuite/30_threads/packaged_task/cons/56492.cc: New.

From-SVN: r196695

11 years agoDaily bump.
GCC Administrator [Sat, 16 Mar 2013 00:18:04 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r196694

11 years ago* gcc.pot: Regenerate.
Joseph Myers [Fri, 15 Mar 2013 17:44:12 +0000 (17:44 +0000)]
* gcc.pot: Regenerate.

From-SVN: r196683

11 years ago* cpplib.pot: Regenerate.
Joseph Myers [Fri, 15 Mar 2013 17:43:27 +0000 (17:43 +0000)]
* cpplib.pot: Regenerate.

From-SVN: r196682