This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
- From: "rearnsha at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Oct 2009 17:51:59 -0000
- Subject: [Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
- References: <bug-39247-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #11 from rearnsha at gcc dot gnu dot org 2009-10-19 17:51 -------
(In reply to comment #9)
> Subject: Re: FAIL: gcc.dg/tree-prof/bb-reorg.c compilation,
> -fprofile-use -D_PROFILE_USE
>
> On Mon, 19 Oct 2009, rearnsha at gcc dot gnu dot org wrote:
>
> > I don't think there should be such notes on ARM due to the branch-range
> > limitation. We can't arbitrarily jump between sections in Thumb state, for
> > example
>
> Nowadays GNU ld supports generating long branch stubs on ARM. It's
> intended for calls in large programs, but shouldn't it be possible to get
> the compiler to generate jumps between sections within a function that the
> linker can then make use the long branch stubs if necessary? (Given a
> solution to the constant pools issue.)
>
The compiler generated stubs are permitted to clobber registers that would not
normally be affected (namely IP), so we'd need to build that knowledge into the
compiler. Actually, the manual suggests the compiler can deal with this
without the need for using the range-limited branches since it will generate
indirect jumps.
The literal-pool problem still needs to be solved though and that's
non-trivial.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247