aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2010-07-27rtl.def (DEBUG_INSN, [...]): Swap operands 4 and 5.Bernd Schmidt8-27/+47
* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands 4 and 5. * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly. * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of CODE_LABELs and NOTEs. * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call. * combine.c (try_combine): Likewise. * ira.c (setup_prohibited_mode_move_regs): Likewise. * print-rtl.c (print_rtx): Start REG_NOTES on a new line. From-SVN: r162602
2010-07-27coretypes.h (struct cl_option_handlers): Declare.Joseph Myers24-218/+390
* coretypes.h (struct cl_option_handlers): Declare. * hooks.c (hook_int_size_t_constcharptr_int_0): Remove. * hooks.h (hook_int_size_t_constcharptr_int_0): Remove. * langhooks-def.h (lhd_handle_option): Declare. (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option. * langhooks.c (lhd_handle_option): New. * langhooks.h (struct lang_hooks): Update prototype and return value type of handle_option hook. * optc-gen.awk: Generate target_flags_explicit definition for the driver. * opts-common.c: Include diagnostic.h. (handle_option): Move from opts.c. Update prototype and return value type. Use handlers structure. (read_cmdline_option): Move from opts.c. Update prototype. Use handlers structure. (set_option): Move from opts.c. * opts.c (common_handle_option): Update prototype and return value type. Update calls to handle_option and enable_warning_as_error. (unknown_option_callback, post_handling_callback, lang_handle_option, target_handle_option): New. (handle_option, read_cmdline_option): Move to opts-common.c. (read_cmdline_options): Update prototype. Update call to read_cmdline_option. (decode_options): Initialize and use handlers structure. (set_option): Move to opts-common.c. (enable_warning_as_error): Update prototype. Update call to handle_option. * opts.h (struct cl_option_handler_func, struct cl_option_handlers): New. (handle_option, enable_warning_as_error): Update prototypes. (read_cmdline_option): Declare. * Makefile.in (opts-common.o): Update dependencies. ada: * gcc-interface/misc.c (gnat_handle_option): Update prototype and return value type. Don't check for missing arguments here. c-family: * c-common.h (c_common_handle_option): Update prototype and return value type. * c-opts.c (c_common_handle_option): Update prototype and return value type. Update calls to handle_option and enable_warning_as_error. fortran: * gfortran.h (gfc_handle_option): Update prototype and return value type. * options.c (gfc_handle_option): Update prototype and return value type. java: * lang.c (java_handle_option): Update prototype and return value type. lto: * lto-lang.c (lto_handle_option): Update prototype and return value type. Remove duplicate assignment to result. From-SVN: r162601
2010-07-27re PR rtl-optimization/40956 (Constants are never candidates for hoisting)Maxim Kuvyrkov4-0/+77
PR rtl-optimization/40956 PR target/42495 PR middle-end/42574 * gcc.target/arm/pr40956.c, gcc.target/arm/pr42495.c, * gcc.target/arm/pr42574.c: Add tests. From-SVN: r162600
2010-07-27arm.c (params.h): Include.Maxim Kuvyrkov3-0/+24
* config/arm/arm.c (params.h): Include. (arm_override_options): Tune gcse-unrestricted-cost. * config/arm/t-arm (arm.o): Define dependencies. From-SVN: r162598
2010-07-27re PR target/42495 (redundant memory load)Maxim Kuvyrkov7-133/+203
PR target/42495 PR middle-end/42574 * basic-block.h (get_dominated_to_depth): Declare. * dominance.c (get_dominated_to_depth): New function, use get_all_dominated_blocks as a base. (get_all_dominated_blocks): Use get_dominated_to_depth. * gcse.c (occr_t, VEC (occr_t, heap)): Define. (hoist_exprs): Remove. (alloc_code_hoist_mem, free_code_hoist_mem): Update. (compute_code_hoist_vbeinout): Add debug print outs. (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth. * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid quadratic behavior. * params.h (MAX_HOIST_DEPTH): New macro. * doc/invoke.texi (max-hoist-depth): Document. From-SVN: r162597
2010-07-27re PR rtl-optimization/40956 (Constants are never candidates for hoisting)Maxim Kuvyrkov2-1/+7
PR rtl-optimization/40956 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple constants. From-SVN: r162596
2010-07-27re PR target/42495 (redundant memory load)Maxim Kuvyrkov3-16/+72
PR target/42495 PR middle-end/42574 * config/arm/arm.c (legitimize_pic_address): Use gen_calculate_pic_address pattern to emit calculation of PIC address. (will_be_in_index_register): New function. (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,) (thumb1_legitimate_address_p): Use it provided !strict_p. * config/arm/arm.md (calculate_pic_address): New expand and split. From-SVN: r162595
2010-07-27re PR target/42495 (redundant memory load)Maxim Kuvyrkov3-7/+24
PR target/42495 PR middle-end/42574 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants. * config/arm/arm.md (define_split "J", define_split "K"): Make IRA/reload friendly. From-SVN: r162594
2010-07-27gcse.c (insert_insn_end_basic_block): Update signature, remove unused checks.Maxim Kuvyrkov2-24/+12
* gcse.c (insert_insn_end_basic_block): Update signature, remove unused checks. (pre_edge_insert, hoist_code): Update. From-SVN: r162593
2010-07-27re PR target/42495 (redundant memory load)Maxim Kuvyrkov2-3/+6
PR target/42495 PR middle-end/42574 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check. From-SVN: r162592
2010-07-27* gcse.c (hoist_code): Generate new pseudo for every new set insn.Maxim Kuvyrkov2-2/+10
From-SVN: r162591
2010-07-27re PR rtl-optimization/40956 (Constants are never candidates for hoisting)Maxim Kuvyrkov2-2/+23
PR rtl-optimization/40956 PR target/42495 PR middle-end/42574 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions for hoisting. (hoist_code): Count occurences in current block too. From-SVN: r162590
2010-07-27gcse.c (struct expr:max_distance): New field.Maxim Kuvyrkov5-27/+262
* gcse.c (struct expr:max_distance): New field. (doing_code_hoisting_p): New static variable. (want_to_gcse_p): Change signature. Allow constrained hoisting of simple expressions, don't change behavior for PRE. Set max_distance. (insert_expr_in_table): Set new max_distance field. (hash_scan_set): Update. (hoist_expr_reaches_here_p): Stop search after max_distance instructions. (find_occr_in_bb): New static function. Use it in ... (hoist_code): Calculate sizes of basic block before any changes are done. Pass max_distance to hoist_expr_reaches_here_p. (one_code_hoisting_pass): Set doing_code_hoisting_p. * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,) (PARAM_GCSE_UNRESTRICTED_COST): New parameters. * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New macros. * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost): Document. From-SVN: r162589
2010-07-27gcse.c (compute_transpout, transpout): Remove, move logic to prune_expressions.Jeff Law2-80/+96
* gcse.c (compute_transpout, transpout): Remove, move logic to prune_expressions. (compute_pre_data): Move pruning of trapping expressions ... (prune_expressions): ... here. New static function. (compute_code_hoist_data): Use it. (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update. Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com> From-SVN: r162588
2010-07-27adjusting iv update stmt position to enable inst combining. Regression ↵Xinliang David Li2-0/+89
tested on x86-64/linux From-SVN: r162587
2010-07-27dbgcnt.def (hoist_insn): New debug counter.Maxim Kuvyrkov3-1/+7
* dbgcnt.def (hoist_insn): New debug counter. * gcse.c (hoist_code): Use it. From-SVN: r162586
2010-07-27Multiple exit loop handling in ivopts. Regression tested on x86-64/linuxXinliang David Li2-27/+82
From-SVN: r162585
2010-07-27* Fix extra brackets in my previous commit.Uros Bizjak1-3/+3
From-SVN: r162584
2010-07-27gcc-dg.exp (cleanup-coverage-files): Remove options from test name.Uros Bizjak2-0/+13
* lib/gcc-dg.exp (cleanup-coverage-files): Remove options from test name. (cleanup-repo-files): Ditto. (cleanup-saved-temps): Ditto. From-SVN: r162583
2010-07-27re PR target/44542 (expand_one_stack_var_at may set DECL_ALIGN to a too high ↵Jakub Jelinek2-5/+19
value) PR target/44542 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY instead of MAX_SUPPORTED_STACK_ALIGNMENT. (expand_one_var): Don't consider DECL_ALIGN for variables for which expand_one_stack_var_at has been already called. From-SVN: r162582
2010-07-27re PR testsuite/44701 (PR44492 fix broke gcc.target/powerpc/asm-es-2.c)Jakub Jelinek4-15/+27
PR testsuite/44701 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S constraints on IA-64. * gcc.target/powerpc/asm-es-2.c (f2): Add <> constraints. From-SVN: r162581
2010-07-27re PR target/44290 (__naked attribute is broken)Jie Zhang2-7/+8
PR target/44290 Revert 2010-07-23 Jie Zhang <jie@codesourcery.com> * tree-sra.c (ipa_sra_preliminary_function_checks): Return false if ! tree_versionable_function_p. From-SVN: r162579
2010-07-27dwarf2out.c (add_data_member_location_attribute): Use add_AT_unsigned ↵Jakub Jelinek2-1/+9
instead of add_AT_int if offset is non-negative. * dwarf2out.c (add_data_member_location_attribute): Use add_AT_unsigned instead of add_AT_int if offset is non-negative. From-SVN: r162576
2010-07-27re PR c/45079 (function names in error message (�c_maybe_const_expr� not ↵Jakub Jelinek4-0/+24
supported by 'pp_c_expression')) PR c/45079 * c-pretty-print.c (pp_c_expression): Handle C_MAYBE_CONST_EXPR. * gcc.dg/pr45079.c: New test. From-SVN: r162575
2010-07-27postreload.c (try_replace_in_use): New static function.Bernd Schmidt2-70/+87
* postreload.c (try_replace_in_use): New static function. (reload_combine_recognize_const_pattern): Use it here. Allow substituting into a final add insn, and substituting into a memory reference in an insn that sets the reg. From-SVN: r162573
2010-07-27common.opt (o): Add MissingArgError.Joseph Myers20-96/+84
* common.opt (o): Add MissingArgError. * doc/options.texi (MissingArgError): Document. * hooks.c (hook_bool_constcharptr_size_t_false): Remove. * hooks.h (hook_bool_constcharptr_size_t_false): Remove. * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove. (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer. * langhooks.h (struct lang_hooks): Remove missing_argument. * optc-gen.awk: Handle MissingArgError and output new structure field initializers. * opts.c (read_cmdline_option): Use missing_argument_error field instead of missing_argument langhook. * opts.h (struct cl_option): Add missing_argument_error field. * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison. c-family: * c-common.h (c_common_missing_argument): Remove. * c-opts.c (c_common_missing_argument): Remove. * c.opt (A, D, F, I, MD, MMD, MQ, MT, U, fconstant-string-class=, idirafter, imacros, include, isysroot, isystem, iquote): Add MissingArgError. * c-objc-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove. cp: * cp-objcp-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove. po: * exgettext: Also extract MissingArgError texts from .opt files. From-SVN: r162571
2010-07-27add missing changelogIain Sandoe1-0/+6
From-SVN: r162569
2010-07-27re PR target/29090 (gcc.dg-struct-layout-1 failures on Darwin PPC at -m64)Iain Sandoe1-0/+44
PR target/29090 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the Darwin64 ABI, for zero-sized objects. From-SVN: r162568
2010-07-27re PR target/35491 (wrong ABI for some struct passing with vector code)Iain Sandoe3-6/+86
PR target/35491 PR target/29090 Merge from Apple local 4.2.1. 2005-05-11 Stan Shebs <shebs@apple.com> Fix 64-bit varargs for Darwin (Radar 4028089). * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr. * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush): Add argument, add case for 8-byte register half-filled with a float. (rs6000_darwin64_record_arg_advance_recurse): Detect and handle single-precision floats specially. From-SVN: r162567
2010-07-27re PR tree-optimization/44152 (ICE on compiling xshow.f of xplor-nih with ↵Ira Rosen4-7/+127
-O3 -ffast-math -fwhopr) PR tree-optimization/44152 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with complex numbers for further check. (vect_supported_load_permutation_p): Check nodes with complex numbers. From-SVN: r162564
2010-07-27re-enable tls and lto tests for ObjC/C++Iain Sandoe9-8/+13
PR ObjC/44140 * obj-c++.dg/torture/tls/thr-init-1.mm: Re-enable test. * obj-c++.dg/torture/tls/thr-init-2.mm: Ditto. * obj-c++.dg/torture/tls/thr-init-3.mm: Ditto. * obj-c++.dg/torture/trivial.mm: Ditto. * objc.dg/torture/tls/thr-init-2.m: Ditto. * objc.dg/torture/tls/thr-init-3.m: Ditto. * objc.dg/torture/tls/thr-init.m: Ditto. * objc.dg/torture/trivial.m: Ditto. From-SVN: r162563
2010-07-27char4_iunit_1.f03: Add ieee options.Uros Bizjak3-49/+44
* gfortran.dg/char4_iunit_1.f03: Add ieee options. Skip on spu-*-* targets. From-SVN: r162561
2010-07-27langhooks-def.h (lhd_init_options, [...]): New.Joseph Myers30-76/+318
* langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New. (LANG_HOOKS_INIT_OPTIONS): Update default definition. (LANG_HOOKS_INITIALIZER): Add new hooks. * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New. * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask and complain_wrong_lang_p. Update init_options prototype. * c-objc-common.c (c_initialize_diagnostics): First call c_common_initialize_diagnostics. * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define. * coretypes.h (struct cl_option, struct cl_decoded_option): Declare. * hooks.c (hook_uint_uint_constcharptrptr_0): Remove. (hook_uint_void_0): New. * hooks.h (hook_uint_uint_constcharptrptr_0): Remove. (hook_uint_void_0): New. * opts-common.c (decode_cmdline_option, decode_cmdline_options_to_array): Also fill in canonical_option field. * opts.c (complain_wrong_lang): Use langhook to determine whether to complain instead of special-casing LTO. (decode_options): Separate lang_mask determination with option_lang_mask hook from call of init_options hook. * opts.h (struct cl_decoded_option): Add canonical_option. ada: * gcc-interface/misc.c (gnat_option_lang_mask): New. (gnat_init_options): Update prototype. Reconstruct argv array from decoded options. c-family: * c-common.h (c_common_option_lang_mask, c_common_initialize_diagnostics, c_common_complain_wrong_lang_p): New. (c_common_init_options): Update prototype. * c-opts.c (c_common_option_lang_mask): New. (c_common_initialize_diagnostics): Split out of c_common_init_options. (accept_all_c_family_options, c_common_complain_wrong_lang_p): New. (c_common_init_options): Update prototype. Use decoded options in search for -lang-asm. cp: * cp-objcp-common.c (cxx_initialize_diagnostics): First call c_common_initialize_diagnostics. * cp-objcp-common.h (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define. fortran: * cpp.c (gfc_cpp_init_options): Update prototype. Use number of decoded options in allocating deferred_opt. * cpp.h (gfc_cpp_init_options): Update prototype. * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define. * gfortran.h (gfc_option_lang_mask): New. (gfc_init_options): Update prototype. * options.c (gfc_option_lang_mask): New. (gfc_init_options): Update prototype. Pass new arguments to gfc_cpp_init_options. java: * lang.c (java_option_lang_mask): New. (java_init_options): Update prototype. (LANG_HOOKS_OPTION_LANG_MASK): Define. lto: * lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p): New. (lto_init_options): Update prototype. (LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define. From-SVN: r162560
2010-07-27re PR tree-optimization/45083 (strange warning text from gcc)Jakub Jelinek4-1/+53
PR tree-optimization/45083 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR. * gcc.dg/pr45083.c: New test. From-SVN: r162559
2010-07-27re PR rtl-optimization/45051 (gcc.c-torture/execute/builtins/abs-2.c and ↵Bernd Schmidt2-1/+13
abs-3.c due to "track subwords of DImode allocnos") PR rtl-optimization/45051 * reload1.c (delete_output_reload): Use refers_to_regno_p rather than reg_mentioned_p. From-SVN: r162558
2010-07-27re PR fortran/40873 (-fwhole-file -fwhole-program: Wrong decls cause too ↵Tobias Burnus8-23/+161
much to be optimized away) 2010-07-26 Tobias Burnus <burnus@net-b.de> PR fortran/40873 * trans-decl.c (gfc_get_extern_function_decl): Fix generation for functions which are later in the same file. (gfc_create_function_decl, build_function_decl, build_entry_thunks): Add global argument. * trans.c (gfc_generate_module_code): Update gfc_create_function_decl call. * trans.h (gfc_create_function_decl): Update prototype. * resolve.c (resolve_global_procedure): Also resolve for IFSRC_IFBODY. 2010-07-26 Tobias Burnus <burnus@net-b.de> PR fortran/40873 * gfortran.dg/whole_file_22.f90: New test. * gfortran.dg/whole_file_23.f90: New test. From-SVN: r162557
2010-07-27Daily bump.GCC Administrator1-1/+1
From-SVN: r162554
2010-07-27postreload.c (reload_combine_recognize_const_pattern): Move test for ↵Bernd Schmidt2-5/+10
limiting the insn movement to the right scope. * postreload.c (reload_combine_recognize_const_pattern): Move test for limiting the insn movement to the right scope. From-SVN: r162550
2010-07-26re PR target/44132 (emutls is broken under a range of circumstances.)Richard Henderson72-544/+1214
PR target/44132 Emulated TLS rewrite. From-SVN: r162549
2010-07-26lto-streamer.h (struct lto_file_decl_data): Mark resolutions with GTY((skip)).Jan Hubicka2-1/+6
* lto-streamer.h (struct lto_file_decl_data): Mark resolutions with GTY((skip)). From-SVN: r162544
2010-07-26target.def (output_source_filename): New hook.Anatoly Sokolov11-40/+85
* target.def (output_source_filename): New hook. * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document. * doc/tm.texi: Regenerate. * toplev.c (output_file_directive) Remove function. * toplev.h (output_file_directive) Remove. * output.h (default_asm_output_source_filename, output_file_directive): Declare. * varasm.h (default_asm_output_source_filename, output_file_directive): New functions. * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro. * config/mips/mips-protos.h (mips_output_filename): Remove. * config/mips/mips.c (mips_output_filename): Make Static. (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define. From-SVN: r162542
2010-07-26pr44900.C: Use dg-require-effective-target sse_runtime.Rainer Orth3-1/+10
* g++.dg/torture/pr44900.C: Use dg-require-effective-target sse_runtime. * gcc.dg/attr-weak-hidden-1a.c: Use dg-require-weak, dg-require-visibility. From-SVN: r162541
2010-07-26re PR tree-optimization/43784 (-Os -fkeep-inline-functions causes FAIL: ↵Richard Guenther5-4/+73
gcc.c-torture/execute/builtins/pr22237.c execution) 2010-07-26 Richard Guenther <rguenther@suse.de> PR tree-optimization/43784 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV if the destination is used by the call. * gcc.c-torture/execute/pr43784.c: New testcase. * g++.dg/torture/pr43784.C: Likewise. From-SVN: r162539
2010-07-26re PR tree-optimization/45073 (gfortran.dg/assumed_charlen_function_3.f90 ↵Richard Guenther2-3/+12
ICEs with -fprofile-generate) 2010-07-26 Richard Guenther <rguenther@suse.de> PR middle-end/45073 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize SSA updating on being in SSA form. From-SVN: r162537
2010-07-26re PR tree-optimization/45056 (ICE: in refs_may_alias_p_1, at ↵Richard Guenther4-0/+82
tree-ssa-alias.c:1023) 2010-07-26 Richard Guenther <rguenther@suse.de> PR middle-end/45056 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts. * g++.dg/pr45056.C: New testcase. From-SVN: r162536
2010-07-26re PR tree-optimization/45071 (ICE: tree check: expected ssa_name, have ↵Richard Guenther4-5/+48
integer_cst in inhibit_phi_insertion, at tree-ssa-pre.c:3278 with -ftree-pre -ftree-vectorize) 2010-07-26 Richard Guenther <rguenther@suse.de> PR tree-optimization/45071 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always adjust op->opcode. * gcc.dg/pr45071.c: New testcase. From-SVN: r162534
2010-07-26re PR fortran/45066 (ICE in namelist read in snapshot of 7/24/2010)Tobias Burnus5-2/+36
2010-07-26 Tobias Burnus <burnus@net-b.de> PR fortran/45066 * trans-io.c (build_dt): Use NULL_TREE rather than NULL for call to transfer_namelist_element. * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl for -fwhole-file. 2010-07-26 Tobias Burnus <burnus@net-b.de> PR fortran/45066 * gfortran.dg/namelist_62.f90: New. From-SVN: r162532
2010-07-26Add file forgotten in commit Rev. 162500Tobias Burnus1-0/+27
2010-07-24 Tobias Burnus <burnus@net-b.de> PR fortran/40011 * gfortran.dg/whole_file_21.f90: New. From-SVN: r162531
2010-07-26configure.ac: Support all v850 targets.Naveen.H.S13-1084/+2389
* configure.ac: Support all v850 targets. * configure: Regenerate. * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31, save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31, save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31, save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31, save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31, save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31, save_r31, return_r31, save_interrupt, return_interrupt, save_all_interrupt, return_all_interrupt, L_save_r2_r31, L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt, L_save_##START##_r31c, L_callt_save_r31c: Updated as per the new ABI requirements. save_r6_r9, L_callt_save_r6_r9: Remove. * config/v850/predicates.md (even_reg_operand, disp23_operand, const_float_1_operand const_float_0_operand): New Predicates. (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue): Update as per the ABI requirements. * config/v850/t-v850: Update multilibs for new target variants. (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove. * config/v850/t-v850e: Likewise. * config/v850/v850.c (v850_issue_rate): New. (v850_strict_argument_naming): New. (function_arg): Modify to generate a different ABI. (print_operand): Update case 'z' to support float modes. (output_move_single): Modify to generate appropriate and better assembly. (v850_float_z_comparison_operator, v850_select_cc_mode, v850_float_nz_comparison_operator, v850_gen_float_compare, v850_gen_compare): New functions to support comparison of float values. (ep_memory_offset): Add support for V850E2 targets. (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update. (INTERRUPT_REGPARM_NUM): Remove. (compute_register_save_size): Add extra case to save/restore long call. (use_prolog_function): New function to support prologue. (expand_prologue): Add support for V850E2 targets and modified as per the current ABI requirements. (expand_epilogue): Likewise. (construct_restore_jr): Modify based on TARGET_LONG_CALLS. (construct_save_jarl): Likewise. (construct_dispose_instruction): Update as per the current ABI requirements. (construct_prepare_instruction): Likewise. * config/v850/v850.h(TARGET_CPU_DEFAULT): Add target predefines. (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define (CPP_SPEC): Updated to support v850e2 targets. (STRICT_ALIGNMENT): Modified. (FIRST_PSEUDO_REGISTER): Updated to add even registers. (FIXED_REGISTERS): Likewise. (CALL_USED_REGISTERS): Likewise. (CONDITIONAL_REGISTER_USAGE): Updated. (HARD_REGNO_MODE_OK): Updated. (reg_class): Updated to add even registers. (REG_CLASS_NAMES): Likewise. (REG_CLASS_CONTENTS): Likewise. (REGNO_REG_CLASS): Updated for CC registers. (REG_CLASS_FROM_LETTER): Added support for even registers. (REGNO_OK_FOR_BASE_P): Updated for CC registers. (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM, ARG_POINTER_REGNUM): Updated. (FUNCTION_ARG_ADVANCE): Define. (REG_PARM_STACK_SPACE): Update as per the current ABI requirements. (OUTGOING_REG_PARM_STACK_SPACE): Remove. (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement. (GO_IF_LEGITIMATE_ADDRESS): Updated. (SELECT_CC_MODE): Define. (REGISTER_NAMES): Updated to add psw and fcc registers. (ADDITIONAL_REGISTER_NAMES): Updated. (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets. (JUMP_TABLES_IN_TEXT_SECTION): Updated. * config/v850/v850.md (define_constants): Define new constants. (type): Update store,bit1,macc,div,fpu and single attributes. (cpu): New attribute. (cc): Add set_z attribute. (unsign23byte_load, sign23byte_load, unsign23hword_load, sign23hword_load, 23word_load, 23byte_store, 23hword_store, 23word_store): New instructions for 23-bit displacement load and store. (movqi_internal, movhi_internal): Update the attributes. (movsi, movsi_internal_v850e): Updated to support v850e2 targets. (movsi_internal_v850e, movsi_internal, movsf_internal): Update the attributes. (v850_tst1): Modified using CC_REGNUM. (tstsi): Remove. (cmpsi): Modified as define_expand from define_insn. (cmpsi_insn, cmpsf, cmpdf): New instructions. (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4, udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3, one_cmplsi2): Clobber the CC_REGNUM register. (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1, v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2, v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly. (setf_insn, set_z_insn, set_nz_insn): New instructions for v850e2v3 target. (movsicc_normal_cc, movsicc_reversed_cc): New instructions. (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2 targets. (sasf_1, sasf_2): Remove. (sasf): New instruction. (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2 targets. CC_REGNUM register is clobbered and attributes are updated. (branch_z_normal, branch_z_invert, branch_nz_normal, branch_nz_invert): New branch related instructions. (jump): Updated the attributes. (switch): Update to support new targets. CC_REGNUM register is clobbered and attributes are updated. (call_internal_short, call_internal_long, call_value_internal_short, call_value_internal_long): Updated the attributes. (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is clobbered and attributes are updated. (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2): Update to support new targets. CC_REGNUM register is clobbered. (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift instructions. (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes are updated. (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3, divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2, negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2, floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2, rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4, cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn, cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn, cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr, movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn, movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating point instructions defined for V850e2v3 target. (callt_save_interrupt, callt_return_interrupt, return_interrupt): Add support for V850E2 targets and CC_REGNUM register is clobbered. (callt_save_all_interrupt, callt_restore_all_interrupt): Add support for new targets. * config/v850/v850-modes.def: New file. * config/v850/v850.opt(mstrict-align): Remove. (mno-strict-align, mjump-tables-in-data-section, mv850e2, mv850e2v3): New command line options for V850. * config.gcc: Update the newly added files. * doc/invoke.texi: Update the newly added command line options for V850 target. From-SVN: r162530
2010-07-26re PR tree-optimization/45052 (volatile ignored)Richard Guenther2-0/+12
2010-07-26 Richard Guenther <rguenther@suse.de> PR tree-optimization/45052 * ipa-pure-const.c (check_stmt): Check volatileness. From-SVN: r162528