| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
Remove.
(dse_initialize_block_local_data, dse_leave_block,
record_voperand_set, get_stmt_uid): Likewise.
(dse_possible_dead_store_p): Allow any kind of killing stmt.
(dse_optimize_stmt): Remove voperand set handling code.
Simplify and improve to handle any kind of killing stmt.
(dse_record_phi): Remove.
(dse_enter_block): Simplify.
(tree_ssa_dse): Likewise.
* tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
* gcc.dg/tree-ssa/ssa-dse-14.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172431 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (struct inline_summary): Move to ipa-inline.h
(cgraph_local_info): Remove inline_summary.
* ipa-cp.c: Include ipa-inline.h.
(ipcp_cloning_candidate_p, ipcp_estimate_growth,
ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
accesor.
* lto-cgraph.c (lto_output_node): Do not stream inline summary.
(input_overwrite_node): Do not set inline summary.
(input_node): Do not stream inline summary.
* ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
(cgraph_decide_inlining_incrementally): Do not try to estimate overall
growth; we do not have inline parameters computed for that anyway.
(cgraph_early_inlining): After inlining compute call_stmt_sizes.
* ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
(inline_summary_t): New type and VECtor.
(debug_inline_summary, dump_inline_summaries): Declare.
(inline_summary): Use VOCtor.
(estimate_edge_growth): Kill hack computing call stmt size directly.
* lto-section-in.c (lto_section_name): Add inline section.
* ipa-inline-analysis.c: Include lto-streamer.h
(node_removal_hook_holder, node_duplication_hook_holder): New holders
(inline_node_removal_hook, inline_node_duplication_hook): New functions.
(inline_summary_vec): Define.
(inline_summary_alloc, dump_inline_summary, debug_inline_summary,
dump_inline_summaries): New functions.
(estimate_function_body_sizes): Properly compute size/time of outgoing calls.
(compute_inline_parameters): Alloc inline_summary; do not compute size/time
of incomming calls.
(estimate_edge_time): Avoid missing time summary hack.
(inline_read_summary): Read inline summary info.
(inline_write_summary): Write inline summary info.
(inline_free_summary): Free all hooks and inline summary vector.
* lto-streamer.h: Add LTO_section_inline_summary section.
* Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
* ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
* lto.c: Include ipa-inline.h
(add_cgraph_node_to_partition, undo_partition): Use inline_summary accessor.
(ipa_node_duplication_hook): Fix declaration.
* Make-lang.in (lto.o): Update dependencies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172430 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-vectorizer.h (vect_strided_store_supported): Add a
HOST_WIDE_INT argument.
(vect_strided_load_supported): Likewise.
(vect_permute_store_chain): Return void.
(vect_transform_strided_load): Likewise.
(vect_permute_load_chain): Delete.
* tree-vect-data-refs.c (vect_strided_store_supported): Take a
count argument. Check that the count is a power of two.
(vect_strided_load_supported): Likewise.
(vect_permute_store_chain): Return void. Update after above changes.
Assert that the access is supported.
(vect_permute_load_chain): Likewise.
(vect_transform_strided_load): Return void.
* tree-vect-stmts.c (vectorizable_store): Update calls after
above interface changes.
(vectorizable_load): Likewise.
(vect_analyze_stmt): Don't check for strided powers of two here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172428 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-optimization/48590
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
(call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
BUILT_IN_STACK_SAVE.
* tree-ssa-dce.c (propagate_necessity): Handle
BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172427 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_objc_class_declaration): Updated call to
objc_declare_class.
In gcc/c-family/:
2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
* stub-objc.c (objc_declare_class): Updated argument name.
In gcc/cp/:
2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_class_declaration): Updated for change
in objc_declare_class().
In gcc/objc/:
2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_declare_class): Changed to take a single
identifier as argument instead of a tree list. This means callers
don't have to build temporary tree lists to call this function.
(synth_module_prologue): Updated calls to objc_declare_class.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172425 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree.h (get_object_alignment_1): Declare.
* builtins.c (get_object_alignment_1): Split out worker from ...
(get_object_alignment): ... here.
* fold-const.c (get_pointer_modulus_and_residue): Use
get_object_alignment_1.
* gcc.dg/fold-bitand-4.c: Move ...
* c-c++-common/fold-bitand-4.c: ... here. Adjust slightly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172424 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
type parameter.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
parameter. Generalise code to handle arrays as well as vectors.
(vect_setup_realignment): Update accordingly.
* tree-vect-stmts.c (vectorizable_store): Likewise.
(vectorizable_load): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172423 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
within the per-copy loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172422 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172421 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* tree-vect-stmts.c (vectorizable_load): Print the number of copies
in the dump file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172420 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* doc/options.texi (Negative): Explicitly mention that the
Negative chain must be circular.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172419 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
gcc/
* function.h (block_chainon): Declare.
* function.c (block_chainon): Define.
gcc/cp/
* decl.c (poplevel): Use block_chainon.
gcc/fortran//
* f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
gcc/java/
* decl.c (poplevel): Use BLOCK_CHAIN and block_chainon.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172418 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New Includes
(avr_init_builtins, avr_expand_builtin,
avr_expand_delay_cycles, avr_expand_unop_builtin,
avr_expand_binop_builtin ): New functions.
(avr_builtin_id): New enum
(struct avr_builtin_description): New struct
(bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
* config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
UNSPECV_DELAY_CYCLES): new enumeration values
(UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
("*rotlqi3_4"): rename insn to "rotlqi3_4"
("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
"delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
"fmulsu"): New insns
* config/avr/avr-c.c: fix line endings
(avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
__BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
__BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
__BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
__BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
* doc/extend.texi (AVR Built-in Functions): New node
(Target Builtins): Add documentation of AVR
built-in functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172416 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
alone. Error if non-const data has attribute progmem.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172415 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
tree_common.
* tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
TS_TYPED instead of TS_COMMON.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172409 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
(sse2_psadbw): Merge with *avx_psadbw.
(ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
(ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
(ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
(ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
(ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
(ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
(ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
(*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
(ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
(ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
(ssse3_palignrti): Merge with *avx_palignrti.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172403 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-ssanames.c (fini_ssanames): VEC_free it.
(make_ssa_name_fn): Update for VECness of free_ssanames.
(release_ssa_name, release_dead_ssa_names): Likewise.
* tree.h (struct tree_ssa_name): Include tree_typed instead of
tree_common.
* tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
TS_TYPED instead of TS_COMMON.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172393 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
statistics_counter_event.
* tree-ssa-copyrename.c (stats): Define.
(rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
statistics_counter_event.
* tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
(bswap_stats, widen_mul_stats): Define.
(insert_reciprocals): Increment rdivs_inserted.
(execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
rfuncs_inserted. Add calls to statistics_counter_event.
(execute_cse_sincos_1): Increment inserted.
(execute_cse_sincos): Zeroize sincos_stats. Add call to
statistics_counter_event.
(execute_optimize_bswap): Zeroize bswap_stats. Increment fields
of bswap_stats. Add calls to statistics_counter_event.
(convert_mult_to_widen): Increment widen_mults_inserted.
(convert_plusminus_to_widen): Increment maccs_inserted.
(convert_mult_to_fma): Increment fmas_inserted.
(execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
calls to statistics_counter_event.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172392 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
PR rtl-optimization/48455
* ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
`temp_costs->mem_cost'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172389 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ipa-inline-analysis.c: New file. Broken out of ...
* ipa-inline.c: ... this file; update toplevel comment;
include ipa-inline.h
(inline_summary): Move to ipa-inline.h
(cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
ipa-inline-analysis.c.
(cgraph_estimate_time_after_inlining): Rename to estiamte_time_after_inlining;
move to ipa-inline-analysis.c
(cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
to estimate_edge_growth.
(cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
rename to estimate_size_after_inlining.
(cgraph_mark_inline_edge): Update for new naming convention.
(cgraph_check_inline_limits): Likewise.
(cgraph_edge_badness): Likewise.
(cgraph_decide_recursive_inlining): Likewise.
(cgraph_decide_inlining_of_small_functions): Likewise.
(cgraph_decide_inlining_incrementally): Likewise.
(cgraph_estimate_growth): Rename to estimate_growth; move to ipa-inline-analysis.c.
(eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
(estimate_function_body_sizes): Move to ipa-inline-analysis.c.
(compute_inline_parameters): Likewise.
(compute_inline_parameters_for_current): Likewise.
(pass_inline_parameters): Likewise.
(inline_indirect_intraprocedural_analysis): Likewise.
(analyze_function): Rename to inline_analyze_function; likewise.
(add_new_function): Move to ipa-inline-analysis.c.
(inline_generate_summary): Likewise.
(inline_read_summary): Likewise.
(inline_write_summary): Likewise.
* Makefile.in (ipa-inline-analysis.c): New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172388 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172387 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of tree_common.
(struct tree_fixed_cst, struct tree_string, struct tree_complex):
Likewise.
* tree.c (initialize_tree_contains_struct): Mark such nodes as being
TS_TYPED rather than TS_COMMON.
* print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172386 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172385 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Save
R20 around calls of __tablejump_elpm__
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172384 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
NULL.
(expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
* gcc.dg/gomp/pr48591.c: New test.
* testsuite/libgomp.c/pr48591.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172379 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
(cfi_vec): New typedef.
(struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
(cie_cfi_vec): New static variable.
(cie_cfi_head): Delete.
(add_cfi): Accept a cfi_vec * as first argument. All callers and
declaration changed. Use vector rather than list operations.
(new_cfi): Don't initialize the dw_cfi_next field.
(add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
rather than list operations.
(lookup_cfa): Use vector rather than list operations.
(output_cfis): New argument upto. Accept a cfi_vec rather than
a dw_cfi_ref list head as argument. All callers changed.
Iterate over the vector using upto as a maximum index.
(output_all_cfis): New static function.
(output_fde): Use vector rather than list operations. Use the
new upto argument for output_cfis rather than manipulating a
list.
(dwarf2out_begin_prologue): Change initializations to match
new struct members.
(dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
from the vector length rather than searching for the end of a list.
Use output_all_cfis.
(convert_cfa_to_fb_loc_list): Use vector rather than list operations.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172369 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
volatile pointers are involved.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172368 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(sse2_packsswb): Merge with *avx_packsswb.
(sse2_packssdw): Merge with *avx_packssdw.
(sse2_packuswb): Merge with *avx_packuswb.
(vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
(vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
(vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
(vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
(vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
(vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
(*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
(*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
(*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
(*sse4_1_pinsrq): Merge with *avx_pinsrq.
(sse2_loadld): Merge with *avx_loadld.
(*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
(*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
(*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
(*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
(vec_concatv2di): Merge with *vec_concatv2di_avx.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172365 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gcc-interface/ada-tree.h (union lang_tree_node): Check for
TS_COMMON before calling TREE_CHAIN.
* gcc-interface/misc.c (gnat_init_ts): New function.
(LANG_HOOKS_INIT_TS): Define.
gcc/
* c-decl.c (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
* print-tree.c (print_node): Likewise.
* tree-inline.c (copy_tree_r): Likewise.
* c-lang.c (LANG_HOOKS_INIT_TS): Define.
* lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
instead of TS_COMMON.
* lto-streamer-out.c (lto_output_tree_pointers): Likewise.
* tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
(copy_node_stat): Zero TREE_CHAIN only if necessary.
(MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
(MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
...and these...
(MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
* tree.h: ...here.
(TREE_CHAIN): Check for a TS_COMMON structure.
(TREE_TYPE): Check for a TS_TYPED structure.
gcc/c-family/
* c-common.h (c_common_init_ts): Declare.
* c-common.c (c_common_init_ts): Define.
gcc/cp/
* cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move
tree_contains_struct initialization to...
* cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_*
macros.
* cp-objcp-common.h (cp_common_init_ts): Declare.
* cp-tree.h (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/fortran/
* f95-lang.c (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/go/
* go-lang.c (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/java/
* java-tree.h (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
gcc/lto/
* lto-tree.h (union lang_tree_node): Check for TS_COMMON before
calling TREE_CHAIN.
* lto.c (lto_fixup_common): Likewise.
gcc/objc/
* objc-lang.c (objc_init_ts): Move code for this function...
* objc-act.c (objc_common_init_ts): ...here. Define.
* objc-act.h (objc_common_init_ts): Declare.
gcc/objcp/
* objcp-lang.c (objcxx_init_ts): Call objc_common_init_ts and
cp_common_init_ts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172359 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
cgraph_get_create_node instead of cgraph_node.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172345 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_parser_initelt): Updated call to
objc_build_message_expr.
(c_parser_postfix_expression): Likewise.
In gcc/c-family/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-objc.h (objc_build_message_expr): Updated prototype.
* stub-objc.c (objc_build_message_expr): Likewise.
In gcc/objc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_build_message_expr): Accept two arguments
instead of one so that callers can simply pass the arguments
without having to create a temporary chain to hold them.
In gcc/cp/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* parser.c (cp_parser_objc_message_expression): Updated call
to objc_build_message_expr.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172338 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2011-04-12 Kai Tietz <ktietz@redhat.com>
* config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
MASK_MS_BITFIELD_LAYOUT bit.
ChangeLog gcc/testsuite
2011-04-12 Kai Tietz <ktietz@redhat.com>
* g++.dg/ext/bitfield2.C: Add for i?86/x86_64-*-mingw*
targets the additional -mno-ms-bitfields and
-Wno-packed-bitfield-compat options.
* g++.dg/ext/bitfield3.C: Likewise.
* g++.dg/ext/bitfield4.C: Likewise.
* g++.dg/ext/bitfield5.C: Likewise.
* gcc.dg/bitfld-15.c: Likewise.
* gcc.dg/bitfld-16.c: Likewise.
* gcc.dg/bitfld-17.c: Likewise.
* gcc.dg/bitfld-18.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172336 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
assert it is always true.
(try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
moves.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172329 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* c-parser.c (c_lex_one_token): Rewritten conditional used when
compiling Objective-C to be more efficient.
In gcc/objc/:
2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-act.c (objc_is_class_name, objc_is_id): For efficiency,
avoid calling identifier_global_value() multiple times.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172327 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* opts-common.c (decode_cmdline_options_to_array): Remove variable
argv_copied.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172325 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172321 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
PR target/48090
* config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172318 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* recog.h (insn_operand_data): Add an "allows_mem" field.
* genoutput.c (output_operand_data): Initialize it.
* optabs.c (maybe_legitimize_operand_same_code): New function.
(maybe_legitimize_operand): Use it when matching the original
op->value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172316 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* genpreds.c (process_define_predicate): Move most processing
to gensupport.c. Continue to validate the expression.
* genrecog.c (did_you_mean_codes, compute_predicate_codes)
(process_define_predicate): Move processing to gensupport.c.
(main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
* gensupport.c (did_you_mean_codes): Moved from genrecog.c.
(compute_predicate_codes): Moved from genrecog.c. Add lineno
argument.
(valid_predicate_name_p): New function, split out from old
genpreds.c:process_define_predicate.
(process_define_predicate): New function, combining code from
old genpreds.c and genrecog.c functions.
(process_rtx): Call it for DEFINE_PREDICATE and
DEFINE_SPECIAL_PREDICATE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172315 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
size of a '%A' memory reference.
(T_DREG, T_QREG): New neon_builtin_type_bits.
(arm_init_neon_builtins): Assert that the load and store operands
are neon_struct_operands.
(locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
(NEON_ARG_MEMORY): New builtin_arg.
(neon_dereference_pointer): New function.
(arm_expand_neon_args): Add a neon_builtin_type_bits argument.
Handle NEON_ARG_MEMORY.
(arm_expand_neon_builtin): Update after above interface changes.
Use NEON_ARG_MEMORY for loads and stores.
* config/arm/predicates.md (neon_struct_operand): New predicate.
* config/arm/iterators.md (V_two_elem): Tweak formatting.
(V_three_elem): Use BLKmode for accesses that have no associated mode.
(V_four_elem): Tweak formatting.
* config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
(neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
(neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
(neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
(neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
(neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
(neon_vst4<mode>): Replace pointer operand with a memory operand.
Use %A in the output template.
(neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
(neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
(neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
the width of the memory access. Remove post-increment.
* config/arm/neon-testgen.ml: Allow addresses to have an alignment.
gcc/testsuite/
* gcc.target/arm/neon-vld3-1.c: New test.
* gcc.target/arm/neon-vst3-1.c: New test.
* gcc.target/arm/neon/v*.c: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172314 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
instruction for interrupt handlers if the target is the basic V850
architecture.
(expand_epilogue): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172313 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* combine.c (propagate_for_debug): Also stop after BB_END of
this_basic_block. Process LAST and just stop processing after it.
(combine_instructions): If last_combined_insn has been deleted,
set last_combined_insn to its PREV_INSN.
* g++.dg/opt/pr48549.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172311 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-optimization/46076
* gimple.h (struct gimple_statement_call): Add fntype field.
(gimple_call_fntype): Adjust.
(gimple_call_set_fntype): New function.
* gimple.c (gimple_build_call_1): Set the call function type.
* gimplify.c (gimplify_call_expr): Preserve the function
type the frontend used for the call.
(gimplify_modify_expr): Likewise.
* lto-streamer-in.c (input_gimple_stmt): Input the call stmts
function type.
* lto-streamer-out.c (output_gimple_stmt): Output the call stmts
function type.
* tree-ssa.c (useless_type_conversion_p): Function pointer
conversions are useless.
* gcc.dg/tree-ssa/pr46076.c: Un-XFAIL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172310 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (cgraph_node): Remove function declaration.
(cgraph_create_node): Declare.
(cgraph_get_create_node): Likewise.
* cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
Updated all callers.
(cgraph_node): Renamed to cgraph_create_node, assert that a node for
the decl does not already exist. Call cgraph_get_create_node instead
of cgraph_node.
(cgraph_get_create_node): New function.
(cgraph_same_body_alias): Update comment.
(cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
assert it does not return NULL.
(cgraph_update_edges_for_call_stmt): Likewise.
(cgraph_clone_edge): Likewise.
(cgraph_create_virtual_clone): Likewise.
(cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
instead of cgraph_node.
(cgraph_add_new_function): Call cgraph_create_node or
cgraph_get_create_node instead of cgraph_node.
* cgraphbuild.c (record_reference): Call cgraph_get_create_node
instead of cgraph_node.
(record_eh_tables): Likewise.
(mark_address): Likewise.
(mark_load): Likewise.
(build_cgraph_edges): Call cgraph_get_create_node instead
of cgraph_node.
(rebuild_cgraph_edges): Likewise.
* cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
instead of cgraph_node.
(cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
cgraph_node.
* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
cgraph_create_node instead of cgraph_node.
* c-decl.c (finish_function): Call cgraph_get_create_node instead
of cgraph_node.
* lto-cgraph.c (input_node): Likewise.
* lto-streamer-in.c (input_function): Likewise.
* varasm.c (mark_decl_referenced): Likewise.
(assemble_alias): Likewise.
gcc/c-family/
* c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
of cgraph_node.
gcc/cp/
* cp/class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
instead of cgraph_node.
* cp/decl2.c (cxx_callgraph_analyze_expr): Likewise.
(cp_write_global_declarations): Likewise.
* cp/optimize.c (maybe_clone_body): Likewise.
* cp/semantics.c (maybe_add_lambda_conv_op): Likewise.
* cp/mangle.c (mangle_decl): Likewise.
* cp/method.c (make_alias_for_thunk): Likewise.
(use_thunk): Likewise.
gcc/ada/
* gcc-interface/utils.c (end_subprog_body): Call
cgraph_get_create_node instead of cgraph_node.
gcc/fortran/
* trans-decl.c (gfc_generate_function_code): Call
cgraph_get_create_node instead of cgraph_node.
gcc/objc/
* objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
instead of cgraph_node.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172307 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tree-inline.c (tree_function_versioning): Call cgraph_get_node
instead of cgraph_node and assert it does not return NULL.
* lto-streamer-in.c (lto_read_body): Likewise.
* omp-low.c (new_omp_context): Likewise.
(create_task_copyfn): Likewise.
* tree-emutls.c (lower_emutls_function_body): Likewise.
* matrix-reorg.c (transform_allocation_sites): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172306 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* c-typeck.c (build_asm_expr): Error out on attempts to use
void type outputs or inputs for constraints that allow reg or
don't allow memory.
* gcc.dg/pr48552-1.c: New test.
* gcc.dg/pr48552-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172298 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Richard Earnshaw <rearnsha@arm.com>
PR target/48250
* config/arm/arm.c (arm_legitimize_reload_address): Update cases
to use sign-magnitude offsets. Reject unsupported unaligned
cases. Add detailed description in comments.
* config/arm/arm.md (reload_outdf): Disable for ARM mode; change
condition from TARGET_32BIT to TARGET_ARM.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172297 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(struct tree_common): Include it instead of tree_base.
(TREE_TYPE): Update for new location of type field.
(TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
(DECL_USER_ALIGN, DECL_PACKED): Likewise.
(union tree_node): Add typed field.
* treestruct.def (TS_TYPED): New.
* lto-streamer.c (check_handled_ts_structures): Handle it.
* tree.c (MARK_TS_TYPED): New macro.
(MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172295 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
(force_nonfallthru): Do not alter the loop nest if no basic block
was created.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172281 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(SSEMODEI): Remove.
(AVX256MODEI): Ditto.
(AVXMODEF4P): Ditto.
(avxvecpsmode): Ditto.
(one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
(sse2_andnot<mode>3): New expander.
(*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
*avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
(<any_logic:code><mode>3): Use VI mode iterator.
(*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
and *avx_<any_logic:code><mode>3. Use VI mode iterator.
(*andnottf3): Handle AVX three-operand constraints.
(*<any_logic:code>tf3): Handle AVX three-operand constraints.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172280 138bc75d-0d04-0410-961f-82ee72b054a4
|