Age | Commit message (Collapse) | Author | Files | Lines |
|
transforms to ...
2015-07-01 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
(X & Y) ^ Y -> ~X & Y transforms to ...
* match.pd: ... here.
From-SVN: r225225
|
|
From-SVN: r225224
|
|
avoid uninteresting noise from the...
2015-07-01 Richard Biener <rguenther@suse.de>
* genmatch.c (expr::gen_transform): Shortcut re-simplifying
of converts to avoid uninteresting noise from the conversion
simplifying patterns.
From-SVN: r225223
|
|
From-SVN: r225222
|
|
argument for side-effect.
2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config/c6x/c6x.c (try_rename_operands): Do not depend on
gcc_assert evaluating its argument for side-effect.
From-SVN: r225221
|
|
gcc/cp/ChangeLog:
PR c++/66686
* pt.c (coerce_template_template_parm) [PARM_DECL]: Don't
return 0 if tsubst returns a dependent type.
gcc/testsuite/ChangeLog:
PR c++/66686
* g++.dg/template/pr66686.C: New test.
From-SVN: r225220
|
|
and graphicsmagick on Debian sh4)
PR target/64833
* [SH] Set length of casesi_worker_1 insn to 8 when flag_pic is set.
From-SVN: r225219
|
|
From-SVN: r225218
|
|
* lto-streamer-out.c (class DFS): Adjust hash_scc method.
(DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
(hash_scc): Add this_ref_p and ref_p parameters and pass them
to the inner DFS walk.
From-SVN: r225212
|
|
gcc/
* target-insns.def (jump): New targetm instruction pattern.
* bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
instead of gen_jump.
(fix_up_crossing_landing_pad): Likewise.
(add_labels_and_missing_jumps): Likewise.
(fix_crossing_conditional_branches): Likewise.
* cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
(force_nonfallthru_and_redirect): Likewise.
* cse.c (cse_insn): Likewise.
* expmed.c (expand_divmod): Likewise.
* expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
* haifa-sched.c (init_before_recovery): Likewise.
(sched_create_recovery_edges): Likewise.
* ifcvt.c (find_cond_trap): Likewise.
* optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
(expand_float, expand_fix): Likewise.
* stmt.c (emit_jump): Likewise.
From-SVN: r225211
|
|
* defaults.h (HAVE_load_multiple, gen_load_multiple)
(HAVE_store_multiple, gen_store_multiple): Delete.
* target-insns.def (load_multiple, store_multiple): New targetm
instruction patterns.
* expr.c (move_block_to_reg, move_block_from_reg): Use them instead
of HAVE_*/gen_* interface.
From-SVN: r225210
|
|
* defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
(HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
(gen_mem_signal_fence): Delete.
* target-insns.def (mem_signal_fence, mem_thread_fence)
(memory_barrier): New targetm instruction patterns.
* optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
interface.
(expand_mem_signal_fence): Likewise.
From-SVN: r225209
|
|
gcc/
* defaults.h (HAVE_epilogue, gen_epilogue): Delete.
* target-insns.def (epilogue, prologue, sibcall_prologue): New
targetm instruction patterns.
* alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
interface.
* calls.c (expand_call): Likewise.
* cfgrtl.c (cfg_layout_finalize): Likewise.
* df-scan.c (df_get_entry_block_def_set): Likewise.
(df_get_exit_block_use_set): Likewise.
* dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
* final.c (final_start_function): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
(reposition_prologue_and_epilogue_notes): Likewise.
* reorg.c (find_end_label): Likewise.
* toplev.c (process_options): Likewise.
From-SVN: r225208
|
|
gcc/ChangeLog:
* typed-splay-tree.h: New file.
gcc/jit/ChangeLog:
* docs/cp/topics/functions.rst (Blocks): Add switch statements to
list of ways to terminate a block.
(gccjit::block::end_with_switch): Add function description.
(gccjit::case_): Add class.
(gccjit::context::new_case): Add function description.
* docs/cp/topics/objects.rst: Add "case_" to class hierarchy.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_3): New.
* docs/topics/functions.rst (Blocks): Add switch statements to
list of ways to terminate a block.
(gcc_jit_block_end_with_switch): Add function description.
(gcc_jit_case): Add type.
(gcc_jit_context_new_case): Add function description.
(gcc_jit_case_as_object): Add function description.
* docs/topics/objects.rst: Add gcc_jit_case to class hierarchy.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::recording::case_): Add forward decl.
(gcc::jit::playback::case_): Add forward decl.
* jit-playback.c (add_case): New function.
(gcc::jit::playback::block::add_switch): New function.
* jit-playback.h (gcc::jit::playback::case_): New struct.
(gcc::jit::playback::block::get_function): New method.
(gcc::jit::playback::block::add_switch): New method.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::new_case): New method.
(recording::function::validate): Update for change to
get_successor_blocks.
(recording::block::end_with_switch): New method.
(recording::block::get_successor_blocks): Update to support an
arbitrary number of successor blocks.
(recording::block::dump_edges_to_dot): Likewise.
(memento_of_new_rvalue_from_const <int>::get_wide_int): New.
(memento_of_new_rvalue_from_const <long>::get_wide_int): New.
(memento_of_new_rvalue_from_const <double>::get_wide_int): New.
(memento_of_new_rvalue_from_const <void *>::get_wide_int): New.
(recording::statement::get_successor_blocks): Update to support an
arbitrary number of successor blocks.
(recording::conditional::get_successor_blocks): Likewise.
(recording::jump::get_successor_blocks): Likewise.
(recording::return_::get_successor_blocks): Likewise.
(recording::case_::write_reproducer): New.
(recording::case_::make_debug_string): New.
(recording::switch_::switch_): New.
(recording::switch_::replay_into): New.
(recording::switch_::get_successor_blocks): New.
(recording::switch_::make_debug_string): New.
(recording::switch_::write_reproducer): New.
* jit-recording.h: Within namespace gcc::jit::recording...
(context::new_case): New.
(rvalue::is_constant): New.
(rvalue::get_wide_int): New.
(block::end_with_switch): New.
(block::get_successor_blocks): Update to support an arbitrary
number of successor blocks.
(memento_of_new_rvalue_from_const::is_constant): New.
(memento_of_new_rvalue_from_const::get_wide_int): New.
(statement::get_successor_blocks): Update to support an arbitrary
number of successor blocks.
(conditional::get_successor_blocks): Likewise.
(jump::get_successor_blocks): Likewise.
(return_::get_successor_blocks): Likewise.
(case_): New subclass of memento.
(switch_): New subclass of statement.
* libgccjit++.h (gccjit::case_): New subclass of gccjit::object.
(gccjit::context::new_case): New method.
(gccjit::block::end_with_switch): New method.
(gccjit::case_::case): New ctors.
(gccjit::case_::get_inner_case): New method.
* libgccjit.c: Include "typed-splay-tree.h"
(struct gcc_jit_case): New.
(gcc_jit_context_new_case): New function.
(gcc_jit_case_as_object): New function.
(valid_dest_for_switch): New function.
(valid_case_for_switch): New function.
(class api_call_validator): New class.
(class case_range_validator): New class.
(case_range_validator::case_range_validator): New.
(case_range_validator::validate): New.
(case_range_validator::case_compare): New.
(case_range_validator::get_wide_int): new.
(gcc_jit_block_end_with_switch): New.
* libgccjit.h: Add gcc_jit_case to class hierarchy comment.
(gcc_jit_case): New typedef.
(gcc_jit_context_new_case): New function.
(gcc_jit_case_as_object): New function.
(gcc_jit_block_end_with_switch): New function.
(LIBGCCJIT_HAVE_SWITCH_STATEMENTS): New.
* libgccjit.map: Add gcc_jit_block_end_with_switch,
gcc_jit_case_as_object and gcc_jit_context_new_case.
gcc/testsuite/ChangeLog:
* jit.dg/all-non-failing-tests.h: Add test-switch.c.
* jit.dg/test-error-gcc_jit_block_end_with_switch-NULL-case.c: New
testcase.
* jit.dg/test-error-gcc_jit_block_end_with_switch-mismatching-case-type.c:
New testcase.
* jit.dg/test-error-gcc_jit_block_end_with_switch-overlapping-ranges.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-non-const-label.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-non-integer-type.c:
New testcase.
* jit.dg/test-error-gcc_jit_context_new_case-reversed-endpoints.c:
New testcase.
* jit.dg/test-switch.c: New testcase.
* jit.dg/test-switch.cc: New testcase.
From-SVN: r225207
|
|
gcc/jit/ChangeLog:
PR jit/66546
* docs/cp/topics/contexts.rst
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
* docs/topics/contexts.rst (Options): Add notes discussing the
transition from enums to entrypoints for new options.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::inner_bool_option): New enum.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::context): Handle m_inner_bool_options.
(recording::context::set_inner_bool_option): New.
(inner_bool_option_reproducer_strings): New.
(recording::context::log_all_options): Log the "inner" bool
options.
(recording::context::log_inner_bool_option): New.
(recording::context::dump_reproducer_to_file): Write initializers
for "inner" bool options.
(recording::function::validate): Don't check for block
reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::set_inner_bool_option): New.
(recording::context::get_inner_bool_option): New.
(recording::context::log_inner_bool_option): New.
(recording::context::m_inner_bool_options): New.
* libgccjit++.h
(gccjit::context::set_bool_allow_unreachable_blocks): New.
* libgccjit.c
(gcc_jit_context_set_bool_allow_unreachable_blocks): New.
* libgccjit.h: Add note about options present in the
initial release of libgccjit.
(gcc_jit_context_set_bool_allow_unreachable_blocks): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
New macro.
* libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
(gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
entrypoint.
gcc/testsuite/ChangeLog:
PR jit/66546
* jit.dg/all-non-failing-tests.h: Add note about
test-validly-unreachable-block.c.
* jit.dg/test-validly-unreachable-block.c: New file.
From-SVN: r225206
|
|
gcc/jit/ChangeLog:
PR jit/66628
* docs/cp/topics/contexts.rst (Additional command-line options):
New section.
* docs/topics/compatibility.rst: New file.
* docs/topics/contexts.rst (Additional command-line options): New
section.
* docs/topics/index.rst: Add compatibility.rst.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (make_fake_args): Add call to
append_command_line_options.
* jit-recording.c: Within namespace gcc::jit...
(recording::context::~context): Free the optnames within
m_command_line_options.
(recording::context::set_bool_option): Likewise.
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::dump_reproducer_to_file): Add command-line
options.
* jit-recording.h: Within namespace gcc::jit...
(recording::context::add_command_line_option): New method.
(recording::context::append_command_line_options): New method.
(recording::context::m_command_line_options): New field.
* libgccjit++.h (gccjit::context::add_command_line_option): New
method.
* libgccjit.c (gcc_jit_context_add_command_line_option): New API
entrypoint.
* libgccjit.h (gcc_jit_context_add_command_line_option): New API
entrypoint.
(LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
macro.
* libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.
gcc/testsuite/ChangeLog:
PR jit/66628
* jit.dg/all-non-failing-tests.h: Add note about
test-extra-options.c.
* jit.dg/test-extra-options.c: New testcase.
From-SVN: r225205
|
|
gcc/jit/ChangeLog:
* jit-recording.c
(gcc::jit::recording::context::dump_reproducer_to_file):
Add pragma to generated reproducers to disable -Wunused-variable.
Fix handling of NULL string options.
From-SVN: r225204
|
|
gcc/jit/ChangeLog:
* docs/cp/topics/expressions.rst: Remove stray semicolon.
* docs/cp/topics/functions.rst: Remove stray backslash.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
From-SVN: r225203
|
|
From-SVN: r225201
|
|
simplify_subreg, at simplify-rtx.c:5744)
2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
PR debug/66691
* lra-int.h (lra_substitute_pseudo): Add a parameter.
(lra_substitute_pseudo_within_insn): Ditto.
* lra.c (lra_substitute_pseudo): Add a parameter. Simplify subreg
of constant.
(lra_substitute_pseudo_within_insn): Add a parameter. Transfer it
to lra_substitute_pseudo.
* lra-lives.c (process_bb_lives): Add an argument to
lra_substitute_pseudo_within_insn call.
* lra-constraints.c (inherit_reload_reg, split_reg): Add an
argument to lra_substitute_pseudo and
lra_substitute_pseudo_within_insn calls.
(remove_inheritance_pseudos, undo_optional_reloads): Ditto.
2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
PR debug/66691
* gcc.target/i386/pr66691.c: New.
From-SVN: r225200
|
|
We run Intel MCU psABI tests on Linux/ia32 with -miamcu. Since Intel
MCU psABI has a different calling convention, the only Linux libc function
allowed is "abort".
asm-support.S contains some support functions as well as a subset of
soft-fp, which is written in assembly with x87 instructions, to provide
intrinsics needed by -miamcu so that Intel MCU psABI tests can run on
Linux.
* gcc.target/i386/iamcu/abi-iamcu.exp: New file.
* gcc.target/i386/iamcu/args.h: Likewise.
* gcc.target/i386/iamcu/asm-support.S: Likewise.
* gcc.target/i386/iamcu/defines.h: Likewise.
* gcc.target/i386/iamcu/macros.h: Likewise.
* gcc.target/i386/iamcu/test_3_element_struct_and_unions.c: Likewise.
* gcc.target/i386/iamcu/test_basic_64bit_returning.c: Likewise.
* gcc.target/i386/iamcu/test_basic_alignment.c: Likewise.
* gcc.target/i386/iamcu/test_basic_array_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_basic_returning.c: Likewise.
* gcc.target/i386/iamcu/test_basic_sizes.c: Likewise.
* gcc.target/i386/iamcu/test_basic_struct_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_basic_union_size_and_align.c: Likewise.
* gcc.target/i386/iamcu/test_bitfields.c: Likewise.
* gcc.target/i386/iamcu/test_complex_returning.c: Likewise.
* gcc.target/i386/iamcu/test_passing_floats.c: Likewise.
* gcc.target/i386/iamcu/test_passing_integers.c: Likewise.
* gcc.target/i386/iamcu/test_passing_structs.c: Likewise.
* gcc.target/i386/iamcu/test_passing_structs_and_unions.c: Likewise.
* gcc.target/i386/iamcu/test_passing_unions.c: Likewise.
* gcc.target/i386/iamcu/test_struct_returning.c: Likewise.
* gcc.target/i386/iamcu/test_varargs.c: Likewise.
From-SVN: r225199
|
|
Patch in the bottom adds support of IA MCU psABI to libgcc (enables
soft-fp) and libdecnumber (enables it for IA MCU).
config/
* dfp.m4 (enable_decimal_float): Also set to yes for
i?86*-*-elfiamcu target.
gcc/
* configure: Regenerated.
libdecnumber/
* configure: Regenerated.
libgcc/
* config.host: Support i[34567]86-*-elfiamcu target.
* config/t-softfp-sfdftf: New file.
* config/i386/32/t-iamcu: Likewise.
* configure: Regenerated.
From-SVN: r225198
|
|
This patch introduces basic IA MCU psABI support into GCC.
* configure.ac (ospace_frag): Enable for i?86*-*-elfiamcu
target.
* configure: Regenerate.
gcc/
* config.gcc: Support i[34567]86-*-elfiamcu target.
* config/i386/iamcu.h: New.
* config/i386/i386.opt: Add -miamcu.
* doc/invoke.texi: Document -miamcu.
* common/config/i386/i386-common.c (ix86_handle_option): Turn
off x87/MMX/SSE/AVX codegen for -miamcu.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__iamcu/__iamcu__ for -miamcu.
* config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
(BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
* config/i386/i386.c (ix86_option_override_internal): Ignore and
warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel
MCU by default. Default long double to 64-bit for Intel MCU.
Turn on -freg-struct-return for Intel MCU. Issue an error when
-miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
AVX is turned on.
(function_arg_advance_32): Pass value whose size is no larger
than 8 bytes in registers for Intel MCU.
(function_arg_32): Likewise.
(ix86_return_in_memory): Return value whose size is no larger
than 8 bytes in registers for Intel MCU.
(iamcu_alignment): New function.
(ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
true.
(ix86_local_alignment): Don't increase alignment for Intel MCU.
(x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
true.
From-SVN: r225197
|
|
* match.pd (~x | x): Don't use tree_nop_conversion_p. Build
the final expression with the operand's type and then convert
it to the type of the expression.
* gcc.dg/fold-ior-3.c: New test.
From-SVN: r225196
|
|
* match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
both operands of the resulting expression.
* gcc.dg/fold-minus-6.c: New test.
From-SVN: r225195
|
|
PR debug/66653
* decl2.c (is_late_template_attribute): True for tls_model.
From-SVN: r225193
|
|
PR debug/66653
* cp-tree.h (CP_DECL_THREAD_LOCAL_P): New.
(DECL_GNU_TLS_P): Use DECL_LANG_SPECIFIC field.
(SET_DECL_GNU_TLS_P): New.
* call.c (make_temporary_var_for_ref_to_temp): Use
CP_DECL_THREAD_LOCAL_P.
(set_up_extended_ref_temp): Likewise.
* decl.c (duplicate_decls, expand_static_init): Likewise.
(redeclaration_error_message, grokvardecl): Likewise.
(start_decl, register_dtor_fn, grokdeclarator): Likewise.
* decl2.c (get_guard, var_needs_tls_wrapper): Likewise.
(handle_tls_init): Likewise.
* pt.c (tsubst_decl, tsubst_copy_and_build): Likewise.
* semantics.c (finish_id_expression): Likewise.
(handle_omp_array_sections_1, finish_omp_clauses): Likewise.
(finish_omp_threadprivate): Likewise.
* tree.c (decl_storage_duration): Likewise.
* cp-gimplify.c (omp_var_to_track): Likewise.
(cp_genericize_r): Check that it matches DECL_THREAD_LOCAL_P.
* lex.c (retrofit_lang_decl): Return if DECL_LANG_SPECIFIC is
already set.
From-SVN: r225192
|
|
libcpp:
2015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
Implement N4197 - Adding u8 character literals
* include/cpplib.h (UTF8CHAR, UTF8CHAR_USERDEF): New cpp tokens;
(struct cpp_options): Add utf8_char_literals.
* init.c (struct lang_flags): Add utf8_char_literals;
(struct lang_flags lang_defaults): Add column for utf8_char_literals.
* macro.c (stringify_arg()): Treat CPP_UTF8CHAR token;
* expr.c (cpp_userdef_char_remove_type(), cpp_userdef_char_add_type()):
Treat CPP_UTF8CHAR_USERDEF, CPP_UTF8CHAR tokens;
(cpp_userdef_char_p()): Treat CPP_UTF8CHAR_USERDEF token;
(eval_token(), _cpp_parse_expr()): Treat CPP_UTF8CHAR token.
* lex.c (lex_string(), _cpp_lex_direct()): Include CPP_UTF8CHAR tokens.
* charset.c (converter_for_type(), cpp_interpret_charconst()):
Treat CPP_UTF8CHAR token.
gcc/c-family:
2015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
Implement N4197 - Adding u8 character literals
* c-family/c-ada-spec.c (print_ada_macros()): Treat CPP_UTF8CHAR
like CPP_CHAR.
* c-family/c-common.c (c_parse_error()): print CPP_UTF8CHAR
and CPP_UTF8CHAR_USERDEF tokens.
* c-family/c-lex.c (c_lex_with_flags()): Treat CPP_UTF8CHAR_USERDEF
and CPP_UTF8CHAR tokens; (lex_charconst()): Treat CPP_UTF8CHAR token.
gcc/cp:
2015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
Implement N4197 - Adding u8 character literals
* parser.c (cp_parser_primary_expression()): Treat CPP_UTF8CHAR
and CPP_UTF8CHAR_USERDEF tokens;
(cp_parser_parenthesized_expression_list()): Treat CPP_UTF8CHAR token.
gcc/testsuite:
2015-06-30 Edward Smith-Rowland <3dw4rd@verizon.net>
Implement N4197 - Adding u8 character literals
* g++.dg/cpp1z/utf8.C: New.
* g++.dg/cpp1z/utf8-neg.C: New.
* g++.dg/cpp1z/udlit-utf8char.C: New.
From-SVN: r225185
|
|
& y)...
2015-06-30 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
(X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
* match.pd: ... to patterns here.
From-SVN: r225184
|
|
2015-06-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/66704
* tree-vect-data-refs.c (vect_setup_realignment): Use
make_ssa_name for non-SSA name source.
From-SVN: r225182
|
|
PR middle-end/66702
* omp-low.c (simd_clone_adjust): Handle addressable linear
or uniform parameters or non-gimple type uniform parameters.
* testsuite/libgomp.c++/pr66702-1.C: New test.
* testsuite/libgomp.c++/pr66702-2.C: New test.
From-SVN: r225179
|
|
2015-06-30 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
* match.pd: ... here.
Add a few cases of A - B -> A + (-B) when B "easily" negates.
Move (x & y) | x -> x and friends before
(x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
From-SVN: r225178
|
|
From-SVN: r225174
|
|
specified.
* config/sparc/leon.md (leon_load): Enable for all LEON variants if
-mfix-ut699 is not specified.
(leon3_load): Rename into...
(ut699_load): ...this. Enable for all LEON variants if -mfix-ut699
is specified.
From-SVN: r225173
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
* gcc.dg/parloops-exit-first-loop-alt-5.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-6.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-7.c: New test.
* gcc.dg/parloops-exit-first-loop-alt.c: Update comment.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.
From-SVN: r225172
|
|
* fold-const.c (fold_binary_loc): Move ~X | X folding ...
* match.pd: ... here.
* gcc.dg/fold-ior-2.c: New test.
From-SVN: r225164
|
|
2015-06-30 Richard Biener <rguenther@suse.de>
* target-insns.def (canonicalize_funcptr_for_compare): Add.
* fold-const.c (build_range_check): Replace uses of
HAVE_canonicalize_funcptr_for_compare.
(fold_widened_comparison): Likewise.
(fold_sign_changed_comparison): Likewise.
* dojump.c: Include "target.h".
(do_compare_and_jump): Replace uses of
HAVE_canonicalize_funcptr_for_compare and
gen_canonicalize_funcptr_for_compare.
* expr.c (do_store_flag): Likewise.
From-SVN: r225163
|
|
2015-06-30 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/66652
* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
max_loop_iterations to determine if nit + 1 overflows.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
using restrict pointers.
(main): Add arguments to calls to f.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.
* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-3.c (f): Rewrite using restrict
pointers.
* gcc.dg/parloops-exit-first-loop-alt.c: Same.
From-SVN: r225162
|
|
dominating conversion results.
2015-06-30 Richard Biener <rguenther@suse.de>
* tree-vrp.c (register_edge_assert_for_2): Also register
asserts for dominating conversion results.
From-SVN: r225161
|
|
struct iv.
* tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
field in struct iv.
From-SVN: r225159
|
|
on the libjava/java/lang/reflect/natArray.cc file from FSF gcc 5.1 at -m32)
PR target/66509
* configure.ac: Fix filds and fildq test for 64-bit.
* configure: Regenerated.
From-SVN: r225158
|
|
From-SVN: r225157
|
|
* config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
(nvptx_reorg): Here. Keep the non-subreg pieces.
From-SVN: r225154
|
|
template specialization)
/cp
2015-06-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/65977
* decl.c (grokfndecl): Allow constexpr declarations of friend
template specializations.
/testsuite
2015-06-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/65977
* g++.dg/cpp0x/constexpr-friend-3.C: New.
* g++.dg/cpp0x/constexpr-friend-2.C: Adjust.
From-SVN: r225148
|
|
We need to link with crtend.o and crtendS.o properly for GCC configured
to generate PIE by default.
* config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
From-SVN: r225144
|
|
PR ada/63310
* gcc-interface/utils.c (gnat_write_global_declarations): Always
build the dummy global variable if code was generated.
From-SVN: r225139
|
|
* config/i386/i386.md (*jcc_1): Use %! in asm template.
Set attribute "length_nobnd" instead of "length".
(*jcc_2): Ditto.
(jump): Ditto.
(*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
From-SVN: r225138
|
|
2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config/nios2/nios2.c (nios2_delegitimize_address): Make
assert less restrictive.
From-SVN: r225137
|
|
which is the middle-end. This is an oddity compared to other
-Wunused-* warnings. Moreover, Fortran has its own definition of
-Wunused-parameter that conflicts with the middle-end definition.
This patch moves the middle-end part of Wunused-parameter to the C/C++
FEs. I'm not sure if other FEs expected this warning to work. If so,
they do not seem to test for it. Ada, for example, explicitly disables
it.
gcc/ChangeLog:
2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66605
* cgraphunit.c (cgraph_node::finalize_function): Do not call
do_warn_unused_parameter.
* function.c (do_warn_unused_parameter): Move from here.
* function.h (do_warn_unused_parameter): Do not declare.
gcc/c-family/ChangeLog:
2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66605
* c-common.c (do_warn_unused_parameter): Move here.
* c-common.h (do_warn_unused_parameter): Declare.
gcc/ada/ChangeLog:
2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66605
* gcc-interface/misc.c (gnat_post_options): No need to disable
warn_unused_parameter anymore.
gcc/cp/ChangeLog:
2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66605
* decl.c (finish_function): Call do_warn_unused_parameter.
gcc/testsuite/ChangeLog:
2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66605
* gfortran.dg/wunused-parameter.f90: New test.
gcc/c/ChangeLog:
2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66605
* c-decl.c (finish_function): Call do_warn_unused_parameter.
From-SVN: r225135
|
|
builtins)
2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
PR target/65697
* gcc.target/arm/armv-sync-comp-swap.c: New.
* gcc.target/arm/armv-sync-op-acquire.c: New.
* gcc.target/arm/armv-sync-op-full.c: New.
* gcc.target/arm/armv-sync-op-release.c: New.
From-SVN: r225134
|