[COMMITTED 11/12] - Make gori_map a shared component.

2024-05-23 Thread Andrew MacLeod
, and others. Documentation is coming :-P, Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From e81eafd81d76cf4e8b03089a94857b4b52a66bc7 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 21 May 2024 14:20:52 -0400 Subject: [PATCH 11/12] Make gori_map a shared component. Move

[COMMITTED 06/12] tree-optimization/113879 - Add inferred ranges for range-ops based statements.

2024-05-23 Thread Andrew MacLeod
985581b05f32b62df15b60833a8a57544dbbd739 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 2 May 2024 12:23:18 -0400 Subject: [PATCH 06/12] Add inferred ranges for range-ops based statements. Gimple_range_fold contains some shorthand fold_range routines for easy user consumption of that range

[COMMITTED 09/12] - Gori_compute inherits from gimple_outgoing_range.

2024-05-23 Thread Andrew MacLeod
/AndrewMacLeod/GimpleOutgoingRange The more advanced GORI ssa-name processing engine has not been written yet.  its on the to-do list :-) Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From 8feb69600dd696fb8a6e3b88b7d159ced5cb0eb9 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date

[COMMITTED 05/12] - Move infer_manager to a range_query oracle.

2024-05-23 Thread Andrew MacLeod
only knew what block it came from). Future functionality will make use of the more specific information. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From 837ce8a2d75231b68f13da00d9be8d2fd404804e Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Fri, 17 May 2024 10:50:24

[COMMITTED 12/12] - Move condexpr_adjust into gimple-range-fold

2024-05-23 Thread Andrew MacLeod
belongs. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From eb66da78b896ad5e7f6a315413ed68273c83662f Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 21 May 2024 12:41:49 -0400 Subject: [PATCH 12/12] Move condexpr_adjust into gimple-range-fold Certain components of GORI

[COMMITTED 10/12] - Make GORI a range_query component.

2024-05-23 Thread Andrew MacLeod
59a3a0ad763bc03ad5ab630a62fbc78ae50b486f Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Fri, 17 May 2024 14:27:12 -0400 Subject: [PATCH 10/12] Make GORI a range_query component. This patch moves the GORI component into the range_query object, and makes it generally available. This makes it much easier to share

[COMMITTED 03/12] - Rename relation oracle and API.

2024-05-23 Thread Andrew MacLeod
. relation->register_relation and relation->query_relation seem a bit texty.  they are now  relation.record () and relation.query () Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From 3a5b702c4082950d614fe12a066609da23363246 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod

[COMMITTED 04/12] - Allow components to be shared among range-queries.

2024-05-23 Thread Andrew MacLeod
what all components are involved. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From ef99d19569a1c5fafa5784c2c2f7855b6e62ffd8 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Fri, 17 May 2024 10:44:27 -0400 Subject: [PATCH 04/12] Allow components to be shared among range

[COMMITTED 07/12] - Default gimple_outgoing_range to not process switches.

2024-05-23 Thread Andrew MacLeod
for a GORI object now. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From 1ec8e2027a99a5ddca933a37b3cf5ef322208c5a Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 6 May 2024 12:04:24 -0400 Subject: [PATCH 07/12] Default gimple_outgoing_range to not process switches

[COMMITTED 08/12] - Gori_compute no longer inherits from gori_map.

2024-05-23 Thread Andrew MacLeod
9b42fafa0ec385bbc86be1d9f1a86c140e1045c3 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 9 May 2024 14:14:31 -0400 Subject: [PATCH 08/12] Gori_compute no longer inherits from gori_map. This patch moves the gori_compute object away from inheriting a gori_map object and instead it as a local member. Export it via map

[COMMITTED 00/12] Cleanup some ranger components and make them available via range_query.

2024-05-23 Thread Andrew MacLeod
This set of 12 patches overhauls some structural component layouts in ranger and makes them available via a simple range_query API. There are 3 main groups of patches.  The first group overhauls the relation oracle a bit and makes it accessing it via range_query more transparent.  The

[COMMITTED 02/12] - Move to an always available relation oracle.

2024-05-23 Thread Andrew MacLeod
.. It also unifies the register and query names to nor specify what is already apparent in the parameters. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From 2f80eb1feb3f92c7e9e57d4726ec52ca7d27ce92 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 30 Apr 2024 09:35

[COMMITTED 01/12] - Move all relation queries into relation_oracle.

2024-05-23 Thread Andrew MacLeod
/Relations Moving the queries into the oracle removes the need to check for a NULL pointer on every query, and results in speeding up VRP by about 0.7% Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. From b0cbffd5655b9fc108691c6b15e8eaed4ab9746a Mon Sep 17 00:00:00 2001 From: Andrew

Re: [PATCHv2] Value range: Add range op for __builtin_isfinite

2024-05-14 Thread Andrew MacLeod
On 5/9/24 04:47, HAO CHEN GUI wrote: Hi Mikael, Thanks for your comments. 在 2024/5/9 16:03, Mikael Morin 写道: I think the canonical API behaviour sets R to varying and returns true instead  of just returning false if nothing is known about the range. I'm not sure whether it makes any

