aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-09-22i386.c (ix86_cannot_change_mode_class): Remove GET_MODE_SIZE (to) < ↵Richard Sandiford2-7/+5
GET_MODE_SIZE (from) test. gcc/ * config/i386/i386.c (ix86_cannot_change_mode_class): Remove GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test. From-SVN: r215450
2014-09-22hard-reg-set.h: Include hash-table.h.Richard Sandiford6-60/+198
gcc/ * hard-reg-set.h: Include hash-table.h. (target_hard_regs): Add a finalize method and a x_simplifiable_subregs field. * target-globals.c (target_globals::~target_globals): Call hard_regs->finalize. * rtl.h (subreg_shape): New structure. (shape_of_subreg): New function. (simplifiable_subregs): Declare. * reginfo.c (simplifiable_subreg): New structure. (simplifiable_subregs_hasher): Likewise. (simplifiable_subregs): New function. (invalid_mode_changes): Delete. (alid_mode_changes, valid_mode_changes_obstack): New variables. (record_subregs_of_mode): Remove subregs_of_mode parameter. Record valid mode changes in valid_mode_changes. (find_subregs_of_mode): Remove subregs_of_mode parameter. Update calls to record_subregs_of_mode. (init_subregs_of_mode): Remove invalid_mode_changes and bitmap handling. Initialize new variables. Update call to find_subregs_of_mode. (invalid_mode_change_p): Check new variables instead of invalid_mode_changes. (finish_subregs_of_mode): Finalize new variables instead of invalid_mode_changes. (target_hard_regs::finalize): New function. * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p even when CLASS_CANNOT_CHANGE_MODE is undefined. From-SVN: r215449
2014-09-22combine.c (subst): Use simplify_subreg_regno rather than ↵Richard Sandiford2-5/+8
REG_CANNOT_CHANGE_MODE_P to detect... gcc/ * combine.c (subst): Use simplify_subreg_regno rather than REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes. From-SVN: r215448
2014-09-22rtl.h (subreg_info): Expand commentaryRichard Sandiford3-3/+24
gcc/ * rtl.h (subreg_info): Expand commentary * rtlanal.c (subreg_get_info): Likewise. From-SVN: r215447
2014-09-22gcc/Richard Sandiford2-24/+54
* hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET) (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET) (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant. From-SVN: r215446
2014-09-22decl.c (gnat_to_gnu_entity): Adjust comment.Eric Botcazou3-15/+19
* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust comment. * gcc-interface/utils.c (gnat_write_global_declarations): Fix typo. From-SVN: r215445
2014-09-22arm.c: #include "tm-constrs.h"Zhenqiang Chen2-10/+16
2014-09-22 Zhenqiang Chen <zhenqiang.chen@arm.com> * config/arm/arm.c: #include "tm-constrs.h" (thumb1_size_rtx_costs): Adjust rtx costs. From-SVN: r215444
2014-09-22Daily bump.GCC Administrator1-1/+1
From-SVN: r215442
2014-09-21configure.ac (target_header_dir): Move block defining this to before the ↵Hans-Peter Nilsson3-36/+74
block setting inhibit_libc. * configure.ac (target_header_dir): Move block defining this to before the block setting inhibit_libc. (inhibit_libc): When considering $with_headers, just check it it's explicitly "no". If not, also check if $target_header_dir/stdio.h is present. If not, set inhibit_libc=true. * configure: Regenerate. From-SVN: r215439
2014-09-21* config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.Patrick Oppenlander2-2/+5
From-SVN: r215438
2014-09-21rs6000.md (div<mode>3): Fix comment.Segher Boessenkool2-76/+79
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (div<mode>3): Fix comment. Use a different insn for divides by integer powers of two. (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New. (mod<mode>3): Fix formatting. (three anonymous define_insn and two define_split): Delete. From-SVN: r215437
2014-09-212014-09-21 Segher Boessenkool <segher@kernel.crashing.org>Segher Boessenkool2-18/+33
* config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO. (floatdisf2_internal2): Ditto. (ashrdi3_no_power): Ditto. Fix formatting. From-SVN: r215436
2014-09-21rs6000.md (ctz<mode>2, [...]): Tidy.Segher Boessenkool2-35/+41
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2, popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb): Tidy. From-SVN: r215435
2014-09-21rs6000.md (strlensi): Don't use subsi3 with a constant, use addsi3 directly.Segher Boessenkool2-75/+108
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a constant, use addsi3 directly. (three anonymous define_insn, two define_split): Delete. (sub<mode>3): Move. Do not allow constant second operand. Generate different insn for constant first operand. (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New. (subf<mode>3_imm): New. (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required. (*plus_ltu<mode>): Only handle registers. (*plus_ltu<mode>_1): New. Handle integer third operand. (*plus_gtu<mode>): Only handle registers. (*plus_gtu<mode>_1): New. Handle integer third operand. From-SVN: r215434
2014-09-21rs6000.md (iorxor): New code_iterator.Segher Boessenkool2-117/+54
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (iorxor): New code_iterator. (iorxor): New code_attr. (IORXOR): New code_attr. (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete. (ior<mode>3, xor<mode>3): Delete. (<iorxor><mode>3): New. (splitter for "big" integer ior, xor): New. (*bool<mode>3): Move. Also handle AND. (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND. (splitter for "big" integer ior, xor): Delete. From-SVN: r215433
2014-09-21rs6000.md (*neg<mode>2_internal): Delete.Segher Boessenkool2-38/+33
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete. (two anonymous define_insn and two define_split): Delete. (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New. From-SVN: r215432
2014-09-21rs6000.md (*one_cmpl<mode>2): Generate "not" insn.Segher Boessenkool2-40/+34
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn. (two anonymous define_insn and two define_split): Delete. (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New. From-SVN: r215431
2014-09-21rs6000.c (rs6000_rtx_costs): New.Segher Boessenkool2-0/+5
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New. From-SVN: r215430
2014-09-21predicates.md (ca_operand): Allow subregs.Segher Boessenkool3-4/+24
2014-09-21 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/predicates.md (ca_operand): Allow subregs. (input_operand): Do not allow ca_operand. * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the carry bit, allow SImode and Pmode. (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS. From-SVN: r215429
2014-09-21i386.c (ix86_expand_call): Generate MS->SYSV extra clobbered registers using ↵Uros Bizjak8-62/+22
clobber_reg. * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra clobbered registers using clobber_reg. Remove UNSPEC decoration. * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove. (*call_rex64_ms_sysv): Remove. (*call_value_rex64_ms_sysv): Ditto. * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove. testsuite/ChangeLog: * gcc.target/i386/avx-vzeroupper-16.c (dg-final): Remove check for call_value_rex64_ms_sysv. * gcc.target/i386/avx-vzeroupper-17.c (dg-final): Ditto. * gcc.target/i386/avx-vzeroupper-18.c (dg-final): Remove check for call_rex64_ms_sysv. From-SVN: r215428
2014-09-20re PR c++/62017 (AddressSanitizer reports *-buffer-overflow in destructor ↵Jason Merrill2-3/+11
when multiple virtual inheritance is used) PR c++/62017 * decl.c (begin_destructor_body): Only clobber the as-base part of *this. From-SVN: r215427
2014-09-21Daily bump.GCC Administrator1-1/+1
From-SVN: r215426
2014-09-20epiphany.md (sub_f_add_imm): Change constraint of operand 3 to "CnL".Joern Rennecke2-1/+6
* config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of operand 3 to "CnL". From-SVN: r215422
2014-09-20trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with generating ↵Alessandro Fanfarillo4-1/+38
temporary for value argument. 2014-09-20 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> Tobias Burnus <burnus@net-b.de> gcc/fortran * trans-intrinsic.c (conv_intrinsic_atomic_op): Fix issue with generating temporary for value argument. gcc/testsuite/ * gfortran.dg/coarray_atomic_5.f90: New Co-Authored-By: Tobias Burnus <burnus@net-b.de> From-SVN: r215421
2014-09-20trans-expr.c (gfc_reset_vptr): Fix comment whitespace.Joost VandeVondele28-75/+134
2014-09-20 Joost VandeVondele <vondele@gcc.gnu.org> * trans-expr.c (gfc_reset_vptr): Fix comment whitespace. (gfc_conv_class_to_class): Likewise. (gfc_conv_procedure_call): Likewise. (arrayfunc_assign_needs_temporary): Likewise. (realloc_lhs_loop_for_fcn_call): Likewise. (gfc_trans_assignment_1): Likewise. * trans-array.c (gfc_conv_array_ref): Likewise. (gfc_array_allocate): Likewise. (gfc_alloc_allocatable_for_assignment): Likewise. * symbol.c (generate_isocbinding_symbol): Likewise. * class.c (finalization_scalarizer): Likewise. (finalizer_insert_packed_call): Likewise. (generate_finalization_wrapper): Likewise. (find_intrinsic_vtab): Likewise. * decl.c (gfc_match_import): Likewise. (match_procedure_decl): Likewise. (gfc_match_subroutine): Likewise. (gfc_match_bind_c): Likewise. (gfc_match_volatile): Likewise. * trans-common.c (create_common): Likewise. * error.c (gfc_diagnostic_starter): Likewise. * trans-stmt.c (gfc_trans_sync): Likewise. (gfc_trans_critical): Likewise. (gfc_trans_simple_do): Likewise. (gfc_trans_do): Likewise. (gfc_trans_where_assign): Likewise. * expr.c (gfc_is_simply_contiguous): Likewise. * module.c (unquote_string): Likewise. * trans.c (gfc_add_finalizer_call): Likewise. * trans-types.c (gfc_init_kinds): Likewise. * scanner.c (preprocessor_line): Likewise. * gfortranspec.c (lang_specific_driver): Likewise. * frontend-passes.c (create_var): Likewise. (cfe_expr_0): Likewise. * resolve.c (check_host_association): Likewise. (gfc_resolve_code): Likewise. (resolve_fl_derived0): Likewise. (resolve_symbol): Likewise. * f95-lang.c (poplevel): Likewise. * trans-decl.c (create_main_function): Likewise. * trans-io.c (transfer_expr): Likewise. * arith.c (gfc_arith_divide): Likewise. * parse.c (resolve_all_program_units): Likewise. * check.c (gfc_check_rank): Likewise. (gfc_check_sizeof): Likewise. (is_c_interoperable): Likewise. * dependency.c (gfc_dep_difference): Likewise. * primary.c (gfc_match_rvalue): Likewise. * trans-intrinsic.c (conv_intrinsic_system_clock): Likewise. (conv_isocbinding_subroutine): Likewise. * options.c (gfc_post_options): Likewise. (gfc_handle_fpe_option): Likewise. (gfc_get_option_string): Likewise. * simplify.c (simplify_transformation_to_scalar): Likewise. (gfc_simplify_spread): Likewise. From-SVN: r215420
2014-09-20ia64.md: Remove constraints from define_split patterns.Andreas Schwab2-6/+11
* config/ia64/ia64.md: Remove constraints from define_split patterns. From-SVN: r215419
2014-09-20ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.Jan Hubicka8-190/+222
* ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors. (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets, possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify. (get_dynamic_type): Remove. * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove. (clear_speculation): Bring to ipa-deivrt.h (get_class_context): Rename to ... (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one. (contains_type_p): Update. (get_dynamic_type): Rename to ... ipa_polymorphic_call_context::get_dynamic_type(): ... this one. (possible_polymorphic_call_targets): UPdate. * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update. * ipa-prop.c (ipa_analyze_call_uses): Update. From-SVN: r215418
2014-09-20ipa-visibility.c (varpool_node::externally_visible_p): Do not privatize ↵Jan Hubicka2-0/+12
dynamic TLS variables. * ipa-visibility.c (varpool_node::externally_visible_p): Do not privatize dynamic TLS variables. From-SVN: r215417
2014-09-20diagnostic.c (warning_n): New function.Jan Hubicka4-19/+95
* diagnostic.c (warning_n): New function. * diagnostic-core.h (warning_n): Declare. * ipa-devirt.c (ipa_devirt): Handle singulars correctly; output dynamic counts when available. From-SVN: r215416
2014-09-20re PR tree-optimization/63255 (FAIL: gcc.dg/lto/ipareference2 ↵Jan Hubicka2-5/+11
c_lto_ipareference2_0.o-c_lto_ipareference2_1.o execute -O1 -flto -flto-partition=1to1 -fwhole-program) PR tree-optimization/63255 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue in setting body_removed flag. From-SVN: r215415
2014-09-19re PR c++/61392 (internal compiler error: in write_template_arg_literal, at ↵Jason Merrill4-4/+24
cp/mangle.c:3072) PR c++/61392 * mangle.c (write_expression): Use unresolved-name mangling for DR850 case. From-SVN: r215414
2014-09-19re PR c++/61465 (Bogus parameter set but not used warning in constructor ↵Jason Merrill3-1/+15
initialization list) PR c++/61465 * call.c (convert_like_real) [ck_identity]: Call mark_rvalue_use after pulling out an element from a CONSTRUCTOR. From-SVN: r215413
2014-09-20Daily bump.GCC Administrator1-1/+1
From-SVN: r215412
2014-09-19re PR c++/61825 (g++.dg/cpp0x/static_assert9.C FAILs)Jan Hubicka8-19/+80
PR c++/61825 * c-family/c-common.c (handle_alias_ifunc_attribute): Check that visibility change is possible (handle_weakref_attribute): Likewise. * cgraph.h (symtab_node): Add method get_create and field refuse_visibility_changes. (symtab_node::get_create): New method. * fold-const.c (tree_single_nonzero_warnv_p): Use get_create. * varasm.c (mark_weak): Verify that visibility change is possible. * gcc.dg/tree-ssa/nonzero-1.c: Require error to be output. From-SVN: r215409
2014-09-19predicates.md (fusion_gpr_mem_load): Move testing for base_reg_operand to be ↵Michael Meissner5-109/+150
common between LO_SUM and PLUS. 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing for base_reg_operand to be common between LO_SUM and PLUS. (fusion_gpr_mem_combo): New predicate to match a fused address that combines the addis and memory offset address. * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change calling signature. (emit_fusion_gpr_load): Likewise. * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling signature to pass each argument separately, rather than using an operands array. Rewrite the insns found by peephole2 to be a single insn, rather than hoping the insns will still be together when the peephole pass is done. Drop being called via a normal peephole. (emit_fusion_gpr_load): Change calling signature to be called from the fusion_gpr_load_<mode> insns with a combined memory address instead of the peephole pass passing the addis and offset separately. * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR fusion. (power8 fusion peephole): Drop support for doing power8 via a normal peephole that was created by the peephole2 pass. (power8 fusion peephole2): Create a new insn with the fused address, so that the fused operation is kept together after register allocation is done. (fusion_gpr_load_<mode>): Likewise. From-SVN: r215404
2014-09-19re PR lto/63286 (FAIL: g++.dg/lto/20101014-2 cp_lto_20101014-2_0.o assemble, ↵Jan Hubicka2-0/+6
* after r215196) PR lto/63286 * tree.c (need_assembler_name_p): Do not mangle variadic types. From-SVN: r215403
2014-09-19compiler: Pass constant arguments directly to thunk functions.Ian Lance Taylor1-14/+36
From-SVN: r215402
2014-09-19Fix mcount test cases to only run on supported targetsAndi Kleen5-4/+11
* gcc.dg/pg-override.c: Only run on x86 Linux. * gcc.dg/pg.c: Dito. * gcc.target/i386/fentry-override.c: Exclude for PIC. * gcc.target/i386/fentry.c: Dito. From-SVN: r215401
2014-09-19recog.c (scratch_operand): Do not simply allow all hard registers: only ↵Segher Boessenkool2-1/+8
allow those that are allocatable. 2014-09-19 Segher Boessenkool <segher@kernel.crashing.org> * recog.c (scratch_operand): Do not simply allow all hard registers: only allow those that are allocatable. From-SVN: r215399
2014-09-19cfgrtl.c [...]: Update comments and fix spacing to conform to coding style.Felix Yang6-16/+21
* cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update comments and fix spacing to conform to coding style. From-SVN: r215398
2014-09-19Re: [Patch] Teach genrecog/genoutput that scratch registers require write ↵James Greenhalgh2-0/+6
constraint modifiers gcc/ * genrecog.c (validate_pattern): Allow empty constraints in a match_scratch. From-SVN: r215397
2014-09-19dwarf2out.c (decl_ultimate_origin): Update comment.Aldy Hernandez3-4/+7
* dwarf2out.c (decl_ultimate_origin): Update comment. * tree.c (block_ultimate_origin): Same. From-SVN: r215396
2014-09-19rs6000.c (rs6000_special_adjust_field_align_p): Update GCC version name to ↵Ulrich Weigand2-3/+10
GCC 5. * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): Update GCC version name to GCC 5. (rs6000_function_arg_boundary): Likewise. (rs6000_function_arg): Likewise. From-SVN: r215395
2014-09-19[Patch sh] Fixup use of constraints in define_splitJames Greenhalgh2-4/+8
* config/sh/sh.md: Fix use of constraints in define_split. From-SVN: r215393
2014-09-19PR ipa/61998 Fix crash -Wsuggest-final-types crashMarkus Trippelsdorf4-0/+17
-Wsuggest-final-types crashes when used on mininal testcases. Fix by bailing out early when odr_types_ptr is NULL in ipa_devirt() 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de> PR ipa/61998 * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL. 2014-09-19 Markus Trippelsdorf <markus@trippelsdorf.de> PR ipa/61998 * g++.dg/warn/Wsuggest-final-2.C: New testcase. From-SVN: r215392
2014-09-19[Patch] Teach genrecog/genoutput that scratch registers require write ↵James Greenhalgh4-28/+87
constraint modifiers gcc/ * doc/md.texi (Modifiers): Consistently use "read/write" nomenclature rather than "input/output". * genrecog.c (constraints_supported_in_insn_p): New. (validate_pattern): If needed, also check constraints on MATCH_SCRATCH operands. * genoutput.c (validate_insn_alternatives): Catch earlyclobber operands with no '=' or '+' modifier. From-SVN: r215388
2014-09-19re PR fortran/63152 (needless initialization of local pointer arrays.)Joost VandeVondele4-2/+15
2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org> PR fortran/63152 * trans-array.c (gfc_trans_deferred_array): Only nullify allocatables. 2014-09-19 Joost VandeVondele <vondele@gcc.gnu.org> PR fortran/63152 * gfortran.dg/auto_char_dummy_array_1.f90: Fix undefined behavior. * gfortran.dg/pr63152.f90: New test. From-SVN: r215387
2014-09-19re PR c++/58328 ([C++11] bogus: error: constructor required before ↵Paolo Carlini2-0/+23
non-static data member for) 2014-09-19 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58328 * g++.dg/cpp0x/nsdmi10.C: New. From-SVN: r215386
2014-09-19[PATCH AArch64]: Add constraint letter for stack_protect_test patternJames Greenhalgh5-1/+45
gcc/ * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark scratch register as an output to placate register renaming. gcc/testsuite/ * gcc.dg/ssp-3.c: New. * gcc.dg/ssp-4.c: Likewise. From-SVN: r215385
2014-09-19s390.c (s390_emit_epilogue): Remove bogus assignment.Andreas Krebbel2-1/+5
2014-09-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/s390.c (s390_emit_epilogue): Remove bogus assignment. From-SVN: r215384