This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
new port: vn8
- From: Mike Stump <mikestump at comcast dot net>
- To: Nguyán Sinh Ngác <ngoc dot nguyensinh at icdrec dot edu dot vn>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 26 Jan 2016 14:53:57 -0800
- Subject: new port: vn8
- Authentication-results: sourceware.org; auth=none
- References: <CA+enTY64D-DVdDhdMW+TzcFdP7XK7=SHW-bP0pmQ75GMmwHwDg at mail dot gmail dot com> <F0AF3C56-1493-42E3-B6A8-D9EE5CF9D792 at comcast dot net> <CA+enTY7oGRCv+_WL+bDH_bNVJw=LQH22ncjpDTtUeEa64dr2UA at mail dot gmail dot com>
I don’t see the point of libgcc/config/vn8/test.patch. I suspect either you need to apply it to your diffs before you send them out, or remove the file a junk from the diff set.
I saw:
inflating: libgcc/config/vn8/lib1funcs-fixed.S
inflating: libgcc/config/vn8/lib1funcs-fixed.S.old
inflating: libgcc/config/vn8/lib1funcs.S
inflating: libgcc/config/vn8/lib1funcs.S.old
and suspect the .old files are old, and aren’t used by the build. If so, they can be removed.
I saw:
inflating: gcc/config/vn8/vn8.md.bak
inflating: gcc/config/vn8/vn8.md.bk
inflating: gcc/config/vn8/t-vn8.bak
and suspect these aren’t needed (or are badly named) and should be removed.
I glanced at the non-port files, and all that code looks fine.
> I used gcc-4.9.0 version for new port.
So, you will want to check out a copy of the compiler from git or svn. You will want to do this checkout from the trunk. You then want to apply your patch set to it, and build and test it, fixing any issues that arise, and then contribute that. The patch set you sent would be a back port to a release branch, if any, and would come after the port is accepted into trunk.
> // output_addr_const (stderr, addr);
> // fprintf(stderr,"\n”);
> // rtx temp_rtx = XEXP(XEXP(x,0),0);
It is now time to figure out what to do with this code. If you like it and want to keep it, instead do:
#define PORTDEBUGGING 0
if (PORTDEBUGGING)
{
}
and turn it into normal code.
> #if 0
> ADJUST_BYTESIZE (QI, 1);
> ADJUST_BYTESIZE (HI, 1);
> ADJUST_BYTESIZE (SI, 2);
> ADJUST_BYTESIZE (PSI, 3);
> ADJUST_BYTESIZE (DI, 4);
> ADJUST_BYTESIZE (TI, 8);
> #endif // 1
You should just remove the whole block.
I’d recommend fixing all the above and reposting. Someone else will do a more in depth port review and comment further.
If you don’t have your paper work done, you will want to start up that process now. The port can’t go into the compiler without it.
One last comment, while you wait for the review of the port code, you should consider your FIXMEs and decide if there is any progress you can make on them.
./gcc/config/vn8/vn8.c: /* FIXME: For setjmp and in vn8_builtin_setjmp_frame_value we don't know
./gcc/config/vn8/vn8.c: /* FIXME: Non-generic addresses are not mode-dependent in themselves.
./gcc/config/vn8/vn8.c: /* FIXME: We ship info on failing tail-call in struct machine_function.
./gcc/config/vn8/vn8.c: /* FIXME: For OS_task and OS_main, this might be over-conservative. */
./gcc/config/vn8/vn8.c: /* FIXME: Ideally, the following test is not needed.
./gcc/config/vn8/vn8.c: /* FIXME: This hook gets called with MODE:REGNO combinations that don't
./gcc/config/vn8/vn8.c: FIXME: Filter out cases where the target object is known to
./gcc/config/vn8/vn8.c: /* FIXME: Register allocator might come up with spill fails if it is left
./gcc/config/vn8/vn8.c: /* FIXME: Register allocator does a bad job and might spill address