diff mbox series

rtl-ssa: Include memmodel.h before tm_p.h

Message ID yddwnxgyb12.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series rtl-ssa: Include memmodel.h before tm_p.h | expand

Commit Message

Rainer Orth Dec. 17, 2020, 10:36 a.m. UTC
The RTL SSA merge broke SPARC bootstrap:

In file included from ./tm_p.h:4,
                 from /vol/gcc/src/hg/master/local/gcc/rtl-ssa.h:54,
                 from /vol/gcc/src/hg/master/local/gcc/fwprop.c:29:
/vol/gcc/src/hg/master/local/gcc/config/sparc/sparc-protos.h:45:47: error: use of enum 'memmodel' without previous declaration
 extern void sparc_emit_membar_for_model (enum memmodel, int, int);
                                               ^~~~~~~~

and similarly in rtl-ssa/functions.cc, rtl-ssa/changes.cc, and
rtl-ssa/insns.cc.

Fixed by moving the memmove.h include in rtl-ssa.h before tm_p.h.

Tested on sparc-sun-solaris2.11 and i386-pc-solaris2.11 (both into stage
3 now, so the compilation error is gone).

Ok for master?

	Rainer

Comments

Kyrylo Tkachov Dec. 17, 2020, 1:41 p.m. UTC | #1
Hi Rainer,

> -----Original Message-----
> From: Gcc-patches <gcc-patches-bounces@gcc.gnu.org> On Behalf Of
> Rainer Orth
> Sent: 17 December 2020 10:36
> To: gcc-patches@gcc.gnu.org
> Cc: Richard Sandiford <Richard.Sandiford@arm.com>
> Subject: [PATCH] rtl-ssa: Include memmodel.h before tm_p.h
> 
> The RTL SSA merge broke SPARC bootstrap:
> 
> In file included from ./tm_p.h:4,
>                  from /vol/gcc/src/hg/master/local/gcc/rtl-ssa.h:54,
>                  from /vol/gcc/src/hg/master/local/gcc/fwprop.c:29:
> /vol/gcc/src/hg/master/local/gcc/config/sparc/sparc-protos.h:45:47: error:
> use of enum 'memmodel' without previous declaration
>  extern void sparc_emit_membar_for_model (enum memmodel, int, int);
>                                                ^~~~~~~~
> 
> and similarly in rtl-ssa/functions.cc, rtl-ssa/changes.cc, and
> rtl-ssa/insns.cc.
> 
> Fixed by moving the memmove.h include in rtl-ssa.h before tm_p.h.
> 
> Tested on sparc-sun-solaris2.11 and i386-pc-solaris2.11 (both into stage
> 3 now, so the compilation error is gone).
> 
> Ok for master?

AFAIK simple patches like this that fix build/bootstrap are viewed as obvious and can be committed.
I hope I'm not wrong 😊
Thanks,
Kyrill

> 
> 	Rainer
> 
> --
> -----------------------------------------------------------------------------
> Rainer Orth, Center for Biotechnology, Bielefeld University
> 
> 
> 2020-12-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
> 
> 	gcc:
> 	* rtl-ssa.h: Include memmodel.h before tm_p.h.
Rainer Orth Dec. 17, 2020, 1:49 p.m. UTC | #2
Hi Kyryll,

>> Fixed by moving the memmove.h include in rtl-ssa.h before tm_p.h.
>> 
>> Tested on sparc-sun-solaris2.11 and i386-pc-solaris2.11 (both into stage
>> 3 now, so the compilation error is gone).
>> 
>> Ok for master?
>
> AFAIK simple patches like this that fix build/bootstrap are viewed as
> obvious and can be committed.
> I hope I'm not wrong 😊

I know, however I'm always unsure about the proper include order, thus
asking for review.

Thanks.
	Rainer
Richard Sandiford Dec. 17, 2020, 2:04 p.m. UTC | #3
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
> Hi Kyryll,
>
>>> Fixed by moving the memmove.h include in rtl-ssa.h before tm_p.h.
>>> 
>>> Tested on sparc-sun-solaris2.11 and i386-pc-solaris2.11 (both into stage
>>> 3 now, so the compilation error is gone).
>>> 
>>> Ok for master?
>>
>> AFAIK simple patches like this that fix build/bootstrap are viewed as
>> obvious and can be committed.
>> I hope I'm not wrong 😊
>
> I know, however I'm always unsure about the proper include order,

Me too TBH, as seen here.  But I agree it looks like memmodel.h
has to be included before tm_p.h.  It looks like some files
include emit-rtl.h without directly including tm_p.h (such as
auto-inc-dec.c) so maybe that tm_p.h include was needed for
something else.  Or maybe auto-inc-dec.c gets it indirectly
via something else.

> thus asking for review.

OK, thanks, and sorry for the breakage.

Richard
diff mbox series

Patch

diff --git a/gcc/rtl-ssa.h b/gcc/rtl-ssa.h
--- a/gcc/rtl-ssa.h
+++ b/gcc/rtl-ssa.h
@@ -51,8 +51,8 @@ 
 #include "rtlanal.h"
 
 // Provides the global crtl->ssa.
+#include "memmodel.h"
 #include "tm_p.h"
-#include "memmodel.h"
 #include "emit-rtl.h"
 
 // The rtl-ssa files themselves.