From 19ecbcbcbf88db0949db1e4eca1fa3dec291be05 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 27 Sep 2011 18:16:57 +0200 Subject: [PATCH] common.opt: Add -foptimize-strlen option. * common.opt: Add -foptimize-strlen option. * Makefile.in (OBJS): Add tree-ssa-strlen.o. (tree-sssa-strlen.o): Add dependencies. * opts.c (default_options_table): Enable -foptimize-strlen by default at -O2 if not -Os. * passes.c (init_optimization_passes): Add pass_strlen after pass_object_sizes. * timevar.def (TV_TREE_STRLEN): New timevar. * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter. * tree-pass.h (pass_strlen): Declare. * tree-ssa-strlen.c: New file. * c-decl.c (merge_decls): If compatible stpcpy prototype is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. cp/ * decl.c (duplicate_decls): If compatible stpcpy prototype is seen, set implicit_built_in_decls[BUILT_IN_STPCPY]. testsuite/ * gcc.dg/strlenopt-1.c: New test. * gcc.dg/strlenopt-1f.c: New test. * gcc.dg/strlenopt-2.c: New test. * gcc.dg/strlenopt-2f.c: New test. * gcc.dg/strlenopt-3.c: New test. * gcc.dg/strlenopt-4.c: New test. * gcc.dg/strlenopt-4g.c: New test. * gcc.dg/strlenopt-4gf.c: New test. * gcc.dg/strlenopt-5.c: New test. * gcc.dg/strlenopt-6.c: New test. * gcc.dg/strlenopt-7.c: New test. * gcc.dg/strlenopt-8.c: New test. * gcc.dg/strlenopt-9.c: New test. * gcc.dg/strlenopt-10.c: New test. * gcc.dg/strlenopt-11.c: New test. * gcc.dg/strlenopt-12.c: New test. * gcc.dg/strlenopt-12g.c: New test. * gcc.dg/strlenopt-13.c: New test. * gcc.dg/strlenopt-14g.c: New test. * gcc.dg/strlenopt-14gf.c: New test. * gcc.dg/strlenopt-15.c: New test. * gcc.dg/strlenopt-16g.c: New test. * gcc.dg/strlenopt-17g.c: New test. * gcc.dg/strlenopt-18g.c: New test. * gcc.dg/strlenopt.h: New file. From-SVN: r179278 --- gcc/params.def | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gcc/params.def b/gcc/params.def index 0adf0470a66..a795c38aefc 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -931,6 +931,14 @@ DEFPARAM (PARAM_MAX_TAIL_MERGE_ITERATIONS, "Maximum amount of iterations of the pass over a function", 2, 0, 0) +/* Maximum number of strings for which strlen optimization pass will + track string lenths. */ +DEFPARAM (PARAM_MAX_TRACKED_STRLENS, + "max-tracked-strlens", + "Maximum number of strings for which strlen optimization pass will " + "track string lengths", + 1000, 0, 0) + /* Local variables: mode:c