Re: [PATCHv2] Value range: Add range op for __builtin_isfinite

2024-05-14 Thread Andrew MacLeod
On 5/13/24 22:16, HAO CHEN GUI wrote: Hi Aldy, Thanks for your review comments. 在 2024/5/13 19:18, Aldy Hernandez 写道: +//Implement range operator for CFN_BUILT_IN_ISFINITE +class cfn_isfinite : public range_operator +{ +public: + using range_operator::fold_range; + using

[COMMITTED][GCC12] Backport of 111009 patch.

2024-05-13 Thread Andrew MacLeod
Same patch for gcc12. bootstraps and passes all tests on x86_64-pc-linux-gnu On 5/9/24 10:32, Andrew MacLeod wrote: As requested, backported the patch for 111009 to resolve incorrect ranges from addr_expr and committed to GCC 13 branch. bootstraps and passes all tests on x86_64-pc-linux-gnu

[COMMITTED][GCC13] Backport of 111009 patch.

2024-05-09 Thread Andrew MacLeod
As requested, backported the patch for 111009 to resolve incorrect ranges from addr_expr and committed to GCC 13 branch. bootstraps and passes all tests on x86_64-pc-linux-gnu Andrew commit 7a0b2d5aad263beb9babebf2b96c9660d090607e Author: Andrew MacLeod Date: Wed May 8 10:22:23 2024 -0400

[COMMITTED 5/5] Remove incorrect asserts.

2024-04-30 Thread Andrew MacLeod
while working on some new range-op enhancements, I found a couple of developing asserts that no longer apply.  This removed them. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew From a89de3a24d2312438848e513a0b02b480d52c81e Mon Sep 17 00:00:00 2001 From: Andrew MacLeod

[COMMITTED 2/5] Fix ranger when called from SCEV.

2024-04-30 Thread Andrew MacLeod
provides some modest speedups. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew From 83e95c10ed822270e39cb8da8c09f607ad65abbd Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 13 Mar 2024 14:10:41 -0400 Subject: [PATCH 2/9] Fix ranger when called from SCEV. Do

[COMMITTED 4/5] - Add range_on_entry/exit to value_query API.

2024-04-30 Thread Andrew MacLeod
in the API. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew From 4b955ac10f3d978a9be491d9c528da005895 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 13 Mar 2024 14:18:48 -0400 Subject: [PATCH 4/9] Add range_on_entry/exit to value_query API. Add range_on_entry

[COMMITTED 3/5] Invoke range_of_stmt on ssa_names with no context.

2024-04-30 Thread Andrew MacLeod
cca3c4f2e7075fe613ac1cd67a3e1743faf33505 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 13 Mar 2024 14:13:28 -0400 Subject: [PATCH 3/9] Invoke range_of_stmt on ssa_names with no context. Evalaute ssa-names when range_of_expr is called with no context statement by calling range_of_stmt to get an initial value. * gimple

[COMMITTED 1/5] Remove wrapper around gimple_range_global.

2024-04-30 Thread Andrew MacLeod
condition checking on every access to a global. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew From f3571462b581e1b57d563268483207bc929de952 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 20 Feb 2024 12:27:51 -0500 Subject: [PATCH 1/9] Remove wrapper around

Re: PING^1 [PATCH] range: Workaround different type precision issue between _Float128 and long double [PR112788]

2023-12-12 Thread Andrew MacLeod
I leave this for the release managers, but I am not opposed to it for this release... It would be nice to remove it for the next release Andrew On 12/12/23 01:07, Kewen.Lin wrote: Hi, Gentle ping this: https://gcc.gnu.org/pipermail/gcc-patches/2023-December/639140.html BR, Kewen on

Re: [Patch] OpenMP: Minor '!$omp allocators' cleanup - and still: Re: [patch] OpenMP/Fortran: Implement omp allocators/allocate for ptr/allocatables

2023-12-11 Thread Andrew MacLeod
On 12/11/23 17:12, Thomas Schwinge wrote: Hi! This issue would've been prevented if we'd actually use a distinct C++ data type for GCC types, checkable at compile time -- I'm thus CCing Andrew MacLeod for amusement or crying, "one more for the list!". ;-\ Perhaps the tim

Re: [PATCH] tree-optimization/112843 - update_stmt doing wrong things

2023-12-05 Thread Andrew MacLeod
On 12/5/23 03:27, Richard Biener wrote: The following removes range_query::update_stmt and its single invocation from update_stmt_operands. That function is not supposed to look beyond the raw stmt contents of the passed stmt since there's no guarantee about the rest of the IL. I've

[COMMITTED] Use range_compatible_p in check_operands_p.

2023-12-01 Thread Andrew MacLeod
with no new regressions. Andrew From c6bb413eeb9d13412e8101e3029099d7fd746708 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Fri, 1 Dec 2023 11:15:33 -0500 Subject: [PATCH] Use range_compatible_p in check_operands_p. Instead of directly checking type precision, check_operands_p should invoke

[COMMITTED 2/2] PR tree-optimization/111922 - Check operands before invoking fold_range.

