From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78635 invoked by alias); 26 Aug 2016 12:31:22 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 78621 invoked by uid 89); 26 Aug 2016 12:31:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=ftreebitcp, Honza, ftree-bit-cp, fipa-bit-cp X-HELO: mail-it0-f49.google.com Received: from mail-it0-f49.google.com (HELO mail-it0-f49.google.com) (209.85.214.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 26 Aug 2016 12:31:10 +0000 Received: by mail-it0-f49.google.com with SMTP id x131so328079012ite.0 for ; Fri, 26 Aug 2016 05:31:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZByTOPmAqxLU7OWw5BfuPFJL6Wynn77By9jlbgVPVVg=; b=RbXuUWqJ4LamspXIuTT4xA6PTdeEH1qo+QNqLdVnZBuHmmXo1L/EokccpJwbaCu2SE uNq0tGscVpgJLr46Nyt7HDvhS3LimiYN5Y29oTQN2wxOvqMhvTDfShOgptk9lbJVTzOF /dNBDdBZL6C4D3UAHRdCP8dSuBuiq72nh89IpQliHuB9lD12i3JSvmHSQiFZ+UpzEDOS bY+A5SyNnfL4OkJTqne7eemUdXyt2uptguAuOGUPQTwmcDJ1s6oGKbvG4PSoma52Pbmu Q64a5NhtzDkd1u6hRo4Cza11V2oKD5t/tZRFAt+9FfwrscQuvEkP0rXFI+wQuIJ6Fcfo j+0w== X-Gm-Message-State: AE9vXwOb3fuQGqz88lbV2kMa4x24dcA4b0pVUEMB8wBHgAPEEUDfOvgfFWlVckGB4cQq/6OKoM5Kq7brygjlV1FL X-Received: by 10.36.219.138 with SMTP id c132mr3625421itg.16.1472214668646; Fri, 26 Aug 2016 05:31:08 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.208.18 with HTTP; Fri, 26 Aug 2016 05:31:07 -0700 (PDT) In-Reply-To: <20160825134411.GB49156@kam.mff.cuni.cz> References: <20160809181309.erlp4yxnc5otdtxm@virgil.suse.cz> <20160811125540.GA36505@kam.mff.cuni.cz> <20160812140347.GC68714@kam.mff.cuni.cz> <20160822133316.7w7ddrwuft7svyj6@virgil.suse.cz> <20160825134411.GB49156@kam.mff.cuni.cz> From: Prathamesh Kulkarni Date: Fri, 26 Aug 2016 12:31:00 -0000 Message-ID: Subject: Re: [RFC] ipa bitwise constant propagation To: Jan Hubicka Cc: Richard Biener , Kugan Vivekanandarajah , gcc Patches Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2016-08/txt/msg01857.txt.bz2 On 25 August 2016 at 19:14, Jan Hubicka wrote: >> Patch for performing interprocedural bitwise constant propagation. >> >> 2016-08-23 Prathamesh Kulkarni >> Martin Jambhor >> >> * common.opt: New option -fipa-cp-bit. >> * doc/invoke.texi: Document -fipa-cp-bit. >> * opts.c (default_options_table): Add entry for -fipa-cp-bit. > > Bitwise intraprocedural ccp is enabled by -ftree-bit-cp, so I think the > option name should be -fipa-bit-cp so things are more consistent. > > Patch is OK with this change. Thanks, committed the patch as r239769. As next steps, I will try to merge bitwise and pointer-alignment propagation. Thanks, Prathamesh > > Thanks! > Honza >> (enable_fdo_optimizations): Check for flag_ipa_cp_bit. >> * tree-ssa-ccp.h: New header file. >> * tree-ssa-ccp.c: Include tree-ssa-ccp.h >> (bit_value_binop_1): Change to bit_value_binop_1 and export it. >> Replace all occurences of tree parameter by two new params: signop, int. >> (bit_value_unop_1): Change to bit_value_unop and export it. >> Replace all occurences of tree parameter by two new params: signop, >> int. >> (bit_value_binop): Change call from bit_value_binop_1 to >> bit_value_binop. >> (bit_value_assume_aligned): Likewise. >> (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop. >> (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p >> to ccp_finalize. >> (ccp_finalize): Skip processing if val->mask == 0. >> * ipa-cp.c: Include tree-ssa-ccp.h >> (ipcp_bits_lattice): New class. >> (ipcp_param_lattice (bits_lattice): New member. >> (print_all_lattices): Call ipcp_bits_lattice::print. >> (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom. >> (initialize_node_lattices): Likewise. >> (propagate_bits_accross_jump_function): New function. >> (propagate_constants_accross_call): Call >> propagate_bits_accross_jump_function. >> (ipcp_propagate_stage): Store parameter types when in_lto_p is true. >> (ipcp_store_bits_results): New function. >> (ipcp_driver): Call ipcp_store_bits_results. >> * ipa-prop.h (ipa_bits): New struct. >> (ipa_jump_func): Add new member bits of type ipa_bits. >> (ipa_param_descriptor): Change decl to decl_or_type. >> (ipa_get_param): Change decl to decl_or_type and assert on >> PARM_DECL. >> (ipa_get_type): New function. >> (ipcp_transformation_summary): New member bits. >> * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type. >> (ipa_populate_param_decls): Likewise. >> (ipa_dump_param): Likewise. >> (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump >> function. >> (ipa_set_jf_unknown): Set ipa_bits::known to false. >> (ipa_compute_jump_functions_for_edge): Compute jump function for bits >> propagation. >> (ipa_node_params_t::duplicate): Copy src->bits into dst->bits. >> (ipa_write_jump_function): Add streaming for ipa_bits. >> (ipa_read_jump_function): Add support for reading streamed ipa_bits. >> (write_ipcp_transformation_info): Add streaming for ipa_bits >> summary for ltrans. >> (read_ipcp_transfomration_info): Add support for reading streamed ipa_bits. >> (ipcp_update_bits): New function. >> (ipcp_transform_function): Call ipcp_update_bits. >> >