aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-09-13c-target.def: New hookJacek Caban12-2/+129
2013-09-13 Jacek Caban <jacek@codeweavers.com> * c-target.def: New hook gcc/ChangeLog: 2013-09-13 Jacek Caban <jacek@codeweavers.com> * config.gcc: Use new winnt-c.c target hooks * config/t-winnt: New file * config/winnt-c.c: New file * doc/tm.texi.in: Document new hook * doc/tm.texi: Regenerated gcc/cp/Changelog: 2013-09-13 Jacek Caban <jacek@codeweavers.com> * decl.c: Use new cxx_implicit_extern_c hook gcc/testsuite/ChangeLog: 2013-09-13 Jacek Caban <jacek@codeweavers.com> * g++.dg/abi/main.C: Added implicit C linkage tests From-SVN: r202573
2013-09-13re PR target/57848 (internal compiler error on builtin and '#pragma GCC ↵Kai Tietz2-3/+7
target()' option) PR target/57848 * c-decl.c (c_builtin_function_ext_scope): Remove wrong assumption that it is never called on prexisting symbol. From-SVN: r202572
2013-09-13gcc.target/i386/pr57848.c: New file.Kai Tietz2-0/+10
From-SVN: r202571
2013-09-13Revert r202554, r202540 and r202539.Adam Butcher10-545/+64
- r202554: Fix uninitialized variables causing breakage with -Werror. - r202540: Support using 'auto' in a function parameter list to introduce an implicit template parameter. - r202539: Support lambda templates. From-SVN: r202570
2013-09-13re PR middle-end/58094 (IPA devirt testsuite errors)Jan Hubicka2-17/+25
PR middle-end/58094 * ipa-inline.c (check_callers): New function. (check_caller_edge): Remove. (want_inline_function_to_all_callers_p): Also permit alises that are called dirrectly. (inline_to_all_callers): Terminate the walk when devirtualization introduce new calls. From-SVN: r202567
2013-09-13ipa-inline-analysis.c (struct growth_data): Add node.Jan Hubicka2-3/+9
* ipa-inline-analysis.c (struct growth_data): Add node. (do_estimate_growth_1): Fix detection of recursion. From-SVN: r202566
2013-09-13re PR libgomp/58392 (internal compiler error: in expand_GOMP_SIMD_VF, at ↵Jakub Jelinek4-21/+71
internal-fn.c (omp simd inside omp parallel)) PR tree-optimization/58392 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable to avoid shadowing of outer loop variable. If saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops, replace_by_duplicate_decl simduid of loops that have it set and set dest_cfun->has_simduid_loops and/or dest_cfun->has_force_vect_loops. * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx instead of maybe_lookup_decl. * tree-inline.c (copy_loops): Change blocks_to_copy argument to id. Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive call. Copy over force_vect and copy and remap simduid. Set cfun->has_simduid_loops and/or cfun->has_force_vect_loops. (copy_cfg_body): Remove blocks_to_copy argument. Use id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops caller. Don't set cfun->has_simduid_loops and/or cfun->has_force_vect_loops here. (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body caller. (expand_call_inline, tree_function_versioning): Adjust copy_body callers. From-SVN: r202564
2013-09-13re PR bootstrap/58388 (LTO profiledbootstrap fails in stage feedback for ↵Martin Jambor2-1/+8
tree-ssa-structalias.c with "internal compiler error: in try_make_edge_direct_simple_call, at ipa-prop.c:2606") 2013-09-13 Martin Jambor <mjambor@suse.cz> PR bootstrap/58388 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in the assert if the edge was a speculative one. From-SVN: r202563
2013-09-13configure.tgt: Remove *-*-*android* from supported targets.Alexander Ivchenko2-0/+6
* configure.tgt: Remove *-*-*android* from supported targets. From-SVN: r202562
2013-09-13tree-data-ref.h (known_dependences_p): Move here ...Richard Biener4-147/+96
2013-09-13 Richard Biener <rguenther@suse.de> * tree-data-ref.h (known_dependences_p): Move here ... * tree-loop-distribution.c (known_dependences_p): ... from here. (dump_rdg_component, debug_rdg_component): Remove. (dump_rdg): Adjust. (generate_loops_for_partition): Use gimple_uid instead of relying on matching stmt visit order. (rdg_build_partitions): Take starting stmt vector. (ldist_gen): Merge into ... (distribute_loop): ... this function. Do not compute starting vertices vector. * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs. From-SVN: r202561
2013-09-13arm.md (arm_cmpsi_insn): Split rI alternative.Kyrylo Tkachov2-6/+14
2013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative. Set type attribute correctly. Set predicable_short_it attribute. (cmpsi_shiftsi): Remove %? from output template. From-SVN: r202560
2013-09-13tree-loop-distribution.c (struct rdg_component, [...]): Remove.Richard Biener2-181/+56
2013-09-13 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (struct rdg_component, rdg_defs_used_in_other_loops_p, free_rdg_components, rdg_build_components): Remove. (stmts_from_loop): Do not record virtual PHIs. (generate_loops_for_partition): Skip virtual PHIs. (build_rdg_partition_for_component): Rename to ... (build_rdg_partition_for_vertex): ... this and adjust. (rdg_build_partitions): Take a vector of starting vertices instead of components. Remove unnecessary leftover handling. (ldist_gen): Do not build components or record other stores. (distribute_loop): Do not distribute loops containing stmts with side-effects. From-SVN: r202558
2013-09-13re PR target/58314 (SH4 error: 'asm' operand requires impossible reload)Christian Bruel4-8/+124
2013-09-13 Christian Bruel <christian.bruel@st.com> PR target/58314 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads. From-SVN: r202557
2013-09-13config.gcc: Separate cases for mingw and cygwin targets, and add 64-bit ↵Kai Tietz2-1/+6
cygwin target case. * config.gcc: Separate cases for mingw and cygwin targets, and add 64-bit cygwin target case. From-SVN: r202556
2013-09-13winnt-cxx.c (i386_pe_type_dllexport_p): Don't dll-export inline-functions.Kai Tietz3-1/+20
2013-09-13 Kai Tietz <ktietz@redhat.com> * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't dll-export inline-functions. * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise. Additional fix ChangeLog-date of prior commit. From-SVN: r202555
2013-09-13Fix uninitialized variables causing breakage with -Werror.Adam Butcher2-2/+7
* lambda.c (maybe_add_lambda_conv_op): Initialize direct_argvec and call to nullptr to avoid breakage with -Werror. From-SVN: r202554
2013-09-13Revert " * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate"Jeff Law2-24/+9
This reverts commit 592dc887e7bd7b2637b9277c3bd28f41a9487b17. Conflicts: gcc/ChangeLog From-SVN: r202553
2013-09-13Daily bump.GCC Administrator1-1/+1
From-SVN: r202549
2013-09-12rl78-virt.md: Change from | to \; for asm line separators.DJ Delorie2-53/+58
* config/rl78/rl78-virt.md: Change from | to \; for asm line separators. From-SVN: r202545
2013-09-12re PR driver/42955 (undecorated cross-compiler gcc fails to find cc1)Brooks Moses6-27/+23
PR driver/42955 * Makefile.in: Do not install driver binaries in $(target)/bin. * cp/Make-lang.in: Likewise. * fortran/Make-lang.in: Likewise. From-SVN: r202544
2013-09-12rl78.opt (mrelax): New.DJ Delorie3-0/+18
* config/rl78/rl78.opt (mrelax): New. * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas. * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld. From-SVN: r202543
2013-09-12rl78.c (rl78_expand_prologue): Use AX to copy between SP and FP.DJ Delorie2-3/+15
* config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy between SP and FP. (rl78_expand_epilogue): Likewise. From-SVN: r202542
2013-09-12Support using 'auto' in a function parameter list to introduce an implicit ↵Adam Butcher8-26/+323
template parameter. * cp-tree.h (type_uses_auto_or_concept): Declare. (is_auto_or_concept): Declare. * decl.c (grokdeclarator): Allow 'auto' parameters in lambdas with -std=gnu++1y or -std=c++1y or, as a GNU extension, in plain functions. * type-utils.h: New header defining ... (find_type_usage): ... this new function based on pt.c (type_uses_auto) for searching a type tree given a predicate. * pt.c (type_uses_auto): Reimplement via type-utils.h (find_type_usage). (is_auto_or_concept): New function. (type_uses_auto_or_concept): New function. * parser.h (struct cp_parser): Add fully_implicit_function_template_p. * parser.c (cp_parser_new): Initialize fully_implicit_function_template_p. (cp_parser_new): Initialize fully_implicit_function_template_p. (cp_parser_lambda_expression): Copy and restore value of fully_implicit_function_template_p as per other parser fields. (cp_parser_parameter_declaration_list): Count generic parameters and call ... (add_implicit_template_parms): ... this new function to synthesize them with help from type-utils.h (find_type_usage), ... (tree_type_is_auto_or_concept): ... this new static function and ... (make_generic_type_name): ... this new static function. (cp_parser_direct_declarator): Account for implicit template parameters. (cp_parser_lambda_declarator_opt): Finish fully implicit template if necessary by calling ... (finish_fully_implicit_template): ... this new function. (cp_parser_member_declaration): Likewise. (cp_parser_function_definition_after_declarator): Likewise. * Make-lang.in (cp/pt.o): Add dependency on type-utils.h. (cp/parser.o): Likewise. From-SVN: r202540
2013-09-12Support lambda templates.Adam Butcher5-38/+217
* parser.c (cp_parser_lambda_declarator_opt): Accept template parameter list with std=c++1y or std=gnu++1y. (cp_parser_lambda_body): Don't call 'expand_or_defer_fn' for lambda call operator template to avoid adding template result to symbol table. * lambda.c (lambda_function): Return template result if call operator is a template. (maybe_add_lambda_conv_op): Move declarations to point of use. Refactor operator call building in order to support conversion of a non-capturing lambda template to a function pointer with help from ... (prepare_op_call): ... this new function. * decl2.c (check_member_template): Don't reject lambda call operator template in local [lambda] class. * pt.c (instantiate_class_template_1): Don't instantiate lambda call operator template when instantiating lambda class. From-SVN: r202539
2013-09-12Support decl instantiation in function-local templates.Adam Butcher2-2/+17
* pt.c (instantiate_decl): Save/restore cp_unevaluated_operand and c_inhibit_evaluation_warnings. Reset if instantiating within a function-local template. From-SVN: r202538
2013-09-12Add missed .c for the file name in ChangelogVladimir Makarov1-1/+1
From-SVN: r202537
2013-09-12re PR middle-end/58335 (S/390: reload vs lra regression - testcase ↵Vladimir Makarov2-45/+66
builtin-in-setjmp) 2013-09-12 Vladimir Makarov <vmakarov@redhat.com> PR middle-end/58335 * lra-eliminations (remove_reg_equal_offset_note): New. (eliminate_regs_in_insn): Rewrite frame pointer to hard frame pointer elimination with using remove_reg_equal_offset_note. From-SVN: r202536
2013-09-12MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430 maintainers.DJ Delorie43-3/+4915
* MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430 maintainers. [gcc] * config/msp430/: New port. * config.gcc (msp430): Added. * doc/invoke.texi: Document MSP430 options. * doc/install.texi: Document msp430-elf * doc/md.texi: Document msp430-elf * doc/contrib.texi: Document msp430-elf [libgcc] * config.host (msp*-*-elf): New. * config/msp430/: New port. [contrib] * config-list.mk: Add msp430-elf. From-SVN: r202535
2013-09-12cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to PSImode.DJ Delorie2-1/+11
* cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to PSImode. From-SVN: r202534
2013-09-12pr58380.C: Suppress warnings with "-w".Paolo Carlini2-0/+6
2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/torture/pr58380.C: Suppress warnings with "-w". From-SVN: r202533
2013-09-12re PR ipa/58389 (g++ ICE in ipa_find_reference)Martin Jambor4-1/+77
2013-09-12 Martin Jambor <mjambor@suse.cz> PR ipa/58389 * ipa-prop.c (remove_described_reference): Give up if the edge in the reference descriptor is NULL. (ipa_edge_removal_hook): If owning a reference descriptor, set its edge to NULL. testsuite/ * g++.dg/pr58389.C: New test. From-SVN: r202532
2013-09-12re PR libstdc++/58403 (__normal_iterator triggers odr-use)Paolo Carlini3-5/+47
2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/58403 * include/bits/stl_iterator.h (__normal_iterator<>::operator[], operator+=, operator+, operator-=, operator-): Take the argument by value. * testsuite/24_iterators/normal_iterator/58403.cc: New. From-SVN: r202531
2013-09-122013-09-12 Paolo Carlini <paolo.carlini@oracle.com>Paolo Carlini1-1/+1
* Tweak last ChangeLo entry. From-SVN: r202530
2013-09-122013-09-12 Paolo Carlini <paolo.carlini@oracle.com>Paolo Carlini2-1/+2
* Complete last commit. From-SVN: r202529
2013-09-12semantics.c (finish_pseudo_destructor_expr): Add location_t parameter.Paolo Carlini7-21/+44
2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> * semantics.c (finish_pseudo_destructor_expr): Add location_t parameter. * pt.c (unify_arg_conversion): Use EXPR_LOC_OR_HERE. (tsubst_copy_and_build): Adjust finish_pseudo_destructor_expr calls. * parser.c (cp_parser_postfix_dot_deref_expression): Likewise. (cp_parser_postfix_expression): Pass the proper location to cp_parser_postfix_dot_deref_expression. /testsuite 2013-09-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/template/pseudodtor2.C: Add column number to dg-error strings. * g++.dg/template/pseudodtor3.C: Likewise. From-SVN: r202528
2013-09-12tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c (SSANAMES...Andrew MacLeod8-106/+138
* tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def, num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes. * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name, make_temp_ssa_name): move to tree-ssanames.h * tree-ssa-alias.h: Move prototype. * tree-ssa.h: Include tree-ssanames.h. * tree-ssanames.c (FREE_SSANAMES): Move to here. * tree-ssanames.h: New. Move items from tree-flow*.h * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES. From-SVN: r202527
2013-09-12ChangeLog: Add missing file to two entries.Gary Benson1-0/+2
* libiberty/ChangeLog: Add missing file to two entries. From-SVN: r202526
2013-09-12re PR tree-optimization/58404 (&noninvariant_address not forwproped into ↵Richard Biener4-20/+58
->handled_component) 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58404 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also propagate non-invariant addresses into dereferences wrapped in component references. * g++.dg/tree-ssa/pr58404.C: New testcase. From-SVN: r202525
2013-09-12re PR middle-end/58402 (FAIL: gcc.dg/tree-ssa/phi-opt-1.c ↵Richard Biener2-8/+12
scan-tree-dump-times optimized "if" 0) 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58402 * passes.def: Move pass_late_warn_uninitialized later. From-SVN: r202524
2013-09-12tree-ssa.h: New.Andrew MacLeod154-624/+688
* tree-ssa.h: New. Move content from tree-flow.h and tree-flow-inline.h. * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h. Move prototypes belonging to tree-ssa.c. * tree-flow-inline.h (redirect_edge_var_map_def, redirect_edge_var_map_result, redirect_edge_var_map_location): Move to tree-ssa.h. * gimple.h: Adjust prototypes. * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move to... * gimple.c (useless_type_conversion_p, types_compatible_p): Here. * tree.h: Move prototype to tree-ssa.h. * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h. * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies. * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c, cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c, ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c, gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, graphite-dependences.c, graphite-interchange.c, graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa-utils.c, loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c, lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c, passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c, tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c, tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c, tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c, tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c, tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c, value-prof.c, var-tracking.c, varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h From-SVN: r202523
2013-09-12re PR ipa/58371 (internal compiler error: in ipcp_verify_propagated_values, ↵Martin Jambor2-0/+209
at ipa-cp.c:892) 2013-09-12 Martin Jambor <mjambor@suse.cz> PR ipa/58371 * g++.dg/ipa/pr58371.C: New test. From-SVN: r202522
2013-09-12re PR tree-optimization/58396 (heap-use-after-free at ↵Richard Biener2-16/+30
gcc/tree-loop-distribution.c:1959) 2013-09-12 Richard Biener <rguenther@suse.de> PR tree-optimization/58396 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs. (build_rdg): Take a loop-nest parameter, fix memleaks. (distribute_loop): Compute loop-nest here and pass it to build_rdg. From-SVN: r202521
2013-09-12x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE for SLM.Yuri Rumyantsev2-1/+7
* config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE for SLM. From-SVN: r202520
2013-09-12ChangeLog entry forThomas Schwinge1-0/+14
* gcc-interface/Makefile.in: Import target_cpu, target_vendor, target_os and their host_ counterparts. Remove host_canonical and target_cpu_default, unused. Remove local ad-hoc computations of "host", "targ", "arch", "osys" and "manu". Replace uses of these by uses of the now imported family, hence back to filters against canonical values. Remove filters on e500 for target_cpu, expected to be canonicalized into powerpc. Invert the logic filtering on 64bit sparc for VxWorks. Simplify the filtering logic for bareboard tools target pairs, now using straight elf/eabi filters on the target_os part only. From-SVN: r202519
2013-09-12Makefile.in: Import target_cpu, target_vendor, target_os and their host_ ↵Thomas Schwinge1-80/+72
counterparts. 2013-10-11 Thomas Schwinge <thomas@codesourcery.com> Olivier Hainque <hainque@adacore.com> * gcc-interface/Makefile.in: Import target_cpu, target_vendor, target_os and their host_ counterparts. Remove host_canonical and target_cpu_default, unused. Remove local ad-hoc computations of "host", "targ", "arch", "osys" and "manu". Replace uses of these by uses of the now imported family, hence back to filters against canonical values. Remove filters on e500 for target_cpu, expected to be canonicalized into powerpc. Invert the logic filtering on 64bit sparc for VxWorks. Simplify the filtering logic for bareboard tools target pairs, now using straight elf/eabi filters on the target_os part only. From-SVN: r202518
2013-09-12extend.texi: Fix errors in x86 FMA builtin naming.Cameron McInally2-50/+53
* doc/extend.texi: Fix errors in x86 FMA builtin naming. The FMA instruction names should have a 'v' prefix. From-SVN: r202517
2013-09-12tree-loop-distribution.c (dot_rdg_1): Make graph prettier.Richard Biener4-180/+53
2013-09-12 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (dot_rdg_1): Make graph prettier. (dot_rdg): Use popen instead of system in optional code. (remaining_stmts, upstream_mem_writes): Remove global bitmaps. (already_processed_vertex_p): Adjust. (has_anti_or_output_dependence, predecessor_has_mem_write, mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes, rdg_flag_uses): Remove. (rdg_flag_vertex): Simplify. (rdg_flag_vertex_and_dependent): Rely on a correct RDG and remove recursion. (build_rdg_partition_for_component): Process the first vertex of a component only. (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes. * gcc.dg/tree-ssa/ldist-4.c: Remove undefined behavior. Adjust expected outcome and comment why that happens. From-SVN: r202516
2013-09-12rs6000.c (toc_relative_expr_p): Use add_cint_operand.Alan Modra2-1/+5
* config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand. From-SVN: r202515
2013-09-12Daily bump.GCC Administrator1-1/+1
From-SVN: r202514
2013-09-11predicates.md (rl78_cmp_operator_signed): New.DJ Delorie9-293/+1628
* config/rl78/predicates.md (rl78_cmp_operator_signed): New. (rl78_stack_based_mem): New. * config/rl78/constraints.md (Iv08): New. (Iv16): New. (Iv24): New. (Is09): New. (Is17): New. (Is25): New. (ISsi): New. (IShi): New. (ISqi): New. * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands. (movhi): Likewise. (movsi): Change from expand to insn-and-split. (ashrsi3): Clobber AX. (lshrsi3): New. (ashlsi3): New. (cbranchsi4): New. * config/rl78/rl78.md (CC_REG): Fix. (addsi3): Allow memory and immediate operands. (addsi3_internal): Split into... (addsi3_internal_virt): ...new, and ... (addsi3_internal_real): ...new. (subsi): New. (subsi3_internal_virt): New. (subsi3_internal_real): New. (mulsi3): Add memory operand. (mulsi3_rl78): Likewise. (mulsi3_g13): Likewise. * config/rl78/rl78-real.md (cbranchqi4_real_signed): New. (cbranchqi4_real): Add more constraint options. (cbranchhi4_real): Expand pattern. (cbranchhi4_real_signed): New. (cbranchhi4_real_inverted): New. (cbranchsi4_real_lt): New. (cbranchsi4_real_ge): New. (cbranchsi4_real_signed): New. (cbranchsi4_real): New. (peephole2): New. * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for constant shifts. (lshrsi3_virt): Likewise. (ashlsi3_virt): Likewise. (cbranchqi4_virt_signed): New. (cbranchhi4_virt_signed): New. (cbranchsi4_virt): New. * config/rl78/rl78.c: Whitespace fixes throughout. (move_elim_pass): New. (pass_data_rl78_move_elim): New. (pass_rl78_move_elim): New. (make_pass_rl78_move_elim): New. (rl78_devirt_info): Run devirt earlier. (rl78_move_elim_info): New. (rl78_asm_file_start): Register it. (rl78_split_movsi): New. (rl78_as_legitimate_address): Allow virtual base registers when appropriate. (rl78_addr_space_convert): Remove spurious debug stuff. (rl78_print_operand_1): Add z,s,S,r,E modifiers. (rl78_print_operand): More cases for not printing '#'. (rl78_expand_compare): Remove most of the logic. (content_memory): New. (clear_content_memory): New. (get_content_index): New. (get_content_name): New. (display_content_memory): New. (update_content): New. (record_content): New. (already_contains): New. (insn_ok_now): Re-recog insns with virtual registers. (add_postponed_content_update): New. (process_postponed_content_update): New. (gen_and_emit_move): New. (transcode_memory_rtx): Record new location content. Use gen_and_emit_move. (force_into_acc): New. (move_to_acc): Use gen_and_emit_move. (move_from_acc): Likewise. (move_acc_to_reg): Likewise. (move_to_x): Likewise. (move_to_hl): Likewise. (move_to_de): Likewise. (rl78_alloc_physical_registers_op1): Record location content. (has_constraint): New. (rl78_alloc_physical_registers_op2): Record location content. Optimize use of HL. (rl78_alloc_physical_registers_ro1): Likewise. (rl78_alloc_physical_registers_cmp): Likewise. (rl78_alloc_physical_registers_umul): Likewise. (rl78_alloc_address_registers_macax): New. (rl78_alloc_physical_registers): Initialize and set location content memory as needed. (rl78_reorg): Make sure split2 is called. (rl78_rtx_costs): New. Co-Authored-By: Nick Clifton <nickc@redhat.com> From-SVN: r202511