2023-11-29 Thread Andrew MacLeod
5f0c0f02702eba568374a7d82ec9463edd1a905c Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 28 Nov 2023 13:02:35 -0500 Subject: [PATCH 2/2] Check operands before invoking fold_range. Call check_operands_p before fold_range to make sure it is a valid operation. PR tree-optimization/111922 gcc/ * ipa-cp.cc

[COMMITTED 1/2] Add operand_check_p to range-ops.

2023-11-29 Thread Andrew MacLeod
inux-gnu with no regressions. committed. Andrew From 9f1149ef823b64ead6115f79f99ddf8eead1c2f4 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 28 Nov 2023 09:39:30 -0500 Subject: [PATCH 1/2] Add operand_check_p to range-ops. Add an optional method to verify operands are compatible, a

[PATCH] PR tree-optimization/111922 - Ensure wi_fold arguments match precisions.

2023-11-24 Thread Andrew MacLeod
f9cddb4cf931826f09197ed0fc2d6d64e6ccc3c3 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 22 Nov 2023 17:24:42 -0500 Subject: [PATCH] Ensure wi_fold arguments match precisions. Return VARYING if any of the required operands or types to wi_fold do not match expected precisions. PR tree-optimization

Re: Propagate value ranges of return values

2023-11-20 Thread Andrew MacLeod
On 11/18/23 20:21, Jan Hubicka wrote: Hi, this patch implements very basic propaation of return value ranges from VRP pass. This helps std::vector's push_back since we work out value range of allocated block. This propagates only within single translation unit. I hoped we will also do the

[COMMITTED] PR tree-optimization/112509 - Use case label type to create case range.

2023-11-14 Thread Andrew MacLeod
4553a0496458a712dfd2f04b9803b611fdc777cc Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 13 Nov 2023 09:58:10 -0500 Subject: [PATCH] Use case label type to create case range. Create a range from the label type, and cast it to the required type. PR tree-optimization/112509 gcc/ * tree-vrp.cc

[PATCH][GCC13] PR tree-optimization/105834 - Choose better initial values for ranger.

2023-11-06 Thread Andrew MacLeod
As requested porting this patch from trunk resolves this PR in GCC 13. Bootstraps on x86_64-pc-linux-gnu with no regressions.  OK for the gcc 13 branch? Andrew From 0182a25607fa353274c27ec57ca497c00f1d1b76 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 6 Nov 2023 11:33:32 -0500

[COMMITTED 2/2] PR tree-optimization/111766 - Adjust operators equal and not_equal to check bitmasks against constants

2023-11-03 Thread Andrew MacLeod
] [2, +INF] MASK 0xfffe VALUE 0x1  will indicate that any even constants will be false. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From eb899fee35b8326b2105c04f58fd58bbdeca9d3b Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 25 Oct 2023 09:46:50 -0400 Sub

[COMMITTED 1/2] Remove simple ranges from trailing zero bitmasks.

2023-11-03 Thread Andrew MacLeod
those bits with those bits from the value field. Bootstraps on build-x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From b20f1dce46fb8bb1b142e9087530e546a40edec8 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 31 Oct 2023 11:51:34 -0400 Subject: [PATCH 1/2] Remove simple ranges fro

[COMMITTED] Faster irange union for appending ranges.

2023-10-25 Thread Andrew MacLeod
.  The result is a 2.1% speedup in VRP and a 0.8% speedup in threading, with a overall compile time improvement of 0.14% across the GCC build. Bootstrapped on  x86_64-pc-linux-gnu with no regressions. Pushed. Andrew commit f7dbf6230453c76a19921607601eff968bb70169 Author: Andrew MacLeod Date

Re: [COMMITTED] PR tree-optimization/111622 - Do not add partial equivalences with no uses.

2023-10-13 Thread Andrew MacLeod
of course the patch would be handy... On 10/13/23 09:23, Andrew MacLeod wrote: Technically PR 111622 exposes a bug in GCC 13, but its been papered over on trunk by this: commit 9ea74d235c7e7816b996a17c61288f02ef767985 Author: Richard Biener Date:   Thu Sep 14 09:31:23 2023 +0200

[COMMITTED] [GCC13] PR tree-optimization/111622 - Do not add partial equivalences with no uses.

2023-10-13 Thread Andrew MacLeod
425964b77ab5b9631e914965a7397303215c77a1 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 12 Oct 2023 17:06:36 -0400 Subject: [PATCH] Do not add partial equivalences with no uses. PR tree-optimization/111622 * value-relation.cc (equiv_oracle::add_partial_equiv): Do not register a partial

[COMMITTED] PR tree-optimization/111622 - Do not add partial equivalences with no uses.

2023-10-13 Thread Andrew MacLeod
Technically PR 111622 exposes a bug in GCC 13, but its been papered over on trunk by this: commit 9ea74d235c7e7816b996a17c61288f02ef767985 Author: Richard Biener Date: Thu Sep 14 09:31:23 2023 +0200 tree-optimization/111294 - better DCE after forwprop This removes a lot of dead

[COMMITTED][GCC13] PR tree-optimization/111694 - Ensure float equivalences include + and - zero.

