This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [buildbot] r201508: Build failures after pass C++ conversion


On Tue, 2013-08-06 at 12:06 -0400, David Malcolm wrote:
> On Tue, 2013-08-06 at 13:12 +0200, Jan-Benedict Glaw wrote:
> > On Mon, 2013-08-05 20:16:05 -0000, dmalcolm@gcc.gnu.org <dmalcolm@gcc.gnu.org> wrote:
> > > New Revision: 201508
> > > 
> > > URL: http://gcc.gnu.org/viewcvs?rev=201508&root=gcc&view=rev
> > > Log:
> > > Automated conversion of passes to C++ classes
> > > 
> > > gcc/
> > > 
> > > 	Patch autogenerated by refactor_passes.py from
> > > 	https://github.com/davidmalcolm/gcc-refactoring-scripts
> > > 	revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
> > 
> > I see quite some fall-out from this on epiphany-elf:
> > 
> > g++ -c   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../../../../gcc/gcc -I../../../../gcc/gcc/build -I../../../../gcc/gcc/../include -I../../../../gcc/gcc/../libcpp/include  -I../../../../gcc/gcc/../libdecnumber -I../../../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I../../../../gcc/gcc/../libbacktrace    \
> >                 -o build/genflags.o ../../../../gcc/gcc/genflags.c
> > In file included from ./tm.h:21:0,
> >                  from ../../../../gcc/gcc/genflags.c:26:
> > ../../../../gcc/gcc/config/epiphany/epiphany.h:932:8: error: ârtl_opt_passâ does not name a type
> >  extern rtl_opt_pass *make_pass_mode_switch_use (gcc::context *ctxt);
> >         ^
> > ../../../../gcc/gcc/config/epiphany/epiphany.h:933:8: error: ârtl_opt_passâ does not name a type
> >  extern rtl_opt_pass *make_pass_resolve_sw_modes (gcc::context *ctxt);
> >         ^
> Sorry about this, clearly I failed to test the target-specific passes.
> 
> epiphany_init does some interesting manipulation of passes.  I don't
> have epiphany hardware, but I've reproduced the build failure on my
> x86_64 box using --configure target=epiphany-elf, and the attached patch
> ports it to the new API.  With this patch, stage 1 was able to build,
> and cc1 seems to generate assembler on a trivial test. I was able to
> step through epiphany_init's pass manipulation, and it appears to be
> doing the right thing.
> 
> This does add two new headers to epiphany.c; I'm not seeing where to add
> the deps (gcc/config/epiphany/t-epiphany doesn't list epiphany.o).
> 
> I'm kicking off a bootstrap of this (on x86_64) to further verify that
> the non-epiphany changes are good.  What other testing can I do to
> verify this?
> 
> gcc/
> 
> 	* config/epiphany/epiphany.c (pass_mode_switch_use): New.
> 	(epiphany_init): Port to new C++ pass API.
> 	(epiphany_optimize_mode_switching): Likewise.
> 	* config/epiphany/epiphany.h: Likewise.
> 	* pass_manager.h (pass_manager::get_pass_split_all_insns): New.
> 	(pass_manager::get_pass_mode_switching): New.
> 	(pass_manager::get_pass_peephole2): New.
> 	* mode-switching.c (pass_mode_switching): Add clone method.
> 	* recog.c (pass_peephole2): Add clone method.
> 	(pass_split_all_insns): Add clone method.
> 
This patch also removed "static" qualifiers from the register_pass_info,
which may have been overzealous, though they seemed pointless: the
struct is only used during the lifetime of the register_pass call.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]