public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-6419] analyzer: Remove check of unsigned_char in maybe_undo_optimize_bit_field_compare.
@ 2023-12-11 15:56 Andrew Pinski
  0 siblings, 0 replies; only message in thread
From: Andrew Pinski @ 2023-12-11 15:56 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:4eaaf7f5a378e81bbcd180cb10bf58726a68f229

commit r14-6419-g4eaaf7f5a378e81bbcd180cb10bf58726a68f229
Author: Andrew Pinski <apinski@marvell.com>
Date:   Mon Jul 10 21:53:24 2023 -0700

    analyzer: Remove check of unsigned_char in maybe_undo_optimize_bit_field_compare.
    
    The check for the type seems unnecessary and gets in the way sometimes.
    Also with a patch I am working on for match.pd, it causes a failure to happen.
    Before my patch the IR was:
      _1 = BIT_FIELD_REF <s, 8, 16>;
      _2 = _1 & 1;
      _3 = _2 != 0;
      _4 = (int) _3;
      __analyzer_eval (_4);
    
    Where _2 was an unsigned char type.
    And After my patch we have:
      _1 = BIT_FIELD_REF <s, 8, 16>;
      _2 = (int) _1;
      _3 = _2 & 1;
      __analyzer_eval (_3);
    
    But in this case, the BIT_AND_EXPR is in an int type.
    
    OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.
    
    gcc/analyzer/ChangeLog:
    
            * region-model-manager.cc (maybe_undo_optimize_bit_field_compare): Remove
            the check for type being unsigned_char_type_node.

Diff:
---
 gcc/analyzer/region-model-manager.cc | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/gcc/analyzer/region-model-manager.cc b/gcc/analyzer/region-model-manager.cc
index b631bcb04d0..26c34e38875 100644
--- a/gcc/analyzer/region-model-manager.cc
+++ b/gcc/analyzer/region-model-manager.cc
@@ -596,9 +596,6 @@ maybe_undo_optimize_bit_field_compare (tree type,
 				       tree cst,
 				       const svalue *arg1)
 {
-  if (type != unsigned_char_type_node)
-    return NULL;
-
   const binding_map &map = compound_sval->get_map ();
   unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (cst);
   /* If "mask" is a contiguous range of set bits, see if the

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-12-11 15:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-11 15:56 [gcc r14-6419] analyzer: Remove check of unsigned_char in maybe_undo_optimize_bit_field_compare Andrew Pinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).