2023-10-11 Thread Andrew MacLeod
Similar patch which was checked into trunk last week.   slight tweak needed as dconstm0 was not exported in gcc 13, otherwise functionally the same Bootstrapped on x86_64-pc-linux-gnu.  pushed. Andrew commit f0efc4b25cba1bd35b08b7dfbab0f8fc81b55c66 Author: Andrew MacLeod Date: Mon Oct 9 13

[COMMITTED] PR tree-optimization/111694 - Ensure float equivalences include + and - zero.

2023-10-09 Thread Andrew MacLeod
. Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From b0892b1fc637fadf14d7016858983bc5776a1e69 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 9 Oct 2023 10:15:07 -0400 Subject: [PATCH 2/2] Ensure float equivalences include + and - zero. A floating point equivalence may

[COMMITTED] Remove unused get_identity_relation.

2023-10-09 Thread Andrew MacLeod
of VREL_EQ... as there is only one.  As it stands, always returns VREL_EQ, so simply use VREL_EQ in the 2 calling locations. Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 5ee51119d1345f3f13af784455a4ae466766912b Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date

[COMMITTED 0/3] Add a FAST VRP pass.

2023-10-05 Thread Andrew MacLeod
the following set of 3 patches provide the infrastructure for a fast vrp pass. The pass is currently not invoked anywhere, but I wanted to get the infrastructure bits in place now... just in case we want to use it somewhere. It clearly bootstraps with no regressions since it isn't being

[COMMITTED 3/3] Create a fast VRP pass

2023-10-05 Thread Andrew MacLeod
file with the extension .fvrp. pushed. From f4e2dac53fd62fbf2af95e0bf26d24e929fa1f66 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 2 Oct 2023 18:32:49 -0400 Subject: [PATCH 3/3] Create a fast VRP pass * timevar.def (TV_TREE_FAST_VRP): New. * tree-pass.h (make_pass_fast_vrp): New

[COMMITTED 1/3] Add outgoing range vector calculation API.

2023-10-05 Thread Andrew MacLeod
whether NAME has a range, and returns it if it does.  not other overhead. Pushed. From 52c1e2c805bc2fd7a30583dce3608b738f3a5ce4 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 15 Aug 2023 17:29:58 -0400 Subject: [PATCH 1/3] Add outgoing range vector calcualtion API Provide a GORI API w

[COMMITTED 2/3] Add a dom based ranger for fast VRP.

2023-10-05 Thread Andrew MacLeod
anywhere. Pushed. Andrew From ad8cd713b4e489826e289551b8b8f8f708293a5b Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Fri, 28 Jul 2023 13:18:15 -0400 Subject: [PATCH 2/3] Add a dom based ranger for fast VRP. Provide a dominator based implementation of a range query. * gimple_range.cc

[COMMITTED] Don't use range_info_get_range for pointers.

2023-10-03 Thread Andrew MacLeod
d8808c37d29110872fa51b98e71aef9e160b4692 Author: Andrew MacLeod Date: Tue Oct 3 12:32:10 2023 -0400 Don't use range_info_get_range for pointers. Pointers only track null and nonnull, so we need to handle them specially. * tree-ssanames.cc (set_range_info): Use get_ptr_info

Re: [COMMITTED] Remove pass counting in VRP.

2023-10-03 Thread Andrew MacLeod
On 10/3/23 13:02, David Malcolm wrote: On Tue, 2023-10-03 at 10:32 -0400, Andrew MacLeod wrote: Pass counting in VRP is used to decide when to call early VRP, pass the flag to enable warnings, and when the final pass is. If you try to add additional passes, this becomes quite fragile

Re: [COMMITTED] Return TRUE only when a global value is updated.

2023-10-03 Thread Andrew MacLeod
perfect.  I'll check it in when my testrun is done. Thanks  .. .  and sorry :-) Andrew On 10/3/23 12:53, David Edelsohn wrote: AIX bootstrap is happier with the patch. Thanks, David On Tue, Oct 3, 2023 at 12:30 PM Andrew MacLeod wrote: Give this a try..  I'm testing it here, but x86

Re: [COMMITTED] Return TRUE only when a global value is updated.

2023-10-03 Thread Andrew MacLeod
Give this a try..  I'm testing it here, but x86 doesn't seem to show it anyway for some reason :-P I think i needed to handle pointers special since SSA_NAMES handle pointer ranges different. Andrew On 10/3/23 11:47, David Edelsohn wrote: This patch caused a bootstrap failure on AIX.

Re: [COMMITTED] Return TRUE only when a global value is updated.

2023-10-03 Thread Andrew MacLeod
huh.  thanks,  I'll have a look. Andrew On 10/3/23 11:47, David Edelsohn wrote: This patch caused a bootstrap failure on AIX. during GIMPLE pass: evrp /nasfarm/edelsohn/src/src/libgcc/libgcc2.c: In function '__gcc_bcmp': /nasfarm/edelsohn/src/src/libgcc/libgcc2.c:2910:1: internal compiler

[COMMITTED] Remove pass counting in VRP.

