- 04 Sep, 2014 12 commits
-
-
From-SVN: r214908
Aldy Hernandez committed -
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 -
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, 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 -
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 -
[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 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 -
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 -
PR ipa/61659 * decl.c (duplicate_decls): Check DECL_DECLARED_INLINE_P on newdecl, not olddecl. From-SVN: r214900
Markus Trippelsdorf committed -
PR debug/60655 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend can't be output. From-SVN: r214899
Alan Modra committed -
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 -
From-SVN: r214897
GCC Administrator committed
-
- 03 Sep, 2014 28 commits
-
-
* 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 -
* 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 -
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 -
gcc/ * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is the automodified register. From-SVN: r214890
Richard Sandiford committed -
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 -
* 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 -
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 -
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 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 -
PR c/62294 * gcc.dg/pr62294.c: New test. * gcc.dg/pr62294.h: New file. From-SVN: r214876
Marek Polacek committed -
* 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 -
* 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 -
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 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 -
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 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 -
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 -
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 -
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, 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 -
* config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary varargs information. From-SVN: r214862
Chung-Ju Wu committed -
* 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 -
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 -
* 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 -
* config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables. (nds32_expand_epilogue): Likewise. (nds32_expand_prologue_v3push): Likewise. (nds32_expand_epilogue_v3pop): Likewise. From-SVN: r214858
Chung-Ju Wu committed -
[NDS32] We need to make sure it is NOT a variadic function so that some v3push/v3pop preparation can be applied. -- The rationale of such avoidance is that the 'pop25' instruction also contains return behavior and we have no chance to further adjust stack pointer before returning to caller, which is very important to variadic function. -- So we do not setup v3push/v3pop (push25/pop25) information for a variadic function. It will use normal stack push/pop instead. * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use v3push/v3pop for variadic function. * config/nds32/nds32.md (prologue, epilogue): Likewise. From-SVN: r214857
Chung-Ju Wu committed -
-- In fact, we only need to take care of 'push.s' situation, because we have to push all the nameless arguments into stack. -- We do not have to use 'pop.s' to restore them back to registers, because we can just adjust stack pointer to set frame location. This operation should be done in epilogue expanding. -- Because 'pop25' instruction also performs return operation, we will not use v3push/v3pop on isr and vararg functions. Therefore, their instruction length should be 4 bytes. * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): Check rtx for varargs implementation. (nds32_output_stack_pop): Likewise. * config/nds32/nds32-protos.h: Have a rtx argument for nds32_output_stack_push and nds32_output_stack_pop. * config/nds32/nds32.md: Likewise. From-SVN: r214856
Chung-Ju Wu committed -
* config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function to check if FUNC is an interrupt service routine. * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration. From-SVN: r214855
Chung-Ju Wu committed
-