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

2025-05-23 Thread Andrew MacLeod
On 9/29/23 16:17, Jeff Law wrote: On 9/5/23 01:12, Andrew Pinski wrote: On Mon, Sep 4, 2023 at 11:06 PM Jeff Law via Gcc-patches wrote: On 9/1/23 11:30, 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, P

Re: [COMMITTED] PR tee-optimization/120277 - Check for casts becoming UNDEFINED.

2025-05-16 Thread Andrew MacLeod
On 5/16/25 02:35, Richard Biener wrote: On Thu, May 15, 2025 at 7:02 PM Andrew MacLeod wrote: Recent changes to get_range_from_bitmask can sometimes turn a small range into an undefined one if the bitmask indicates the bits make all values impossible. range_cast () was not expecting this and

[COMMITTED 3/4] PR tee-optimization/116546 - Allow bitmask intersection to process unknown masks.

2025-05-15 Thread Andrew MacLeod
.   Pushed. Andrew From b3327649bffd32af962662dce054b94be2d7330d Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 14 May 2025 11:13:15 -0400 Subject: [PATCH 3/4] Allow bitmask intersection to process unknown masks. bitmask_intersection should not return immediately if the current mask is

[COMMITTED] PR tee-optimization/120277 - Check for casts becoming UNDEFINED.

2025-05-15 Thread Andrew MacLeod
w From f332f23d6b6b45dce3ab19440eecffa26bf3fc15 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 15 May 2025 11:06:05 -0400 Subject: [PATCH 1/5] Check for casts becoming UNDEFINED. In various situations a cast that is ultimately unreahcable may produce an UNDEFINED result, and we can't check th

[COMMITTED 1/4] PR tree-optimization/116546 - Turn get_bitmask_from_range into an irange_bitmask, constructor.

2025-05-15 Thread Andrew MacLeod
r for irange_bitmask. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  pushed. From e4c6a0214c3ea8aa73e50b1496eb7a8aa5eda635 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 13 May 2025 13:23:16 -0400 Subject: [PATCH 1/4] Turn get_bitmask_from_range into an irange_bitmask constructor.

[COMMITTED 4/4] PR tree-optimization/116546 - Enhance bitwise_and::op1_range

