public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/15596] [4.3/4.4/4.5/4.6/4.7 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
@ 2011-05-06 13:21 ` rguenth at gcc dot gnu.org
  2011-06-27 14:01 ` rguenth at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-05-06 13:21 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |ASSIGNED
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #19 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-05-06 13:18:31 UTC ---
Even with bitfield accesses lowered at the tree level we end up with

<bb 2>:
  D.1736_2 = (<unnamed-signed:20>) s_1(D);
  BF.0_3 = MEM[(struct bitstr *)&<retval>];
  D.1741_4 = BF.0_3 & -1048576;
  D.1742_5 = (<unnamed-unsigned:20>) D.1736_2;
  D.1743_6 = (int) D.1742_5;
  BF.0_7 = D.1741_4 | 1048576;
  BF.1_9 = BF.0_7 | D.1743_6;
  D.1737_13 = (signed char) l_12(D);
  D.1738_14 = (<unnamed-signed:1>) D.1737_13;
  D.1747_16 = BF.1_9 & -6291457;
  D.1748_17 = (<unnamed-unsigned:1>) D.1738_14;
  D.1749_18 = (int) D.1748_17;
  D.1750_19 = D.1749_18 << 22;
  BF.3_20 = D.1750_19 | D.1747_16;
  MEM[(struct bitstr *)&<retval>] = BF.3_20;
  return <retval>;

there's some optimization possibilities if we can recognize the truncating
and extending conversions as bit manipulations.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.3/4.4/4.5/4.6/4.7 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
  2011-05-06 13:21 ` [Bug tree-optimization/15596] [4.3/4.4/4.5/4.6/4.7 Regression] Missed optimization with bitfields with return value rguenth at gcc dot gnu.org
@ 2011-06-27 14:01 ` rguenth at gcc dot gnu.org
  2012-03-13 14:21 ` [Bug tree-optimization/15596] [4.5/4.6/4.7/4.8 " jakub at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-27 14:01 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.6                       |4.4.7

--- Comment #20 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-27 12:13:49 UTC ---
4.3 branch is being closed, moving to 4.4.7 target.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.5/4.6/4.7/4.8 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
  2011-05-06 13:21 ` [Bug tree-optimization/15596] [4.3/4.4/4.5/4.6/4.7 Regression] Missed optimization with bitfields with return value rguenth at gcc dot gnu.org
  2011-06-27 14:01 ` rguenth at gcc dot gnu.org
@ 2012-03-13 14:21 ` jakub at gcc dot gnu.org
  2012-07-02 12:37 ` [Bug tree-optimization/15596] [4.6/4.7/4.8 " rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-13 14:21 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.4.7                       |4.5.4

--- Comment #21 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-13 12:46:53 UTC ---
4.4 branch is being closed, moving to 4.5.4 target.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.6/4.7/4.8 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2012-03-13 14:21 ` [Bug tree-optimization/15596] [4.5/4.6/4.7/4.8 " jakub at gcc dot gnu.org
@ 2012-07-02 12:37 ` rguenth at gcc dot gnu.org
  2013-04-12 15:21 ` [Bug tree-optimization/15596] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-07-02 12:37 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.5.4                       |4.6.4


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.7/4.8/4.9 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2012-07-02 12:37 ` [Bug tree-optimization/15596] [4.6/4.7/4.8 " rguenth at gcc dot gnu.org
@ 2013-04-12 15:21 ` jakub at gcc dot gnu.org
  2014-06-12 13:46 ` [Bug tree-optimization/15596] [4.7/4.8/4.9/4.10 " rguenth at gcc dot gnu.org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-04-12 15:21 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.4                       |4.7.4

--- Comment #22 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-04-12 15:16:36 UTC ---
GCC 4.6.4 has been released and the branch has been closed.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.7/4.8/4.9/4.10 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2013-04-12 15:21 ` [Bug tree-optimization/15596] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
@ 2014-06-12 13:46 ` rguenth at gcc dot gnu.org
  2014-12-19 13:28 ` [Bug tree-optimization/15596] [4.8/4.9/5 " jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2014-06-12 13:46 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.7.4                       |4.8.4

--- Comment #23 from Richard Biener <rguenth at gcc dot gnu.org> ---
The 4.7 branch is being closed, moving target milestone to 4.8.4.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.8/4.9/5 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2014-06-12 13:46 ` [Bug tree-optimization/15596] [4.7/4.8/4.9/4.10 " rguenth at gcc dot gnu.org
@ 2014-12-19 13:28 ` jakub at gcc dot gnu.org
  2015-02-01  7:33 ` segher at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-12-19 13:28 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.4                       |4.8.5

--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.8.4 has been released.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.8/4.9/5 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2014-12-19 13:28 ` [Bug tree-optimization/15596] [4.8/4.9/5 " jakub at gcc dot gnu.org
@ 2015-02-01  7:33 ` segher at gcc dot gnu.org
  2015-06-23  8:25 ` [Bug tree-optimization/15596] [4.8/4.9/5/6 " rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: segher at gcc dot gnu.org @ 2015-02-01  7:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Segher Boessenkool <segher at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |segher at gcc dot gnu.org

--- Comment #25 from Segher Boessenkool <segher at gcc dot gnu.org> ---
If you initialise the return value to all zeroes, the good code comes
out again.  The problem is that currently GCC preserves all padding
bits.  The same is true for normal stores (instead of return value via
hidden pointer as in the example code).

For this case, for PowerPC, writing 0 to all padding bits is optimal.
That is because we write to field "d" which is adjacent to the padding
bits, and we do the access as a 32-bit word anyway.  For other cases
(and other targets, and other ABIs) things will be different.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.8/4.9/5/6 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2015-02-01  7:33 ` segher at gcc dot gnu.org
@ 2015-06-23  8:25 ` rguenth at gcc dot gnu.org
  2015-06-26 19:58 ` [Bug tree-optimization/15596] [4.9/5/6 " jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-06-23  8:25 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.5                       |4.9.3

--- Comment #26 from Richard Biener <rguenth at gcc dot gnu.org> ---
The gcc-4_8-branch is being closed, re-targeting regressions to 4.9.3.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.9/5/6 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2015-06-23  8:25 ` [Bug tree-optimization/15596] [4.8/4.9/5/6 " rguenth at gcc dot gnu.org
@ 2015-06-26 19:58 ` jakub at gcc dot gnu.org
  2015-06-26 20:29 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-06-26 19:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

--- Comment #27 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.9.3 has been released.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [4.9/5/6 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2015-06-26 19:58 ` [Bug tree-optimization/15596] [4.9/5/6 " jakub at gcc dot gnu.org
@ 2015-06-26 20:29 ` jakub at gcc dot gnu.org
  2021-04-27 11:37 ` [Bug tree-optimization/15596] [8/9/10/11/12 " jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2015-06-26 20:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.9.3                       |4.9.4


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [8/9/10/11/12 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (10 preceding siblings ...)
  2015-06-26 20:29 ` jakub at gcc dot gnu.org
@ 2021-04-27 11:37 ` jakub at gcc dot gnu.org
  2021-07-28  7:04 ` [Bug tree-optimization/15596] [9/10/11/12 " rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-04-27 11:37 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.0                        |11.2

--- Comment #35 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 11.1 has been released, retargeting bugs to GCC 11.2.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [9/10/11/12 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (11 preceding siblings ...)
  2021-04-27 11:37 ` [Bug tree-optimization/15596] [8/9/10/11/12 " jakub at gcc dot gnu.org
@ 2021-07-28  7:04 ` rguenth at gcc dot gnu.org
  2022-04-21  7:47 ` rguenth at gcc dot gnu.org
  2023-05-29 10:01 ` [Bug tree-optimization/15596] [10/11/12/13/14 " jakub at gcc dot gnu.org
  14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-07-28  7:04 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.2                        |11.3

--- Comment #36 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 11.2 is being released, retargeting bugs to GCC 11.3

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [9/10/11/12 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (12 preceding siblings ...)
  2021-07-28  7:04 ` [Bug tree-optimization/15596] [9/10/11/12 " rguenth at gcc dot gnu.org
@ 2022-04-21  7:47 ` rguenth at gcc dot gnu.org
  2023-05-29 10:01 ` [Bug tree-optimization/15596] [10/11/12/13/14 " jakub at gcc dot gnu.org
  14 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-04-21  7:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.3                        |11.4

--- Comment #37 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 11.3 is being released, retargeting bugs to GCC 11.4.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/15596] [10/11/12/13/14 Regression] Missed optimization with bitfields with return value
       [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
                   ` (13 preceding siblings ...)
  2022-04-21  7:47 ` rguenth at gcc dot gnu.org
@ 2023-05-29 10:01 ` jakub at gcc dot gnu.org
  14 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-29 10:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15596

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.4                        |11.5

--- Comment #38 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 11.4 is being released, retargeting bugs to GCC 11.5.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-05-29 10:01 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-15596-4@http.gcc.gnu.org/bugzilla/>
2011-05-06 13:21 ` [Bug tree-optimization/15596] [4.3/4.4/4.5/4.6/4.7 Regression] Missed optimization with bitfields with return value rguenth at gcc dot gnu.org
2011-06-27 14:01 ` rguenth at gcc dot gnu.org
2012-03-13 14:21 ` [Bug tree-optimization/15596] [4.5/4.6/4.7/4.8 " jakub at gcc dot gnu.org
2012-07-02 12:37 ` [Bug tree-optimization/15596] [4.6/4.7/4.8 " rguenth at gcc dot gnu.org
2013-04-12 15:21 ` [Bug tree-optimization/15596] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
2014-06-12 13:46 ` [Bug tree-optimization/15596] [4.7/4.8/4.9/4.10 " rguenth at gcc dot gnu.org
2014-12-19 13:28 ` [Bug tree-optimization/15596] [4.8/4.9/5 " jakub at gcc dot gnu.org
2015-02-01  7:33 ` segher at gcc dot gnu.org
2015-06-23  8:25 ` [Bug tree-optimization/15596] [4.8/4.9/5/6 " rguenth at gcc dot gnu.org
2015-06-26 19:58 ` [Bug tree-optimization/15596] [4.9/5/6 " jakub at gcc dot gnu.org
2015-06-26 20:29 ` jakub at gcc dot gnu.org
2021-04-27 11:37 ` [Bug tree-optimization/15596] [8/9/10/11/12 " jakub at gcc dot gnu.org
2021-07-28  7:04 ` [Bug tree-optimization/15596] [9/10/11/12 " rguenth at gcc dot gnu.org
2022-04-21  7:47 ` rguenth at gcc dot gnu.org
2023-05-29 10:01 ` [Bug tree-optimization/15596] [10/11/12/13/14 " jakub at gcc dot gnu.org

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).