1. 04 Aug, 2015 17 commits
    • [AArch64][7/14] Implement TARGET_SET_CURRENT_FUNCTION · d78006d9
      	* config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
      	* config/aarch64/aarch64.c: Include target-globals.h
      	(aarch64_previous_fndecl): New variable.
      	(aarch64_set_current_function): New function.
      	(TARGET_SET_CURRENT_FUNCTION): Define.
      
      From-SVN: r226559
      Kyrylo Tkachov committed
    • [AArch64][6/14] Implement TARGET_OPTION_SAVE/TARGET_OPTION_RESTORE · 361fb3ee
      	* config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
      	(explicit_arch): Likewise.
      	(x_aarch64_isa_flags): Likewise.
      	(mgeneral-regs-only): Mark as Save.
      	(mfix-cortex-a53-835769): Likewise.
      	(mcmodel=): Likewise.
      	(mstrict-align): Likewise.
      	(momit-leaf-frame-pointer): Likewise.
      	(mtls-dialect): Likewise.
      	(master=): Likewise.
      	* config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
      	(aarch64_isa_flags): Remove extern declaration.
      	* config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
      	to indicate success or failure.
      	(aarch64_validate_march): Likewise.
      	(aarch64_validate_mtune): Likewise.
      	(aarch64_isa_flags): Delete.
      	(aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
      	instead of aarch64_isa_flags.
      	(aarch64_get_tune_cpu): New function.
      	(aarch64_get_arch): Likewise.
      	(aarch64_override_options): Use above and set up explicit_tune_core
      	and explicit_arch.
      	(aarch64_print_extension): Move earlier in file.  Add isa_flags
      	argument and use that instead of the global aarch64_isa_flags.
      	(aarch64_option_save): New function.
      	(aarch64_option_restore): Likewise.
      	(aarch64_option_print): Likewise.
      	(aarch64_declare_function_name): Likewise.
      	(aarch64_start_file): Delete.
      	(TARGET_ASM_FILE_START): Do not define.
      	(TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
      	* config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
      	Declare prototype.
      
      From-SVN: r226558
      Kyrylo Tkachov committed
    • [AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use… · bca541c3
      [AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use TARGET_OMIT_LEAF_FRAME_POINTER
      
      	* config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
      	flag_omit_leaf_frame_pointer to 2.
      
      From-SVN: r226557
      Kyrylo Tkachov committed
    • [AArch64][4/14] Create TARGET_FIX_ERR_A53_835769 and use that instead of aarch64_fix_a53_err835769 · b32c1043
              * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
              define to 0 or 1.
              (TARGET_FIX_ERR_A53_835769): New macro.
              * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
              handling of opts->x_aarch64_fix_a53_err835769.
              (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
              than aarch64_fix_a53_err835769.
              * config/aarch64/aarch64-elf-raw.h: Update for above changes.
              * config/aarch64/aarch64-linux.h: Likewise.
      
      From-SVN: r226556
      Kyrylo Tkachov committed
    • i386.c (ix86_expand_int_movcc): Check result of ix86_expand_int_movcc as boolean. · eadc7458
      	* config/i386/i386.c (ix86_expand_int_movcc): Check result of
      	ix86_expand_int_movcc as boolean.
      
      From-SVN: r226555
      Uros Bizjak committed
    • [AArch64][3/14] Refactor option override code · 0cfff2a1
      	* config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
      	(aarch64_cpu_string): Likewise.
      	(aarch64_tune_string): Likewise.
      	* config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
      	(aarch64_parse_extension): Return aarch64_parse_opt_result.
      	Add extra argument to put result into.
      	(aarch64_parse_arch): Likewise.  Do not set selected_cpu.
      	(aarch64_parse_cpu): Add arguments to put results into. Return
      	aarch64_parse_opt_result.
      	(aarch64_parse_tune): Likewise.
      	(aarch64_override_options_after_change_1): New function.
      	(aarch64_override_options_internal): New function.
      	(aarch64_validate_mcpu): Likewise.
      	(aarch64_validate_march): Likewise.
      	(aarch64_validate_mtune): Likewise.
      	(aarch64_override_options): Update to reflect above changes.
      	Move some logic into aarch64_override_options_internal.
      	Initialize target_option_default_node and target_option_current_node.
      	(aarch64_override_options_after_change): Move logic into
      	aarch64_override_options_after_change_1 and call it with global_options.
      	(initialize_aarch64_code_model): Take a gcc_options pointer and use the
      	flag values from that.
      
      	* gcc.target/aarch64/cpu-diagnostics-3.c: Update expected error
      	message.
      
      From-SVN: r226554
      Kyrylo Tkachov committed
    • [AArch64][2/14] Refactor arches handling, add arch enum identifier · 393ae126
      	* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
      	__ARM_ARCH_8A directly rather than with cpp_define_formatted.
      	* config/aarch64/aarch64.c (struct processor): Add arch field.
      	(all_architectures): Handle above, move above all_cores.
      	(all_cores): Handle above.
      	(aarch64_parse_arch): Handle above changes.
      	* config/aarch64/aarch64-arches.def (armv8-a): Extend according to
      	above.  Update comments.
      	(armv8.1-a): Likewise.
      	* config/aarch64/aarch64-cores.def: Update according to above.
      	* config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
      	* config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
      	aarch64_arch_driver_info.
      
      From-SVN: r226553
      Kyrylo Tkachov committed
    • [AArch64][1/14] Add ident field to struct processor · 46806c44
              * config/aarch64/aarch64.c (struct processor): Add ident field.
              Rename core sched_core.
              (all_cores): Handle above changes.
              (all_architectures): Likewise.
              (aarch64_parse_arch): Likewise.
              (aarch64_override_options): Likewise.
      
      From-SVN: r226552
      Kyrylo Tkachov committed
    • gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove dispatching to… · 4b1b9e64
      gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove dispatching to fold_binary for GIMPLE_BINARY_RHS and for comparisons...
      
      2015-08-04  Richard Biener  <rguenther@suse.de>
      
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
      	dispatching to fold_binary for GIMPLE_BINARY_RHS and for
      	comparisons embedded in [VEC_]COND_EXPRs.
      
      From-SVN: r226551
      Richard Biener committed
    • * config/fpu-387.h: Remove unwanted whitespace. · f8bdb6a5
      From-SVN: r226550
      Uros Bizjak committed
    • fpu-387.h (get_fpu_trap_exceptions): Add temporary variable to improve generated code. · 9f8aa64a
      	* config/fpu-387.h (get_fpu_trap_exceptions): Add temporary variable
      	to improve generated code.
      
      From-SVN: r226549
      Uros Bizjak committed
    • re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and… · 22a49988
      re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)
      
      	PR fortran/64022
      
      	* simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
      	support to all real kinds.
      
      	* ieee/ieee_exceptions.F90: Support all real kinds.
      	* ieee/ieee_arithmetic.F90: Likewise.
      	* ieee/ieee_helper.c (ieee_class_helper_10,
      	ieee_class_helper_16): New functions
      	* gfortran.map (GFORTRAN_1.7): Add entries.
      
      	* gfortran.dg/ieee/ieee_7.f90: Adjust test.
      	* gfortran.dg/ieee/large_1.f90: New test.
      
      From-SVN: r226548
      Francois-Xavier Coudert committed
    • tree-if-conv.c: Fix various typos in comments. · 0ad23163
      	* tree-if-conv.c: Fix various typos in comments.
      	* tree-vect-stmts.c: Likewise.
      
      From-SVN: r226544
      Abe Skolnik committed
    • re PR debug/67043 (-fcompare-debug failure with -O3) · 43d56ad7
      2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          PR tree-optimization/67043
          * loop-invariant.c (move_invariant_reg): Recompute luids in loop
          preheader after hoisting invariant in it.
          (find_defs): Force recomputation of all luids.
      
          gcc/testsuite/
          PR tree-optimization/67043
          * gcc.dg/pr67043.c: New test.
      
      From-SVN: r226540
      Thomas Preud'homme committed
    • plugin-nvptx.c: Don't include dlfcn.h. · 9ebddeb0
      	* plugin/plugin-nvptx.c: Don't include dlfcn.h.
      	(cuda_errlist): Constify.
      	(errmsg):  Move into ...
      	(cuda_error): ... here.  Make smaller.
      	(_XSTR, _STR): Delete.
      	(cuda_synames): Delete.
      	(verify_device_library): Delete.
      	(nvptx_init): Don't call it.
      
      From-SVN: r226539
      Nathan Sidwell committed
    • Daily bump. · 1f1833cc
      From-SVN: r226538
      GCC Administrator committed
  2. 03 Aug, 2015 23 commits
    • syscall: RawSockaddr fix for ppc64, ppc64le · 1ca95ba0
          
          The struct RawSockaddr contains a field Data which
          should be uint8 on ppc64 and ppc64le, but is declared
          as int8 in gccgo.  This change adds a two new files
          which contain the structure declaration for
          RawSockaddr, one with the correct types for for ppc64
          and ppc64le, and the other for non-ppc64 platforms.
          
          Fixes golang/go#11469
          
          Reviewed-on: https://go-review.googlesource.com/11946
      
      From-SVN: r226533
      Ian Lance Taylor committed
    • htm.md (tabort.): Restrict the source operand to using a base register. · ab977fd8
      gcc/
      	* config/rs6000/htm.md (tabort.): Restrict the source operand to
      	using a base register.
      
      gcc/testsuite/
      	* gcc.target/powerpc/htm-tabort-no-r0.c: New test.
      
      From-SVN: r226532
      Peter Bergner committed
    • Refactoring of timevar API · afed3459
      gcc/ChangeLog:
      	* main.c (main): Pass in NULL for toplev's external_timer.
      	* timevar.c: Include coretypes.h.
      	(class timer::named_items): New.
      	(timer::named_items::named_items): New.
      	(timer::named_items::~named_items): New.
      	(timer::named_items::push): New.
      	(timer::named_items::pop): New.
      	(timer::named_items::print): New.
      	(timer::timer): Initialize field "m_jit_client_items".
      	(timer::~timer): New.
      	(timer::push): Move bulk of implementation to...
      	(timer::push_internal): ...here.  New function.
      	(timer::pop): Move bulk of implementation to...
      	(timer::pop_internal): ...here.  New function.
      	(timer::push_client_item): New.
      	(timer::pop_client_item): New.
      	(timer::print_row): New function, taken from timer::print.
      	(timer::print): Print "GCC items" header if we also have client
      	items.  Move row-printing to timer::print_row.  Print any client
      	items.
      	(timer::get_topmost_item_name): New method.
      	* timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
      	(TV_JIT_CLIENT_CODE): New.
      	* timevar.h (timer::push_client_item): New declaration.
      	(timer::pop_client_item): New declaration.
      	(timer::get_topmost_item_name): New method.
      	(timer::push_internal): New declaration.
      	(timer::pop_internal): New declaration.
      	(timer::print_row): New declaration.
      	(timer::named_items): New declaration.
      	(timer::m_jit_client_items): New field.
      	(timer): Add friend class named_items.
      	(auto_timevar::auto_timevar): Add timer param.
      	(auto_timevar::~auto_timevar): Use field "m_timer".
      	(auto_timevar::m_timer): New field.
      	* toplev.c (initialize_rtl): Add g_timer as param when
      	constructing auto_timevar instance.
      	(toplev::toplev): Add "external_timer" param, and use it to
      	initialize the "g_timer" global if non-NULL.
      	(toplev::~toplev): If this created "g_timer", delete it.
      	* toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
      	with "external_timer" timer *.
      
      gcc/jit/ChangeLog:
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
      	* docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
      	We no longer show a profile.
      	* docs/topics/index.rst (Topic Reference): Add performance.rst.
      	* docs/topics/performance.rst: New file.
      	* docs/_build/texinfo/libgccjit.texi: Regenerate.
      	* jit-playback.c (gcc::jit::playback::context::compile): Add timer
      	param when constructing the "toplev" instance.
      	(gcc::jit::playback::context::acquire_mutex): Add timer param when
      	constructing auto_timevar instance.
      	(gcc::jit::playback::context::make_fake_args): If we have a timer,
      	add "-ftime-report".
      	(gcc::jit::playback::context::invoke_driver): Add timer param when
      	constructing auto_timevar instance.
      	(gcc::jit::playback::context::dlopen_built_dso): Likewise.
      	* jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
      	* jit-recording.c: Include timevar.h.
      	(gcc::jit::recording::context::context): Initialize field "m_timer".
      	* jit-recording.h: Add forward declaration of class timer.
      	(gcc::jit::recording::context::set_timer): New method.
      	(gcc::jit::recording::context::get_timer): New method.
      	(gcc::jit::recording::context::m_timer): New field.
      	* libgccjit++.h (gccjit::timer): New class.
      	(gccjit::auto_time): New class.
      	(gccjit::context::set_timer): New method.
      	(gccjit::context::get_timer): New.
      	(gccjit::timer::timer): New.
      	(gccjit::timer::push): New.
      	(gccjit::timer::pop): New.
      	(timer::print): New.
      	(timer::get_inner_timer): New.
      	(timer::release): New.
      	(auto_time::auto_time): New.
      	(auto_time::~auto_time): New.
      	* libgccjit.c: Include timevar.h.
      	(struct gcc_jit_timer): New.
      	(gcc_jit_timer_new): New function.
      	(gcc_jit_timer_release): New function.
      	(gcc_jit_context_set_timer): New function.
      	(gcc_jit_context_get_timer): New function.
      	(gcc_jit_timer_push): New function.
      	(gcc_jit_timer_pop): New function.
      	(gcc_jit_timer_print): New function.
      	* libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
      	(gcc_jit_timer): New typedef.
      	(gcc_jit_timer_new): New function.
      	(gcc_jit_timer_release): New function.
      	(gcc_jit_context_set_timer): New function.
      	(gcc_jit_context_get_timer): New function.
      	(gcc_jit_timer_push): New function.
      	(gcc_jit_timer_pop): New function.
      	(gcc_jit_timer_print): New function.
      	* libgccjit.map (LIBGCCJIT_ABI_4): New.
      	(gcc_jit_timer_new): New function.
      	(gcc_jit_timer_release): New function.
      	(gcc_jit_context_set_timer): New function.
      	(gcc_jit_context_get_timer): New function.
      	(gcc_jit_timer_push): New function.
      	(gcc_jit_timer_pop): New function.
      	(gcc_jit_timer_print): New function.
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-benchmark.c (test_jit): Add param "timer" and use
      	it to push/pop timing items.
      	(main): For each optimization level, create a gcc_jit_timer, and
      	time all of the iteration within that level cumulatively.
      	* jit.dg/test-error-gcc_jit_timer_pop-mismatch.c: New test case.
      	* jit.dg/test-error-gcc_jit_timer_pop-too-many.c: New test case.
      
      From-SVN: r226530
      David Malcolm committed
    • compiler: Don't allow multiple function declarations. · ef9da28d
          
          Fixes golang/go#11573.
          
          Reviewed-on: https://go-review.googlesource.com/12508
      
      From-SVN: r226529
      Ian Lance Taylor committed
    • re PR middle-end/64744 (ARM: gcc internal compiler error: in store_field, at expr.c:6659) · de0fb905
      	PR middle-end/64744
      	PR middle-end/48470
      	PR middle-end/43404
      	* cfgexpand.c (expand_one_var): Add check if stack is going to
      	be used in naked function.
      	* expr.c (expand_expr_addr_expr_1): Remove excess checking
      	whether expression should not reside in MEM.
      	* function.c (use_register_for_decl): Do not use registers for
      	non-register things (volatile, float, BLKMode) in naked functions.
      
      	PR middle-end/64744
      	PR middle-end/48470
      	PR middle-end/43404
      	* gcc.target/arm/pr43404.c : New testcase.
      	* gcc.target/arm/pr48470.c : New testcase.
      	* gcc.target/arm/pr64744-1.c : New testcase.
      	* gcc.target/arm/pr64744-2.c : New testcase.
      
      From-SVN: r226528
      Alexander Basov committed
    • compiler: Don't make erroneous type descriptors. · f2fef1c8
          
          There is no need to make type descriptors for named types when there
          are errors during package compilation.  Particularly, if the error in
          package compilation is from a malformed named type, there is no
          guarantee a type descriptor can be created.
          
          Fixes golang/go#11560.
          
          Reviewed-on: https://go-review.googlesource.com/12792
      
      From-SVN: r226527
      Ian Lance Taylor committed
    • libgo/testsuite: kill sleep process in gotest · ca81dee3
          
          This change modifies the "gotest" shell script
          to kill all processes, including "sleep", spawned
          by the timeout subshell. This prevents the sleep
          process from living beyond the gotest process.
          
          BACKGROUND
          
          The "gotest" shell script spawns "sleep" processes
          in the background to kill off test cases that run
          past their specified timeout. There are commands
          included that appear to kill the sleep process,
          but they only kill the parent shell, causing the
          sleep process to reparent.
          
          The orphaned sleep process can cause issues when
          gotest is run under some build systems, such as
          Ninja [0]. The particular issue with Ninja is the
          method it uses to identify terminated processes:
          it creates a pipe, passes the write end to the
          child process, and waits for EOF. In the case of
          libgo/gotest, the orphaned sleep process inherits
          the pipe FD and keeps it open for 4 minutes by
          default.
          
          [0] https://github.com/martine/ninja
          
          Reviewed-on: https://go-review.googlesource.com/12227
      
      From-SVN: r226526
      Ian Lance Taylor committed
    • re PR go/67101 (mprof.goc:408:5: error: calling ‘__builtin_frame_address’ with a… · 3d6d2a63
      re PR go/67101 (mprof.goc:408:5: error: calling ‘__builtin_frame_address’ with a nonzero argument is unsafe [-Werror=frame-address])
      
      	PR go/67101
      
          runtime: Remove call to __builtin_frame_address.
          
          __builtin_frame_address was only supposed to use nonzero arguments
          for debugging purposes.  Calling it with nonzero arguments can have
          unpredictable results and uses are now marked unsafe when
          -Wframe-address is enabled.
          
          Reviewed-on: https://go-review.googlesource.com/13063
      
      From-SVN: r226525
      Ian Lance Taylor committed
    • re PR target/67060 (FAIL: gcc.dg/pr56228.c (test for excess errors)) · 8a921278
      	PR target/67060
      	* config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
      	Adjust splits to match new pattern.
      
      From-SVN: r226522
      John David Anglin committed
    • vector.md (VEC_L): Add KFmode and TFmode. · c477a667
      2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
      	(VEC_M): Likewise.
      	(VEC_N): Likewise.
      	(mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
      	point in VSX registers.
      
      	* config/rs6000/constraints.md (wb constraint): Document unused
      	w<x> constraint.
      	(we constraint): Likewise.
      	(wo constraint): Likewise.
      	(wp constraint): New constraint for IEEE 128-bit floating point in
      	VSX registers.
      	(wq constraint): Likewise.
      
      	* config/rs6000/predicates.md (easy_fp_constant): Add support for
      	IEEE 128-bit floating point in VSX registers.
      	(easy_scalar_constant): Likewise.
      
      	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
      	constraints (wp, wq) for IEEE 128-bit floating point in VSX
      	registers.
      	(rs6000_init_hard_regno_mode_ok): Likewise.
      
      	* config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
      	floating point in VSX registers.
      	(VSX_L): Likewise.
      	(VSX_M): Likewise.
      	(VSX_M2): Likewise.
      	(VSm): Likewise.
      	(VSs): Likewise.
      	(VSr): Likewise.
      	(VSa): Likewise.
      	(VSv): Likewise.
      	(vsx_le_permute_<mode>): Add support to properly swap bytes for
      	IEEE 128-bit floating point in VSX registers on little endian.
      	(vsx_le_undo_permute_<mode>): Likewise.
      	(vsx_le_perm_load_<mode>): Likewise.
      	(vsx_le_perm_store_<mode>): Likewise.
      	(splitters for IEEE 128-bit fp moves): Likewise.
      
      	* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
      	wq constraints.
      
      	* config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
      	floating point in VSX registers.
      	(VM2): Likewise.
      
      	* doc/md.text (Machine Constraints): Document wp and wq
      	constraints on PowerPC.
      
      From-SVN: r226520
      Michael Meissner committed
    • Add a testcase for PR tree-optimization/67077 · 472fd3cc
      	PR tree-optimization/67077
      	* gcc.dg/pr67077.c: New test.
      
      From-SVN: r226518
      H.J. Lu committed
    • re PR fortran/66942 (trans-expr.c:5701 runtime error: member call on null… · 5c4aa279
      re PR fortran/66942 (trans-expr.c:5701 runtime error: member call on null pointer of type 'struct vec')
      
      2015-08-03  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/66942
      	* trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference
      
      From-SVN: r226517
      Steven G. Kargl committed
    • re PR middle-end/66314 (ice in verify_loop_structure) · c2a96ec2
      	PR middle-end/66314
      	PR gcov-profile/66899
      	* tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
      	iterate over the jump threading paths when an element in the
      	jump threading paths array is eliminated.
      
      	PR middle-end/66314
      	PR gcov-profile/66899
      	* gcc.dg/pr66899.c: New test.
      	* gcc.dg/pr66314.c: New test.
      
      From-SVN: r226516
      Jeff Law committed
    • re PR libstdc++/67078 (FAIL: 24_iterators/container_access.cc (test for excess… · 93411db8
      re PR libstdc++/67078 (FAIL: 24_iterators/container_access.cc (test for excess errors) on aarch64-none-elf)
      
      	PR libstdc++/67078
      	* include/bits/range_access.h (size, empty, data): Fix _N bad name.
      
      From-SVN: r226515
      Jonathan Wakely committed
    • Avoid recomputing the defining predicate chains for the same PHI · c0503346
      gcc/ChangeLog:
      
      	* tree-ssa-uninit.c (find_uninit_use): Declare and pass to
      	is_use_properly_guarded the variable def_preds.  Free its
      	contents before returning.
      	(prune_uninit_phi_opnds_in_unrealizable_paths): Same.
      	(is_use_properly_guarded): Replace local variable def_preds with
      	a parameter.  Adjust accordingly.  Only update *def_preds if it's
      	the empty vector.
      
      From-SVN: r226511
      Patrick Palka committed
    • re PR c/67088 (Incorrect location of error on invalid type used in bit-field declaration) · 420a9d9b
      	PR c/67088
      	* c-decl.c (check_bitfield_type_and_width): Add location parameter.
      	Use it.
      	(grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
      
      	* gcc.dg/pr67088.c: New test.
      
      From-SVN: r226506
      Marek Polacek committed
    • genmatch.c (simplify::for_subst_vec): New member. · 50301115
      2015-08-03  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (simplify::for_subst_vec): New member.
      	(binary_ok): New helper for for lowering.
      	(lower_for): Delay substituting operators into result expressions
      	if we can merge the results eventually again.
      	(capture_info::walk_result): Adjust for user_id appearing as
      	result expression operator.
      	(expr::gen_transform): Likewise.
      	(dt_simplify::gen_1): Likewise.
      	(dt_simplify::gen): Pass not substituted operators to tail
      	functions or initialize local variable with it.
      	(decision_tree::gen): Adjust function signature.
      	* match.pd: Fix tests against global code and add default
      	cases to switch stmts.
      
      From-SVN: r226505
      Richard Biener committed
    • genmatch.c (simplify::for_subst_vec): New member. · d4b71b95
      2015-08-03  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (simplify::for_subst_vec): New member.
      	(binary_ok): New helper for for lowering.
      	(lower_for): Delay substituting operators into result expressions
      	if we can merge the results eventually again.
      	(capture_info::walk_result): Adjust for user_id appearing as
      	result expression operator.
      	(expr::gen_transform): Likewise.
      	(dt_simplify::gen_1): Likewise.
      	(dt_simplify::gen): Pass not substituted operators to tail
      	functions or initialize local variable with it.
      	(decision_tree::gen): Adjust function signature.
      	* match.pd: Fix tests against global code and add default
      	cases to switch stmts.
      
      From-SVN: r226504
      Richard Biener committed
    • genmatch.c (dt_simplify::gen): Create captures array with an initializer. · 1d2fdec6
      2015-08-03  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (dt_simplify::gen): Create captures array
      	with an initializer.
      
      From-SVN: r226503
      Richard Biener committed
    • configure.ac: Set aliasing_flags to -fno-strict-aliasing if... · 4c0cca18
      gcc/ChangeLog:
      
      	* configure.ac: Set aliasing_flags to -fno-strict-aliasing if
      	the host compiler is affected by placement new aliasing bug.
      	* configure: Regenerate.
      	* Makefile.in (ALIASING_FLAGS): New variable.
      	(ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
      
      From-SVN: r226499
      Ulrich Weigand committed
    • [ARM] PR target/66731 Fix vnmul insn with -frounding-math · 1f71aee9
      gcc:
      
      	PR target/66731
      	* config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
      	(negmulsf3_vfp): Likewise.
      	(muldf3negdf_vfp): Disable for -frounding-math.
      	(mulsf3negsf_vfp): Likewise.
      	* config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
      	fix MULT cost with -frounding-math.
      
      gcc/testsuite:
      
      	PR target/66731
      	* gcc.target/arm/vnmul-1.c: New.
      	* gcc.target/arm/vnmul-2.c: New.
      	* gcc.target/arm/vnmul-3.c: New.
      	* gcc.target/arm/vnmul-4.c: New.
      
      From-SVN: r226496
      Szabolcs Nagy committed
    • Fix random class_allocate_18.f90 failure · 2ab320ad
      	PR fortran/64921
      gcc/fortran/
      	* class.c (generate_finalization_wrapper): Set finalization
      	procedure symbol's always_explicit attribute.
      gcc/testsuite/
      	* gfortran.dg/class_allocate_20.f90: New.
      
      From-SVN: r226493
      Mikael Morin committed