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]

[Patch, darwin] do not generate branch islands when the linker can do it.


Hi,
This hugely tidies up *-*-darwin{9,10} asm by omitting the branch islands where they are not needed.


I've had it in my local tree for a month or so .. and it's been bootstrapped on x86_64-unknown-linux-gnu as well as a number of cross- targets.

I don't have a second rs6000 target but, by inspection, the changes are within code already wrapped by #ifdef MACH_O.

We must not put the "darwin_emit_branch_islands" declaration into darwin.h or I think it will mess up the (small amount of) binutils stuff that currently works for darwin. Hence the reason it appears in both i386/darwin.h and rs6000/darwin.h

OK for trunk?
Iain


* config/i386/darwin.h: Define darwin_emit_branch_islands. (FUNCTION_PROFILER): Do not emit branch islands unless darwin_emit_branch_islands is set. * config/i386/i386.c (output_pic_addr_const): Do not emit branch islands unless darwin_emit_branch_islands is set. (x86_output_mi_thunk): Adjust symbol creation. * config/rs6000/darwin.h: Define darwin_emit_branch_islands. Remove out of date comment. * config/rs6000/rs6000.c (print_operand): Adjust symbol. DARWIN_LINKER_GENERATES_ISLANDS: Remove. DARWIN_GENERATE_ISLANDS: Ditto. (output_call): Do not emit branch islands unless darwin_emit_branch_islands is set. * config/darwin.c: Declare darwin_emit_branch_islands. (machopic_indirect_data_reference): Do not emit unless darwin_emit_branch_islands is set. (darwin_override_options): Set darwin_emit_branch_islands where it is needed. * config/darwin9.h DARWIN_LINKER_GENERATES_ISLANDS: Remove.

Attachment: 162209-darwin-branch-islands.txt
Description: Text document




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