1. 04 Sep, 2014 16 commits
    • Merge remote-tracking branch 'origin/aldyh/debug-early' into debug-early · c5a36850
      Conflicts:
      	gcc/ChangeLog.debug-early
      	gcc/dwarf2out.c
      
      From-SVN: r214912
      Aldy Hernandez committed
    • + * c/c-decl.c (write_global_declarations_1): Call global_decl() + with early=true. · 989f386c
      +       * c/c-decl.c (write_global_declarations_1): Call global_decl()
      +       with early=true.
      +       (write_global_declarations_2): Call global_decl() with
      +       early=false.
      +       * dbxout.c (dbxout_global_decl): New argument.
      +       * debug.c (do_nothing_debug_hooks): Use debug_nothing_tree_bool
      +       for global_decl hook.
      +       (debug_nothing_tree_bool): New.
      +       (struct gcc_debug_hooks): New argument to global_decl.
      +       * dwarf2out.c (output_die): Add misc debugging information.
      +       (gen_variable_die): Do not reparent children.
      +       (dwarf2out_global_decl): Add new documentation.  Add EARLY
      +       argument.
      +       (dwarf2out_decl): Make sure we don't generate new DIEs if we
      +       already have a DIE.
      +       * cp/name-lookup.c (do_namespace_alias): New argument to
      +       global_decl debug hook.
      +       * fortran/trans-decl.c (gfc_emit_parameter_debug_info): Same.
      +       * godump.c (go_global_decl): Same.
      +       * lto/lto-lang.c (lto_write_globals): Same.
      +       * sdbout.c (sdbout_global_decl): Same.
      +       * toplev.c (emit_debug_global_declarations): Same.
      +       * vmsdbgout.c (vmsdbgout_global_decl): Same.
      +       * tree.c (free_lang_data_in_decl): Do not call
      +       dwarf2out_early_decl from here.
      
      From-SVN: r214911
      Aldy Hernandez committed
    • Add missing ChangeLog entries for last commit. · 177e6c96
      From-SVN: r214910
      Aldy Hernandez committed
    • dwarf2out.c (struct die_struct): Add dumped_early field. · 7c371a4c
      	* dwarf2out.c (struct die_struct): Add dumped_early field.
      	(reparent_child): New.
      	(splice_child_die): Use reparent_child.
      	(gen_subprogram_die): Do not regenerate parameters if previously
      	dumped.
      	(gen_variable_die): Fix parent of decls that have been dumped
      	early to reflect correct context.
      	Do not regenerate decls if previously dumped.
      	(dwarf2out_decl): Add return value.
      	(dwarf2out_early_decl): Set dumped_early bit.
      
      From-SVN: r214909
      Aldy Hernandez committed
    • Make output_die() output the parent DIE for each DIE. · b7af73a7
      From-SVN: r214908
      Aldy Hernandez committed
    • Make gen_formal_parameter_die() merge DIEs from a previous execution. · c9fd354a
      Do not set DW_AT_inline incorrectly on all functions.
      
      Do not remove formal parameters when a previous DIE has been found.
      Instead, augment the missing bits later.
      
      From-SVN: r214907
      Aldy Hernandez committed
    • dearly: Emit DIEs for decls early in the compilation process. · 73179e4a
      This is the original patch from Michael Matz, ported to a more recent
      mainline.
      
      From-SVN: r214906
      Aldy Hernandez committed
    • re PR target/62040 (internal compiler error: in simplify_const_unary_operation,… · 51437269
      re PR target/62040 (internal compiler error: in simplify_const_unary_operation, at simplify-rtx.c:1555)
      
      	PR target/62040
      	* config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
      	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
      	it into two patterns.
      	(move_lo_quad_internal_be_<mode>): Likewise.
      	
      	* gcc.target/aarch64/pr62040.c: New test.
      
      From-SVN: r214905
      Guozhi Wei committed
    • options.texi: Document that Var and Init are required if CPP is given. · 2b71f4a4
      gcc/ChangeLog:
      
      2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* doc/options.texi: Document that Var and Init are required if CPP
      	is given.
      	* optc-gen.awk: Require Var and Init if CPP is given.
      	* common.opt (Wpedantic): Use Init.
      
      libcpp/ChangeLog:
      
      2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* macro.c (replace_args): Use cpp_pedwarning, cpp_warning and
      	CPP_W flags.
      	* include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
      	* init.c (cpp_create_reader): Do not init to -1 here.
      	* expr.c (num_binary_op): Use cpp_pedwarning.
      
      gcc/c-family/ChangeLog:
      
      2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels,
      	Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic,
      	(Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var
      	and Init.
      	* c-opts.c (c_common_handle_option): Do not handle here.
      	(sanitize_cpp_opts): Likewise.
      	* c-common.c (struct reason_option_codes_t): Handle
      	CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC.
      
      gcc/testsuite/ChangeLog:
      
      2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* gcc.dg/cpp/endif-pedantic2.c: More general options do not
      	override specific ones, but specific ones do.
      
      From-SVN: r214904
      Manuel López-Ibáñez committed
    • rs6000.c (special_handling_values): Add SH_EXTRACT. · 6bf5ce8f
      [gcc]
      
      2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (special_handling_values): Add
      	SH_EXTRACT.
      	(rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
      	wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
      	as swappable with special handling SH_EXTRACT.  Remove
      	UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
      	optimization.
      	(adjust_extract): New function.
      	(handle_special_swappables): Add default to case statement; add
      	case for SH_EXTRACT that calls adjust_extract.
      	(dump_swap_insn_table): Handle SH_EXTRACT.
      
      [gcc/testsuite]
      
      2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/swaps-p8-13.c: New test.
      	* gcc.target/powerpc/swaps-p8-14.c: New test.
      	* gcc.target/powerpc/swaps-p8-15.c: New test.
      
      From-SVN: r214903
      Bill Schmidt committed
    • vsx.md (*vsx_extract_<mode>_load): Always match selection of 0th memory… · 2b3106ec
      vsx.md (*vsx_extract_<mode>_load): Always match selection of 0th memory doubleword, regardless of endianness.
      
      [gcc]
      
      2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
      	selection of 0th memory doubleword, regardless of endianness.
      
      [gcc/testsuite]
      
      2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vsx-extract-1.c:  Test 0th doubleword
      	regardless of endianness.
      
      From-SVN: r214902
      Bill Schmidt committed
    • rx.h (HARD_REGNO_MODE_OK): Add braces. · aad03884
      2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
      
      	* config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
      
      From-SVN: r214901
      Jan-Benedict Glaw committed
    • re PR ipa/61659 (Extra undefined symbol because of devirtualization) · 382995f5
      	PR ipa/61659
      	* decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on
      	newdecl, not olddecl.
      
      From-SVN: r214900
      Markus Trippelsdorf committed
    • re PR debug/60655 (ICE: output_operand: invalid expression as operand) · 5c153812
      	PR debug/60655
      	* dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
      	can't be output.
      
      From-SVN: r214899
      Alan Modra committed
    • Add target hook to override DWARF2 frame register size · ff050c66
      gcc/
      
      	* target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
      	* targhooks.c (default_dwarf_frame_reg_mode): New function.
      	* targhooks.h (default_dwarf_frame_reg_mode): New prototype.
      	* doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
      	* doc/tm.texi: Regenerate.
      	* dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
      	selection logic to default_dwarf_frame_reg_mode.
      
      From-SVN: r214898
      Matthew Fortune committed
    • Daily bump. · a0f75fa8
      From-SVN: r214897
      GCC Administrator committed
  2. 03 Sep, 2014 24 commits
    • compiler: Add precise type information on the heap. · f1d2ac4f
      	* go-gcc.cc (Gcc_backend::implicit_variable): Remove init
      	parameter.  Add is_hidden parameter.
      	(Gcc_backend::implicit_variable_set_init): New method.
      	(Gcc_backend::implicit_variable_reference): New method.
      
      From-SVN: r214894
      Chris Manghane committed
    • invoke.texi: Document that -Wlogical-not-parentheses is enabled by -Wall. · d2e4feca
      	* doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
      	by -Wall.
      c-family/
      	* c.opt (Wlogical-not-parentheses): Enable by -Wall.
      
      From-SVN: r214893
      Marek Polacek committed
    • [multiple changes] · 88f7d6fb
      2014-09-03  Fritz Reese  <Reese-Fritz@zai.com>
      
              PR fortran/62174
              * decl.c (variable_decl): Don't overwrite typespecs of Cray
              * pointees
              when matching a component declaration.
      
      2014-09-02  Fritz Reese  <Reese-Fritz@zai.com>
      
              PR fortran/62174
              * gfortran.dg/cray_pointers_11.f90: New.
      
      From-SVN: r214891
      Fritz Reese committed
    • rtl.texi (RTX_AUTOINC): Document that the first operand is the automodified register. · 64e04187
      gcc/
      	* doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
      	the automodified register.
      
      From-SVN: r214890
      Richard Sandiford committed
    • output.h (get_some_local_dynamic_name): Declare. · 4fbca4ba
      gcc/
      	* output.h (get_some_local_dynamic_name): Declare.
      	* final.c (some_local_dynamic_name): New variable.
      	(get_some_local_dynamic_name): New function.
      	(final_end_function): Clear some_local_dynamic_name.
      	* config/alpha/alpha.c (machine_function): Remove some_ld_name.
      	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
      	(print_operand): Report an error if '%&' is used inappropriately.
      	* config/i386/i386.c (get_some_local_dynamic_name): Delete.
      	(get_some_local_dynamic_name_1): Delete.
      	* config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
      	(rs6000_get_some_local_dynamic_name): Delete.
      	(rs6000_get_some_local_dynamic_name_1): Delete.
      	(print_operand): Report an error if '%&' is used inappropriately.
      	* config/s390/s390.c (machine_function): Remove some_ld_name.
      	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
      	(print_operand): Assert that get_some_local_dynamic_name is nonnull.
      	* config/sparc/sparc.c: Include rtl-iter.h.
      	(machine_function): Remove some_ld_name.
      	(sparc_print_operand): Report an error if '%&' is used inappropriately.
      	(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
      
      From-SVN: r214889
      Richard Sandiford committed
    • aarch64: Improve epilogue unwind info · dd991abb
              * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
              (aarch64_popwb_pair_reg): Remove.
              (aarch64_set_frame_expr): Remove.
              (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
              the restore ops performed by the insns generated.
              (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
              insn.  Perform the calls_eh_return addition later; do not attempt to
              preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
              (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
              special markup at all.  Load cfun->machine->frame.hard_fp_offset
              into a local variable.
              (aarch64_frame_pointer_required): Don't check calls_alloca.
      
      From-SVN: r214886
      Richard Henderson committed
    • opts.c (default_options_optimization): Adjust max-combine-insns to 2 for -Og. · b30e733a
      2014-09-03  Richard Biener  <rguenther@suse.de>
      
      	* opts.c (default_options_optimization): Adjust
      	max-combine-insns to 2 for -Og.
      
      From-SVN: r214879
      Richard Biener committed
    • re PR ipa/62015 (ipa-cp-clone uses a clone that is too specialized for the call context) · c8f40352
      2014-09-03  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/62015
      	* ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
      	pass-trough jump functions correctly.
      
      testsuite/
      	* g++.dg/ipa/pr62015.C: New test.
      
      From-SVN: r214878
      Martin Jambor committed
    • re PR ipa/61986 (ICE on valid code at -O3 on x86_64-linux-gnu… · 6f9549ee
      re PR ipa/61986 (ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480)
      
      2014-09-03  Martin Jambor  <mjambor@suse.cz>
          
      	PR ipa/61986
      	* ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
      	created replacements in ascending order of offsets.
      	(known_aggs_to_agg_replacement_list): Likewise.
          
      gcc/testsuite/
      	* gcc.dg/ipa/pr61986.c: New test.
      
      From-SVN: r214877
      Martin Jambor committed
    • re PR c/62294 (Missing "passing argument [...] from incompatible pointer type" warning.) · 2b3ae5d1
      	PR c/62294
      	* gcc.dg/pr62294.c: New test.
      	* gcc.dg/pr62294.h: New file.
      
      From-SVN: r214876
      Marek Polacek committed
    • Fix for tree-ssa-pre · 27732ffd
      	* tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
      	is set to preserve uninitialized value for vnresult.
      
      From-SVN: r214873
      Martin Liska committed
    • pr39228.c: Use dg-add-options instead of dg-options. · a0d3407e
      	* gcc.c-torture/execute/pr39228.c: Use dg-add-options instead
      	of dg-options.  Add "inline" keyword to test functions.
      
      From-SVN: r214872
      Kaz Kojima committed
    • re PR c/62024 (__atomic_always_lock_free is not a constant expression) · 8d95fe25
      	PR c/62024
      	* c-parser.c (c_parser_static_assert_declaration_no_semi): Strip no-op
      	conversions.
      
      	* g++.dg/cpp0x/pr62024.C: New test.
      	* gcc.dg/pr62024.c: New test.
      
      From-SVN: r214871
      Marek Polacek committed
    • [NDS32] No need to take padding into consideration in Andes ABI2 because we can... · d40f3c40
      [NDS32] No need to take padding into consideration in Andes ABI2 because
              we can pass arguments in registers for variadic function.
      
        -- By default GCC uses must_pass_in_stack_var_size_or_pad for TARGET_MUST_PASS_IN_STACK.
           For Andes ABI2, the data layout in memory will be incorrect when calling variadic function
           under big-endian configuration.
      
      	* config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
      	for TARGET_MUST_PASS_IN_STACK.
      
      From-SVN: r214869
      Chung-Ju Wu committed
    • [NDS32] Provide TARGET_ARG_PARTIAL_BYTES so that we can have structure argument · 650fc469
              partially in registers and stack.
      
        -- This is needed if we would like to pass variadic arguments via registers
           that are pused on the stack by callee.  So that va_arg() can access
           arguments continously in memory.
      
      	* config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
      	for TARGET_ARG_PARTIAL_BYTES.
      
      From-SVN: r214868
      Chung-Ju Wu committed
    • [NDS32] Emit stack push instructions for varargs at prologue stage and emit... · 557430f1
      [NDS32]  Emit stack push instructions for varargs at prologue stage and
               emit stack adjustment instructions for varargs at epilogue stage.
      
        -- Note that we do not need to handle it in v3push/v3pop prologue/epilogue
           expanding because we do not apply v3push/v3pop for variadic function.
      
      	* config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
      	instructions for varargs implementation.
      	(nds32_expand_epilogue): Emit stack adjustment instructions for
      	varargs implementation.
      
      From-SVN: r214867
      Chung-Ju Wu committed
    • [NDS32] Since we are going to provide new heuristic for fp-as-gp optimization, · 99575d60
              we better not to set cfun->machine->fp_as_gp_p at prologue expanding.
      
      	* config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
      	optimization detection.
      
      From-SVN: r214866
      Chung-Ju Wu committed
    • [NDS32] Deal with nameless arguments in nds32_function_arg and nds32_function_arg_advance. · 7f6cd86b
        1. We have caller prepare nameless arguments in the way of calling a normal function.
      
           e.g. Assume a function: void va_test (int n, ...);
                When calling "va_test (6, 11, 22, 33, 44, 55, 66);",
                     r0    <- 6
                     r1    <- 11
                     r2    <- 22
                     r3    <- 33
                     r4    <- 44
                     r5    <- 55
                  [sp + 0] <- 66
      
        2. Note that we DO NOT handle it for TARGET_HARD_FLOAT case.
           The TARGET_HARD_FLOAT should push all the nameless arguments into
           stack and GCC is able to take care of them itself.
           In addition, we have not implemented hard float on trunk yet.
      
      	* config/nds32/nds32.c (nds32_function_arg): Deal with nameless
      	arguments.
      	(nds32_function_arg_advance): Deal with nameless arguments.
      	* config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
      	(NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
      	(NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
      
      From-SVN: r214865
      Chung-Ju Wu committed
    • tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared. · 52e4630c
      2014-09-03  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
      	(struct bb_bitmap_sets): Remove deferred member.
      	(BB_DEFERRED): Remove.
      	(defer_or_phi_translate_block): Remove.
      	(compute_antic_aux): Remove deferring of blocks, assert
      	proper iteration order.
      	(compute_antic): Do not set BB_DEFERRED.
      	(eliminate): Allocate el_avail of proper size initially.
      
      From-SVN: r214864
      Richard Biener committed
    • [NDS32] Since argument pointer must be 8-byte alignment... · 4f44e960
      [NDS32] Since argument pointer must be 8-byte alignment, our first parameter may
              require 4-byte offset if pushed varargs is not 8-byte aligned.
      
      	* config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
      	according to the value of crtl->args.pretend_args_size.
      
      From-SVN: r214863
      Chung-Ju Wu committed
    • [NDS32] Prepare necessary varargs information in compute_stack_frame(). · 35da54a6
      	* config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
      	varargs information.
      
      From-SVN: r214862
      Chung-Ju Wu committed
    • [NDS32] Implement TARGET_SETUP_INCOMING_VARARGS target hook. · d4a6a4d9
      	* config/nds32/nds32.c (nds32_setup_incoming_varargs): New
      	implementation for TARGET_SETUP_INCOMING_VARARGS.
      	(nds32_strict_argument_naming): Refine comment.
      	* config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
      	Define for future implementation.
      
      From-SVN: r214861
      Chung-Ju Wu committed
    • adxintrin.h (_subborrow_u32): New. · 9c6fb3ba
      gcc/
      2014-09-02  Ilya Tocar  <ilya.tocar@intel.com>
      
              * config/i386/adxintrin.h (_subborrow_u32): New.
              (_addcarry_u32): Ditto.
              (_subborrow_u64): Ditto.
              (_addcarry_u64): Ditto.
              * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
              IX86_BUILTIN_SBB64.
              (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
              __builtin_ia32_sbb_u64
      
      
      testsuite/
      2014-09-02  Ilya Tocar  <ilya.tocar@intel.com>
      
              * gcc.target/i386/adx-addcarryx32-1.c: Test addcarry, subborrow.
              * gcc.target/i386/adx-addcarryx32-2.c: Ditto.
              * gcc.target/i386/adx-addcarryx32-3.c: Ditto.
              * gcc.target/i386/adx-addcarryx64-1.c: Ditto.
              * gcc.target/i386/adx-addcarryx64-2.c: Ditto.
              * gcc.target/i386/adx-addcarryx64-3.c: Ditto.
      
      From-SVN: r214860
      Ilya Tocar committed
    • [NDS32] Define and rename some GPR-specific stuff. · 9d93cc24
      	* config/nds32/nds32.c (nds32_function_arg): Define and rename some
      	GPR-specific stuff.
      	(nds32_function_arg_advance): Likewise.
      	(nds32_init_cumulative_args): Likewise.
      	* config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
      	(NDS32_FIRST_GPR_REGNUM): Define.
      	(NDS32_LAST_GPR_REGNUM): Define.
      	(NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
      	(NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
      	(FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
      	(machine_function): Use GRP-specific stuff.
      
      From-SVN: r214859
      Chung-Ju Wu committed