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: [RFC VTV] Fix VTV for targets that have section anchors.


On 10/13/2015 06:53 AM, Ramana Radhakrishnan wrote:



On 12/10/15 21:44, Jeff Law wrote:
On 10/09/2015 03:17 AM, Ramana Radhakrishnan wrote:
This started as a Friday afternoon project ...

It turned out enabling VTV for AArch64 and ARM was a matter of fixing
PR67868 which essentially comes from building libvtv with section
anchors turned on. The problem was that the flow of control from
output_object_block through to switch_section did not have the same
special casing for the vtable section that exists in
assemble_variable.
That's some ugly code.  You might consider factoring that code into a function and just calling it from both places.  Your version doesn't seem to handle PECOFF, so I'd probably refactor from assemble_variable.


I was a bit lazy as I couldn't immediately think of a target that would want PECOFF, section anchors and VTV. That combination seems to be quite rare, anyway point taken on the refactor.

Ok if no regressions ?


However both these failures also occur on x86_64 - so I'm content to
declare victory on AArch64 as far as basic enablement goes.
Cool.


1. Are the generic changes to varasm.c ok ? 2. Can we take the
AArch64 support in now, given this amount of testing ? Marcus /
Caroline ? 3. Any suggestions / helpful debug hints for VTV debugging
(other than turning VTV_DEBUG on and inspecting trace) ?
I think that with refactoring they'd be good to go.  No opinions on the AArch64 specific question -- call for the AArch64 maintainers.

Good to see someone hacking on vtv.  It's in my queue to look at as well.

Yeah figuring out more about vtv is also in my background queue.

regards
Ramana

PR other/67868

* varasm.c (assemble_variable): Move special vtv handling to..
(handle_vtv_comdat_sections): .. here. New function.
(output_object_block): Handle vtv sections.

libvtv/Changelog

* configure.tgt: Support aarch64 and arm.
OK for the trunk. Sorry for the delay, I was out on the PTO the latter half of last week.

jeff


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