This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH][AArch64][0/14] Implement SWITCHABLE_TARGET, target attribute and pragma support
- From: Kyrill Tkachov <kyrylo dot tkachov at arm dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Marcus Shawcroft <marcus dot shawcroft at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, James Greenhalgh <james dot greenhalgh at arm dot com>
- Date: Thu, 16 Jul 2015 16:20:26 +0100
- Subject: [PATCH][AArch64][0/14] Implement SWITCHABLE_TARGET, target attribute and pragma support
- Authentication-results: sourceware.org; auth=none
Hi all,
This series implements the hooks required to enable SWITCHABLE_TARGET for the aarch64 port.
This series allows the aarch64 compiler to sanely handle LTO compilation of files compiled
with different target-specific options.
The first 5 patches refactor the option handling machinery and remove some clunky global state.
Then there are 2 patches to implement the target-switching hooks and enable SWITCHABLE_TARGET.
These are followed by patches to implement some target attributes that may be of use to users,
allowing them to set per-function cpu tuning and other options.
This is followed by implementation of target pragmas, tests and documentation and a couple of
patches fixing bugs that I encountered along the way.
Look at patch 13 for the documentation of the target attributes and pragmas that are made available
through this series.
These have been in my tree for about a month and have been bootstrapped and tested on aarch64
multiple times. LTO bootstraps works fine as well.
Ok for trunk?
Thanks,
Kyrill
[AArch64][1/14] Add ident field to struct processor
[AArch64][2/14] Refactor arches handling, add arch enum identifier
[AArch64][3/14] Refactor option override code
[AArch64][4/14] Create TARGET_FIX_ERR_A53_835769 and use that instead of aarch64_fix_a53_err835769
[AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use TARGET_OMIT_LEAF_FRAME_POINTER
[AArch64][6/14] Implement TARGET_OPTION_SAVE/TARGET_OPTION_RESTORE
[AArch64][7/14] Implement TARGET_SET_CURRENT_FUNCTION
[AArch64][8/14] Implement TARGET_OPTION_VALID_ATTRIBUTE_P
[AArch64][9/14] Implement TARGET_CAN_INLINE_P
[AArch64][10/14] Implement target pragmas
[AArch64][11/14] Re-layout SIMD builtin types on builtin expansion
[AArch64][12/14] Target attributes and target pragmas tests
[doc][13/14] Document AArch64 target attributes and pragmas
[AArch64][14/14] Reuse target_option_current_node when passing pragma string to target attribute