On Mon, Jun 13, 2016 at 2:23 PM, Kyrill Tkachov <kyrylo.tkac...@foss.arm.com> wrote: > Hi all, > > There are other places besides expand where we might want to synthesize an > integer > multiplication by a constant. Thankfully the algorithm selection code in > expmed.c > is already quite well separated from the RTL implementation, so if we can > just factor > out the prototype of choose_mult_variant and some enums and structs that it > needs into > a separate header file we can reuse them from other parts of the compiler. > > I need this for patch 2/2 which hooks up the vectorizer to synthesize vector > multiplications using sequences of shifts and other arithmetic ops when > appropriate. > > The new header is called mult-synthesis.h. Should I add it to some makefile? > grepping around for a bit I'm not sure what to do about it.
Possibly PLUGIN_HEADERS. You could have included expmed.h from the vectorizer, no? After all this patch now breaks that things declared in A.h are defined in A.c as you didn't move choose_mult_variant itself. Thanks, Richard. > > Bootstrapped and tested on arm, aarch64, x86_64. > > Thanks, > Kyrill > > 2016-06-13 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > * mult-synthesis.h: New file. Add choose_mult_variant prototype. > * expmed.h: Include mult-synthesis.h > (enum alg_code): Move to mult-synthesis.h > (struct mult_cost): Likewise. > (struct algorithm): Likewise. > * expmed.c (enum mult_variant): Move to mult-synthesis.h > (choose_mult_variant): Delete prototype. Remove static qualifier.