2025-05-15 Thread Andrew MacLeod
lves the PR by successfully tracking the bit through to the AND operation. Bootstraps on  x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew From ac55655ce45a237a6a01e0cce50211841603c2ec Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 14 May 2025 11:32:58 -0400 Subject: [PATC

[COMMITTED 2/4] PR tree-optimization/116546 - Improve constant bitmasks.

2025-05-15 Thread Andrew MacLeod
  :  [5, 7]  mask 0x3 value 0x4    //  first 6 bits are known to be 01 Bootstraps on  x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew From 65cd212bd4c533351a09e6974f40ae5d7effca84 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 14 May 2025 11:12:22 -0400 Subject: [PATCH 2/

[COMMITTED][gcc13] PR tree-optimization/117287 - Backport new assume implementation

2025-05-14 Thread Andrew MacLeod
On 4/29/25 18:00, Andrew MacLeod wrote: On 3/28/25 05:25, Jakub Jelinek wrote: On Fri, Mar 28, 2025 at 08:12:35AM +0100, Richard Biener wrote: On Thu, Mar 27, 2025 at 8:14 PM Andrew MacLeod wrote: This patch backports the ASSUME support that was rewritten in GCC 15. Its slightly more

[COMMITTED] Remove negative ranges using trailing zero masks.

2025-05-12 Thread Andrew MacLeod
regressions.   Pushed. Andrew From c40a4cc2d943d8572a62f21d3eb1d4171e51d5ac Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 8 May 2025 20:28:11 -0400 Subject: [PATCH] Remove negative ranges using trailing zero masks. When there are trailing 0's in the bitmask, set_range_from_bitmask ()

[COMMITTED] PR tree-optimization/120231 - Add dispatch for casts between integer and float.

2025-05-12 Thread Andrew MacLeod
perator for new operand combinations. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 6f375445ef09d5c97d5bcc0fcb6069612217963e Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 12 May 2025 11:41:37 -0400 Subject: [PATCH] Add dispatch for casts between intege

[PATCH] [GCC14] PR tree-optimization/120048 - Allow IPA_CP to handle UNDEFINED as VARYING.

2025-05-05 Thread Andrew MacLeod
On 5/3/25 07:41, Richard Biener wrote: On Sat, May 3, 2025 at 12:39 AM Andrew MacLeod wrote: On trunk I'll eventually do something different.. but it will be more invasive than I think is reasonable for a backport. The problem in the PR is that there is a variable with a range and

[PATCH][GCC15] PR tree-optimization/120048 - Allow IPA_CP to handle UNDEFINED as VARYING.

2025-05-05 Thread Andrew MacLeod
On 5/3/25 07:41, Richard Biener wrote: On Sat, May 3, 2025 at 12:39 AM Andrew MacLeod wrote: On trunk I'll eventually do something different.. but it will be more invasive than I think is reasonable for a backport. The problem in the PR is that there is a variable with a range and

Re: [PATCH][gcc13] PR tree-optimization/117287 - Backport new assume implementation

2025-05-04 Thread Andrew MacLeod
e: On Fri, Mar 28, 2025 at 08:12:35AM +0100, Richard Biener wrote: On Thu, Mar 27, 2025 at 8:14 PM Andrew MacLeod wrote: This patch backports the ASSUME support that was rewritten in GCC 15. Its slightly more complicated than the port to GCC 14 was in that a few classes have been rewritten. I&#

Re: [PATCH] PR tree-optimization/120048 - Allow IPA_CP to handle UNDEFINED as VARYING.

2025-05-03 Thread Andrew MacLeod
On 5/3/25 07:41, Richard Biener wrote: On Sat, May 3, 2025 at 12:39 AM Andrew MacLeod wrote: On trunk I'll eventually do something different.. but it will be more invasive than I think is reasonable for a backport. The problem in the PR is that there is a variable with a range and

[PATCH] PR tree-optimization/120048 - Allow IPA_CP to handle UNDEFINED as VARYING.

2025-05-02 Thread Andrew MacLeod
more failure. bootstraps on -x86_64-pc-linux-gnu  with no regressions. If this is acceptable, I will push it to trunk, then also test/verify for the GCC15 and 14(?) branches and check it in there. Andrew From bfe4b05074232fbba28f0c189762f46f3b042616 Mon Sep 17 00:00:00 2001 From: Andrew MacLe

Re: [PATCH] ranger: Improve nonnull_if_nonzero attribute [PR117023]

2025-05-02 Thread Andrew MacLeod
OK by me. Andrew On 5/2/25 10:48, Jakub Jelinek wrote: On Mon, Mar 31, 2025 at 11:30:20AM -0400, Andrew MacLeod wrote: From 7116177599a3bb907d21fe642a4bdcb401e1263b Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 31 Mar 2025 11:18:22 -0400 Subject: [PATCH 2/2] Use the current cache

Re: [COMMITTED] PR tree-optimization/119712 - Always reflect lower bits from mask in subranges.

2025-04-30 Thread Andrew MacLeod
On 4/30/25 02:56, Richard Biener wrote: On Wed, Apr 30, 2025 at 12:00 AM Andrew MacLeod wrote: On 4/28/25 17:26, Andrew MacLeod wrote: I have committed this patch to trunk after bootstrap/regression testing again on trunk. I'll get to gcc14/15 once I flush the current queue. Andrew

Re: [PATCH][gcc13] PR tree-optimization/117287 - Backport new assume implementation

2025-04-29 Thread Andrew MacLeod
On 3/28/25 05:25, Jakub Jelinek wrote: On Fri, Mar 28, 2025 at 08:12:35AM +0100, Richard Biener wrote: On Thu, Mar 27, 2025 at 8:14 PM Andrew MacLeod wrote: This patch backports the ASSUME support that was rewritten in GCC 15. Its slightly more complicated than the port to GCC 14 was in

Re: [PATCH] PR tree-optimization/95801 - infer non-zero for integral division RHS.

2025-04-29 Thread Andrew MacLeod
On 4/28/25 17:26, Andrew MacLeod wrote: I have committed this patch to trunk after bootstrap/regression testing again on trunk. I'll get to gcc14/15 once I flush the current queue. Andrew On 1/23/25 04:39, Richard Biener wrote: On Wed, Jan 22, 2025 at 12:49 AM Andrew MacLeod wrote:

Re: [COMMITTED] PR tree-optimization/119712 - Always reflect lower bits from mask in subranges.

2025-04-29 Thread Andrew MacLeod
On 4/28/25 17:26, Andrew MacLeod wrote: I have committed this patch to trunk after bootstrap/regression testing again on trunk. I'll get to gcc14/15 once I flush the current queue. Andrew On 4/17/25 06:44, Richard Biener wrote: On Wed, Apr 16, 2025 at 10:55 PM Andrew MacLeod wrote:

Re: [PATCH] PR tree-optimization/119471 - If the LHS does not contain zero, neither do multiply operands.

2025-04-29 Thread Andrew MacLeod
On 3/28/25 10:36, Andrew MacLeod wrote: On 3/28/25 03:19, Richard Biener wrote: On Fri, Mar 28, 2025 at 12:28 AM Andrew MacLeod wrote: This patch fixes both 119471 and the remainder of 110992. At issue is we do not recognize that if     "a * b != 0" , then neither "a"

[COMMITTED] Do not overwrite relation in range_of_range_op.

2025-04-28 Thread Andrew MacLeod
etween LHS and OP2...   so I dont think it needs back porting at this point... although it would be harmless to do so. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 1df77858cac29c71fc29bc6571e17d3b26d9d176 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: T

[COMITTED] Add a Relation iterator to the relation oracle.

2025-04-28 Thread Andrew MacLeod
"nearest" relations. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From bf2e0fb97183d46a84d283b795067d586d874556 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 10 Feb 2025 16:14:17 -0500 Subject: [PATCH 6/9] Add a Relation iterator to the relation ora

[COMMITTED] Add lhs_op1 relation to pointer_plus.

2025-04-28 Thread Andrew MacLeod
new dispatch patterns to range-ops as lhs_op1_relation had no prange/prange/irange combination. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 6b88dab02640f1653bbab66f411da1d28ef1c1dc Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 22 Apr 2025 10:36:26 -0400 Subj

[COMMITTED] PR tree-optimization/119712 - Always reflect lower bits from mask in subranges.

2025-04-28 Thread Andrew MacLeod
I have committed this patch to trunk after bootstrap/regression testing again on trunk. I'll get to gcc14/15 once I flush the current queue. Andrew On 4/17/25 06:44, Richard Biener wrote: On Wed, Apr 16, 2025 at 10:55 PM Andrew MacLeod wrote: This was a fun one! An actual bug, a

[COMMITTED ]Use the current Ranger cache when creating inferred ranges.

2025-04-28 Thread Andrew MacLeod
sions.  Pushed. Andrew From f2e2d6202b1af94a22775706d9987f155f3f6760 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 31 Mar 2025 11:18:22 -0400 Subject: [PATCH 3/9] Use the current cache when creating inferred ranges. Infer range processing was adjusted to allow a query to be specified, but d

Re: [PATCH] PR tree-optimization/95801 - infer non-zero for integral division RHS.

2025-04-28 Thread Andrew MacLeod
I have committed this patch to trunk after bootstrap/regression testing again on trunk. I'll get to gcc14/15 once I flush the current queue. Andrew On 1/23/25 04:39, Richard Biener wrote: On Wed, Jan 22, 2025 at 12:49 AM Andrew MacLeod wrote: This patch simply adds an op2_ran

Re: [PATCH] PR tree-optimization/119712 - Always reflect lower bits from mask in subranges.

2025-04-16 Thread Andrew MacLeod
On 4/16/25 16:55, Andrew MacLeod wrote: I started at a 0.2% overall compilation increase (1.8% in VRP). In the end, this patch is down to 0.6% in VRP, and only 0.08% overall, so manageable for all the extra work. Final version performance run... VRP slowed down by 0.28% Threading sped

Re: [PATCH] PR tree-optimization/119712 - Always reflect lower bits from mask in subranges.

2025-04-16 Thread Andrew MacLeod
On 4/16/25 17:28, Sam James wrote: Andrew MacLeod writes: * gcc.dg/tree-ssa/phi-opt-value-5.c  : WIth the expanded ranges, CCP2 pass use to export:    Global Exported: d_3 = [irange] int [-INF, +INF] MASK 0xfffe VALUE 0x1 and now    Global Exported: d_3 = [irange] int [-INF, -1][1

[PATCH] PR tree-optimization/119712 - Always reflect lower bits from mask in subranges.

2025-04-16 Thread Andrew MacLeod
bitmask is explicitly applied in some places and not others. Bootstraps on x86_64-pc-linux-gnu with no regressions. Finally.   Is this OK for trunk, or should I hold off a little bit? Andrew From 36e4b77565a1965d5bca15d196f32d5758393063 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon

Re: .ACCESS_WITH_SIZE and pointer ranges

2025-04-11 Thread Andrew MacLeod
On 4/11/25 10:27, Qing Zhao wrote: On Apr 10, 2025, at 11:12, Martin Uecker wrote: Am Donnerstag, dem 10.04.2025 um 10:55 -0400 schrieb Siddhesh Poyarekar: On 2025-04-10 10:50, Andrew MacLeod wrote: Its not clear to me exactly what is being asked, but I think the suggestion is that

Re: .ACCESS_WITH_SIZE and pointer ranges

2025-04-11 Thread Andrew MacLeod
On 4/11/25 11:36, Qing Zhao wrote: On Apr 11, 2025, at 10:42, Andrew MacLeod wrote: On 4/11/25 10:27, Qing Zhao wrote: On Apr 10, 2025, at 11:12, Martin Uecker wrote: Am Donnerstag, dem 10.04.2025 um 10:55 -0400 schrieb Siddhesh Poyarekar: On 2025-04-10 10:50, Andrew MacLeod wrote

Re: .ACCESS_WITH_SIZE and pointer ranges

2025-04-11 Thread Andrew MacLeod
On 4/11/25 10:05, Qing Zhao wrote: On Apr 10, 2025, at 10:55, Siddhesh Poyarekar wrote: On 2025-04-10 10:50, Andrew MacLeod wrote: Its not clear to me exactly what is being asked, but I think the suggestion is that pointer references are being replaced with a builtin function called

Re: .ACCESS_WITH_SIZE and pointer ranges

2025-04-10 Thread Andrew MacLeod
On 4/8/25 13:13, Siddhesh Poyarekar wrote: On 2025-04-08 12:41, Qing Zhao wrote: For the following small example: [ counted_by_whole]$ cat t.c #include #include struct annotated {    size_t count;    char other;    char array[] __attribute__((counted_by (count))); }; #define MAX(A, B) (A

Re: [PATCH] tailc: Use the IPA-VRP tail call hack even for pointers [PR119614]

2025-04-04 Thread Andrew MacLeod
On 4/4/25 00:57, Jakub Jelinek wrote: Hi! As the first two testcases show, even with pointers IPA-VRP can optimize return values from functions if they have singleton ranges into just the exact value, so we need to virtually undo that for tail calls similarly to integers and floats. The third

Re: [PATCH] ranger: Improve nonnull_if_nonzero attribute [PR117023]

2025-03-31 Thread Andrew MacLeod
On 3/29/25 20:54, Jeff Law wrote: On 3/4/25 2:10 AM, Jakub Jelinek wrote: Hi! On Fri, Nov 22, 2024 at 07:25:23PM -0500, Andrew MacLeod wrote:   I will shortly be submitting , and presumable committing, this patch as part of a series to improve VRP time for 117467.. So it may be in place

Re: [PATCH] PR tree-optimization/119471 - If the LHS does not contain zero, neither do multiply operands.

2025-03-28 Thread Andrew MacLeod
On 3/28/25 03:19, Richard Biener wrote: On Fri, Mar 28, 2025 at 12:28 AM Andrew MacLeod wrote: This patch fixes both 119471 and the remainder of 110992. At issue is we do not recognize that if "a * b != 0" , then neither "a" nor "b" can be zero. This is

[PATCH] PR tree-optimization/119471 - If the LHS does not contain zero, neither do multiply operands.

2025-03-27 Thread Andrew MacLeod
nches.  OK for gcc13 and gcc14 branches? Andrew From 74edd2831affac005d2d5bf0170668188aa1a091 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 27 Mar 2025 13:44:00 -0400 Subject: [PATCH] If the LHS does not contain zero, neither do multiply operands. Given ~[0,0] = op1 * op2, range-ops sho

[PATCH][gcc13] PR tree-optimization/117287 - Backport new assume implementation

2025-03-27 Thread Andrew MacLeod
x-gnu with no regressions. Andrew From e39271c8c13b8fd5a49349000bfe8639c25cf470 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 27 Mar 2025 10:51:16 -0400 Subject: [PATCH 1/2] backport new assume implementation and cache. --- gcc/Makefile.in| 1 + gcc/gi

Re: [RFA][PR tree-optimization/98028] Use relationship between operands to simplify SUB_OVERFLOW

2025-02-12 Thread Andrew MacLeod
On 2/12/25 10:18, Jakub Jelinek wrote: On Tue, Feb 11, 2025 at 05:20:49PM -0700, Jeff Law wrote: So this is a fairly old regression, but with all the ranger work that's been done, it's become easy to resolve. The basic idea here is to use known relationships between two operands of a SUB_OVER

Re: [RFA][PR tree-optimization/98028] Use relationship between operands to simplify SUB_OVERFLOW

2025-02-12 Thread Andrew MacLeod
The patch is mostly fine, although you probably want to change the condition to check for a non-null stmt as well... ie -   if (subcode == MINUS_EXPR) +  if (s && subcode == MINUS_EXPR) because it looks like the stmt defaults to NULL and I suspect the relation query will trap if S is null. I

[PATCH] PR tree-optimization/95801 - infer non-zero for integral division RHS.

2025-01-21 Thread Andrew MacLeod
ndrew From 83260dd7c035a2317a6a5083d70288c3fdaf6ab4 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 21 Jan 2025 11:49:12 -0500 Subject: [PATCH] infer non-zero for integral division RHS. Adding op2_range for operator_div allows ranger to notice the divisor is non-zero after execution.

[PATCH] PR tree-optimization/88575 - Use relations when simplifying MIN and MAX.

2025-01-10 Thread Andrew MacLeod
00:00 2001 From: Andrew MacLeod Date: Fri, 10 Jan 2025 13:33:01 -0500 Subject: [PATCH] Use relations when simplifying MIN and MAX. Query for known relations between the operands, and pass that to fold_range to help simplify MIN and MAX relations. Make it type agnostic as well. Adapt testcases from D

Re: [PATCH] Fix comment typos in tree-assume.cc

2024-12-19 Thread Andrew MacLeod
I have no issues. ok by me.  I clearly need a proofreader :-) Andrew On 12/18/24 11:22, Andrew Carlotti wrote: I think this counts as obvious, but I'll leave it a few days before committing in case Andrew (or anyone else) disagrees. gcc/ChangeLog: * tree-assume.cc: Fix comment typos.

Re: [PATCH 1/3] tree-optimization/117467 - Do not calculate an entry range for invariant names.

2024-12-06 Thread Andrew MacLeod
, Nov 25, 2024 at 07:55:46PM -0500, Andrew MacLeod wrote: From 97bea858ff782dc5c80490bb48cbd3241ad3413c Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 25 Nov 2024 09:50:33 -0500 Subject: [PATCH 1/3] Do not calculate an entry range for invariant names. If an SSA_NAME is invariant, do not

[PATCH 2/3] PR tree-optimization/117467 - Add a range query to inferred ranges.

2024-11-25 Thread Andrew MacLeod
registering redundant inferred ranges . Bootstraps on build-x86_64-pc-linux-gnu with no regressions.  OK? Andrew From 0aee6d112bf4dd9accd7aaa8b48a520a878dedf9 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 16 Nov 2024 08:29:30 -0500 Subject: [PATCH 2/3] Add a range query to inferred ranges

[PATCH 3/3] PR tree-optimization/117647 - Only add inferred ranges if they change the value.

2024-11-25 Thread Andrew MacLeod
-gnu with no regressions.  OK? Andrew From 9434efb95a481ea57db8d47919d05cbe17b8bcba Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 23 Nov 2024 14:05:54 -0500 Subject: [PATCH 3/3] Only add inferred ranges if they change the value. Do not add an inferred range if it is already

[PATCH 1/3] tree-optimization/117467 - Do not calculate an entry range for invariant names.

2024-11-25 Thread Andrew MacLeod
n Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 25 Nov 2024 09:50:33 -0500 Subject: [PATCH 1/3] Do not calculate an entry range for invariant names. If an SSA_NAME is invariant, do not calculate an on_entry value. PR tree-optimization/117467 * gimple-range-cache.cc (ranger_cache::entry_

Re: [PATCH] ranger, v2: Handle nonnull_if_nonzero attribute [PR117023]

2024-11-22 Thread Andrew MacLeod
FYI,  I will shortly be submitting , and presumable committing, this patch as part of a series to improve VRP time for 117467.. So it may be in place by the time you need it Andrew On 11/18/24 09:31, Andrew MacLeod wrote: Attached is a pre-approved patch which adds a range_query to the

Re: [PATCH] ranger, v2: Handle nonnull_if_nonzero attribute [PR117023]

2024-11-18 Thread Andrew MacLeod
as a bootstrap with your patches.. Andfrew On 11/15/24 04:36, Jakub Jelinek wrote: On Thu, Nov 14, 2024 at 06:25:49PM +0100, Jakub Jelinek wrote: On Thu, Nov 14, 2024 at 10:05:05AM -0500, Andrew MacLeod wrote: The inferred range mechanism is also initialized using cfun, so again introducing a

Re: [PATCH] ranger, v2: Handle nonnull_if_nonzero attribute [PR117023]

2024-11-15 Thread Andrew MacLeod
Unfortunately that broke bootstrap. https://gcc.gnu.org/pipermail/gcc-patches/2024-November/668554.html https://gcc.gnu.org/pipermail/gcc-patches/2024-November/668699.html https://gcc.gnu.org/pipermail/gcc-patches/2024-November/668700.html https://gcc.gnu.org/pipermail/gcc-patches/2024-November/66

Re: [PATCH] ranger, v2: Handle nonnull_if_nonzero attribute [PR117023]

2024-11-15 Thread Andrew MacLeod
On 11/15/24 04:36, Jakub Jelinek wrote: On Thu, Nov 14, 2024 at 06:25:49PM +0100, Jakub Jelinek wrote: On Thu, Nov 14, 2024 at 10:05:05AM -0500, Andrew MacLeod wrote: The inferred range mechanism is also initialized using cfun, so again introducing a use of cfun shouldnt be an issue

Re: [PATCH 5/8] ipa: Update value range jump functions during inlining

2024-11-15 Thread Andrew MacLeod
On 11/15/24 10:19, Jan Hubicka wrote: I have seen this happen when the result of the intersection is an empty set (one of the few comments in value-range.h actually describes an undefined range as an "empty range"). I have only seen this happen when the edge has been redirected to builtin_unre

Re: [PATCH] ranger: Handle nonnull_if_nonzero attribute [PR117023]

2024-11-14 Thread Andrew MacLeod
On 11/14/24 05:26, Jakub Jelinek wrote: Hi! On top of the https://gcc.gnu.org/pipermail/gcc-patches/2024-November/668554.html patch which introduces the nonnull_if_nonzero attribute (because C2Y is allowing NULL arguments on various calls like memcpy, memset, strncpy etc. as long as the count

[COMMITTED] Add details output for assume processing.

2024-11-06 Thread Andrew MacLeod
were made.  I'll add a gcc14 version in a few days to keep them in sync.. assuming we want that. Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 137b26412f681bb1f8b3eb52b8f9efd79e6bda2a Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Tue, 5 Nov 2024 12:

Re: [COMMITTED] PR tree-optimization/117398 - Don't call invert on VARYING.

2024-11-05 Thread Andrew MacLeod
On 11/5/24 03:37, Richard Biener wrote: On Mon, Nov 4, 2024 at 4:52 PM Andrew MacLeod wrote: Am 04.11.2024 um 16:32 schrieb Andrew MacLeod :  On 11/4/24 10:27, Richard Biener wrote: Am 04.11.2024 um 16:01 schrieb Andrew MacLeod : The invert() range operation is not supported on

Re: [COMMITTED] [gcc12] [gcc13] [gcc14] PR tree-optimization/117398 - Don't call invert on VARYING.

2024-11-04 Thread Andrew MacLeod
On 11/4/24 10:00, Andrew MacLeod wrote: The invert() range operation is not supported on values of either VARYING or UNDEFINED.  Primarily this is because UNDEFINED has no type, which makes it impossible to perform invert() twice on a value, and produce that same value.  There were also

Re: [COMMITTED] PR tree-optimization/117398 - Don't call invert on VARYING.

2024-11-04 Thread Andrew MacLeod
Am 04.11.2024 um 16:32 schrieb Andrew MacLeod :  On 11/4/24 10:27, Richard Biener wrote: Am 04.11.2024 um 16:01 schrieb Andrew MacLeod : The invert() range operation is not supported on values of either VARYING or UNDEFINED. Primarily this is because UNDEFINED has no type, which

Re: [COMMITTED] PR tree-optimization/117398 - Don't call invert on VARYING.

2024-11-04 Thread Andrew MacLeod
On 11/4/24 10:27, Richard Biener wrote: Am 04.11.2024 um 16:01 schrieb Andrew MacLeod : The invert() range operation is not supported on values of either VARYING or UNDEFINED. Primarily this is because UNDEFINED has no type, which makes it impossible to perform invert() twice on a value

[COMMITTED] PR tree-optimization/117398 - Don't call invert on VARYING.

2024-11-04 Thread Andrew MacLeod
hed. Backports to GCC12 - 14 forthcoming. Andrew From 766075c47db5cc9d04463bfb2219b593bb4263ee Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Sat, 2 Nov 2024 10:26:24 -0400 Subject: [PATCH] Don't call invert on VARYING. When all cases go to one label and resul in a VARYING value,

[COMMITTED] [GCC14] Implement new assume pass.

2024-11-04 Thread Andrew MacLeod
anger instance into the assume pass to access gori. Other than that, they are pretty much in sync. Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 34db084961e01172de81f7689f31fe30fb0a781a Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 31 Oct 2024 14:

Re: [COMMITTED 3/3] Update bitwise_or op_range.

2024-11-02 Thread Andrew MacLeod
Fresh extract and bootstrap, and I dont see those spurious failures I mnetioned.  And everything is good with the port of these patches too on GCC14.  so whenever seems reasonable. Andrew On 11/1/24 17:10, Andrew MacLeod wrote: It eas an existing branch.  I will get a scrtach branch and do

Re: [COMMITTED 3/3] Update bitwise_or op_range.

2024-11-01 Thread Andrew MacLeod
.. it should. Andrew On 11/1/24 17:05, Jakub Jelinek wrote: On Fri, Nov 01, 2024 at 05:00:05PM -0400, Andrew MacLeod wrote: no, I mean those are on the branch as is...  at least when I extracted and built stage 1 release gcc14 branch. UNless there was something wrong with my build which I

Re: [COMMITTED 3/3] Update bitwise_or op_range.

2024-11-01 Thread Andrew MacLeod
, Jakub Jelinek wrote: On Fri, Nov 01, 2024 at 04:00:17PM -0400, Andrew MacLeod wrote: Maybe.  The bitwise_and op1_range is very complicated.. I think its heavily used, so I would be surprised if it didn't.   bitwise or was doing nothing at all and showed up immediately when I tried a few t

Re: [COMMITTED 3/3] Update bitwise_or op_range.

2024-11-01 Thread Andrew MacLeod
errors Andrew On 11/1/24 15:45, Jakub Jelinek wrote: On Fri, Nov 01, 2024 at 03:25:37PM -0400, Andrew MacLeod wrote: When experimenting with more complex flow for the assume pass, I found a case where we were not as precise as we should be, but it was because range-ops hadn't been taught

[COMMITTED 2/3] PR tree-optimization/117287 - Reimplement 'assume' processing pass.

2024-11-01 Thread Andrew MacLeod
es to this alogithm.  This is certainly better than it was before anyway, and I think it should always be correct. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 74710442f291902c19b84cebf7642b74ecec8965 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 28 Oct 202

[COMMITTED 3/3] Update bitwise_or op_range.

2024-11-01 Thread Andrew MacLeod
3f708a4fc11fb6dfcf208ab218a5d9 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 31 Oct 2024 14:07:00 -0400 Subject: [PATCH 3/3] Update bitwise_or op_range. If the LHS of a bitwise OR is positive, then so are both operands when using op1_range or op2_range. gcc/ * range-op.cc (operator_bit

[COMMITTED 1/3] Make fur_edge accessible.

2024-11-01 Thread Andrew MacLeod
. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 548a78d0e4c02f1e5d07c8812d4324fef581d14b Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 31 Oct 2024 15:44:15 -0400 Subject: [PATCH 1/3] Make fur_edge accessible. Move the decl of fur_edge out of the source file

[COMMITTED] - Fix bitwise_or logic for prange.

2024-10-28 Thread Andrew MacLeod
Fixed. Bootstrapped on with no regressions.  Pushed. Andrew On 10/28/24 10:25, Mikael Morin wrote: Le 28/10/2024 à 14:38, Andrew MacLeod a écrit : On 10/26/24 15:08, Mikael Morin wrote: Hello, Le 24/10/2024 à 14:53, Andrew MacLeod a écrit : diff --git a/gcc/range-op-ptr.cc b/gcc/range-op

Re: [COMMITTED 4/4] - Implement pointer_or_operator.

2024-10-28 Thread Andrew MacLeod
On 10/26/24 15:08, Mikael Morin wrote: Hello, Le 24/10/2024 à 14:53, Andrew MacLeod a écrit : diff --git a/gcc/range-op-ptr.cc b/gcc/range-op-ptr.cc index dd312a80366..ef2b2cce516 100644 --- a/gcc/range-op-ptr.cc +++ b/gcc/range-op-ptr.cc (...) -void -pointer_or_operator::wi_fold (irange

[COMMITTED 4/4] - Implement pointer_or_operator.

2024-10-24 Thread Andrew MacLeod
From: Andrew MacLeod Date: Wed, 23 Oct 2024 10:59:13 -0400 Subject: [PATCH 4/4] Implement pointer_or_operator. The class pointer_or is no longer used, and can be removed. Its functionality was never moved to the new dispatch system. This implements operator_bitwise_or::fold_range() for prange ope

[COMMITTED 2/4] - Remove pointer_min_max_operator.

2024-10-24 Thread Andrew MacLeod
::fold_range (prange &r, tree type, const prange &op1, const prange &op2, relation_trio) const This patch removes the unused clas to avoid confusion. Bootstraps on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew From b6e18f91e75a28e16b4fa117d8275ab146acbb01 Mon Sep 17 00:00:00 2

[COMMITTED 1/4] - Cleanup pointer_plus_operator.

2024-10-24 Thread Andrew MacLeod
removed them. Bootstraps on x86_64-pc-linux-gnu with no regressions.  pushed. Andrew From 4eb25bfee859a9161c0fd48215feaf1c307f2480 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 21 Oct 2024 16:47:32 -0400 Subject: [PATCH 1/4] Cleanup pointer_plus_operator. The POINTER_PLUS operator

[COMMITTED 3/4] Remove pointer_and_operator.

2024-10-24 Thread Andrew MacLeod
00:00:00 2001 From: Andrew MacLeod Date: Mon, 21 Oct 2024 18:20:10 -0400 Subject: [PATCH 3/4] Remove pointer_and_operator. This operator class predates the dispatch system, and is no longer used. The functionality of wi_fold has been replaced by operator_bitwise_and::fold_range with prange

Re: [PATCH 3/9] Simplify X /[ex] Y cmp Z -> X cmp (Y * Z)

2024-10-23 Thread Andrew MacLeod
On 10/18/24 12:48, Richard Sandiford wrote: [+ranger folks, who I forgot to CC originally, sorry!] This patch applies X /[ex] Y cmp Z -> X cmp (Y * Z) when Y * Z is representable. The closest check for "is representable" on range operations seemed to be overflow_free_p. However, that is desi

[COMMITTED] PR tree-optimization/117222 - Implement operator_pointer_diff::fold_range

2024-10-23 Thread Andrew MacLeod
operators to see if similar dispatch related issues were missed. Bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 774ad67fba458dd1beaa0f2d3e389aac46ca18b5 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 21 Oct 2024 16:32:00 -0400 Subject: [PATCH] Implement

Re: [PATCH 9/9] Record nonzero bits in the irange_bitmask of POLY_INT_CSTs

2024-10-18 Thread Andrew MacLeod
That seems like a very reasonable place. Andrew On 10/18/24 08:11, Richard Biener wrote: On Fri, 18 Oct 2024, Richard Sandiford wrote: At the moment, ranger punts entirely on POLY_INT_CSTs. Numerical ranges are a bit difficult, unless we do start modelling bounds on the indeterminates. But

Re: [PATCH] tree-optimization/117138 - fix ICE with vector comparison in COND_EXPR

2024-10-15 Thread Andrew MacLeod
Good catch.  Probably not a common case as usually we're already in supported type contexts when we get around to check range_compatible.. I guess it wouldn't hurt to put a gcc_checking_assert in range_compatible_p to confirm that they are supported types before returning true. Certainly ok.

Re: [PATCH] tree-optimization/114855 - speed up dom_oracle::register_transitives

2024-09-26 Thread Andrew MacLeod
On 9/26/24 10:03, Andrew MacLeod wrote: On 9/26/24 03:07, Richard Biener wrote: On Wed, 25 Sep 2024, Andrew MacLeod wrote: I added a note to the PR before I saw this... we can just disable transitives when the graph gets too big... I don't think they are worth the expense when t

Re: [PATCH] tree-optimization/114855 - speed up dom_oracle::register_transitives

2024-09-26 Thread Andrew MacLeod
On 9/26/24 03:07, Richard Biener wrote: On Wed, 25 Sep 2024, Andrew MacLeod wrote: I added a note to the PR before I saw this... we can just disable transitives when the graph gets too big... I don't think they are worth the expense when things get large.   I've attached that pa

Re: [PATCH] tree-optimization/114855 - speed up dom_oracle::register_transitives

2024-09-25 Thread Andrew MacLeod
On 9/25/24 06:51, Richard Biener wrote: dom_oracle::register_transitives contains an unbound dominator walk which for the testcase in PR114855 dominates the profile. I've also noticed odd behavior in the case when set_one_relation returns NULL, we'd then completely abort processing other relati

Re: [PATCH] tree-optimization/114855 - slow VRP due to equiv oracle queries

2024-09-24 Thread Andrew MacLeod
Absolutely ok. Thanks! Andrew On 9/24/24 05:52, Richard Biener wrote: For the testcase in PR114855 VRP takes 320.41s (23%) (after mitigating backwards threader slowness). This is mostly due to the bitmap check in equiv_oracle::find_equiv_dom. The following turns this bitmap to tree view, tra

[PATCH] PR tree-optimization/116588 - Before running fast VRP, make sure all edges have, EXECUTABLE set.

2024-09-07 Thread Andrew MacLeod
.   Pushed. Andrew From 73356860e2e96cf3319de8f11eed74fd9ff80c65 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Fri, 6 Sep 2024 11:42:14 -0400 Subject: [PATCH 5/5] Before running fast VRP, make sure all edges have EXECUTABLE set. PR tree-optimization/116588 gcc/ * tree-vrp.cc

Re: [PATCH] tree-optimization/116166 - forward jump-threading going wild

2024-08-09 Thread Andrew MacLeod
On 8/7/24 03:13, Richard Biener wrote: On Tue, 6 Aug 2024, Andrew MacLeod wrote: On 8/6/24 09:12, Richard Biener wrote: Currently the forward threader isn't limited as to the search space it explores and with it now using path-ranger for simplifying conditions it runs into it became p

[COMMITTED 2/2] PR tree-optimization/114855 - Adjust rangers recomputation depth based on the number of BBs.

2024-08-09 Thread Andrew MacLeod
.  Pushed. Andrew From 9e4da946c4263a4c89d5fc365b3c97ae244c5018 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 8 Aug 2024 16:37:28 -0400 Subject: [PATCH 2/2] Adjust rangers recomputation depth based on the number of BBs. As the number of block increase, recomputations can become more expensive

[COMMITTED 1/2] PR tree-optimization/114855 - Limit equivalency processing in rangers cache.

2024-08-09 Thread Andrew MacLeod
nds in DOM. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew From 5ce3874b3c2fdd76f506005cb1171a732af7c807 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 8 Aug 2024 16:34:15 -0400 Subject: [PATCH 1/2] Limit equivalency processing in rangers cache. When the numbe

Re: [PATCH 0/5] some small ranger op table cleanup

2024-08-06 Thread Andrew MacLeod
On 8/6/24 17:27, Andrew Pinski wrote: This is a set of 5 small cleanups for the ranger op table. I noticed it after was pointed out an uninitialized warning sometimes happens for it. We should use final classes a lot more, even if it just used for documentation that you can't use it as a base c

Re: [PATCH] tree-optimization/116166 - forward jump-threading going wild

2024-08-06 Thread Andrew MacLeod
On 8/6/24 09:12, Richard Biener wrote: Currently the forward threader isn't limited as to the search space it explores and with it now using path-ranger for simplifying conditions it runs into it became pretty slow for degenerate cases like compiling insn-emit.cc for RISC-V esp. when compiling

Re: [PATCH-1v4] Value Range: Add range op for builtin isinf

2024-07-23 Thread Andrew MacLeod
On 7/23/24 15:18, Jeff Law wrote: On 7/11/24 9:17 PM, HAO CHEN GUI wrote: So why the test for real_isinf on the upper/lower bound?  If op1 is known to be a NaN, then why test the bounds at all?  If a bounds test is needed, why only test the upper bound? IMHO, logical is if the op1 is a N

Re: [COMMITTED] Tweak pr116003.c to target bitint.

2024-07-20 Thread Andrew MacLeod
On 7/20/24 14:54, Jakub Jelinek wrote: On Sat, Jul 20, 2024 at 12:57:39PM -0400, Andrew MacLeod wrote: perhaps easier to just do That works as well, sure. Committed. Andrew commit 15571d2d54c705f22aced5e972cb463d0593aa3c Author: Andrew MacLeod Date: Sat Jul 20 12:49:39 2024 -0400

Re: [COMMITTED] Tweak pr116003.c to target bitint.

2024-07-20 Thread Andrew MacLeod
On 7/20/24 12:54, Jakub Jelinek wrote: This isn't enough. The bitint effective target just means that the target supports at least some _BitInt precisions (the standard in that case mandates support for at least bits in long long, so 64), but this testcase uses _BitInt(129), for that one needs

Re: [COMMITTED] Tweak pr116003.c to target bitint.

2024-07-20 Thread Andrew MacLeod
On 7/20/24 12:00, Jakub Jelinek wrote: On Sat, Jul 20, 2024 at 11:48:36AM -0400, Andrew MacLeod wrote: On 7/20/24 01:58, Sam James wrote: FAIL: gcc.dg/pr116003.c (test for excess errors) Excess errors: /home/tcwg-buildslave/workspace/tcwg_gnu_5/abe/snapshots/gcc.git~master/gcc/testsuite

[COMMITTED] Tweak pr116003.c to target bitint.

2024-07-20 Thread Andrew MacLeod
mplemented: '_BitInt(128)' is not supported on this target I think it needs dg-do compile { target bitint }. Indeed, thanks.  Pushed. Andrew commit 320c0d49dd5d7d96443b8ee2fde3cce533eaa761 Author: Andrew MacLeod Date: Sat Jul 20 11:45:16 2024 -0400 Add bitint to options for tes

[COMMITTED] PR tree-optimzation/116003 - Check for SSA_NAME not in the IL yet.

2024-07-19 Thread Andrew MacLeod
2001 From: Andrew MacLeod Date: Fri, 19 Jul 2024 17:39:40 -0400 Subject: [PATCH] Check for SSA_NAME not in the IL yet. Check for an SSA_NAME not in the CFG before trying to create an equivalence record in the defintion block. PR tree-optimization/116003 gcc/ * value-relation.cc (equiv_oracle

[COMMITTED] PR tree-optimization/115951 - range-ops should return the requested boolean type.

2024-07-16 Thread Andrew MacLeod
vs the GCC default of precision 1. This patch addresses this oversight by returning a boolean range of the type requested. Bootstrapped on  x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 8565cb2e22fd116e26aeb9d95030ee0e48d6e6c7 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date:

Re: [PATCH-1v4] Value Range: Add range op for builtin isinf

2024-07-11 Thread Andrew MacLeod
I have no issues with any of the range-op work in this patch series,  but I am unequipped to review the floating point aspects of any of the patches. We just need someone to signoff that this properly reflects those builtins. Andrew On 7/11/24 03:32, HAO CHEN GUI wrote: Hi, The builtin i

[COMMITTED] ssa_lazy_cache takes an optional bitmap_obstack pointer.

2024-06-28 Thread Andrew MacLeod
little more flexibility. bootstrapped on x86_64-pc-linux-gnu with no regressions. Pushed. Andrew From 5612541834c063dd4126fb059e59c5dc8d5f2f8e Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Wed, 26 Jun 2024 14:53:54 -0400 Subject: [PATCH] ssa_lazy_cache takes an optional bitmap_obstack

[COMMITTED] Add param for bb limit to invoke fast_vrp.

2024-06-25 Thread Andrew MacLeod
...@gmail.com/ since those are the ones which are detected right now. Thanks, Andrew Thanks.  Final version checked in: Andrew From 1ea95cc5e099d554764b82df8e972129e9d20885 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Mon, 17 Jun 2024 11:38:46 -0400 Subject: [PATCH] Add param for bb lim

Re: [PATCH] GORI cleanups

2024-06-25 Thread Andrew MacLeod
On 6/25/24 09:44, Richard Biener wrote: The following replaces conditional is_export_p calls as is_export_p handles a NULL bb itself. Bootstrap running on x86_64-unknown-linux-gnu, OK? Absolutely. Thanks Andrew Thanks, Richard. * gimple-range-gori.cc (gori_compute::may_recompute

Re: [PATCH] Add param for bb limit to invoke fast_vrp.

2024-06-25 Thread Andrew MacLeod
On 6/24/24 22:35, Andrew Pinski wrote: On Mon, Jun 24, 2024 at 7:20 PM Andrew MacLeod wrote: // Fill ssa-cache R with any outgoing ranges on edge E, using QUERY. bool gori_on_edge (class ssa_cache &r, edge e, range_query *query = NULL); This is what the fast_vrp routines uses.

  1   2   3   4   5   6   7   8   9   10   >