Age | Commit message (Collapse) | Author | Files | Lines |
|
* lang.opt: Add -fgo-pkgpath.
* go-lang.c (go_pkgpath): New static variable.
(go_prefix): New static variable.
(go_langhook_init): Pass go_pkgpath and go_prefix to
go_create_gogo.
(go_langhook_handle_option): Handle -fgo-pkgpath. Change
-fgo-prefix handling to just set go_prefix.
* go-c.h (go_set_prefix): Don't declare.
(go_create_gogo): Add pkgpath and prefix to declaration.
* go-gcc.cc (Gcc_backend::global_variable): Change unique_prefix
to pkgpath. Don't include the package name in the asm name.
* gccgo.texi (Invoking gccgo): Document -fgo-pkgpath. Update the
docs for -fgo-prefix.
From-SVN: r187356
|
|
2012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/53289
gcc/
* diagnostic.h (diagnostic_context): Add last_location.
* diagnostic.c (diagnostic_initialize): Initialize it.
(diagnostic_show_locus): Use it.
From-SVN: r187355
|
|
PR target/52908
* config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
(vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
instead of xop_mulv2div2di3_low.
(xop_p<macs>dql): Fix vec_select selector.
(xop_p<macs>dqh): Ditto.
(xop_mulv2div2di3_low): Remove insn_and_split pattern.
(xop_mulv2div2di3_high): Ditto.
testsuite/ChangeLog:
PR target/52908
* gcc.target/i386/xop-imul32widen-vector.c: Update scan-assembler
directive to Scan for vpmuldq, not vpmacsdql.
From-SVN: r187354
|
|
2012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
* doc/extend.texi (Function Attributes): Point xref to section
about Pragmas.
From-SVN: r187353
|
|
handling from asm output code.
* config/i386/i386.c (*movdf_internal_rex64): Remove
TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
Calculate "mode" attribute according to
TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
(*movdf_internal): Ditto.
From-SVN: r187348
|
|
PR target/44141
* config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
or when optimizing for size.
* config/i386/sse.md (*mov<mode>_internal): Remove
TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
Calculate "mode" attribute according to optimize_function_for_size_p
and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
(*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
depending on the mode of the instruction. Calculate "mode" attribute
according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
(*<sse2>_movdqu<avxsizesuffix>): Ditto.
From-SVN: r187347
|
|
'signal')
PR target/53256
* config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
* config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
* config/avr/avr.h (struct machine_function): Add attributes_checked_p.
* config/avr/avr.c (avr_asm_declare_function_name): Remove.
(expand_prologue): Move initialization of cfun->machine->is_naked,
is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
(avr_set_current_function): ...this new static function.
(TARGET_SET_CURRENT_FUNCTION): New define.
(avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
checking attributes of current_function_decl.
(avr_regs_to_save): Ditto.
(signal_function_p): Rename to avr_signal_function_p.
(interrupt_function_p): Rename to avr_interrupt_function_p.
* doc/extend.texi (Function Attributes): Better explanation of
'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
alphabetical order.
From-SVN: r187342
|
|
PR tree-optimization/53185
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
peeling when we see strided loads.
testsuite/
* gcc.dg/vect/pr53185.c: New test.
From-SVN: r187340
|
|
2012-05-09 Matthias Klose <doko@ubuntu.com>
* gcc-ar.c (main): Don't check for execute bits for the plugin.
From-SVN: r187338
|
|
PR middle-end/53249
* gcc.target/i386/pr53249.c: New.
From-SVN: r187331
|
|
2012-05-09 Richard Guenther <rguenther@suse.de>
PR tree-optimization/18437
* gfortran.dg/vect/rnflow-trs2a2.f90: Move ...
* gfortran.dg/vect/fast-math-rnflow-trs2a2.f90: ... here.
From-SVN: r187330
|
|
HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with...
2012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
* tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
* config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
(USE_LOAD_POST_INCREMENT): Define.
(USE_LOAD_PRE_INCREMENT): Define.
(USE_LOAD_POST_DECREMENT): Define.
(USE_LOAD_PRE_DECREMENT): Define.
(USE_STORE_PRE_DECREMENT): Define.
(USE_STORE_PRE_INCREMENT): Define.
(USE_STORE_POST_DECREMENT): Define.
(USE_STORE_POST_INCREMENT): Define.
(arm_auto_incmodes): Add enumeration.
* config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
* config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
From-SVN: r187329
|
|
PR tree-optimization/53226
* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
doesn't need to be revisited, look for earliest stmt with
!gimple_plf (stmt, GF_PLF_1) if something changed.
* gcc.c-torture/compile/pr53226.c: New test.
From-SVN: r187328
|
|
* genmultilib: Update copyright dates.
* doc/fragments.texi: Ditto.
From-SVN: r187327
|
|
* Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
* genmultilib (MULTILIB_REQUIRED): New.
* doc/fragments.texi: Document the MULTILIB_REQUIRED.
From-SVN: r187325
|
|
2012-05-09 Richard Guenther <rguenther@suse.de>
* tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
(vect_do_peeling_for_loop_bound): Likewise.
(vect_do_peeling_for_alignment): Likewise.
* tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
(vect_do_peeling_for_loop_bound): Get check_profitability and
threshold as parameters.
(vect_do_peeling_for_alignment): Likewise.
(vect_loop_versioning): Likewise.
* tree-vect-loop.c (vect_transform_loop): Compute check_profitability
and threshold here. Control where to put the check here.
From-SVN: r187323
|
|
* gcc.target/i386/hle-add-acq-1.c: Allow for ; after lock.
* gcc.target/i386/hle-add-rel-1.c: Likewise.
* gcc.target/i386/hle-and-acq-1.c: Likewise.
* gcc.target/i386/hle-and-rel-1.c: Likewise.
* gcc.target/i386/hle-cmpxchg-acq-1.c: Likewise.
* gcc.target/i386/hle-cmpxchg-rel-1.c: Likewise.
* gcc.target/i386/hle-or-acq-1.c: Likewise.
* gcc.target/i386/hle-or-rel-1.c: Likewise.
* gcc.target/i386/hle-sub-acq-1.c: Likewise.
* gcc.target/i386/hle-sub-rel-1.c: Likewise.
* gcc.target/i386/hle-xadd-acq-1.c: Likewise.
* gcc.target/i386/hle-xadd-rel-1.c: Likewise.
* gcc.target/i386/hle-xor-acq-1.c: Likewise.
* gcc.target/i386/hle-xor-rel-1.c: Likewise.
From-SVN: r187321
|
|
gcc/
PR middle-end/53249
* dwarf2out.h (get_address_mode): Move declaration to...
* rtl.h: ...here.
* dwarf2out.c (get_address_mode): Move definition to...
* rtlanal.c: ...here.
* var-tracking.c (get_address_mode): Delete.
* combine.c (find_split_point): Use get_address_mode instead of
targetm.addr_space.address_mode.
* cselib.c (cselib_record_sets): Likewise.
* dse.c (canon_address, record_store): Likewise.
* emit-rtl.c (adjust_address_1, offset_address): Likewise.
* expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
(store_by_pieces_1, expand_assignment, store_expr, store_constructor)
(expand_expr_real_1): Likewise.
* ifcvt.c (noce_try_cmove_arith): Likewise.
* optabs.c (maybe_legitimize_operand_same_code): Likewise.
* reload.c (find_reloads): Likewise.
* sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
* sel-sched-dump.c (debug_mem_addr_value): Likewise.
From-SVN: r187320
|
|
produced.
* config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
information from the instruction produced.
From-SVN: r187319
|
|
2012-05-09 Richard Guenther <rguenther@suse.de>
* stor-layout.c (bit_from_pos): Document.
(byte_from_pos): Likewise. Optimize.
(pos_from_bit): Likewise.
(normalize_offset): Use pos_from_bit instead of replicating it.
From-SVN: r187317
|
|
PR target/53271
* config/rs6000/rs6000.c (gen_frame_set): New function.
(gen_frame_load, gen_frame_store): New functions.
(rs6000_savres_rtx): Use the above.
(rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
Correct mode used for CR2 in save/restore_world patterns.
Don't emit instructions for eh_return frame unwind reg info.
From-SVN: r187316
|
|
gcc/testsuite
* gcc.dg/predict-1.c: Remove the replicated text in this test.
* gcc.dg/predict-2.c: Likewise.
* gcc.dg/predict-3.c: Likewise.
* gcc.dg/predict-4.c: Likewise.
* gcc.dg/predict-5.c: Likewise.
* gcc.dg/predict-6.c: Likewise.
From-SVN: r187315
|
|
* cgraphbuild.c (build_cgraph_edges): Do not finalize vars
with VALUE_EXPR.
* cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
are removable.
* toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
need to wrapup.
(compile_file): Do not output variables.
* cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
output it.
* langhooks.c: Include timevar.h
(write_global_declarations): Finalize compilation unit after wrapup;
set timevars correctly.
* passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
not to be added to varpool.
* varpool.c (varpool_assemble_decl): Sanity check that we are called
only on cases where it makes sense; skip constant pool and value expr
vars.
* lto.c (do_whole_program_analysis): Set timevars correctly.
(lto_main): Likewise.
* trans-common.c (create_common): Do not fake TREE_ASM_WRITTEN.
* trans-decl.c (gfc_finish_cray_pointee): Likewise.
From-SVN: r187314
|
|
gcc/
* config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
* config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
* config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
From-SVN: r187309
|
|
From-SVN: r187307
|
|
2012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/53261
c-family/
* c-common.c (warn_logical_operator): Check that argument of
integer_zerop is not NULL.
From-SVN: r187300
|
|
df-scan.c:3179 when compiling libgcc2.c __mulvdi3 on armv5tel-linux)
gcc/
PR rtl-optimization/53278
* lower-subreg.c (decompose_multiword_subregs): Remove left-over
speed_p code from earlier patch.
From-SVN: r187299
|
|
PR target/51244
* config/sh/sh.md (*branch_true, *branch_false): New insns.
From-SVN: r187298
|
|
collect...
This patch adds functionality to libgcov to enable user applications to
collect profile data only in regions of interest. This is useful, for
example, to collect profile data from a long-running server only
during the time when it is serving requests.
Specifically, the new routines __gcov_reset will clear all profile counters
to zero and __gcov_dump will write out the profile information collected so
far. A global variable is used to prevent writing out the profile a
second time during exit.
2012-05-08 Teresa Johnson <tejohnson@google.com>
* libgcc/libgcov.c (gcov_clear, __gcov_reset): New functions.
(__gcov_dump): Ditto.
(gcov_dump_complete): New global variable.
(gcov_exit): Export hidden to enable use in L_gcov_dump.
(__gcov_flush): Outline functionality now in gcov_clear.
* libgcc/Makefile.in (L_gcov_reset, L_gcov_dump): Define.
* gcc/gcov-io.h (__gcov_reset, __gcov_dump): Declare.
* gcc/doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
From-SVN: r187297
|
|
* cgraph.c (cgraph_call_edge_duplication_hooks): Export.
(cgraph_create_node_1): Rename to ...
(cgraph_create_empty_node): ... this one; export.
(cgraph_create_node): Update.
(cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
(cgraph_create_edge_including_clones): Likewise.
(cgraph_find_replacement_node): Likewise.
(cgraph_clone_edge): Likewise.
(cgraph_clone_node): Likewise.
(clone_function_name): Likewise.
(cgraph_create_virtual_clone): Likewise.
(cgraph_remove_node_and_inline_clones): Likewise.
(cgraph_redirect_edge_call_stmt_to_callee): Move here from
cgraphunit.c
* cgraph.h: Reorder declarations so they match file of origin.
(cgraph_create_empty_node): Declare.
* cgraphunit.c (update_call_expr): Move to cgraphclones.c
(cgraph_copy_node_for_versioning): Likewise.
(cgraph_function_versioning): Likewise.
(cgraph_materialize_clone): Likewise.
(cgraph_redirect_edge_call_stmt_to_callee): Likewise.
(cgraph_materialize_all_clones): Likewise.
* cgraphclones.c: New file.
* Makefile.in: Update for cgraphclones.
From-SVN: r187296
|
|
* cgraph.c (cgraph_call_edge_duplication_hooks): Export.
(cgraph_create_node_1): Rename to ...
(cgraph_create_empty_node): ... this one; export.
(cgraph_create_node): Update.
(cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
(cgraph_create_edge_including_clones): Likewise.
(cgraph_find_replacement_node): Likewise.
(cgraph_clone_edge): Likewise.
(cgraph_clone_node): Likewise.
(clone_function_name): Likewise.
(cgraph_create_virtual_clone): Likewise.
(cgraph_remove_node_and_inline_clones): Likewise.
(cgraph_redirect_edge_call_stmt_to_callee): Move here from
cgraphunit.c
* cgraph.h: Reorder declarations so they match file of origin.
(cgraph_create_empty_node): Declare.
* cgraphunit.c (update_call_expr): Move to cgraphclones.c
(cgraph_copy_node_for_versioning): Likewise.
(cgraph_function_versioning): Likewise.
(cgraph_materialize_clone): Likewise.
(cgraph_redirect_edge_call_stmt_to_callee): Likewise.
(cgraph_materialize_all_clones): Likewise.
* cgraphclones.c: New file.
* Makefile.in: Update for cgraphclones.
From-SVN: r187295
|
|
From-SVN: r187290
|
|
PR target/53250
* config/i386/i386.c (ix86_set_reg_reg_cost): New function.
(ix86_rtx_costs): Handle SET.
From-SVN: r187289
|
|
member to ...
* basic-block.h (struct rtl_bb_info): Remove visited member and
move head_ member to ...
(struct basic_block_def.basic_block_il_dependent): ... the new
member x, replacing but containing old member rtl.
(enum bb_flags): New BB_VISITED flag.
(BB_HEADER, BB_FOOTER): New macros.
* jump.c (mark_all_labels): Adjust.
* cfgcleanup.c (try_optimize_cfg): Adjust.
* cfglayout.c (record_effective_endpoints): Adjust.
(relink_block_chain): Ditto (and don't fiddle with visited).
(fixup_reorder_chain): Adjust.
(fixup_fallthru_exit_predecessor): Ditto.
(cfg_layout_duplicate_bb): Ditto.
* combine.c (update_cfg_for_uncondjump): Adjust.
* bb-reorder.c (struct bbro_basic_block_data_def): Add visited
member.
(bb_visited_trace): New accessor.
(mark_bb_visited): Move in front.
(rotate_loop): Use bb_visited_trace.
(find_traces_1_round): Ditto.
(emit_barrier_after): Ditto.
(copy_bb): Ditto, and initialize visited on resize.
(reorder_basic_blocks): Initize visited member.
(duplicate_computed_gotos): Clear bb flags at start, use
BB_VISITED flags.
* cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
(rtl_verify_flow_info_1): Ditto.
(cfg_layout_split_block): Ditto.
(cfg_layout_delete_block): Ditto.
(cfg_layout_merge_blocks): Ditto.
(init_rtl_bb_info): Adjust and initialize il.x.head_ member.
From-SVN: r187288
|
|
and small-integer source)
PR target/53272
* gcc.dg/torture/pr53272-1.c, gcc.dg/torture/pr53272-2.c: New test.
From-SVN: r187284
|
|
and small-integer source)
PR target/53272
* config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
when a constant source operand matches an "I" constraint, the "no
CC0 change" applies to a register-destination only, not a
strict_low_part-destination.
From-SVN: r187283
|
|
CST1) & CST2' when...
2012-05-08 Richard Guenther <rguenther@suse.de>
* fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
* gcc.dg/fold-bitand-4.c: New testcase.
From-SVN: r187280
|
|
* Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
* doc/avr-mmcu.texi: New auto-generated file.
* doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
to document all valid -mmcu= arguments.
* config/avr/avr.h (arch_info_s): New struct definition.
* config/avr/avr-devices.c (avr_texinfo): New variable.
* config/avr/gen-avr-mmcu-texi.c: New file.
* config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
From-SVN: r187279
|
|
2012-05-08 Dehao Chen <dehao@google.com>
gcc/
* predict.c (find_qualified_ssa_name): New
(find_ssa_name_in_expr): New
(find_ssa_name_in_assign_stmt): New
(is_comparison_with_loop_invariant_p): New
(is_bound_expr_similar): New
(predict_iv_comparison): New
(predict_loops): Add heuristic for loop-nested branches that compare an
induction variable to a loop bound variable.
* predict.def (PRED_LOOP_IV_COMPARE): New macro
testsuite/
* gcc.dg/predict-1.c: Check if LOOP_IV_COMPARE static predict
heuristic is working properly.
* gcc.dg/predict-2.c: Likewise.
* gcc/dg/predict-3.c: Likewise.
* gcc/dg/predict-4.c: Likewise.
* gcc/dg/predict-5.c: Likewise.
* gcc/dg/predict-6.c: Likewise.
From-SVN: r187277
|
|
appropriate.
* config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
TARGET_BDVER2 defines where appropriate.
From-SVN: r187276
|
|
From-SVN: r187275
|
|
* configure.ac (PLUGIN_LD): Rename into...
(PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
* config.in: Regenerate.
* configure: Likewise.
* collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
From-SVN: r187269
|
|
precision of the index type.
* tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
computation using the precision of the index type.
* gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
(fold_array_ctor_reference): Do index computations in the index type.
From-SVN: r187268
|
|
The lexer used to incorrectly accept a token like 0x123i
and interpreted it as 123i. It also used to die when encountering
0xdie.
From-SVN: r187266
|
|
This patch corrects an ICE in handling on constant expressions
such as
const r = ^'a'
Part of issue 9.
From-SVN: r187264
|
|
The Go specification only accepts the NOT operator on boolean
types.
Fixes issue 10.
From-SVN: r187262
|
|
* config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
down to plus_constant.
(expand_epilogue): Ditto.
From-SVN: r187259
|
|
* postreload.c (reload_cse_regs): Make static.
* reload.h (reload_cse_regs): Remove prototype.
From-SVN: r187258
|
|
From-SVN: r187255
|
|
From-SVN: r187254
|