On Wed, 2015-08-19 at 10:27 -0700, Steve Ellcey wrote: > I am trying to create a new IPA pass to scan the routines being compiled > by GCC and I thought I would put it in after the last IPA pass (comdats) > so I tried to register it with: > > opt_pass *p = make_pass_ipa_frame_header_opt (g); > static struct register_pass_info f = > {p, "comdats", 1, PASS_POS_INSERT_AFTER }; > register_pass (&f); > > But when I build GCC I get: > > /scratch/sellcey/repos/header2/src/gcc/libgcc/libgcc2.c:1:0: fatal error: > pass 'comdats' not found but is referenced by new pass 'frame-header-opt' > > Does anyone know why this is the case? "comdats" is what is used for > the name of pass_ipa_comdats in ipa-comdats.c.
Is your pass of the correct type? (presumably IPA_PASS). I've run into this a few times with custom passes (which seems to be a "gotcha"); position_pass can fail here: /* Check if the current pass is of the same type as the new pass and matches the name and the instance number of the reference pass. */ if (pass->type == new_pass_info->pass->type Hope this is helpful Dave