aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-10-16function.h: Flatten file.Andrew MacLeod217-246/+1494
2014-10-16 Andrew MacLeod <amacleod@redhat.com> * function.h: Flatten file. Remove includes, adjust prototypes to reflect only what is in function.h. (enum direction, struct args_size, struct locate_and_pad_arg_data, ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate from expr.h. (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h. (optimize_function_for_size_p, optimize_function_for_speed_p): Move prototypes to predict.h. (init_varasm_status): Move prototype to varasm.h. * expr.h: Adjust include files. (enum direction, struct args_size, struct locate_and_pad_arg_data, ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move to function.h. (locate_and_pad_parm): Move prototype to function.h. * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD, assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type, assign_temp, reposition_prologue_and_epilogue_notes, prologue_epilogue_contains, sibcall_epilogue_contains, update_temp_slot_address, maybe_copy_prologue_epilogue_insn, set_return_jump_label): Move prototypes to function.h. * predict.h (optimize_function_for_size_p, optimize_function_for_speed_p): Relocate prototypes from function.h. * shrink-wrap.h (emit_return_into_block, active_insn_between, convert_jumps_to_returns, emit_return_for_exit): Move prototypes to function.h. * varasm.h (init_varasm_status): Relocate prototype from function.h. * genattrtab.c (write_header): Add predict.h to include list. * genconditions.c (write_header): Add predict.h to include list. * genemit.c (main): Adjust header file includes. * gengtype.c (ifiles): Add flattened function.h header files. * genoutput.c (output_prologue): Add predict.h to include list. * genpreds.c (write_insn_preds_c): Adjust header file includes. * genrecog.c (write_header): Add flattened function.h header files. * alias.c: Adjust include files. * auto-inc-dec.c: Likewise. * basic-block.h: Likewise. * bb-reorder.c: Likewise. * bt-load.c: Likewise. * builtins.c: Likewise. * caller-save.c: Likewise. * calls.c: Likewise. * cfgbuild.c: Likewise. * cfgcleanup.c: Likewise. * cfgexpand.c: Likewise. * cfgloop.c: Likewise. * cfgloop.h: Likewise. * cfgrtl.c: Likewise. * cgraph.h: Likewise. * cgraphclones.c: Likewise. * cgraphunit.c: Likewise. * combine-stack-adj.c: Likewise. * combine.c: Likewise. * coverage.c: Likewise. * cprop.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * dbxout.c: Likewise. * ddg.c: Likewise. * df-core.c: Likewise. * df-problems.c: Likewise. * df-scan.c: Likewise. * dojump.c: Likewise. * dwarf2cfi.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * explow.c: Likewise. * expr.c: Likewise. * final.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * gimple-fold.c: Likewise. * gimple-low.c: Likewise. * gimple-streamer.h: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * ira.c: Likewise. * jump.c: Likewise. * lcm.c: Likewise. * loop-invariant.c: Likewise. * lra-assigns.c: Likewise. * lra-coalesce.c: Likewise. * lra-constraints.c: Likewise. * lra-eliminations.c: Likewise. * lra-lives.c: Likewise. * lra-spills.c: Likewise. * lra.c: Likewise. * lto-cgraph.c: Likewise. * lto-section-in.c: Likewise. * lto-section-out.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * mode-switching.c: Likewise. * modulo-sched.c: Likewise. * omp-low.c: Likewise. * optabs.c: Likewise. * passes.c: Likewise. * postreload-gcse.c: Likewise. * postreload.c: Likewise. * predict.c: Likewise. * profile.c: Likewise. * recog.c: Likewise. * ree.c: Likewise. * reg-stack.c: Likewise. * regcprop.c: Likewise. * reginfo.c: Likewise. * regrename.c: Likewise. * reload.c: Likewise. * reload1.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * rtlanal.c: Likewise. * sched-deps.c: Likewise. * sched-ebb.c: Likewise. * sched-rgn.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched.c: Likewise. * shrink-wrap.c: Likewise. * simplify-rtx.c: Likewise. * statistics.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * symtab.c: Likewise. * targhooks.c: Likewise. * toplev.c: Likewise. * trans-mem.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-dfa.c: Likewise. * tree-eh.c: Likewise. * tree-inline.c: Likewise. * tree-into-ssa.c: Likewise. * tree-nested.c: Likewise. * tree-nrv.c: Likewise. * tree-profile.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-copy.c: Likewise. * tree-ssa-copyrename.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-operands.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-tail-merge.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-uncprop.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-ssa.c: Likewise. * tree-stdarg.c: Likewise. * tree-tailcall.c: Likewise. * tree.c: Likewise. * tsan.c: Likewise. * valtrack.c: Likewise. * varasm.c: Likewise. * vmsdbgout.c: Likewise. * web.c: Likewise. * testsuite/g++.dg/plugin/pragma_plugin.c: Adjust include files. * config/aarch64/aarch64.c: Add flattened includes from function.h. * config/alpha/alpha.c: Likewise. * config/arc/arc.c: Likewise. * config/arm/arm.c: Likewise. * config/avr/avr-log.c: Likewise. * config/avr/avr.c: Likewise. * config/bfin/bfin.c: Likewise. * config/c6x/c6x.c: Likewise. * config/cr16/cr16.c: Likewise. * config/cris/cris.c: Likewise. * config/darwin.c: Likewise. * config/epiphany/epiphany.c: Likewise. * config/epiphany/mode-switch-use.c: Likewise. * config/epiphany/resolve-sw-modes.c: Likewise. * config/fr30/fr30.c: Likewise. * config/frv/frv.c: Likewise. * config/h8300/h8300.c: Likewise. * config/i386/i386.c: Likewise. * config/ia64/ia64.c: Likewise. * config/iq2000/iq2000.c: Likewise. * config/lm32/lm32.c: Likewise. * config/m32c/m32c.c: Likewise. * config/m32r/m32r.c: Likewise. * config/m68k/m68k.c: Likewise. * config/mcore/mcore.c: Likewise. * config/mep/mep-pragma.c: Likewise. * config/mep/mep.c: Likewise. * config/microblaze/microblaze.c: Likewise. * config/mips/mips.c: Likewise. * config/mmix/mmix.c: Likewise. * config/mn10300/mn10300.c: Likewise. * config/moxie/moxie.c: Likewise. * config/msp430/msp430.c: Likewise. * config/nds32/nds32-cost.c: Likewise. * config/nds32/nds32-fp-as-gp.c: Likewise. * config/nds32/nds32-intrinsic.c: Likewise. * config/nds32/nds32-isr.c: Likewise. * config/nds32/nds32-md-auxiliary.c: Likewise. * config/nds32/nds32-memory-manipulation.c: Likewise. * config/nds32/nds32-pipelines-auxiliary.c: Likewise. * config/nds32/nds32-predicates.c: Likewise. * config/nds32/nds32.c: Likewise. * config/nios2/nios2.c: Likewise. * config/pa/pa.c: Likewise. * config/pdp11/pdp11.c: Likewise. * config/rl78/rl78.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/rx/rx.c: Likewise. * config/s390/s390.c: Likewise. * config/score/score.c: Likewise. * config/sh/sh.c: Likewise. * config/sparc/sparc.c: Likewise. * config/spu/spu.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/tilegx/tilegx.c: Likewise. * config/tilepro/tilepro.c: Likewise. * config/v850/v850.c: Likewise. * config/vax/vax.c: Likewise. * config/xtensa/xtensa.c: Likewise. 2014-10-16 Andrew MacLeod <amacleod@redhat.com> * ada/gcc-interface/misc.c: Adjust include files. 2014-10-16 Andrew MacLeod <amacleod@redhat.com> * c/c-decl.c: Adjust include files. 2014-10-16 Andrew MacLeod <amacleod@redhat.com> * c-family/c-pragma.c: Adjust include files. * c-family/c-semantics.c: Likewise. 2014-10-16 Andrew MacLeod <amacleod@redhat.com> * cp/cp-tree.h: Adjust include files. 2014-10-16 Andrew MacLeod <amacleod@redhat.com> * fortran/f95-lang.c: Adjust include files. * fortran/trans-decl.c: Likewise. 2014-10-16 Andrew MacLeod <amacleod@redhat.com> * java/class.c: Adjust include files. * java/resource.c: Likewise. 2014-10-16 Andrew MacLeod <amacleod@redhat.com> * objc/objc-act.c: Adjust include files. From-SVN: r216337
2014-10-16aarch64.c (aarch64_legitimize_address): New function.Richard Earnshaw2-0/+49
* config/aarch64/aarch64.c (aarch64_legitimize_address): New function. (TARGET_LEGITIMIZE_ADDRESS): Redefine. From-SVN: r216336
2014-10-16IPA ICF fallout: fix for two ipa-icf-*.C testsMartin Liska3-3/+7
* g++.dg/ipa/ipa-icf-4.C: Correct number of equivalences set. * g++.dg/ipa/ipa-icf-5.C: Likewise From-SVN: r216335
2014-10-16sh-protos.h (fldi_ok): Remove.Oleg Endo4-18/+11
gcc/ * config/sh/sh-protos.h (fldi_ok): Remove. * config/sh/sh.c (fldi_ok): Likewise. (sh_secondary_reload): Don't use fldi_ok. * config/sh/constraints.md (G constraint, H constraint): Don't use fldi_ok. From-SVN: r216320
2014-10-16IPA ICF fallout: i586 bootstrap failure fixMartin Liska2-2/+8
* ipa-icf.c (sem_item_optimizer::process_cong_reduction): Cast to unsigned long. (sem_item_optimizer::dump_cong_classes): Likewise. From-SVN: r216319
2014-10-16Assert no use with SSA_NAME_IN_FREELIST before using freelist.Tom de Vries2-0/+44
2014-10-16 Tom de Vries <tom@codesourcery.com> * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand with SSA_NAME_IN_FREELIST. From-SVN: r216318
2014-10-16re PR target/63260 ([SH] fabs, fneg do not need fp-mode setting and do not ↵Oleg Endo2-1/+6
use fpscr) gcc/testsuite/ PR target/63260 * gcc.target/sh/pr63260.c: Fix typo __builtin_fabs vs. __builtin_abs. From-SVN: r216317
2014-10-16re PR c/63554 (ice in "execute_todo, at passes.c:1797" with -O3)Richard Biener5-56/+80
2014-10-16 Richard Biener <rguenther@suse.de> PR middle-end/63554 * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk. (fold_builtin_strncat_chk): Move ... * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here. (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk. * gcc.dg/torture/pr63554.c: New testcase. From-SVN: r216315
2014-10-16re PR target/59401 ([SH] GBR addressing mode optimization produces wrong code)Oleg Endo2-3/+42
gcc/ PR target/59401 * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set GBR to 0. From-SVN: r216314
2014-10-16pr58673-1.c: Fix defaulting to int.Marek Polacek3-0/+9
* gcc.target/powerpc/pr58673-1.c: Fix defaulting to int. * gcc.target/powerpc/pr58673-2.c: Add declarations. From-SVN: r216313
2014-10-16id-1.c: Fix defaulting to int.Marek Polacek28-2/+71
* gcc.dg/graphite/id-1.c: Fix defaulting to int. * gcc.dg/graphite/id-2.c: Likewise. * gcc.dg/graphite/id-4.c: Likewise. * gcc.dg/graphite/id-8.c: Likewise. * gcc.dg/graphite/id-pr45230-1.c: Likewise. * gcc.dg/graphite/id-pr45230.c: Likewise. * gcc.dg/graphite/id-pr45231.c: Likewise. * gcc.dg/graphite/pr38073.c: Likewise. * gcc.dg/graphite/pr38125.c: Likewise. * gcc.dg/graphite/pr38409.c: Likewise. * gcc.dg/graphite/pr38413.c: Likewise. * gcc.dg/graphite/pr38510.c: Likewise. * gcc.dg/graphite/pr38786.c: Likewise. * gcc.dg/graphite/pr39260.c: Likewise. * gcc.dg/graphite/scop-19.c: Likewise. * gcc.dg/graphite/id-13.c: Fix implicit declarations. * gcc.dg/graphite/id-17.c: Likewise. * gcc.dg/graphite/id-23.c: Likewise. * gcc.dg/graphite/id-26.c: Likewise. * gcc.dg/graphite/id-pr43464-1.c: Likewise. * gcc.dg/graphite/pr37485.c: Likewise. * gcc.dg/graphite/pr38500.c: Likewise. * gcc.dg/graphite/pr42284.c: Likewise. * gcc.dg/graphite/pr42914.c: Likewise. * gcc.dg/graphite/pr46404-1.c: Likewise. * gcc.dg/graphite/pr60979.c: Likewise. * gcc.dg/graphite/id-pr43464.c: Fix implicit declarations and defaulting to int. From-SVN: r216312
2014-10-16AVX-512. 79/n. Extend expand_mul_widen_hilo.Alexander Ivchenko2-0/+15
gcc/ * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI, V64QI modes. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r216311
2014-10-16AVX-512. 78/n. Use blend for inserting.Alexander Ivchenko2-0/+85
gcc/ * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF, V16SI, V32HI, V64QI modes. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r216310
2014-10-16IPA ICF pass, part 5/5Martin Liska36-0/+1602
* g++.dg/ipa/ipa-icf-1.C: New test. * g++.dg/ipa/ipa-icf-2.C: New test. * g++.dg/ipa/ipa-icf-3.C: New test. * g++.dg/ipa/ipa-icf-4.C: New test. * g++.dg/ipa/ipa-icf-5.C: New test. * gcc.dg/ipa/ipa-icf-1.c: New test. * gcc.dg/ipa/ipa-icf-10.c: New test. * gcc.dg/ipa/ipa-icf-11.c: New test. * gcc.dg/ipa/ipa-icf-12.c: New test. * gcc.dg/ipa/ipa-icf-13.c: New test. * gcc.dg/ipa/ipa-icf-14.c: New test. * gcc.dg/ipa/ipa-icf-15.c: New test. * gcc.dg/ipa/ipa-icf-16.c: New test. * gcc.dg/ipa/ipa-icf-17.c: New test. * gcc.dg/ipa/ipa-icf-18.c: New test. * gcc.dg/ipa/ipa-icf-19.c: New test. * gcc.dg/ipa/ipa-icf-2.c: New test. * gcc.dg/ipa/ipa-icf-20.c: New test. * gcc.dg/ipa/ipa-icf-21.c: New test. * gcc.dg/ipa/ipa-icf-22.c: New test. * gcc.dg/ipa/ipa-icf-23.c: New test. * gcc.dg/ipa/ipa-icf-24.c: New test. * gcc.dg/ipa/ipa-icf-25.c: New test. * gcc.dg/ipa/ipa-icf-26.c: New test. * gcc.dg/ipa/ipa-icf-27.c: New test. * gcc.dg/ipa/ipa-icf-28.c: New test. * gcc.dg/ipa/ipa-icf-29.c: New test. * gcc.dg/ipa/ipa-icf-3.c: New test. * gcc.dg/ipa/ipa-icf-30.c: New test. * gcc.dg/ipa/ipa-icf-4.c: New test. * gcc.dg/ipa/ipa-icf-5.c: New test. * gcc.dg/ipa/ipa-icf-6.c: New test. * gcc.dg/ipa/ipa-icf-7.c: New test. * gcc.dg/ipa/ipa-icf-8.c: New test. * gcc.dg/ipa/ipa-icf-9.c: New test. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> From-SVN: r216308
2014-10-16re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)Oleg Endo7-343/+372
gcc/ PR target/53513 * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop, expand_df_unop, expand_df_binop): Remove. * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern to match fp insn patterns. (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore list. (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop, expand_df_unop, expand_df_binop): Remove. (sh_conditional_register_usage): Mark FPSCR_MODES_REG and FPSCR_STAT_REG as not call clobbered. (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of invoking fpscr_set_from_mem. * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6. (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and FPSCR_STAT_REG. (REGISTER_NAMES): Adjust. (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG. (FIRST_PSEUDO_REGISTER): Increase to 156. (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value. (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and FPSCR_STAT_REG. (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include FPSCR_MODES_REG and FPSCR_STAT_REG. (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG. * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR, FPSCR_SZ): Add new constants. (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants. (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch. (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG. Use TARGET_FPU_ANY condition. (fpu_switch peephole2): Remove. (fpu_switch split): Use simple_mem_operand to capture the mem and adjust split implementation. (extend_psi_si, truncate_si_psi): New insns. (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants. Add set of FPSCR_MODES_REG. (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie, reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel, calli_pcrel, call_pcrel, call_compact, call_compact_rettramp, call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel, call_value_compact, call_value_compact_rettramp, call, call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli, sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact, sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel, sibcall_value_compact, sibcall_value, call_value_pop_compact, call_value_pop_compact_rettramp, various unnamed splits): Replace use of FPSCR_REG with use of FPSCR_MODES_REG. Adjust gen_* function uses. (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4. (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4. (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t. (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t. (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t. (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i, *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i, subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i, cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4, truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG and use of FPSCR_MODES_REG. Adjust gen_* function uses. gcc/testsuite/ PR target/53513 * gcc.target/sh/pr54680.c: Adjust matching of lds insn. From-SVN: r216307
2014-10-16IPA ICF, part 4/5Martin Liska43-35/+91
* c-c++-common/rotate-1.c: Options changed to not collide with a new IPA ICF pass. * c-c++-common/rotate-2.c: Likewise. * c-c++-common/rotate-3.c: Likewise. * c-c++-common/rotate-4.c: Likewise. * g++.dg/cpp0x/rv-return.C: Likewise. * g++.dg/cpp0x/rv1n.C: Likewise. * g++.dg/cpp0x/rv1p.C: Likewise. * g++.dg/cpp0x/rv2n.C: Likewise. * g++.dg/cpp0x/rv3n.C: Likewise. * g++.dg/cpp0x/rv4n.C: Likewise. * g++.dg/cpp0x/rv5n.C: Likewise. * g++.dg/cpp0x/rv6n.C: Likewise. * g++.dg/cpp0x/rv7n.C: Likewise. * g++.dg/ipa/devirt-g-1.C: Likewise. * g++.dg/ipa/inline-1.C: Likewise. * g++.dg/ipa/inline-2.C: Likewise. * g++.dg/ipa/inline-3.C: Likewise. * g++.dg/opt/pr30965.C: Likewise. * g++.dg/tree-ssa/pr19637.C: Likewise. * gcc.dg/guality/csttest.c: Likewise. * gcc.dg/ipa/iinline-4.c (struct S): Likewise. * gcc.dg/ipa/iinline-7.c: Likewise. * gcc.dg/ipa/ipa-pta-13.c: Likewise. * gcc.dg/ipa/ipacost-1.c: Likewise. * gcc.dg/ipa/ipacost-2.c: Likewise. * gcc.dg/ipa/ipcp-agg-6.c: Likewise. * gcc.dg/ipa/remref-2a.c: Likewise. * gcc.dg/ipa/remref-2b.c: Likewise. * gcc.dg/pr46309-2.c: Likewise. * gcc.dg/torture/ipa-pta-1.c: Likewise. * gcc.dg/tree-ssa/andor-3.c (int f): Likewise. * gcc.dg/tree-ssa/andor-4.c: Likewise. * gcc.dg/tree-ssa/andor-5.c: Likewise. * gcc.dg/vect/no-vfa-pr29145.c: Likewise. * gcc.dg/vect/vect-cond-10.c: Likewise. * gcc.dg/vect/vect-cond-9.c: Likewise. * gcc.dg/vect/vect-widen-mult-const-s16.c: Likewise. * gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise. * gcc.dg/vect/vect-widen-mult-half-u8.c: Likewise. * gcc.target/i386/bmi-1.c: Likewise. * gcc.target/i386/bmi-2.c: Likewise. * gcc.target/i386/pr56564-2.c: Likewise. From-SVN: r216306
2014-10-16IPA ICF pass, part 3/5Martin Liska18-3/+4166
* Makefile.in: New object files included. * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged is printed. (verify_edge_corresponds_to_fndecl): More sensitive verification of nodes that are merged by IPA ICF. * cgraph.h (cgraph_node::num_references): New function. * cgraphunit.c (cgraph_node::expand_thunk): White space fixed. * common.opt: New options ipa-icf, ipa-icf-functions and ipa-icf-variables introduced. * doc/invoke.texi: Documentation of new options introduced. * ipa-icf-gimple.c: New file. * ipa-icf-gimple.h: New file. * ipa-icf.c: New file. * ipa-icf.h: New file. * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added. (input_overwrite_node): Likewise. * lto-section-in.c: New icf section added. * lto-streamer.h (enum lto_section_type): Likewise. * opts.c (common_handle_option): New option added. * passes.def: New pass included. * timevar.def: Time variable for IPA ICF added. * tree-pass.h: New IPA ICF pass entry point added. Co-Authored-By: Jan Hubicka <hubicka@ucw.cz> From-SVN: r216305
2014-10-16re PR tree-optimization/63168 (loop header copying fails - not vectorized: ↵Richard Biener5-2/+38
latch block not empty) 2014-10-16 Richard Biener <rguenther@suse.de> PR tree-optimization/63168 * tree-cfg.c (gimple_can_merge_blocks_p): Only protect latches if after merging they are no longer simple. * cfghooks.c (merge_blocks): Handle merging a latch block into another block. * gcc.dg/tree-ssa/loop-40.c: New testcase. From-SVN: r216304
2014-10-16* gcc.target/m68k/crash1.c: Fix implicit declaration.Andreas Schwab2-0/+3
From-SVN: r216303
2014-10-1620090324-1.c: Fix implicit declarations and implicit int.Andreas Schwab7-4/+19
* gcc.target/ia64/20090324-1.c: Fix implicit declarations and implicit int. * gcc.target/ia64/mfused-madd-vect.c: Likewise. * gcc.target/ia64/mno-fused-madd-vect.c: Likewise. * gcc.target/ia64/pr29682.c: Likewise. * gcc.target/ia64/pr43603.c: Likewise. * gcc.target/ia64/pr48496.c: Likewise. From-SVN: r216302
2014-10-16* ada/acats/tests/cd/cd300051.c: Fix defaulting to int.Marek Polacek2-1/+5
From-SVN: r216301
2014-10-1620020122-2.c: Use dg-additional-options.Jakub Jelinek32-21/+76
* gcc.dg/20020122-2.c: Use dg-additional-options. Fix implicit declarations. * gcc.dg/pr32176.c: Likewise. * gcc.dg/builtin-apply4.c: Use dg-additional-options. * gcc.dg/ia64-sync-1.c: Fix implicit declarations. * gcc.dg/ia64-sync-2.c: Likewise. * gcc.dg/ia64-sync-3.c: Likewise. * gcc.dg/sync-2.c: Likewise. * gcc.dg/sync-3.c: Likewise. * gcc.target/i386/990524-1.c: Likewise. * gcc.target/i386/avx512f-pr57233.c: Likewise. * gcc.target/i386/avx512f-typecast-1.c: Likewise. * gcc.target/i386/pr26826.c: Likewise. * gcc.target/i386/pr37184.c: Likewise. * gcc.target/i386/20060125-1.c: Fix defaulting to int. * gcc.target/i386/20060125-2.c: Likewise. * gcc.target/i386/memcpy-1.c: Likewise. * gcc.target/i386/pr40934.c: Likewise. * gcc.target/i386/sse-5.c: Likewise. * gcc.target/i386/stackalign/asm-1.c: Likewise. * gcc.target/i386/vectorize4.c: Likewise. * gcc.target/i386/980312-1.c: Fix defaulting to int. Use -fgnu89-inline. * gcc.target/i386/980313-1.c: Likewise. * gcc.target/i386/builtin-apply-mmx.c: Use -fgnu89-inline. * gcc.target/i386/crc32-2.c: Use -std=gnu89. * gcc.target/i386/crc32-3.c: Likewise. * gcc.target/i386/intrinsics_3.c: Likewise. * gcc.target/i386/loop-1.c: Likewise. * gcc.target/i386/pr44948-2a.c: Likewise. * gcc.target/i386/pr47564.c: Likewise. * gcc.target/i386/pr50712.c: Likewise. * gcc.target/i386/stackalign/return-2.c: Likewise. Co-Authored-By: Marek Polacek <polacek@redhat.com> From-SVN: r216300
2014-10-16AVX-512. 76/n. Extend int 2 float conversions.Alexander Ivchenko2-0/+21
gcc/ * config/i386/sse.md (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to support AVX-512VL instructions. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r216297
2014-10-16tree-core.h: Fix comment to not assume pointers are multiples of bytes.DJ Delorie4-2/+12
* tree-core.h: Fix comment to not assume pointers are multiples of bytes. * c-cppbuiltin.c (cpp_atomic_builtins): Don't assume pointers are multiples of bytes. From-SVN: r216296
2014-10-16Daily bump.GCC Administrator1-1/+1
From-SVN: r216295
2014-10-15timevar.h: Add an auto_timevar classTom Tromey2-0/+28
Patch authored by Tom Tromey; originally contributed by him to jit branch on 2014-03-19. gcc/ChangeLog: * timevar.h (class auto_timevar): New class. From-SVN: r216288
2014-10-15re PR go/59432 (sync/atomic FAILs on 32bit x86 systems without .cfi directives)Uros Bizjak5-91/+28
PR go/59432 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): Remove the second alternative. (regprefix): Remove mode attribute. (atomic_compare_and_swap<mode>): Do not fixup operand 2. * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove. Revert: 2013-11-05 Ian Lance Taylor <iant@google.com> * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): If possible, add .cfi directives to record change to bx. * config/i386/i386.c (ix86_emit_cfi): New function. * config/i386/i386-protos.h (ix86_emit_cfi): Declare. From-SVN: r216281
2014-10-15re PR bootstrap/63536 (bootstrap failed when configured with --with-cpu=slm)Evgeny Stupachenko2-0/+7
PR target/63536 gcc/java/ * lang.c (java_print_error_function): Add check on NULL function context. From-SVN: r216280
2014-10-15re PR c++/63528 (A variadic variable template cannot use the ::value of a ↵Jason Merrill3-0/+24
variadic trait) PR c++/63528 * pt.c (lookup_template_variable): Call coerce_template_parms. From-SVN: r216279
2014-10-15re PR lto/62026 (Crash in lto_get_decl_name_mapping)Jan Hubicka5-1/+42
PR lto/62026 * lto/pr62026.C: New testcase. * cgraphclones.c (duplicate_thunk_for_node): Get body to have args to duplicate. * lto-streamer-out.c (lto_output): Handle correctly thunks that was born at WPA time. From-SVN: r216278
2014-10-15re PR rtl-optimization/63448 (ICE when compiling atlas 3.10.2)Vladimir Makarov7-18/+187
2014-10-15 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/63448 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove. (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New. (LRA_MAX_INHERITANCE_PASSES): Use it. (lra_constraint_iter_after_spill): Remove. (lra_assignment_iter): New. (lra_assignment_iter_after_spill): New. * lra-assigns.c (lra_assignment_iter): New. (lra_assignment_iter_after_spill): New. (former_reload_pseudo_spill_p): New. (spill_for): Set up former_reload_pseudo_spill_p. (setup_live_pseudos_and_spill_after_risky): Ditto. (assign_by_spills): Ditto. (lra_assign): Increment lra_assignment_iter. Print the iteration number. Reset former_reload_pseudo_spill_p. Check lra_assignment_iter_after_spill. * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize lra_assignment_iter and lra_assignment_iter_after_spill. * lra-constraints.c (lra_constraint_iter_after_spill): Remove. (lra_constraints): Remove code with lra_assignment_iter_after_spill. 2014-10-15 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/63448 * gcc.target/i386/pr63448.c: New test. From-SVN: r216270
2014-10-15re PR bootstrap/63432 (profiledbootstrap failure with bootstrap-lto)Teresa Johnson2-13/+21
2014-10-15 Teresa Johnson <tejohnson@google.com> PR bootstrap/63432 * tree-ssa-threadupdate.c (recompute_probabilities): Better overflow checking. From-SVN: r216269
2014-10-15[AARCH64] Add ACLE 2.0 predefined macrosRenlin Li2-2/+23
2014-10-15 Renlin Li <renlin.li@arm.com> * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE, __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV, __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T. From-SVN: r216267
2014-10-15gimple-fold.c (gimple_fold_call): Properly keep virtual SSA form up-to-date ↵Richard Biener2-1/+11
when... 2014-10-15 Richard Biener <rguenther@suse.de> * gimple-fold.c (gimple_fold_call): Properly keep virtual SSA form up-to-date when devirtualizing a call to __builtin_unreachable and avoid fixing up EH info here. From-SVN: r216266
2014-10-152014-10-15 Paolo Carlini <paolo.carlini@oracle.com>Paolo Carlini1-1/+1
Remove stray space from ChangeLog entry From-SVN: r216264
2014-10-15semantics.c (is_instantiation_of_constexpr, [...]): Moved definitions...Paolo Carlini6-3376/+3450
2014-10-15 Paolo Carlini <paolo.carlini@oracle.com> * semantics.c (is_instantiation_of_constexpr, literal_type_p, ensure_literal_type_for_constexpr_object, constexpr_fundef_hasher::equal, constexpr_fundef_hasher::hash, retrieve_constexpr_fundef, is_valid_constexpr_fn, build_anon_member_initialization, build_data_member_initialization, check_constexpr_bind_expr_vars, check_constexpr_ctor_body_1, check_constexpr_ctor_body, sort_constexpr_mem_initializers, build_constexpr_constructor_member_initializers, constexpr_fn_retval, massage_constexpr_body, cx_check_missing_mem_inits, register_constexpr_fundef, explain_invalid_constexpr_fn, constexpr_call_hasher::hash, constexpr_call_hasher::equal, maybe_initialize_constexpr_call_table, get_function_named_in_call, get_nth_callarg, lookup_parameter_binding, cxx_eval_builtin_function_call, adjust_temp_type, cxx_bind_parameters_in_call, push_cx_call_context, pop_cx_call_context, cx_error_context, cxx_eval_call_expression, reduced_constant_expression_p, verify_constant, cxx_eval_unary_expression, cxx_eval_binary_expression, cxx_eval_conditional_expression, cxx_eval_array_reference, cxx_eval_component_reference, cxx_eval_bit_field_ref, cxx_eval_logical_expression, base_field_constructor_elt, cxx_eval_bare_aggregate, cxx_eval_vec_init_1, cxx_eval_vec_init, cxx_fold_indirect_ref, cxx_eval_indirect_ref, non_const_var_error, cxx_eval_trinary_expression, var_in_constexpr_fn, cxx_eval_constant_expression, cxx_eval_outermost_constant_expr, is_sub_constant_expr, cxx_constant_value, maybe_constant_value, maybe_constant_init, potential_constant_expression_1, potential_constant_expression, potential_rvalue_constant_expression, require_potential_constant_expression, require_potential_rvalue_constant_expression): Moved definitions... * constexpr.c: ... here, new file. * Make-lang.in: Update. * config-lang.in: Likewise. From-SVN: r216263
2014-10-15re PR c++/63455 (decltype of statement expression internal compiler error: ↵Jason Merrill6-60/+194
in cp_parser_abort_tentative_parse, at cp/parser.c:25062) PR c++/63455 c-family/ * c-common.h (CPP_PREPARSED_EXPR): New. (N_CP_TTYPES): Adjust. cp/ * parser.c (struct saved_token_sentinel): New. (cp_parser_statement): Use it. (cp_parser_start_tentative_firewall): New. (cp_parser_end_tentative_firewall): New. (cp_parser_lambda_expression): Use them. (cp_parser_statement_expr): New. (cp_parser_primary_expression): Use it. From-SVN: r216260
2014-10-15AVX-512. 56/n. Add plus/minus/abs/neg/andnot insn.Alexander Ivchenko2-26/+179
gcc/ * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend to support AVX-512BW. (define_mode_iterator VI124_AVX2_48_AVX512F): Remove. (define_expand "<plusminus_insn><mode>3"): Remove masking support. (define_insn "*<plusminus_insn><mode>3"): Ditto. (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New. (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto. (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto. (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto. (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support. (define_insn "*andnot<mode>3"): Ditto. (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New. (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto. (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto. (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto. (define_insn "*abs<mode>2"): Remove masking support. (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New. (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto. (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r216255
2014-10-15AVX-512. 52.1/n. Add vec2mask and mask2vec insn.Alexander Ivchenko3-0/+95
gcc/ * config/i386/predicates.md (define_predicate "constm1_operand"): New. * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK. (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New. (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto. (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto. (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto. (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto. (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r216254
2014-10-15[AArch64] Remove unused variable and marcoRenlin Li2-4/+4
gcc/ChangeLog 2014-10-15 Renlin Li <renlin.Li@arm.com> * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete. From-SVN: r216253
2014-10-15tree-ssa-reassoc.c (optimize_range_tests_diff): Perform MINUS_EXPR in ↵Jakub Jelinek2-1/+11
unsigned type to avoid undefined behavior. * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform MINUS_EXPR in unsigned type to avoid undefined behavior. From-SVN: r216252
2014-10-15* stor-layout.c (self_referential_size): Do not promote arguments.Eric Botcazou6-6/+106
From-SVN: r216249
2014-10-15invoke.texi: Update to reflect that GNU11 is the default mode for C.Marek Polacek5-5/+17
* doc/invoke.texi: Update to reflect that GNU11 is the default mode for C. * c-common.h (c_language_kind): Update comment. c-family/ * c-opts.c (c_common_init_options): Make -std=gnu11 the default for C. From-SVN: r216247
2014-10-15hash-table.c: Include bconfig.h if building for the host.Richard Biener3-0/+17
2014-10-15 Richard Biener <rguenther@suse.de> * hash-table.c: Include bconfig.h if building for the host. * hash-table.h: Do not include ggc.h on the host but just declare a few ggc allocation templates. From-SVN: r216246
2014-10-15As discussed: https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00420.htmlJoern Rennecke2-3/+12
2014-10-15 Joern Rennecke <joern.rennecke@embecosm.com> Jeff Law <law@redhat.com> * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers multiple hard registers, use smaller mode derived from MODE. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r216243
2014-10-15pr63419.C: Add -Wno-psabi.Richard Biener2-0/+5
2014-10-15 Richard Biener <rguenther@suse.de> * g++.dg/torture/pr63419.C: Add -Wno-psabi. From-SVN: r216241
2014-10-15explow.c (convert_memory_address_addr_space_1): Mark in_const as ↵Andreas Schwab2-1/+6
ATTRIBUTE_UNUSED. * explow.c (convert_memory_address_addr_space_1): Mark in_const as ATTRIBUTE_UNUSED. From-SVN: r216240
2014-10-15loop-unroll.c: (decide_unrolling_and_peeling): Rename toJan Hubicka13-544/+268
* loop-unroll.c: (decide_unrolling_and_peeling): Rename to (decide_unrolling): ... this one. (peel_loops_completely): Remove. (decide_peel_simple): Remove. (decide_peel_once_rolling): Remove. (decide_peel_completely): Remove. (peel_loop_simple): Remove. (peel_loop_completely): Remove. (unroll_and_peel_loops): Rename to ... (unroll_loops): ... this one; handle only unrolling. * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and LPT_PEEL_SIMPLE. (UAP_PEEL): Remove. (unroll_and_peel_loops): Remove. (unroll_loops): New. * passes.def: Replace pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops. * loop-init.c (gate_rtl_unroll_and_peel_loops, rtl_unroll_and_peel_loops): Rename to ... (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update. (pass_rtl_unroll_and_peel_loops): Rename to ... (pass_rtl_unroll_loops): ... this one. * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove. (make_pass_rtl_unroll_loops): New. * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New. (canonicalize_loop_induction_variables): Update. * gcc.dg/tree-prof/peel-1.c: Update. * gcc.dg/tree-prof/unroll-1.c: Update. * gcc.dg/gcc.dg/unroll_1.c: Update. * gcc.dg/gcc.dg/unroll_2.c: Update. * gcc.dg/gcc.dg/unroll_3.c: Update. * gcc.dg/gcc.dg/unroll_4.c: Update. From-SVN: r216238
2014-10-15xtensa: use pre- and postincrement FP load/store when availableMax Filippov3-2/+45
Earlier versions of xtensa FPU used to support preincrement FP load and store instructions (lsiu/ssiu). Recent FPU supports postincrement FP load and store instructions only (lsip/ssip). Use configuration macro to decide which version is available. 2014-10-14 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro. * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on !TARGET_HARD_FLOAT_POSTINC. (*lsip, *ssip): new instructions. From-SVN: r216234
2014-10-15xtensa: drop unimplemented floating point operationsMax Filippov2-43/+6
xtensa ISA never implemented FP division, reciprocal, square root and inverse square root as single opcode. Remove patterns that can emit them. 2014-10-09 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2): remove. From-SVN: r216233