public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c
@ 2022-05-26 11:22 jakub at gcc dot gnu.org
2022-05-26 11:23 ` [Bug tree-optimization/105739] " jakub at gcc dot gnu.org
` (16 more replies)
0 siblings, 17 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-05-26 11:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
Bug ID: 105739
Summary: [9/10 Regression] Miscompilation of Linux kernel
update.c
Product: gcc
Version: 10.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
Target Milestone: ---
Target: x86_64-linux
The attached testcase with -fno-strict-aliasing -fno-common -fshort-wchar
-fno-PIE -std=gnu11 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
-fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387
-mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic
-mno-red-zone -mcmodel=kernel -fno-asynchronous-unwind-tables
-mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables
-fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0
-fstack-protector-strong -fomit-frame-pointer -fno-stack-clash-protection
-fno-strict-overflow -fno-stack-check -fconserve-stack
options has a call to _printk replaced by __builtin_unreachable () and it isn't
obviously clear why.
One spot is in the rcu_tasks_trace_pertask function where in assembly one can
see:
.type rcu_tasks_trace_pertask.cold, @function
rcu_tasks_trace_pertask.cold:
.L1662:
movl 20(%rdi), %eax
.text
.size rcu_tasks_trace_pertask, .-rcu_tasks_trace_pertask
The problem went away with r11-5188-g32934a4f45a7214 but it is unclear if
that was an actual fix or just made it latent, I don't see a compound literal
on that line.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [9/10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
@ 2022-05-26 11:23 ` jakub at gcc dot gnu.org
2022-05-26 11:23 ` jakub at gcc dot gnu.org
` (15 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-05-26 11:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org
Target Milestone|--- |9.5
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Honza, could you please have a look?
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [9/10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
2022-05-26 11:23 ` [Bug tree-optimization/105739] " jakub at gcc dot gnu.org
@ 2022-05-26 11:23 ` jakub at gcc dot gnu.org
2022-05-26 11:28 ` jakub at gcc dot gnu.org
` (14 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-05-26 11:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 53036
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53036&action=edit
update.i.xz
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [9/10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
2022-05-26 11:23 ` [Bug tree-optimization/105739] " jakub at gcc dot gnu.org
2022-05-26 11:23 ` jakub at gcc dot gnu.org
@ 2022-05-26 11:28 ` jakub at gcc dot gnu.org
2022-05-26 13:51 ` hubicka at gcc dot gnu.org
` (13 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-05-26 11:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The call is added at:
#0 gimple_set_code (g=<gimple_call 0x7fffea08a2a0>, code=GIMPLE_CALL) at
../../gcc/gimple.c:108
#1 0x0000000000bceae1 in gimple_alloc (code=GIMPLE_CALL, num_ops=7) at
../../gcc/gimple.c:140
#2 0x0000000000bd189a in gimple_copy (stmt=<gimple_call 0x7fffea09fe70>) at
../../gcc/gimple.c:1806
#3 0x000000000109ed79 in remap_gimple_stmt (stmt=<gimple_call 0x7fffea09fe70>,
id=0x7fffffffd620) at ../../gcc/tree-inline.c:1796
#4 0x000000000109f39a in copy_bb (id=0x7fffffffd620, bb=<basic_block
0x7fffe797f548 (4)>, num=..., den=...) at ../../gcc/tree-inline.c:1950
#5 0x00000000010a223c in copy_cfg_body (id=0x7fffffffd620,
entry_block_map=<basic_block 0x7fffe70b1dd0 (8)>, exit_block_map=<basic_block
0x7fffe70b1ea0 (10)>,
new_entry=<basic_block 0x0>) at ../../gcc/tree-inline.c:2884
#6 0x00000000010a2d21 in copy_body (id=0x7fffffffd620,
entry_block_map=<basic_block 0x7fffe70b1dd0 (8)>, exit_block_map=<basic_block
0x7fffe70b1ea0 (10)>,
new_entry=<basic_block 0x0>) at ../../gcc/tree-inline.c:3126
#7 0x00000000010a6aa2 in expand_call_inline (bb=<basic_block 0x7fffe70b1dd0
(8)>, stmt=<gimple_call 0x7fffe70c4090>, id=0x7fffffffd620,
to_purge=0x7fffffffd600)
at ../../gcc/tree-inline.c:4867
#8 0x00000000010a76e7 in gimple_expand_calls_inline (bb=<basic_block
0x7fffe70b1dd0 (8)>, id=0x7fffffffd620, to_purge=0x7fffffffd600) at
../../gcc/tree-inline.c:5060
#9 0x00000000010a7da5 in optimize_inline_calls (fn=<function_decl
0x7fffe81d2100 rcu_tasks_trace_pertask>) at ../../gcc/tree-inline.c:5202
#10 0x0000000001cc06ec in inline_transform (node=<cgraph_node * 0x7fffe81d1438
"rcu_tasks_trace_pertask"/5350>) at ../../gcc/ipa-inline-transform.c:682
during inlining of trc_wait_for_one_reader into rcu_tasks_trace_pertask, when
copying
_printk ("\x016%s(P%d/%d) IPI to task still in flight.\n", &__func__, _1, _8);
and later changed to __builtin_unreachable in:
#0 gimple_call_set_fndecl (gs=0x7fffea08a2a0, decl=<function_decl
0x7fffea2b6700 __builtin_unreachable>) at ../../gcc/gimple.h:3058
#1 0x00000000009f8bb2 in cgraph_edge::redirect_call_stmt_to_callee (
this=<cgraph_edge* 0x7fffea0e5680 (<cgraph_node * 0x7fffe81d1438
"rcu_tasks_trace_pertask"/5350> -> <cgraph_node * 0x7fffea3c8b40
"__builtin_unreachable"/5848>)>)
at ../../gcc/cgraph.c:1489
#2 0x00000000010a1f10 in redirect_all_calls (id=0x7fffffffd620,
bb=<basic_block 0x7fffe70c6000 (13)>) at ../../gcc/tree-inline.c:2814
#3 0x00000000010a262b in copy_cfg_body (id=0x7fffffffd620,
entry_block_map=<basic_block 0x7fffe70b1dd0 (8)>, exit_block_map=<basic_block
0x7fffe70b1ea0 (10)>,
new_entry=<basic_block 0x0>) at ../../gcc/tree-inline.c:2950
#4 0x00000000010a2d21 in copy_body (id=0x7fffffffd620,
entry_block_map=<basic_block 0x7fffe70b1dd0 (8)>, exit_block_map=<basic_block
0x7fffe70b1ea0 (10)>,
new_entry=<basic_block 0x0>) at ../../gcc/tree-inline.c:3126
#5 0x00000000010a6aa2 in expand_call_inline (bb=<basic_block 0x7fffe70b1dd0
(8)>, stmt=<gimple_call 0x7fffe70c4090>, id=0x7fffffffd620,
to_purge=0x7fffffffd600)
at ../../gcc/tree-inline.c:4867
#6 0x00000000010a76e7 in gimple_expand_calls_inline (bb=<basic_block
0x7fffe70b1dd0 (8)>, id=0x7fffffffd620, to_purge=0x7fffffffd600) at
../../gcc/tree-inline.c:5060
#7 0x00000000010a7da5 in optimize_inline_calls (fn=<function_decl
0x7fffe81d2100 rcu_tasks_trace_pertask>) at ../../gcc/tree-inline.c:5202
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [9/10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (2 preceding siblings ...)
2022-05-26 11:28 ` jakub at gcc dot gnu.org
@ 2022-05-26 13:51 ` hubicka at gcc dot gnu.org
2022-05-27 9:48 ` [Bug tree-optimization/105739] [10 " rguenth at gcc dot gnu.org
` (12 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu.org @ 2022-05-26 13:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Last reconfirmed| |2022-05-26
Assignee|unassigned at gcc dot gnu.org |hubicka at gcc dot gnu.org
Status|UNCONFIRMED |ASSIGNED
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
mine. Looks like another case where ipa and local cprop gets out of sync...
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (3 preceding siblings ...)
2022-05-26 13:51 ` hubicka at gcc dot gnu.org
@ 2022-05-27 9:48 ` rguenth at gcc dot gnu.org
2022-06-02 10:11 ` jakub at gcc dot gnu.org
` (11 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-05-27 9:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|9.5 |10.4
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 9 branch is being closed
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (4 preceding siblings ...)
2022-05-27 9:48 ` [Bug tree-optimization/105739] [10 " rguenth at gcc dot gnu.org
@ 2022-06-02 10:11 ` jakub at gcc dot gnu.org
2022-06-04 16:07 ` hubicka at kam dot mff.cuni.cz
` (10 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-02 10:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Honza, any estimate how long this could take? I'd prefer to wait with 10.4 for
it if it isn't going to take too long.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (5 preceding siblings ...)
2022-06-02 10:11 ` jakub at gcc dot gnu.org
@ 2022-06-04 16:07 ` hubicka at kam dot mff.cuni.cz
2022-06-09 11:21 ` hubicka at gcc dot gnu.org
` (9 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: hubicka at kam dot mff.cuni.cz @ 2022-06-04 16:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #7 from hubicka at kam dot mff.cuni.cz ---
> Honza, any estimate how long this could take? I'd prefer to wait with 10.4 for
> it if it isn't going to take too long.
I am at a conference this week with talk at Wednesday. I will try to
debug this during the event.
Honza
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (6 preceding siblings ...)
2022-06-04 16:07 ` hubicka at kam dot mff.cuni.cz
@ 2022-06-09 11:21 ` hubicka at gcc dot gnu.org
2022-06-10 10:47 ` hubicka at gcc dot gnu.org
` (8 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu.org @ 2022-06-09 11:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
After inlning I see:
IPA function summary for rcu_tasks_trace_pertask/5350 inlinable
global time: 13.535950
self size: 11
global size: 16
min size: 11
self stack: 0
global stack: 0
estimated growth:5
size:8.000000, time:5.807250
size:3.000000, time:2.000000, executed if:(not inlined)
size:2.000000, time:2.000000, nonconst if:(op0 changed)
calls:
rcu_tasks_trace_pertask.part.0/5788 inlined
freq:0.62
Stack frame offset 0, callee self size 0
trc_wait_for_one_reader/5799 inlined
freq:0.62
Stack frame offset 0, callee self size 0
__builtin_unreachable/5800 unreachable
freq:0.00 loop depth: 0 size: 0 time: 0 predicate: (false)
op0 is compile time invariant
op1 is compile time invariant
trc_wait_for_one_reader.part.0/5784 --param max-inline-insns-auto limit
reached
freq:0.31 loop depth: 0 size: 3 time: 12 callee size:100 stack: 0
__builtin_expect/5421 function body not available
freq:1.00 loop depth: 0 size: 0 time: 0
op1 is compile time invariant
So it seems that we determine call in trc_wait_for_one_reader unreachable.
It originally calls printk:
IPA function summary for trc_wait_for_one_reader/5348 inlinable
global time: 13.500000
self size: 20
global size: 20
min size: 1
self stack: 0
global stack: 0
size:1.000000, time:1.000000
size:3.000000, time:2.000000, executed if:(not inlined)
size:0.500000, time:0.500000, executed if:(not inlined), nonconst
if:(op0[ref offset: 8672] changed) && (not inlined)
size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 8672] changed)
size:1.500000, time:0.250000, executed if:(op0[ref offset: 8672] != -1) &&
(not inlined)
size:3.500000, time:1.250000, executed if:(op0[ref offset: 8672] != -1)
calls:
trc_wait_for_one_reader.part.0/5784 function not considered for inlining
freq:0.50 loop depth: 0 size: 3 time: 12 callee size:55 stack: 0
predicate: (op0[ref offset: 8672] == -1)
_printk/5452 function body not available
freq:0.00 loop depth: 0 size: 5 time: 14 predicate: (op0[ref offset:
8672] != -1)
op0 is compile time invariant
So we somehow figure out (op0[ref offset: 8672] != -1) here:
Enqueueing calls in rcu_tasks_trace_pertask.part.0/5788.
Estimating body: trc_wait_for_one_reader/5348
Known to be false: not inlined, op0[ref offset: 8672] != -1, op0[ref offset:
8672] changed
size:4 time:7.000000 nonspec time:12.000000
This seems to be based on:
Jump functions:
Jump functions of caller rcu_tasks_trace_pertask.part.0/5788:
callsite rcu_tasks_trace_pertask.part.0/5788 ->
trc_wait_for_one_reader/5348 :
param 0: PASS THROUGH: 0, op nop_expr
Aggregate passed by reference:
offset: 8672, type: int, CONST: -1
value: 0x0, mask: 0xffffffffffffffff
Unknown VR
param 1: PASS THROUGH: 1, op nop_expr
value: 0x0, mask: 0xffffffffffffffff
Unknown VR
Which seems correct:
rcu_tasks_trace_pertask.part.0 (struct task_struct * t, struct list_head * hop)
{
struct task_struct * D.58527;
u64 pfo_val__;
_Bool _1;
long int _2;
long int _3;
struct task_struct * _14;
<bb 4> [local count: 1073741824]:
<bb 2> [local count: 1073741824]:
__asm__ __volatile__("" : : : "memory");
MEM[(volatile u8 *)t_1(D) + 1089B] ={v} 0;
__asm__ __volatile__("lock; addl $0,-4(%%rsp)" : : : "cc", "memory");
t_1(D)->trc_ipi_to_cpu = -1;
trc_wait_for_one_reader (t_1(D), hop_2(D));
<bb 3> [local count: 1073741824]:
return;
}
so there is really store to trc_ipi_to_cpu. The code uses it as:
_60 ={v} t_59(D)->trc_ipi_to_cpu;
__asm__ __volatile__("" : : : "memory");
if (_60 != -1)
goto <bb 3>; [50.00%]
else
goto <bb 6>; [50.00%]
So bug may be that we ignore volatile flag when determining IPA predicates?
problem goes away with -fno-partial-inlining.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (7 preceding siblings ...)
2022-06-09 11:21 ` hubicka at gcc dot gnu.org
@ 2022-06-10 10:47 ` hubicka at gcc dot gnu.org
2022-06-10 10:56 ` hubicka at gcc dot gnu.org
` (7 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu.org @ 2022-06-10 10:47 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Indeed volatile checks seems to be missing across ipa-prop code. Here is
smaller testcase:
__attribute__((noinline))
static int
test2(int a)
{
if (__builtin_constant_p (a))
__builtin_abort ();
return a;
}
/*__attribute__((noinline))*/
static int
test(int *a)
{
int val = *(volatile int *)a;
if (__builtin_constant_p (val))
__builtin_abort ();
if (val)
return test2(val);
return 0;
}
int a;
int
main()
{
a = 0;
return test (&a);
}
is optimized to
main:
.LFB2:
.cfi_startproc
movl $0, a(%rip)
movl a(%rip), %eax
xorl %eax, %eax
ret
.cfi_endproc
which I don't think is correct. The volatile load can be non-0 and thus we can
return non-0.
It does not trigger unreachable as I hoped for since vrp and fab passes seems
to jump to same conclusion as ipa-cp.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (8 preceding siblings ...)
2022-06-10 10:47 ` hubicka at gcc dot gnu.org
@ 2022-06-10 10:56 ` hubicka at gcc dot gnu.org
2022-06-14 12:07 ` cvs-commit at gcc dot gnu.org
` (6 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: hubicka at gcc dot gnu.org @ 2022-06-10 10:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #10 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
I am testing
diff --git a/gcc/ipa-prop.cc b/gcc/ipa-prop.cc
index afd9222b5a2..c037668e7d8 100644
--- a/gcc/ipa-prop.cc
+++ b/gcc/ipa-prop.cc
@@ -1112,6 +1112,10 @@ ipa_load_from_parm_agg (struct ipa_func_body_info *fbi,
if (!base)
return false;
+ /* We can not propagate across volatile loads. */
+ if (TREE_THIS_VOLATILE (op))
+ return false;
+
if (DECL_P (base))
{
int index = ipa_get_param_decl_index_1 (descriptors, base);
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (9 preceding siblings ...)
2022-06-10 10:56 ` hubicka at gcc dot gnu.org
@ 2022-06-14 12:07 ` cvs-commit at gcc dot gnu.org
2022-06-14 12:23 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-06-14 12:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jan Hubicka <hubicka@gcc.gnu.org>:
https://gcc.gnu.org/g:8f6c317b3a16350698f3c9e0accb43a9b4acb4ae
commit r13-1089-g8f6c317b3a16350698f3c9e0accb43a9b4acb4ae
Author: Jan Hubicka <jh@suse.cz>
Date: Tue Jun 14 14:05:53 2022 +0200
Fix ipa-cp wrt volatile loads
Check for volatile flag to ipa_load_from_parm_agg.
gcc/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
PR ipa/105739
* ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
gcc/testsuite/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/ipa/pr105739.c: New test.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (10 preceding siblings ...)
2022-06-14 12:07 ` cvs-commit at gcc dot gnu.org
@ 2022-06-14 12:23 ` jakub at gcc dot gnu.org
2022-06-19 10:08 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-14 12:23 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Thanks, I have verified that on the #c0 testcase on 10 branch it makes both
__builtin_unreachable calls go away.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (11 preceding siblings ...)
2022-06-14 12:23 ` jakub at gcc dot gnu.org
@ 2022-06-19 10:08 ` cvs-commit at gcc dot gnu.org
2022-06-20 6:37 ` cvs-commit at gcc dot gnu.org
` (3 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-06-19 10:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #13 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:bf4ba940673b80961c5979078f9d37a7bef2f5ff
commit r12-8493-gbf4ba940673b80961c5979078f9d37a7bef2f5ff
Author: Jan Hubicka <jh@suse.cz>
Date: Tue Jun 14 14:05:53 2022 +0200
Fix ipa-cp wrt volatile loads
Check for volatile flag to ipa_load_from_parm_agg.
gcc/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
PR ipa/105739
* ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
gcc/testsuite/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/ipa/pr105739.c: New test.
(cherry picked from commit 8f6c317b3a16350698f3c9e0accb43a9b4acb4ae)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (12 preceding siblings ...)
2022-06-19 10:08 ` cvs-commit at gcc dot gnu.org
@ 2022-06-20 6:37 ` cvs-commit at gcc dot gnu.org
2022-06-20 6:38 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-06-20 6:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #14 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:49aa637488053223bc04e59aac411d4a92ebcf7b
commit r11-10080-g49aa637488053223bc04e59aac411d4a92ebcf7b
Author: Jan Hubicka <jh@suse.cz>
Date: Tue Jun 14 14:05:53 2022 +0200
Fix ipa-cp wrt volatile loads
Check for volatile flag to ipa_load_from_parm_agg.
gcc/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
PR ipa/105739
* ipa-prop.c (ipa_load_from_parm_agg): Punt on volatile loads.
gcc/testsuite/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/ipa/pr105739.c: New test.
(cherry picked from commit 8f6c317b3a16350698f3c9e0accb43a9b4acb4ae)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (13 preceding siblings ...)
2022-06-20 6:37 ` cvs-commit at gcc dot gnu.org
@ 2022-06-20 6:38 ` cvs-commit at gcc dot gnu.org
2022-06-20 9:56 ` jakub at gcc dot gnu.org
2022-06-20 10:42 ` hubicka at kam dot mff.cuni.cz
16 siblings, 0 replies; 18+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2022-06-20 6:38 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jakub Jelinek
<jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:62148f13c6427edd256072b3196a01b3d5ed2805
commit r10-10856-g62148f13c6427edd256072b3196a01b3d5ed2805
Author: Jan Hubicka <jh@suse.cz>
Date: Tue Jun 14 14:05:53 2022 +0200
Fix ipa-cp wrt volatile loads
Check for volatile flag to ipa_load_from_parm_agg.
gcc/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
PR ipa/105739
* ipa-prop.c (ipa_load_from_parm_agg): Punt on volatile loads.
gcc/testsuite/ChangeLog:
2022-06-10 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/ipa/pr105739.c: New test.
(cherry picked from commit 8f6c317b3a16350698f3c9e0accb43a9b4acb4ae)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (14 preceding siblings ...)
2022-06-20 6:38 ` cvs-commit at gcc dot gnu.org
@ 2022-06-20 9:56 ` jakub at gcc dot gnu.org
2022-06-20 10:42 ` hubicka at kam dot mff.cuni.cz
16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu.org @ 2022-06-20 9:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed (Honza, hope you don't mind the backports I've done, did that so that it
is on time for 10.4).
^ permalink raw reply [flat|nested] 18+ messages in thread
* [Bug tree-optimization/105739] [10 Regression] Miscompilation of Linux kernel update.c
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
` (15 preceding siblings ...)
2022-06-20 9:56 ` jakub at gcc dot gnu.org
@ 2022-06-20 10:42 ` hubicka at kam dot mff.cuni.cz
16 siblings, 0 replies; 18+ messages in thread
From: hubicka at kam dot mff.cuni.cz @ 2022-06-20 10:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105739
--- Comment #17 from hubicka at kam dot mff.cuni.cz ---
> Fixed (Honza, hope you don't mind the backports I've done, did that so that it
> is on time for 10.4).
Thanks. I don't mind: I was planning to do them this week anyway and
also extra VOLATILE check shoud not be very risky.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2022-06-20 10:42 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-26 11:22 [Bug tree-optimization/105739] New: [9/10 Regression] Miscompilation of Linux kernel update.c jakub at gcc dot gnu.org
2022-05-26 11:23 ` [Bug tree-optimization/105739] " jakub at gcc dot gnu.org
2022-05-26 11:23 ` jakub at gcc dot gnu.org
2022-05-26 11:28 ` jakub at gcc dot gnu.org
2022-05-26 13:51 ` hubicka at gcc dot gnu.org
2022-05-27 9:48 ` [Bug tree-optimization/105739] [10 " rguenth at gcc dot gnu.org
2022-06-02 10:11 ` jakub at gcc dot gnu.org
2022-06-04 16:07 ` hubicka at kam dot mff.cuni.cz
2022-06-09 11:21 ` hubicka at gcc dot gnu.org
2022-06-10 10:47 ` hubicka at gcc dot gnu.org
2022-06-10 10:56 ` hubicka at gcc dot gnu.org
2022-06-14 12:07 ` cvs-commit at gcc dot gnu.org
2022-06-14 12:23 ` jakub at gcc dot gnu.org
2022-06-19 10:08 ` cvs-commit at gcc dot gnu.org
2022-06-20 6:37 ` cvs-commit at gcc dot gnu.org
2022-06-20 6:38 ` cvs-commit at gcc dot gnu.org
2022-06-20 9:56 ` jakub at gcc dot gnu.org
2022-06-20 10:42 ` hubicka at kam dot mff.cuni.cz
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).