gcc

~vcs-imports/gcc/+git/gcc:sve

Last commit made on 2017-08-31
Get this branch:
git clone -b sve https://git.launchpad.net/~vcs-imports/gcc/+git/gcc

Branch merges

Branch information

Name:
sve
Repository:
lp:~vcs-imports/gcc/+git/gcc

Recent commits

28bd8e1... by Richard Sandiford

Add missing file

5bd4c31... by Richard Sandiford

Merge trunk into sve

5a462df... by rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>

Drop df_ from df_read_modify_subreg_p

...it's really a general RTL predicate, rather than something that depends
on the DF state. Thanks to Segher for the suggestion.

2017-08-30 Richard Sandiford <email address hidden>

gcc/
 * df.h (df_read_modify_subreg_p): Remove in favor of...
 * rtl.h (read_modify_subreg_p): ...this new function. Take a
 const_rtx instead of an rtx.
 * cprop.c (local_cprop_find_used_regs): Update accordingly.
 * df-problems.c (df_word_lr_mark_ref): Likewise.
 * ira-lives.c (mark_pseudo_reg_live): Likewise.
 (mark_pseudo_reg_dead): Likewise.
 (mark_ref_dead): Likewise.
 * reginfo.c (init_subregs_of_mode): Likewise.
 * sched-deps.c (sched_analyze_1): Likewise.
 * df-scan.c (df_def_record_1): Likewise.
 (df_uses_record): Likewise.
 (df_read_modify_subreg_p): Remove in favor of...
 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
 const_rtx instead of an rtx.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251537 138bc75d-0d04-0410-961f-82ee72b054a4

974534a... by rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>

Add a partial_subreg_p predicate

This patch adds a partial_subreg_p predicate to go alongside
paradoxical_subreg_p.

Like the paradoxical_subreg_p patch, this one replaces some tests that
were based on GET_MODE_SIZE rather than GET_MODE_PRECISION. In each
case the change should be a no-op or an improvement.

The regcprop.c patch prevents some replacements of the 82-bit RFmode
with the 80-bit XFmode on ia64. I don't understand the target details
here particularly well, but from the way the modes are described in
ia64-modes.def, it isn't valid to assume that an XFmode can carry an
RFmode payload. A comparison of the testsuite assembly output for one
target per CPU showed no other differences.

Some of the places changed here are tracking the widest access mode
found for a register. The series tries to standardise on:

  if (partial_subreg_p (widest_seen, new_mode))
    widest_seen = new_mode;

rather than:

  if (paradoxical_subreg_p (new_mode, widest_seen))
    widest_seen = new_mode;

Either would have been OK.

2017-08-30 Richard Sandiford <email address hidden>
     Alan Hayward <email address hidden>
     David Sherwood <email address hidden>

gcc/
 * rtl.h (partial_subreg_p): New function.
 * caller-save.c (save_call_clobbered_regs): Use it.
 * calls.c (expand_call): Likewise.
 * combine.c (combinable_i3pat): Likewise.
 (simplify_set): Likewise.
 (make_extraction): Likewise.
 (make_compound_operation_int): Likewise.
 (gen_lowpart_or_truncate): Likewise.
 (force_to_mode): Likewise.
 (make_field_assignment): Likewise.
 (reg_truncated_to_mode): Likewise.
 (record_truncated_value): Likewise.
 (move_deaths): Likewise.
 * cse.c (record_jump_cond): Likewise.
 (cse_insn): Likewise.
 * cselib.c (cselib_lookup_1): Likewise.
 * expmed.c (extract_bit_field_using_extv): Likewise.
 * function.c (assign_parm_setup_reg): Likewise.
 * ifcvt.c (noce_convert_multiple_sets): Likewise.
 * ira-build.c (create_insn_allocnos): Likewise.
 * lra-coalesce.c (merge_pseudos): Likewise.
 * lra-constraints.c (match_reload): Likewise.
 (simplify_operand_subreg): Likewise.
 (curr_insn_transform): Likewise.
 * lra-lives.c (process_bb_lives): Likewise.
 * lra.c (new_insn_reg): Likewise.
 (lra_substitute_pseudo): Likewise.
 * regcprop.c (mode_change_ok): Likewise.
 (maybe_mode_change): Likewise.
 (copyprop_hardreg_forward_1): Likewise.
 * reload.c (push_reload): Likewise.
 (find_reloads): Likewise.
 (find_reloads_subreg_address): Likewise.
 * reload1.c (alter_reg): Likewise.
 (eliminate_regs_1): Likewise.
 * simplify-rtx.c (simplify_unary_operation_1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251536 138bc75d-0d04-0410-961f-82ee72b054a4

d682d75... by dje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>

        * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
        back to if statements, including unpack.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251535 138bc75d-0d04-0410-961f-82ee72b054a4

b5d180e... by ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>

 * simple-object-xcoff.c (simple_object_xcoff_find_sections):
 Improve .go_export csect handling. Don't make assumptions
 on containing section or number of auxiliary entries.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251533 138bc75d-0d04-0410-961f-82ee72b054a4

d2db2d2... by marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>

Fix IPA ICF with ASM statements (PR inline-asm/82001).

2017-08-30 Martin Liska <email address hidden>

 PR inline-asm/82001
 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
 Rename to ...
 (func_checker::compare_asm_inputs_outputs): ... this function.
 (func_checker::compare_gimple_asm): Use the function to compare
 also ASM constrains.
 * ipa-icf-gimple.h: Rename the function.
2017-08-30 Martin Liska <email address hidden>

 PR inline-asm/82001
 * gcc.dg/ipa/pr82001.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251530 138bc75d-0d04-0410-961f-82ee72b054a4

d082dc6... by rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>

Add some changelog entries that went astray during the machmode commits

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251529 138bc75d-0d04-0410-961f-82ee72b054a4

430c243... by rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>

[77/77] Add a complex_mode class

This patch adds another machine_mode wrapper for modes that are
known to be COMPLEX_MODE_P. There aren't yet many places that make
use of it, but that might change in future.

2017-08-30 Richard Sandiford <email address hidden>
     Alan Hayward <email address hidden>
     David Sherwood <email address hidden>

gcc/
 * coretypes.h (complex_mode): New type.
 * gdbhooks.py (build_pretty_printer): Handle it.
 * machmode.h (complex_mode): New class.
 (complex_mode::includes_p): New function.
 (is_complex_int_mode): Likewise.
 (is_complex_float_mode): Likewise.
 * genmodes.c (get_mode_class): Handle complex mode classes.
 * function.c (expand_function_end): Use is_complex_int_mode.

gcc/go/
 * go-lang.c (go_langhook_type_for_mode): Use is_complex_float_mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251527 138bc75d-0d04-0410-961f-82ee72b054a4

af71096... by rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>

[76/77] Add a scalar_mode_pod class

This patch adds a scalar_mode_pod class and uses it to
replace the machine_mode in fixed_value.

2017-08-30 Richard Sandiford <email address hidden>
     Alan Hayward <email address hidden>
     David Sherwood <email address hidden>

gcc/
 * coretypes.h (scalar_mode_pod): New typedef.
 * gdbhooks.py (build_pretty_printer): Handle it.
 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
 as_a <scalar_mode>.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251526 138bc75d-0d04-0410-961f-82ee72b054a4