https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
Iain Sandoe changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #18 from Iain Sandoe ---
Author: iains
Date: Mon Dec 24 12:47:58 2018
New Revision: 267406
URL: https://gcc.gnu.org/viewcvs?rev=267406=gcc=rev
Log:
Fix target/78444 on x86/Darwin.
2018-12-24 Iain Sandoe
Backport from
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #17 from Iain Sandoe ---
Author: iains
Date: Sun Dec 23 20:34:13 2018
New Revision: 267384
URL: https://gcc.gnu.org/viewcvs?rev=267384=gcc=rev
Log:
backport r266853 to fix PR target/78444.
2018-12-23 Iain Sandoe
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #16 from Iain Sandoe ---
Author: iains
Date: Thu Dec 6 13:36:35 2018
New Revision: 266853
URL: https://gcc.gnu.org/viewcvs?rev=266853=gcc=rev
Log:
Fix for PR78444 by ensuring 128b alignment at call sites.
2018-12-06 Iain Sandoe
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #15 from Uroš Bizjak ---
(In reply to Iain Sandoe from comment #14)
> > I think that adding
> >
> > if (TARGET_MACHO && crtl->profile)
> > {
> > crtl->preferred_stack_boundary = 128;
> > crtl->stack_alignment_needed = 128;
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #14 from Iain Sandoe ---
(In reply to Uroš Bizjak from comment #13)
> (In reply to Iain Sandoe from comment #12)
> > + /* If we're profiling, we don't have a leaf. */
> > + gcc_assert (!crtl->is_leaf || !crtl->profile);
> >
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #13 from Uroš Bizjak ---
(In reply to Iain Sandoe from comment #12)
> + /* If we're profiling, we don't have a leaf. */
> + gcc_assert (!crtl->is_leaf || !crtl->profile);
>stack_alignment_needed = crtl->stack_alignment_needed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #12 from Iain Sandoe ---
So i've tested this on Darwin
- and doing x86_64-linux now;
along with the change, I removed 'profile_flag' hack and added
+ /* If we're profiling, we don't have a leaf. */
+ gcc_assert (!crtl->is_leaf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #11 from Iain Sandoe ---
(In reply to Uroš Bizjak from comment #10)
> BTW: probably related to this PR, I have seen following kludge in
> i386/darwin.h:
>
> #define STACK_BOUNDARY \
> ((profile_flag || TARGET_64BIT_MS_ABI) ? 128 :
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #10 from Uroš Bizjak ---
BTW: probably related to this PR, I have seen following kludge in
i386/darwin.h:
#define STACK_BOUNDARY \
((profile_flag || TARGET_64BIT_MS_ABI) ? 128 : BITS_PER_WORD)
It looks that profile_flag is there
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #9 from Iain Sandoe ---
(In reply to Iain Sandoe from comment #8)
> (In reply to Uroš Bizjak from comment #7)
> > (In reply to Iain Sandoe from comment #6)
> > > for sysV5 psABI targets, the call site requirement is 64 for m32 and
>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #8 from Iain Sandoe ---
(In reply to Uroš Bizjak from comment #7)
> (In reply to Iain Sandoe from comment #6)
> > for sysV5 psABI targets, the call site requirement is 64 for m32 and 126/256
> > for m64.
> sysV5 requires 128bit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #7 from Uroš Bizjak ---
(In reply to Iain Sandoe from comment #6)
> for sysV5 psABI targets, the call site requirement is 64 for m32 and 126/256
> for m64.
sysV5 requires 128bit alignment at the call site, but on linux no runtime
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #6 from Iain Sandoe ---
(In reply to Uroš Bizjak from comment #5)
> (In reply to Uroš Bizjak from comment #4)
> > So, what we want to achieve here?
> AFAICS, the compiler figures out that the called function requires only
> 64bit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #5 from Uroš Bizjak ---
(In reply to Uroš Bizjak from comment #4)
> So, what we want to achieve here?
AFAICS, the compiler figures out that the called function requires only 64bit
alignment and lowers the alignment requirements at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #4 from Uroš Bizjak ---
(In reply to Uroš Bizjak from comment #3)
> (In reply to Iain Sandoe from comment #2)
> > I had previously posted the fragment below for review - and will update that
> > thread shortly.
> But still - why
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #3 from Uroš Bizjak ---
(In reply to Iain Sandoe from comment #2)
> I had previously posted the fragment below for review - and will update that
> thread shortly.
But still - why doesn't expand_call update
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #2 from Iain Sandoe ---
Thanks, that confirms my expectation that this could/would affect other
targets.
I had previously posted the fragment below for review - and will update that
thread shortly.
diff --git
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
Uroš Bizjak changed:
What|Removed |Added
CC||ubizjak at gmail dot com
--- Comment #1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
Iain Sandoe changed:
What|Removed |Added
Keywords||wrong-code
Target|
20 matches
Mail list logo