http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #48 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2012-08-17
19:59:51 UTC ---
Author: hjl
Date: Fri Aug 17 19:59:46 2012
New Revision: 190492
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=190492
Log:
Define
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
H.J. Lu hjl.tools at gmail dot com changed:
What|Removed |Added
Status|NEW |RESOLVED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
H.J. Lu hjl.tools at gmail dot com changed:
What|Removed |Added
Status|NEW |RESOLVED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #38 from Richard Guenther rguenth at gcc dot gnu.org 2012-08-15
08:57:51 UTC ---
What are the code generation deficiencies you are targeting with this? For
testcase #1 I get
sptr_result:
.LFB0:
.cfi_startproc
movq
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #39 from Chip Salzenberg chip at pobox dot com 2012-08-15
09:13:36 UTC ---
avoiding BLKmode avoids unnecessary spills to memory. See Bug 28831 and Bug
41194 for examples.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #40 from rguenther at suse dot de rguenther at suse dot de
2012-08-15 09:29:02 UTC ---
On Wed, 15 Aug 2012, chip at pobox dot com wrote:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #39 from Chip Salzenberg chip
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #41 from Gary Funck gary at intrepid dot com 2012-08-15 13:47:37
UTC ---
(In reply to comment #38)
What are the code generation deficiencies you are targeting with this? For
testcase #1 I get
sptr_result:
.LFB0:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #42 from H.J. Lu hjl.tools at gmail dot com 2012-08-15 13:58:16
UTC ---
(In reply to comment #37)
(In reply to comment #36)
(In reply to comment #35)
Note that for the test case in comment #34 (and comment #9) to fail that
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #43 from H.J. Lu hjl.tools at gmail dot com 2012-08-15 14:21:05
UTC ---
The problem is we return a TI union in XF register
because the x86-64 psABI.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #44 from Gary Funck gary at intrepid dot com 2012-08-15 14:45:42
UTC ---
(In reply to comment #43)
The problem is we return a TI union in XF register
because the x86-64 psABI.
Is this the same problem documented in comment #9?
The
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
Jakub Jelinek jakub at gcc dot gnu.org changed:
What|Removed |Added
CC||jakub at gcc dot
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #46 from H.J. Lu hjl.tools at gmail dot com 2012-08-15 16:01:15
UTC ---
(In reply to comment #45)
Changing this is generally very risky for ABI incompatibilities, many targets
base some of the decisions how to pass parameters or
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #47 from H.J. Lu hjl.tools at gmail dot com 2012-08-16 00:00:25
UTC ---
Created attachment 28028
-- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28028
A patch
Here is a patch which should be applied on top of
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #31 from Chip Salzenberg chip at pobox dot com 2012-08-14
22:46:12 UTC ---
I've tested the attached patch, and I find that it succeeds in preventing the
current missed optimizations in structs passed by value from affecting 128-bit
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #32 from Chip Salzenberg chip at pobox dot com 2012-08-14
23:09:01 UTC ---
More good data: this patch reduces the size of libstdc++.so by .5%
$ size usr/lib/libstdc++.so.6.0.17 /usr/lib/libstdc++.so.6.0.17
textdata bss
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #33 from H.J. Lu hjl.tools at gmail dot com 2012-08-14 23:43:24
UTC ---
We must make sure that
---
union S160
{
long double a;
};
extern union S160 check160 (void);
extern void checkx160 (union S160);
void
test160 (void)
{
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #34 from Gary Funck gary at intrepid dot com 2012-08-14 23:55:57
UTC ---
(In reply to comment #33)
We must make sure that
---
union S160
{
long double a;
};
extern union S160 check160 (void);
extern void checkx160 (union
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #35 from Gary Funck gary at intrepid dot com 2012-08-15 00:00:43
UTC ---
Note that for the test case in comment #34 (and comment #9) to fail that the
MAX_FIXED_MODE_SIZE patch has to be applied, and likely GCC internal checking
has to
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #36 from H.J. Lu hjl.tools at gmail dot com 2012-08-15 01:23:54
UTC ---
(In reply to comment #35)
Note that for the test case in comment #34 (and comment #9) to fail that the
MAX_FIXED_MODE_SIZE patch has to be applied, and likely
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #37 from Gary Funck gary at intrepid dot com 2012-08-15 03:34:55
UTC ---
(In reply to comment #36)
(In reply to comment #35)
Note that for the test case in comment #34 (and comment #9) to fail that the
MAX_FIXED_MODE_SIZE patch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #30 from Gary Funck gary at intrepid dot com 2012-08-14 04:24:54
UTC ---
Patch posted:
http://gcc.gnu.org/ml/gcc-patches/2012-08/msg00839.html
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #16 from Gary Funck gary at intrepid dot com 2012-08-12 18:08:05
UTC ---
Created attachment 27995
-- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27995
test case #1 - struct targeted to TImode
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #17 from Gary Funck gary at intrepid dot com 2012-08-12 18:11:25
UTC ---
Created attachment 27996
-- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27996
test case #2 - struct targeted to TImode
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #18 from Gary Funck gary at intrepid dot com 2012-08-12 18:17:19
UTC ---
Created attachment 27997
-- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27997
test case #3 - struct targeted to TImode
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #19 from Gary Funck gary at intrepid dot com 2012-08-12 18:30:25
UTC ---
(In reply to comment #15)
Do we have a run-time testcase?
I attached three compile-time test cases that check if the generated RTL refers
to TImode values.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #20 from H.J. Lu hjl.tools at gmail dot com 2012-08-12 19:50:08
UTC ---
(In reply to comment #19)
(In reply to comment #15)
Do we have a run-time testcase?
I attached three compile-time test cases that check if the generated RTL
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #21 from Gary Funck gary at intrepid dot com 2012-08-12 21:24:40
UTC ---
(In reply to comment #20)
X86 doesn't support __int128 and requires SSE for TImode.
We may need to limit those testcases for int128 target.
OK, I'll add: /*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
Gary Funck gary at intrepid dot com changed:
What|Removed |Added
Attachment #27995|0 |1
is
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
Gary Funck gary at intrepid dot com changed:
What|Removed |Added
Attachment #27996|0 |1
is
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
Gary Funck gary at intrepid dot com changed:
What|Removed |Added
Attachment #27997|0 |1
is
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #25 from Gary Funck gary at intrepid dot com 2012-08-12 22:08:50
UTC ---
(In reply to comment #20)
X86 doesn't support __int128 and requires SSE for TImode.
We may need to limit those testcases for int128 target.
If targeting
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #26 from Gary Funck gary at intrepid dot com 2012-08-12 22:14:56
UTC ---
Typo fixed below:
#define MAX_FIXED_MODE_SIZE targetm.scalar_mode_supported_p (TImode) ? TImode :
DImode
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
H.J. Lu hjl.tools at gmail dot com changed:
What|Removed |Added
CC||ubizjak at gmail dot
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #28 from Gary Funck gary at intrepid dot com 2012-08-12 22:43:16
UTC ---
(In reply to comment #27)
Please try this patch:
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index c4d85b7..6c4c2ce 100644
---
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #29 from H.J. Lu hjl.tools at gmail dot com 2012-08-13 02:17:28
UTC ---
(In reply to comment #28)
(In reply to comment #27)
Please try this patch:
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #15 from H.J. Lu hjl.tools at gmail dot com 2012-08-11 14:37:30
UTC ---
Do we have a run-time testcase?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #14 from Gary Funck gary at intrepid dot com 2012-08-11 03:22:34
UTC ---
(In reply to comment #13)
Is this bug obsolete now?
Comment #7 (2005-06-25) states that this is a valid bug, and near as I can tell
the current compiler still
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
Chip Salzenberg chip at pobox dot com changed:
What|Removed |Added
CC||chip at pobox dot
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #12 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-07-09
10:27:42 UTC ---
Since the PR was opened, a new usage of MAX_FIXED_MODE_SIZE has been
introduced:
2006-11-18 John David Anglin dave.ang...@nrc-cnrc.gc.ca
PR
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #9 from Gary Funck gary at intrepid dot com 2011-07-08 16:20:50
UTC ---
This note is both a ping for this rather old bug report, as well as a follow up
with some additional information.
For the ping side of things, we have been
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #10 from Gary Funck gary at intrepid dot com 2011-07-08 16:58:55
UTC ---
Note: I don't know how this fix fits in with the x86_64 ABI, and obviously once
this fix is in place, the binary call interface will change for 128 bit
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Comment #11 from Gary Funck gary at intrepid dot com 2011-07-08 17:20:32
UTC ---
(In reply to comment #10)
Note: I don't know how this fix fits in with the x86_64 ABI, and obviously
once
this fix is in place, the binary call interface
--- Comment #8 from ubizjak at gmail dot com 2008-08-03 17:44 ---
CCing HJ for ABI issue.
--
ubizjak at gmail dot com changed:
What|Removed |Added
CC|
--- Additional Comments From steven at gcc dot gnu dot org 2005-06-25
11:56 ---
So it's agreed this is a valid bug... Now, what are we going to do about it?
--
What|Removed |Added
--
What|Removed |Added
GCC host triplet|x86_64-unknown-linux-gnu|
GCC target triplet||x86_64-unknown-linux-gnu
--
What|Removed |Added
CC||matz at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020
--- Additional Comments From gary at intrepid dot com 2005-02-17 19:35
---
The MAX_FIXED_REC_SIZE defintion is a relatively recent addition to
config/rs6000.h (and from a quick review of the cvs log, it seems that this
change hasn't yet been incorporated into a release.) Just fyi.
On Feb 17, 2005, at 2:35 PM, gary at intrepid dot com wrote:
The MAX_FIXED_REC_SIZE defintion is a relatively recent addition to
config/rs6000.h (and from a quick review of the cvs log, it seems that
this
change hasn't yet been incorporated into a release.) Just fyi.
Yes so, just a note the patch
--- Additional Comments From pinskia at physics dot uc dot edu 2005-02-17
20:05 ---
Subject: Re: x86_64 - 128 bit structs not targeted to TImode
On Feb 17, 2005, at 2:35 PM, gary at intrepid dot com wrote:
The MAX_FIXED_REC_SIZE defintion is a relatively recent addition to
--- Additional Comments From gary at intrepid dot com 2005-02-17 21:41
---
Also note MAX_FIXED_MODE_SIZE was changed on
rs6000 for a reason and not for an optimization issue.
Based on my interpretaion of the procedure call ABI, both this problem and a
related Bug #19566
--- Additional Comments From matz at suse dot de 2005-02-17 22:06 ---
I think that #19566 is a real bug. The ABI specifies to pass 16byte
structs in registers. Anyway MAX_FIXED_MODE_SIZE doesn't influence
the calling convention, only how such struct is handled by transforming
code.
--- Additional Comments From gary at intrepid dot com 2005-02-17 22:39
---
I think that Bug #19566 is a real bug. The ABI specifies to pass 16byte
structs in registers. Anyway MAX_FIXED_MODE_SIZE doesn't influence
the calling convention ...
Thanks for the clarification. After
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-17
04:02 ---
You missed another important 64 bit target PPC (aka rs6000):
#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_POWERPC64 ? TImode :
DImode)
But note:
MAX_FIXED_MODE_SIZE should be deprecated. About
53 matches
Mail list logo