aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-12-19* [SH] Add splitter to addsi3_compact.Kaz Kojima3-7/+44
From-SVN: r218891
2014-12-19* [SH] Modify movsi_ie and movsf_ie patterns for LRA.Kaz Kojima4-2/+148
From-SVN: r218890
2014-12-19* [SH] Miscellaneous changes for LRA.Kaz Kojima6-3/+93
From-SVN: r218889
2014-12-19* [SH] Add -mlra option.Kaz Kojima3-0/+24
From-SVN: r218888
2014-12-19* Add TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT target macro.Kaz Kojima8-0/+100
From-SVN: r218887
2014-12-19* Add TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV target macro.Kaz Kojima6-1/+63
From-SVN: r218886
2014-12-19lra-constraints.c (process_address_1): Swap base_term and index_term if ↵Kaz Kojima2-0/+20
INDEX_REG_CLASS is assigned to base_term... * lra-constraints.c (process_address_1): Swap base_term and index_term if INDEX_REG_CLASS is assigned to base_term already when INDEX_REG_CLASS is a single register class. From-SVN: r218885
2014-12-19compiler: Avoid multiple evaluations in interface conversions.Ian Lance Taylor4-11/+164
Added assertions for cases that might lead to multiple evaluations, and fixed all the problems I saw. Test case already in master Go testsuite (https://go-review.googlesource.com/#/c/1710/). From-SVN: r218884
2014-12-19Daily bump.GCC Administrator1-1/+1
From-SVN: r218883
2014-12-19re PR c++/63723 (Narrowing conversion allowed in braced init list in SFINAE ↵Paolo Carlini2-0/+46
context) 2014-12-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/63723 * g++.dg/cpp0x/sfinae54.C: New. From-SVN: r218880
2014-12-18re PR c++/64105 (ICE: in strip_typedefs, at cp/tree.c:1326)Jason Merrill3-4/+36
PR c++/64105 * parser.c (cp_parser_simple_type_specifier): Make auto parameter before -std=c++14 an error. From-SVN: r218879
2014-12-18re PR c++/59204 (Incorrect metaprogram evaluation in SFINAE context)Paolo Carlini2-0/+28
2014-12-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/59204 * g++.dg/cpp0x/sfinae53.C: New. From-SVN: r218878
2014-12-18re PR c++/64352 (No SFINAE with deleted function)Jason Merrill3-1/+35
PR c++/64352 * pt.c (tsubst_copy_and_build): Pass complain to mark_used. From-SVN: r218877
2014-12-18re PR c++/64251 (Chromium build error only with --enable-checking=yes)Jason Merrill3-1/+13
PR c++/64251 * decl2.c (mark_used): Don't mark if in_template_function. From-SVN: r218876
2014-12-18lra-constraints.c (lra-constraints.c): Exchange places of sclass and dclass.Vladimir Makarov2-1/+6
2014-12-18 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (lra-constraints.c): Exchange places of sclass and dclass. From-SVN: r218875
2014-12-18re PR rtl-optimization/64291 (Miscompile t-div in GMP's testsuite)Vladimir Makarov5-9/+79
2014-12-18 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/64291 * lra-remat.c (bad_for_rematerialization_p): Add UNPSEC_VLOATILE. (create_cands): Process only output reload insn with potential cands. 2014-12-18 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/64291 * testsuite/gcc.target/i386/pr64291-[12].c: New tests. From-SVN: r218874
2014-12-18re PR c++/60955 (Erroneous warning about taking address of register with ↵Paolo Carlini6-10/+36
std=c++1y) /cp 2014-12-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60955 * pt.c (struct warning_sentinel): Move it... * cp-tree.h: ... here. * semantics.c (force_paren_expr): Use it. /testsuite 2014-12-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/60955 * g++.dg/warn/register-parm-1.C: New. From-SVN: r218871
2014-12-18X86-64: Add -mskip-rax-setupH.J. Lu8-1/+119
The Linux kernel never passes floating point arguments around, vararg functions or not. Hence no vector registers are ever used when calling a vararg function. But gcc still dutifully emits an "xor %eax,%eax" before each and every call of a vararg function. Since no callee use that for anything, these instructions are redundant. This patch adds the -mskip-rax-setup option to skip setting up RAX register when SSE is disabled and there are no variable arguments passed in vector registers. Since RAX register is used to avoid unnecessarily saving vector registers on stack when passing variable arguments, the impacts of this option are callees may waste some stack space, misbehave or jump to a random location. GCC 4.4 or newer don't those issues, regardless the RAX register value since they don't check the RAX register value when SSE is disabled. gcc/ * config/i386/i386.c (ix86_expand_call): Skip setting up RAX register for -mskip-rax-setup when there are no parameters passed in vector registers. * config/i386/i386.opt (mskip-rax-setup): New option. * doc/invoke.texi: Document -mskip-rax-setup. gcc/testsuite/ * gcc.target/i386/amd64-abi-7.c: New tests. * gcc.target/i386/amd64-abi-8.c: Likwise. * gcc.target/i386/amd64-abi-9.c: Likwise. From-SVN: r218870
2014-12-18[AArch64] Simplify+improve patterns for ushr(d?)_n_u64 intrinsicAlan Lawrence5-14/+13
gcc/: * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): Handle shift by 64 by moving const0_rtx. (aarch64_ushr_simddi): Delete. * config/aarch64/aarch64.md (enum unspec): Delete UNSPEC_USHR64. gcc/testsuite/: * gcc.target/aarch64/ushr64_1.c: Remove scan-assembler "ushr...64". From-SVN: r218868
2014-12-18[AArch64] Simplify patterns for sshr_n_[us]64 intrinsicAlan Lawrence3-15/+13
* config/aarch64/aarch64.md (enum "unspec"): Remove UNSPEC_SSHR64. * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): Change shift amount to 63 if was 64. (aarch64_sshr_simddi): Remove. From-SVN: r218867
2014-12-18[AArch64] Add TARGET_MIN_DIVISIONS_FOR_RECIP_MULWilco Dijkstra2-0/+15
2014-12-18 Wilco Dijkstra <wilco.dijkstra@arm.com> * gcc/config/aarch64/aarch64.c (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Define. (aarch64_min_divisions_for_recip_mul): New function. From-SVN: r218866
2014-12-18[AArch64] Generalize code alignmentWilco Dijkstra3-8/+29
2014-12-18 Wilco Dijkstra <wilco.dijkstra@arm.com> * config/aarch64/aarch64-protos.h (tune-params): Add code alignment tuning parameters. * gcc/config/aarch64/aarch64.c (generic_tunings): Add code alignment tuning parameters. (cortexa53_tunings): Likewise. (cortexa57_tunings): Likewise. (thunderx_tunings): Likewise. (aarch64_override_options): Use new alignment tunings. From-SVN: r218865
2014-12-18re PR tree-optimization/64330 (IPA-ICF merges const exported vars that could ↵Martin Liska2-3/+14
be addressable in other TUs) Fix for PR64330. PR tree-optimization/64330 * ipa-icf.c (sem_variable::parse): Add checking for externally visible symbols and do not introduce an alias for an external declaration. From-SVN: r218864
2014-12-18re PR bootstrap/63573 (libgo: ICE building libgo on powerpc-linux-gnu)Jan Hubicka2-2/+12
Fix for PR bootstrap/63573. PR bootstrap/63573 * tree-inline.c (remap_gimple_stmt): Handle gimple_call_from_thunk_p predicate. From-SVN: r218861
2014-12-18re PR ipa/64146 (ipa-icf breaks gold dynamic_test_2 test)Martin Liska4-0/+56
Fix for PR ipa/64146 PR ipa/64146 * ipa-icf.c (sem_function::merge): Check for decl_binds_to_current_def_p is newly added to merge operation. * g++.dg/ipa/pr64146.C: New test. From-SVN: r218860
2014-12-18Change mpx effective-target test into link testRainer Orth2-1/+7
* lib/mpx-dg.exp (check_effective_target_mpx): Change into link test. Add main. From-SVN: r218859
2014-12-18re PR middle-end/62178 ([AArch64] Performance regression on matrix matrix ↵Bin Cheng4-4/+154
multiply due to r211211) PR tree-optimization/62178 * tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function. (iv_ca_replace): New function. (try_improve_iv_set): New parameter try_replace_p. Break local optimal fixed-point by calling iv_ca_replace. (find_optimal_iv_set_1): Pass new argument to try_improve_iv_set. gcc/testsuite/ChangeLog PR tree-optimization/62178 * gcc.target/aarch64/pr62178.c: New test. From-SVN: r218855
2014-12-18auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right place.Dehao Chen2-2/+13
gcc/ChangeLog: 2014-12-17 Dehao Chen <dehao@google.com> * auto-profile.c (afdo_annotate_cfg): Invoke update_ssa in the right place. (auto_profile): Recompute inline summary after processing cgraph node. From-SVN: r218854
2014-12-18Daily bump.GCC Administrator1-1/+1
From-SVN: r218853
2014-12-17re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)Oleg Endo3-49/+69
gcc/ PR target/51244 * config/sh/sh_treg_combine.cc (is_conditional_insn): New function. (cbranch_trace): Add member rtx* condition_rtx_in_insn, initialize it accordingly in constructor. (cbranch_trace::branch_condition_rtx_ref): New function. (cbranch_trace::branch_condition_rtx): Use branch_condition_rtx_ref. (sh_treg_combine::try_invert_branch_condition): Invert condition rtx in insn using reversed_comparison_code and validate_change instead of invert_jump_1. (sh_treg_combine::execute): Look for conditional insns in basic blocks in addition to conditional branches. * config/sh/sh.md (*movsicc_div0s): Remove combine patterns. From-SVN: r218850
2014-12-17re PR target/51244 ([SH] Inefficient conditional branch and code around T bit)Oleg Endo2-1/+28
gcc/ PR target/51244 * config/sh/sh_treg_combine.cc (sh_treg_combine::try_optimize_cbranch): Combine ccreg inversion and cbranch into inverted cbranch. From-SVN: r218847
2014-12-17Fix typo in changelog.Vladimir Makarov1-2/+3
From-SVN: r218836
2014-12-17lra-constrints.c (process_alt_operands): Remove non allocatable hard regs ↵Vladimir Makarov2-13/+24
when considering ira_prohibited_class_mode_regs. 2014-12-17 Vladimir Makarov <vmakarov@redhat.com> * lra-constrints.c (process_alt_operands): Remove non allocatable hard regs when considering ira_prohibited_class_mode_regs. From-SVN: r218835
2014-12-17re PR fortran/64173 ([F03] ICE involving procedure pointer component)Janus Weil4-1/+38
2014-12-17 Janus Weil <janus@gcc.gnu.org> PR fortran/64173 * trans-array.c (structure_alloc_comps): Do not nullify procedure pointer components. 2014-12-17 Janus Weil <janus@gcc.gnu.org> PR fortran/64173 * gfortran.dg/proc_ptr_comp_40.f90: New. From-SVN: r218834
2014-12-17sreal.h (sreal::normalize): Implement inline.Jan Hubicka3-59/+91
* sreal.h (sreal::normalize): Implement inline. (sreal::normalize_up): New function. (sreal::normalize_down): New function. * sreal.c (sreal::normalize): Remove. From-SVN: r218833
2014-12-17re PR c++/64333 (C++14 constexpr gives wrong results when a looping ↵Jason Merrill4-41/+89
constexpr function is evaluated twice) PR c++/64333 * constexpr.c (cxx_bind_parameters_in_call): non_constant_args parm. (cxx_eval_call_expression): Don't cache calls with non-constant args. (cxx_eval_constant_expression) [COMPOUND_EXPR]: Pass true for lval. (cxx_eval_unary_expression, cxx_eval_binary_expression) (cxx_eval_conditional_expression): Pass false for lval. From-SVN: r218832
2014-12-17* constexpr.c: Change "addr" parm names to "lval".Jason Merrill2-88/+90
From-SVN: r218831
2014-12-17* constexpr.c: Tweak comments and formatting.Jason Merrill2-7/+17
From-SVN: r218830
2014-12-17[AArch64] Remove "generic_sched" attributeJames Greenhalgh2-8/+4
gcc/ * config/aarch64/aarch64.md (generic_sched): Delete it. From-SVN: r218829
2014-12-17MSP430: Fix unused arg warningJan-Benedict Glaw2-1/+6
The build robot found this: g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common -DHAVE_CONFIG_H -I. -I. -I../../../gcc/gcc -I../../../gcc/gcc/. -I../../../gcc/gcc/../include -I../../../gcc/gcc/../libcpp/include -I/opt/cfarm/mpc/include -I../../../gcc/gcc/../libdecnumber -I../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../../gcc/gcc/../libbacktrace -o msp430.o -MT msp430.o -MMD -MP -MF ./.deps/msp430.TPo ../../../gcc/gcc/config/msp430/msp430.c ../../../gcc/gcc/config/msp430/msp430.c:979:43: error: unused parameter ‘file’ [-Werror=unused-parameter] msp430_asm_output_addr_const_extra (FILE *file, rtx x) ^ cc1plus: all warnings being treated as errors make[2]: *** [msp430.o] Error 1 (See for example this build: http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=384666) Ok for this one? 2014-12-17 Jan-Benedict Glaw <jbglaw@lug-owl.de> * config/msp430/msp430.c (msp430_asm_output_addr_const_extra): Fix unused argument warning. From-SVN: r218828
2014-12-17dwarf2out.c: do not short-circuit add_bound_info in array descr. lang-hookPierre-Marie de Rodat2-275/+324
gcc/ * dwarf2out.h (struct array_descr_info): Remove the base_decl field. * dwarf2out.c (enum dw_scalar_form): New. (struct loc_descr_context): New. (add_scalar_info): New. (add_bound_info): Add a context parameter. Use add_scalar_info. (loc_list_from_tree): Add a context parameter. Handle PLACEHOLDER_EXPR nodes for type-related expressions. Likewise for base declarations. (loc_descriptor_from_tree): Add a context parameter. (subrange_type_die): Update calls to add_bound_info. (tls_mem_loc_descriptor): Likewise. (loc_list_for_address_of_addr_expr_of_indirect_ref): Add a context parameter. Update calls to loc_list_from_tree. (add_subscript_info): Update calls to add_bound_info. (gen_array_type_die): Update calls to loc_list_from_tree and to add_bound_info. (descr_info_loc): Remove. (add_descr_info_field): Remove. (gen_descr_array_type_die): Switch add_descr_info_field calls into add_scalar_info/add_bound_info ones. (gen_subprogram_die): Update calls to loc_list_from_tree. (gen_variable_die): Likewise. From-SVN: r218827
2014-12-17Add a few debug utilities for DWARF expressionsPierre-Marie de Rodat3-102/+187
* dwarf2out.c (print_loc_descr): New. (print_dw_val): New. (print_attribute): New. (print_loc_descr): New. (print_die): Use print_dw_val. (debug_dwarf_loc_descr): New. * dwarf2out.h (debug_dwarf_loc_descr): New declaration. From-SVN: r218826
2014-12-17Make the Ada front-end use the array descr language hookPierre-Marie de Rodat2-0/+68
* gcc-interface/misc.c (gnat_get_array_descr_info): New. Use it for the get_array_descr_info lang-hook. Use it to tune the DWARF output for array types. From-SVN: r218825
2014-12-17Enable the array descr language hook for all DWARF versionsPierre-Marie de Rodat2-15/+29
* dwarf2out.c (gen_type_die_with_usage): Enable the array lang-hook even when (dwarf_version < 3 && dwarf_strict). (gen_descr_array_die): Do not output DW_AT_data_locationn, DW_AT_associated, DW_AT_allocated and DW_AT_byte_stride DWARF attributes when (dwarf_version < 3 && dwarf_strict). From-SVN: r218824
2014-12-17Complete information generated through the array descriptor language hookPierre-Marie de Rodat5-18/+66
gcc/ * dwarf2out.h (enum array_descr_ordering): New. (array_descr_dimen): Add a bounds_type structure field. (struct array_descr_info): Add a field to hold index type information and another one to hold ordering information. * dwarf2out.c (gen_type_die_with_usage): Get the main variant before invoking the array descriptor language hook. Initialize the array_descr_info structure before calling the lang-hook. (gen_descr_array_type_die): Use gen_type_die if not processing the main type variant. Replace Fortran-specific code with generic one using this new field. Add a GNAT descriptive type, if any. Output type information for the array bound subrange, if any. gcc/fortran * trans-types.c (gfc_get_array_descr_info): Describe all Fortran arrays with column major ordering. From-SVN: r218823
2014-12-17Fix a typo in ChangeLogH.J. Lu1-1/+1
From-SVN: r218820
2014-12-17Add -malign-data={abi|compat|cachineline}H.J. Lu13-3/+253
Add -malign-data={abi|compat,cachineline} to control how GCC aligns variables. "compat" uses increased alignment value compatible with GCC 4.8 and earlier, "abi" uses alignment value as specified by the psABI, and "cacheline" uses increased alignment value to match the cache line size. "compat" is the default. gcc/ PR target/61296 * config/i386/i386-opts.h (ix86_align_data): New enum. * config/i386/i386.c (ix86_data_alignment): Return the ABI alignment value for -malign-data=abi, the cachine line size for -malign-data=cachineline and the older GCC compatible alignment value for for -malign-data=compat. * config/i386/i386.opt (malign-data=): New. * doc/invoke.texi: Document -malign-data=. gcc/testsuite/ PR target/61296 * gcc.target/i386/pr61296-2.c: New. * gcc.target/i386/pr61296-2.c: Likewise. * gcc.target/i386/pr61296-3.c: Likewise. * gcc.target/i386/pr61296-4.c: Likewise. * gcc.target/i386/pr61296-5.c: Likewise. * gcc.target/i386/pr61296-6.c: Likewise. * gcc.target/i386/pr61296-7.c: Likewise. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r218818
2014-12-17re PR testsuite/64328 (addr_equal-1.c fails execution.)Tejas Belagod2-0/+6
PR testsuite/64328 * gcc.dg/addr_equal-1.c: Not supported for -fPIC. From-SVN: r218817
2014-12-17re PR middle-end/63568 (Missed optimization (a & ~mask) | (b & mask) = a ^ ↵Marek Polacek4-0/+71
((a ^ b) & mask)) PR middle-end/63568 * match.pd: Add (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x pattern. * gcc.dg/pr63568.c: New test. From-SVN: r218816
2014-12-17re PR tree-optimization/64322 (More optimize opportunity for constant folding)Jakub Jelinek4-0/+69
PR tree-optimization/64322 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic. * gcc.dg/tree-ssa/vrp95.c: New test. From-SVN: r218812