2023-10-03 Thread Andrew MacLeod
on there) Bootstraps  on x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew From 29abc475a360ad14d5f692945f2805fba1fdc679 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 28 Sep 2023 09:19:32 -0400 Subject: [PATCH 2/5] Remove pass counting in VRP. Rather than using a pass count

[COMMITTED] Return TRUE only when a global value is updated.

2023-10-03 Thread Andrew MacLeod
a range but turns out it was really being set in DOM2.   Instead they check for the range in the final listing... Bootstrapped on  x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From dae5de2a2353b928cc7099a78d88a40473abefd2 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 27 Sep

[COMMITTED] PR tree-optimization/111599 - Ensure ssa_name is still valid.

2023-09-26 Thread Andrew MacLeod
17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 26 Sep 2023 09:27:52 -0400 Subject: [PATCH] Ensure ssa_name is still valid. When the IL changes, an equivalence set may contain ssa_names that no longer exist. Ensure names are still valid and not in the free list. PR tree-optimization/111599

[COMMITTED][GCC13] PR tree-optimization/110315 - Reduce the initial size of int_range_max.

2023-09-26 Thread Andrew MacLeod
70639014a69cf50fe11dc1adbfe1db4c7760ce69 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 26 Sep 2023 09:44:39 -0400 Subject: [PATCH] Reduce the initial size of int_range_max. This patch adds the ability to resize ranges as needed, defaulting to no resizing. int_range_max now defaults to 3 sub

Re: [PATCH] Add missing return in gori_compute::logical_combine

2023-09-25 Thread Andrew MacLeod
OK for trunk at least.   Thanks.  I presume it'll be fine for the other releases. Andrew On 9/25/23 11:51, Eric Botcazou wrote: Hi, the varying case currently falls through to the 1/true case. Tested on x86_64-suse-linux, OK for mainline, 13 and 12 branches? 2023-09-25 Eric Botcazou

[COMMITTED] Tweak ssa_cache::merge_range API.

2023-09-20 Thread Andrew MacLeod
ually from a global table. Bootstraps on 86_64-pc-linux-gnu with no regressions.   Pushed. Andrew commit 0885e96272f1335c324f99fd2d1e9b0b3da9090c Author: Andrew MacLeod Date: Wed Sep 20 12:53:04 2023 -0400 Tweak merge_range API. merge_range use to return TRUE if ter was already a ar

Re: [PATCH] [RFC] New early __builtin_unreachable processing.

2023-09-19 Thread Andrew MacLeod
On 9/19/23 08:56, Richard Biener wrote: On Mon, Sep 18, 2023 at 3:48 PM Andrew MacLeod wrote: OK. I dont see anything in the early VRP processing now that would allow a later pass to remove the unreachable unless it does its own analysis like DOM might do. Isn't it as simple

Re: [PATCH] [RFC] New early __builtin_unreachable processing.

2023-09-18 Thread Andrew MacLeod via Gcc-patches
On 9/18/23 02:53, Richard Biener wrote: On Fri, Sep 15, 2023 at 4:45 PM Andrew MacLeod wrote: Ive been looking at __builtin_unreachable () regressions. The fundamental problem seems to be a lack of consistent expectation for when we remove it earlier than the final pass of VRP.After

[PATCH] [RFC] New early __builtin_unreachable processing.

2023-09-15 Thread Andrew MacLeod via Gcc-patches
't set the global value until VRP2 when it is removed. Does this seem reasonable? Bootstraps on x86_64-pc-linux-gnu with no regressions.  OK? Andrew From 87072ebfcd4f51276fc6ed1fb0557257d51ec446 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 13 Sep 2023 11:52:15 -0400 Subject: [PAT

[COMMITTED 2/2] Always do PHI analysis before loop analysis.

2023-09-15 Thread Andrew MacLeod via Gcc-patches
from within that area), and does it unconditionally.  There is minimal impact on compilation time. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 5d5f90ec3b4a939cae5ce4f33b76849f6b08e3a9 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 13 Sep 2023 10:09:16

[COMMITTED 1/2] Fix indentation in range_of_phi.

2023-09-15 Thread Andrew MacLeod via Gcc-patches
Somewhere along the way a large sequence of code in range_of_phi() ended up with the same indentation of the preceeding loop.. this simply fixes it. committed as obvious. Andrew From e35c3b5335879afb616c6ead0f41bf6c275ee941 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 13 Sep 2023

Re: [PATCH] Checking undefined_p before using the vr

2023-09-15 Thread Andrew MacLeod via Gcc-patches
On 9/14/23 22:07, Jiufu Guo wrote: undefined is a perfectly acceptable range.  It can be used to represent either values which has not been initialized, or more frequently it identifies values that cannot occur due to conflicting/unreachable code.  VARYING means it can be any range, UNDEFINED

Re: [PATCH] Checking undefined_p before using the vr

2023-09-13 Thread Andrew MacLeod via Gcc-patches
On 9/12/23 21:42, Jiufu Guo wrote: Hi, Richard Biener writes: On Thu, 7 Sep 2023, Jiufu Guo wrote: Hi, As discussed in PR111303: For pattern "(X + C) / N": "div (plus@3 @0 INTEGER_CST@1) INTEGER_CST@2)", Even if "X" has value-range and "X + C" does not overflow, "@3" may still be

