1. 04 Mar, 2015 6 commits
    • exp_ch6.adb (Expand_N_Subprogram_Body): Avoid trying to unnest generic subprograms. · 488f9623
      2015-03-04  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Avoid trying to unnest
      	generic subprograms.
      	* exp_unst.adb (Check_Dynamic_Type): Handle record types properly
      	(Note_Uplevel_Reference): Ignore uplevel references to non-types
      	(Get_Level): Consider only subprograms, not blocks.
      	(Visit_Node): Set proper condition for generating ARECnF entity.
      	Ignore indirect calls. Ignore calls to subprograms
      	outside our nest.
      	(Unnest_Subprogram): Minor changes in dealing with ARECnF entity.
      	(Add_Form_To_Spec): Properly set Last_Entity field.
      	(Unnest_Subprogram): Set current subprogram scope for analyze calls.
      	Handle case of no uplevel refs in outer subprogram
      	Don't mark uplevel entities as aliased.
      	Don't deal with calls with no ARECnF requirement.
      
      2015-03-04  Robert Dewar  <dewar@adacore.com>
      
      	* s-valrea.adb (Scan_Real): Remove redundant tests from scaling loops.
      	* s-imgdec.adb (Set_Decimal_Digits): Remove redundant Max
      	operation in computing LZ.
      	* sem_attr.adb: Minor typo fix
      
      From-SVN: r221177
      Robert Dewar committed
    • [multiple changes] · b6a56408
      2015-03-04  Robert Dewar  <dewar@adacore.com>
      
      	* exp_ch7.adb: Minor reformatting.
      	* exp_unst.adb (Build_Tables): Fix minor glitch for no separate
      	spec case.
      	* erroutc.adb (Delete_Msg): add missing decrement of info msg counter.
      
      2015-03-04  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch6.adb (Build_Pragma_Check_Equivalent): Suppress
      	references to formal parameters subject to pragma Unreferenced.
      	(Suppress_Reference): New routine.
      	* sem_attr.adb (Analyze_Attribute): Reimplement the analysis
      	of attribute 'Old. Attributes 'Old and 'Result now share
      	common processing.
      	(Analyze_Old_Result_Attribute): New routine.
      	(Check_Placement_In_Check): Removed.
      	(Check_Placement_In_Contract_Cases): Removed.
      	(Check_Placement_In_Test_Case): Removed.
      	(Check_Use_In_Contract_Cases): Removed.
      	(Check_Use_In_Test_Case): Removed.
      	(In_Refined_Post): Removed.
      	(Is_Within): Removed.
      	* sem_warn.adb (Check_Low_Bound_Tested): Code cleanup.
      	(Check_Low_Bound_Tested_For): New routine.
      
      2015-03-04  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch3.adb (Expand_N_Object_Declaration):
      	Generate a runtime check to test the expression of pragma
      	Default_Initial_Condition when the object is default initialized.
      
      From-SVN: r221176
      Arnaud Charlet committed
    • [AArch64 Testsuite Obvious] Disable ipa-icf for testcases with common test bodies · 2322588a
      gcc/testsuite/
      
      	* gcc.target/aarch64/atomic-comp-swap-release-acquire.c: Add
      	-fno-ipa-icf to dg-options
      	* gcc.target/aarch64/vect_saddl_1.c: Likewise.
      	* gcc.target/aarch64/vect_smlal_1.c: Likewise.
      
      From-SVN: r221175
      James Greenhalgh committed
    • re PR c++/64398 (decltype in different contexts with similar expressions triggers segfault in GCC) · bd8b8b5c
      2015-03-04  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/64398
      	* g++.dg/cpp0x/decltype62.C: New.
      
      From-SVN: r221174
      Paolo Carlini committed
    • tree-sra.c (convert_callers): Use call_for_symbol_and_aliases. · 670654ef
      
      	* tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
      	(struct ipa_sra_check_caller_data): Add has_thunk field.
      	(ipa_sra_check_caller): Check for thunk.
      	(ipa_sra_preliminary_function_checks): Give up on function with
      	thunks.
      	(ipa_early_sra): Use call_for_symbol_and_aliases.
      
      From-SVN: r221171
      Jan Hubicka committed
    • Daily bump. · e7dbcbc3
      From-SVN: r221169
      GCC Administrator committed
  2. 03 Mar, 2015 27 commits
    • re PR target/65249 (unable to find a register to spill in class 'R0_REGS' when… · ac841cf7
      re PR target/65249 (unable to find a register to spill in class 'R0_REGS' when compiling protobuf on sh4)
      
      PR target/65249
      * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
        called for __stack_chk_guard symbol.
      
      From-SVN: r221165
      Kaz Kojima committed
    • rl78-real.md (*addqi_real): Allow SADDR types for inc/dec. · f6115d44
      * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
      inc/dec.
      (*addhi3_real): Likewise.
      * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
      pattern to match incrementing memory.
      * config/rl78/predicates.md (rl78_1_2_operand): New.
      * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
      it's the same and only mem.
      (rl78_alloc_physical_registers_op2): If there's effectively only
      one MEM, transcode it into HL.
      (rl78_far_p): Reject addresses that aren't legitimate.
      
      From-SVN: r221164
      DJ Delorie committed
    • re PR c++/65295 ([C++1y] constexpr function causes ICE if it returns a local… · bf66b9b4
      re PR c++/65295 ([C++1y] constexpr function causes ICE if it returns a local variable bigger than 16 bytes)
      
      	PR c++/65295
      	* constexpr.c (cxx_eval_constant_expression): Remove assert in
      	RESULT_DECL handling.
      
      From-SVN: r221161
      Aldy Hernandez committed
    • re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for… · 71ca36ba
      re PR libstdc++/64883 (FAIL: 17_intro/headers/c++*/all_attributes.cc (test for excess errors) on x86_64-apple-darwin10)
      
      2015-03-03  Iain Sandoe  <iain@codesourcery.com>
      
      	PR libstdc++/64883
      	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't check
      	visibility for Darwin.
      	* testsuite/17_intro/headers/c++200x/all_attributes.cc: Likewise, and
      	also deprecated.
      	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
      
      From-SVN: r221160
      Iain Sandoe committed
    • fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before negating it. · 3a5c579a
      	* fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
      	negating it.
      
      	* tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
      
      From-SVN: r221159
      Eric Botcazou committed
    • Implement call0 ABI for xtensa · 590e2636
      call0 is an ABI that doesn't use register windows.
      
      2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
      
      gcc/
      	* config/xtensa/constraints.md ("a" constraint): Include stack
      	pointer in case of call0 ABI.
      	("q" constraint): Make empty in case of call0 ABI.
      	("D" constraint): Include stack pointer in case of call0 ABI.
      	* config/xtensa/xtensa-protos.h (xtensa_set_return_address,
      	xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
      	prototypes.
      	* config/xtensa/xtensa.c (xtensa_callee_save_size): New
      	variable.
      	(xtensa_regno_to_class): Make it a local variable in the
      	function xtensa_regno_to_class.
      	(xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
      	macro, function prototype and implementation.
      	(reg_nonleaf_alloc_order): Make it a local variable in the
      	function order_regs_for_local_alloc.
      	(xtensa_conditional_register_usage): New function.
      	(TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
      	(xtensa_valid_move): Allow direct moves to stack pointer
      	register in call0 ABI.
      	(xtensa_setup_frame_addresses): Only spill register windows in
      	windowed ABI.
      	(xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
      	call0 ABI respectively.
      	(xtensa_function_arg_1): Only mark a7 register for copying in
      	windowed ABI.
      	(xtensa_call_save_reg): New function.
      	(compute_frame_size): Add space for callee saved register
      	storage to the frame size in call0 ABI.
      	(xtensa_expand_prologue): Generate code to set up stack frame
      	and save callee-saved registers in call0 ABI.
      	(xtensa_expand_epilogue): New function.
      	(xtensa_set_return_address): New function.
      	(xtensa_return_addr): Calculate return address in call0 ABI.
      	(xtensa_builtin_saveregs): Only mark a7 register for copying and
      	emit copying code in windowed ABI.
      	(order_regs_for_local_alloc): Add preferred register allocation
      	order for non-leaf function in call0 ABI.
      	(xtensa_static_chain): Add atatic chain passing for call0 ABI.
      	(xtensa_asm_trampoline_template): Add trampoline generation for
      	call0 ABI.
      	(xtensa_trampoline_init): Add trampoline initialization for
      	call0 ABI.
      	(xtensa_conditional_register_usage, xtensa_regno_to_class): New
      	functions.
      	* config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
      	(TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
      	(CALL_USED_REGISTERS): Modify to encode both windowed and call0
      	ABI call-used registers.
      	(HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
      	(INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
      	call0 ABI.
      	(REG_CLASS_CONTENTS): Include all registers into the preferred
      	reload registers set, adjust the set in the
      	xtensa_conditional_register_usage.
      	(xtensa_regno_to_class): Drop variable declaration.
      	(REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
      	function.
      	(WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
      	respectively.
      	(FUNCTION_PROFILER): Add _mcount call for call0 ABI.
      	(TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
      	(RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
      	(ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
      	location in call0 ABI.
      	(EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
      	stack adjustment size when handling exception.
      	(CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
      	* config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
      	definitions.
      	("return" pattern): Generate ret.n/ret in call0 ABI.
      	("epilogue" pattern): Expand epilogue.
      	("nonlocal_goto" pattern): Use default in call0 ABI.
      	("eh_return" pattern): Move implementation to eh_set_a0_windowed,
      	emit eh_set_a0_* depending on ABI.
      	("eh_set_a0_windowed" pattern): Former eh_return pattern.
      	("eh_set_a0_call0", "blockage"): New patterns.
      
      libgcc/
      	* config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
      	__xtensa_nonlocal_goto): Don't compile for call0 ABI.
      	(__xtensa_sync_caches): Only use entry and retw in windowed ABI,
      	use ret in call0 ABI.
      	* config/xtensa/t-windowed: New file.
      	* libgcc/config/xtensa/t-xtensa (LIB2ADDEH): Move to t-windowed.
      	* libgcc/configure: Regenerated.
      	* libgcc/configure.ac: Check if xtensa target is configured for
      	windowed ABI and thus needs to use custom unwind code.
      
      From-SVN: r221158
      Max Filippov committed
    • re PR ipa/65287 (Current trunk ICE in address_matters_p, at symtab.c:1908) · d76b082e
      
      	PR ipa/65287
      	* gcc.dg/ipa/pr65287.c: New test.
      
      From-SVN: r221157
      Jan Hubicka committed
    • re PR ipa/65287 (Current trunk ICE in address_matters_p, at symtab.c:1908) · 6fb12821
      	PR ipa/65287
      	* ipa-icf.c (sem_variable::parse): Skip all alias variables.
      	* gcc.dg/ipa/pr65287.c: New test.
      
      From-SVN: r221156
      Martin Liska committed
    • PR 65138/target · a6a62c01
      2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR 65138/target
      	* config/rs6000/rs6000-tables.opt: Regenerate table.
      
      From-SVN: r221155
      Michael Meissner committed
    • MAINTAINERS: Remove Paul Brook as a Fortran and ARM maintainer. · f2b86778
      	* MAINTAINERS: Remove Paul Brook as a Fortran and ARM
      	maintainer.
      	Remove Richard Henderson as a maintainer for the x86 port.
      
      From-SVN: r221154
      Jeff Law committed
    • [PATCH][DOC]Fix an obvious type in md.texi · 0ab9eed6
      2015-03-03  Renlin Li  <renlin.li@arm.com>
      
      gcc/
      
      	* doc/md.texi (@item ^): ChangeLog ? into ^.
      
      From-SVN: r221152
      Renlin Li committed
    • Regenerate doc/tm.texi · a55bbe13
      	* doc/tm.texi: Regenerated.
      
      From-SVN: r221151
      H.J. Lu committed
    • Turn RETURN_ADDR_IN_PREVIOUS_FRAME into C expression · 2e612c47
      This allows a target to support both windowed and non-windowed ABI.
      
      2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
      
      gcc/
      	* builtins.c (expand_builtin_return_addr): Add
      	RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
      	surrounding #ifdef.
      	* config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
      	definition to 1.
      	* config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
      	Likewise.
      	* defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
      	undefined.
      	* doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
      	paragraph.
      
      From-SVN: r221150
      Max Filippov committed
    • MAINTAINERS (CPU Port Maintainers): Update my email address. · 9dd44d1c
      2015-03-03  Joern Rennecke  <gnu@amylaar.uk>
      
              * MAINTAINERS (CPU Port Maintainers): Update my email address.
      
      From-SVN: r221149
      Joern Rennecke committed
    • tree-sra.c (ipa_sra_check_caller_data): New type. · ebde4f8e
      2015-03-03  Martin Jambor  <mjambor@suse.cz>
                  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/
              * tree-sra.c (ipa_sra_check_caller_data): New type.
              (has_caller_p): Removed.
              (ipa_sra_check_caller): New function.
              (ipa_sra_preliminary_function_checks): Use it.
      
      gcc/changelog/
              * gnat.dg/specs/pack12.ads: New test.
      
      
      
      Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
      
      From-SVN: r221148
      Martin Jambor committed
    • ICF: Use bit or instead of if branch. · 21ce14d3
      	* ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
      	instead of if branch.
      
      From-SVN: r221147
      Martin Liska committed
    • re PR ipa/65282 (wrong code at -Os and above on x86_64-linux-gnu) · 3c031cbe
      Fix PR ipa/65282.
      
      	* gcc.dg/ipa/PR65282.c: New test.
      	PR ipa/65282
      	* ipa-icf.c (sem_variable::equals): Fix wrong condition.
      
      From-SVN: r221146
      Martin Liska committed
    • re PR tree-optimization/65241 (ICE (in remove_local_expressions_from_table, at… · 2f159d9f
      re PR tree-optimization/65241 (ICE (in remove_local_expressions_from_table, at tree-ssa-dom.c:1081))
      
      	PR tree-optimization/65241
      	* tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
      	hash table if INSERT is true.
      
      	PR tree-optimization/65241
      	* gcc.c-torture/compile/pr65241.c: New test.
      
      From-SVN: r221145
      Jeff Law committed
    • re PR target/65296 ([avr] fix various issues with specs file generation) · 5cb8b86e
      	PR target/65296
      	* config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
      
      From-SVN: r221144
      Georg-Johann Lay committed
    • re PR target/64331 (regcprop propagates registers noted as REG_DEAD) · 2b4293a3
      gcc/
      	PR target/64331
      	* config/avr/avr.c (context.h, tree-pass.h): Include them.
      	(avr_pass_data_recompute_notes): New static variable.
      	(avr_pass_recompute_notes): New class.
      	(avr_register_passes): New static function.
      	(avr_option_override): Call it.
      gcc/testsuite/
      	PR target/64331
      	* gcc.target/avr/torture/pr64331.c: New test.
      
      From-SVN: r221143
      Georg-Johann Lay committed
    • Fix various problems with specs file generation. · 38822076
      gcc/
      	Fix various problems with specs file generation.
      	PR target/65296
      	* config.gcc (extra_gcc_objs) [avr]: Remove.
      	* config/avr/driver-avr.c: Remove file.
      	* config/avr/t-avr (driver-avr.o): Remove rule.
      	(gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
      	INCLUDES to build.  Depend on TM_H.
      	* config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
      	build warnings.  Fix non-matching types and non-existing %-codes.
      	(tm.h): Include.
      	(*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
      	(*libgcc) [WITH_AVRLIBC]: Add "-lm".
      	* config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
      	* config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
      	(CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
      	(LIBGCC_SPEC): Remove definitions.
      
      From-SVN: r221141
      Georg-Johann Lay committed
    • ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG to create a register in testing mode. · b4b78e2d
      	* config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
      	to create a register in testing mode.
      
      From-SVN: r221139
      Eric Botcazou committed
    • re PR target/65263 (ICE (error: unrecognizable insn / in insn_min_length, at… · 17d1bf76
      re PR target/65263 (ICE (error: unrecognizable insn / in insn_min_length, at config/rs6000/rs6000.md) on powerpc64le-linux-gnu)
      
      Fix PR ipa/65263.
      
      	PR ipa/65263
      	* cgraph.c (cgraph_node::has_thunk_p): New function.
      	* cgraph.h (cgraph_node::has_thunk_p: Likewise.
      	* ipa-icf.c (redirect_all_callers): Do not redirect thunks.
      	(sem_function::merge): Assert is changed.
      	* g++.dg/ipa/pr65263.C: New test.
      
      
      Co-Authored-By: Jan Hubicka <hubicka@ucw.cz>
      
      From-SVN: r221134
      Martin Liska committed
    • re PR ipa/65087 (r220742 causes: ICE: in ipcp_verify_propagated_values, at ipa-cp.c:1057) · bd31fe14
      Fix PR ipa/65087.
      
      	PR ipa/65087
      	* ipa-icf.c (sem_item_optimizer::execute): Change function
      	return value to boolean.
      	(sem_item_optimizer::merge_classes): Likewise.
      	(ipa_icf_driver): Return TODO_remove_functions in case there's
      	a merge operation processed.
      	* ipa-icf.h: Change function return value to boolean.
      
      
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      
      From-SVN: r221133
      Martin Liska committed
    • PR 65138/target · 0eef284e
      2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR 65138/target
      	* config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
      	processor type for 64-bit little endian PowerPC.
      
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): If
      	-mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
      	TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
      	printing built-in mask so it does not pass NULL pointers.
      
      	* doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
      	-mcpu=powerpc64le.
      
      From-SVN: r221132
      Michael Meissner committed
    • Daily bump. · a0d62069
      From-SVN: r221131
      GCC Administrator committed
    • re PR target/58158 (ICE with conditional moves on GPRs with a floating point… · 7096a068
      re PR target/58158 (ICE with conditional moves on GPRs with a floating point conditional on mipsel with loongson2f)
      
      2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
      
      	PR target/58158
      	* config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
      	!ISA_HAS_FP_CONDMOVE.
      
      From-SVN: r221128
      Steve Ellcey committed
  3. 02 Mar, 2015 7 commits