[COMMITTED] PR tree-optimization/110875 - Some ssa-names get incorrectly marked as always_current.

2023-09-07 Thread Andrew MacLeod via Gcc-patches
w From e9be59f7d2dc6b302cf85ad69b0a77dee89ec809 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 7 Sep 2023 11:15:50 -0400 Subject: [PATCH] Some ssa-names get incorrectly marked as always_current. When range_of_stmt invokes prefill_name to evaluate unvisited dependencies it should not mark alrea

Re: [PATCH 2/2] VR-VALUES: Rewrite test_for_singularity using range_op_handler

2023-09-07 Thread Andrew MacLeod via Gcc-patches
On 9/1/23 02:40, Andrew Pinski wrote: On Fri, Aug 11, 2023 at 8:08 AM Andrew MacLeod via Gcc-patches wrote: If this is only going to work with integers, you might want to check that somewhere or switch to irange and int_range_max.. You can make it work with any kind (if you know op1

[COMMITTED 2/2] tree-optimization/110918 - Phi analyzer - Initialize with a range instead of a tree.

2023-08-23 Thread Andrew MacLeod via Gcc-patches
on when it simply dumped the groups at the end of processing. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From bd50bbfa95e51edf51392f147e9a860adb5f495e Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 17 Aug 2023 12:34:59 -0400 Subject: [PATCH 2/4] Phi analyzer

[COMMITTED 1/2] Phi analyzer - Do not create phi groups with a single phi.

2023-08-23 Thread Andrew MacLeod via Gcc-patches
. Pushed. Andrew From 9855b3f0a2869d456f0ee34a94a1231eb6d44c4a Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 16 Aug 2023 13:23:06 -0400 Subject: [PATCH 1/4] Don't process phi groups with one phi. The phi analyzer should not create a phi group containing a single phi. * gimple-range-phi.cc

[COMMITTED] PR tree-optimization/111009 - Fix range-ops operator_addr.

2023-08-17 Thread Andrew MacLeod via Gcc-patches
rules instead of calling fold_range. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From dc48d1d1d4458773f89f21b2f019f66ddf88f2e5 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 17 Aug 2023 11:13:14 -0400 Subject: [PATCH] Fix range-ops operator_addr. Lack of symboli

Re: [PATCH 2/2] VR-VALUES: Rewrite test_for_singularity using range_op_handler

2023-08-11 Thread Andrew MacLeod via Gcc-patches
On 8/11/23 05:51, Richard Biener wrote: On Fri, Aug 11, 2023 at 11:17 AM Andrew Pinski via Gcc-patches wrote: So it turns out there was a simplier way of starting to improve VRP to start to fix PR 110131, PR 108360, and PR 108397. That was rewrite test_for_singularity to use range_op_handler

[COMMITTED] Add operand ranges to op1_op2_relation API.

2023-08-03 Thread Andrew MacLeod via Gcc-patches
in no current functional changes. Bootstraps on  x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew From de7ae277f497ed5b533af877fe26d8f133760f8b Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 1 Aug 2023 14:33:09 -0400 Subject: [PATCH 3/3] Add operand ranges to op1_op2_relation API

[COMMITTED] Provide a routine for NAME == NAME relation.

2023-08-03 Thread Andrew MacLeod via Gcc-patches
2001 From: Andrew MacLeod Date: Wed, 2 Aug 2023 10:58:37 -0400 Subject: [PATCH 2/3] Provide a routine for NAME == NAME relation. We've been assuming x == x s VREL_EQ in GORI, but this is not always going to be true with floating point. Provide an API to return the relation. * gimple-range

[COMMITTED] Automatically set type is certain Value_Range routines.

2023-08-03 Thread Andrew MacLeod via Gcc-patches
: Value_Range r1; r1.set_varying (TREE_TYPE (name)); Bootstraps on  x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew From 1fbde4cc5fb7ad4b08f0f7ae1f247f9b35124f99 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 2 Aug 2023 17:46:58 -0400 Subject: [PATCH 1/3] Automatically set type

Re: [PATCH V5 1/2] Add overflow API for plus minus mult on range

2023-08-03 Thread Andrew MacLeod via Gcc-patches
This is OK. On 8/2/23 22:18, Jiufu Guo wrote: Hi, I would like to have a ping on this patch. BR, Jeff (Jiufu Guo) Jiufu Guo writes: Hi, As discussed in previous reviews, adding overflow APIs to range-op would be useful. Those APIs could help to check if overflow happens when operating

[COMMITTED] PR tree-optimization/110582 - fur_list should not use the range vector for non-ssa, operands.

2023-07-31 Thread Andrew MacLeod via Gcc-patches
p 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 31 Jul 2023 10:08:51 -0400 Subject: [PATCH] fur_list should not use the range vector for non-ssa operands. gcc/ PR tree-optimization/110582 * gimple-range-fold.cc (fur_list::get_operand): Do not use the range vector for non-ssa names.

[COMMITTED] Remove value_query, push into sub class.

2023-07-28 Thread Andrew MacLeod via Gcc-patches
into substitute_and_fold, the only place that uses it. Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 619641397a558bf65c24b99a4c52878bd940fcbe Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sun, 16 Jul 2023 12:46:00 -0400 Subject: [PATCH 2/3] Remove value_query, push

[COMMITTED] Add a merge_range to ssa_cache and use it.

2023-07-28 Thread Andrew MacLeod via Gcc-patches
cache has any active elements in it or not. Bootstrapped on 86_64-pc-linux-gnu with no regressions.   Pushed. Andrew From 72fb44ca53fda15024e0c272052b74b1f32735b1 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Fri, 28 Jul 2023 11:00:57 -0400 Subject: [PATCH 3/3] Add a merge_range

[COMMITTED] PR tree-optimization/110205 -Fix some warnings

2023-07-28 Thread Andrew MacLeod via Gcc-patches
This patch simply fixes the code up a little to remove potential warnings. Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 7905c071c35070fff3397b1e24f140c128c08e64 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 10 Jul 2023 13:58:22 -0400 Subject: [PATCH

Re: [PATCH] [GCC13] PR tree-optimization/110315 - Add auto-resizing capability to irange's

2023-07-24 Thread Andrew MacLeod via Gcc-patches
On 7/24/23 12:49, Richard Biener wrote: Am 24.07.2023 um 16:40 schrieb Andrew MacLeod via Gcc-patches : Aldy has ported his irange reduction patch to GCC 13. It resolves this PR. I have bootstrapped it and it passes regression tests. Do we want to check it into the GCC 13 branch

[PATCH] [GCC13] PR tree-optimization/110315 - Add auto-resizing capability to irange's

2023-07-24 Thread Andrew MacLeod via Gcc-patches
Aldy has ported his irange reduction patch to GCC 13.  It resolves this PR. I have bootstrapped it and it passes regression tests. Do we want to check it into the GCC 13 branch?  The patch has all his comments in it. Andrew From 777aa930b106fea2dd6ed9fe22b42a2717f1472d Mon Sep 17 00:00:00

Re: [PATCH V4] Optimize '(X - N * M) / N' to 'X / N - M' if valid

2023-07-17 Thread Andrew MacLeod via Gcc-patches
On 7/17/23 09:45, Jiufu Guo wrote: Should we decide we would like it in general, it wouldnt be hard to add to irange.  wi_fold() cuurently returns null, it could easily return a bool indicating if an overflow happened, and wi_fold_in_parts and fold_range would simply OR the results all

Re: [PATCH V4] Optimize '(X - N * M) / N' to 'X / N - M' if valid

2023-07-14 Thread Andrew MacLeod via Gcc-patches
On 7/14/23 09:37, Richard Biener wrote: On Fri, 14 Jul 2023, Aldy Hernandez wrote: I don't know what you're trying to accomplish here, as I haven't been following the PR, but adding all these helper functions to the ranger header file seems wrong, especially since there's only one use of

[COMMITTED 5/5] Make compute_operand_range a tail call.

2023-07-05 Thread Andrew MacLeod via Gcc-patches
From 51ed3a6ce432e7e6226bb62125ef8a09b2ebf60c Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 5 Jul 2023 14:26:00 -0400 Subject: [PATCH 5/6] Make compute_operand_range a tail call. Tweak the routine so it is making a tail call. * gimple-range-gori.cc (compute_operand_range): Convert

[COMMITTED 4/5] Make compute_operand2_range a leaf call.

2023-07-05 Thread Andrew MacLeod via Gcc-patches
298952bcf05d298892e99adba1f4a75af17bc65a Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 5 Jul 2023 13:52:21 -0400 Subject: [PATCH 4/6] Make compute_operand2_range a leaf call. Rather than creating long call chains, put the onus for finishing the evlaution on the caller. * gimple-range-gori.cc

[COMMITTED 3/5] Make compute_operand1_range a leaf call.

2023-07-05 Thread Andrew MacLeod via Gcc-patches
912b5ac49677160aada7a2d862273251406dfca5 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 5 Jul 2023 13:41:50 -0400 Subject: [PATCH 3/6] Make compute_operand1_range a leaf call. Rather than creating long call chains, put the onus for finishing the evlaution on the caller. * gimple-range-gori.cc

[COMMITTED 2/5] Simplify compute_operand_range for op1 and op2 case.

2023-07-05 Thread Andrew MacLeod via Gcc-patches
  with no regressions.  Pushed. Andrew From 7276248946d3eae83e5e08fc023163614c9ea9ab Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 5 Jul 2023 13:36:27 -0400 Subject: [PATCH 2/6] Simplify compute_operand_range for op1 and op2 case. Move the check for co-dependency between 2 operands

[COMMITTED 1/5] Move relation discovery into compute_operand_range

2023-07-05 Thread Andrew MacLeod via Gcc-patches
  with no regressions.  Pushed. Andrew From 290798faef706c335bd346b13771f977ddedb415 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 4 Jul 2023 11:28:52 -0400 Subject: [PATCH 1/6] Move relation discovery into compute_operand_range compute_operand1_range and compute_operand2_range were

Re: Enable ranger for ipa-prop

2023-06-27 Thread Andrew MacLeod via Gcc-patches
On 6/27/23 12:24, Jan Hubicka wrote: On 6/27/23 09:19, Jan Hubicka wrote: Hi, as shown in the testcase (which would eventually be useful for optimizing std::vector's push_back), ipa-prop can use context dependent ranger queries for better value range info. Bootstrapped/regtested

Re: Enable ranger for ipa-prop

2023-06-27 Thread Andrew MacLeod via Gcc-patches
On 6/27/23 09:19, Jan Hubicka wrote: Hi, as shown in the testcase (which would eventually be useful for optimizing std::vector's push_back), ipa-prop can use context dependent ranger queries for better value range info. Bootstrapped/regtested x86_64-linux, OK? Quick question. When you call

[COMMITTED] PR tree-optimization/110251 - Avoid redundant GORI calcuations.

2023-06-26 Thread Andrew MacLeod via Gcc-patches
ushed. Andrew commit 6246ee062062b53275c229daf8676ccaa535f419 Author: Andrew MacLeod Date: Thu Jun 22 10:00:12 2023 -0400 Avoid redundant GORI calcuations. When GORI evaluates a statement, if operand 1 and 2 are both in the dependency chain, GORI evaluates the name through

[PATCH] PR tree-optimization/110266 - Check for integer only complex

2023-06-15 Thread Andrew MacLeod via Gcc-patches
under way.  Assuming there are no issues, I will push this. Andrew From 2ba20a9e7b41fbcf1f03d5447e14b9b7b174fead Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 15 Jun 2023 11:59:55 -0400 Subject: [PATCH] Check for integer only complex. With the expanded capabilities of range-op

[COMMITTED 12/17] - Add a hybrid MAX_EXPR operator for integer and pointer.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
: Andrew MacLeod Date: Sat, 10 Jun 2023 16:35:18 -0400 Subject: [PATCH 12/17] Add a hybrid MAX_EXPR operator for integer and pointer. This adds an operator to the unified table for MAX_EXPR which will select either the pointer or integer version based on the type passed to the method

[COMMITTED 17/17] PR tree-optimization/110205 - Add some overrides.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
Add some missing overrides, and add the diaptch pattern for FII which will be used for integer to float conversion. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 1bed4b49302e2fd7bf89426117331ae89ebdc90b Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 12

[COMMITTED 10/17] - Add a hybrid BIT_IOR_EXPR operator for integer and pointer.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
Add a hybrid operator to choose between integer and pointer versions at runtime. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 80f402e832a2ce402ee1562030d5c67ebc276f7c Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 10 Jun 2023 16:33:17 -0400 Subject

[COMMITTED 15/17] - Provide a default range_operator via range_op_handler.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
.   THis allos use of range_op_handler() to behave as if you were indexing a range table/ if that happens to be needed. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 3c4399657d35a0b5bf7caeb88c6ddc0461322d3f Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 10 Jun 2

[COMMITTED 9/17] - Add a hybrid BIT_AND_EXPR operator for integer and pointer.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
Add a hybrid operator to choose between integer and pointer versions at runtime. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 8adb8b2fd5797706e9fbb353d52fda123545431d Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 10 Jun 2023 16:28:40 -0400 Subject

[COMMITTED 16/17] - Provide interface for non-standard operators.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
to declare new operators. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 6d3b6847bcb36221185a6259d19d743f4cfe1b5a Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 10 Jun 2023 17:06:36 -0400 Subject: [PATCH 16/17] Provide interface for non-standard operators

[COMMITTED 14/17] - Switch from unified table to range_op_table. There can be only one.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
Now that the unified table is the only one,  remove it and simply use range_op_table as the class instead of inheriting from it. Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 5bb9d2acd1987f788a52a2be9bca10c47033020a Mon Sep 17 00:00:00 2001 From: Andrew MacLeod

[COMMITTED 6/17] - Move operator_min to the unified range-op table.

2023-06-12 Thread Andrew MacLeod via Gcc-patches
Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 508645fd461ceb8b743837e24411df2e17bd3950 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 10 Jun 2023 16:09:58 -0400 Subject: [PATCH 06/17] Move operator_min to the unified range-op table. * range-op-mixed.h

[COMMITTED 13/17] - Remove type from range_op_handler table selection

2023-06-12 Thread Andrew MacLeod via Gcc-patches
:00:00 2001 From: Andrew MacLeod Date: Sat, 10 Jun 2023 16:41:20 -0400 Subject: [PATCH 13/17] Remove type from range_op_handler table selection With the unified table complete, we no loonger need to specify a type to choose a table when setting a range_op_handler. * gimple-range-gori.cc

[COMMITTED 8/17] - Split pointer based range operators to range-op-ptr.cc

2023-06-12 Thread Andrew MacLeod via Gcc-patches
This patch moves all the pointer specific code into a new file range-op-ptr.cc Bootstraps on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From cb511d2209fa3a05801983a6965656734c1592c6 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 10 Jun 2023 16:17:51 -0400 Subject

  1   2   3   4   5   6   7   8   9   10   >