[AArch64 00/14] Pipeline-independent changes for XGene-1

Philipp Tomsich philipp.tomsich@theobroma-systems.com
Tue Feb 18 21:10:00 GMT 2014


The following patch-set contains the pipeline-independent changes to gcc
to support the APM XGene-1 and contains various enhancements derived from
real-world applications and benchmarks running on XGene-1.

As the pipeline model has not been fully adapted to the new instruction
typing shared between the ARM backend and the AArch64 backend, it is not
yet contained in these patches.

The most controversial part of these patches will likely consist in the
new cost-model, which has intentionally been provided as a "hook" that
intercepts the current cost-model when compiling for XGene-1. Given that
the matching/structure of this cost-model is different from the existing
implementation, we've chosen to keep this in a separate function for the
time being.


Philipp Tomsich (14):
  Use "generic" target, if no other default.
  Add "xgene1" core identifier.
  Retrieve BRANCH_COST from tuning structure.
  Correct the maximum shift amount for shifted operands.
  Add AArch64 'prefetch'-pattern.
  Extend '*tb<optab><mode>1'.
  Define additional patterns for adds/subs.
  Define a variant of cmp for the CC_NZ case.
  Add special cases of zero-extend w/ compare operations.
  Add mov<mode>cc definition for GPF case.
  Optimize and(s) patterns for HI/QI operands.
  Generate 'bics', when only interested in CC_NZ.
  Initial tuning description for XGene-1 core.
  Add cost-model for XGene-1.

 gcc/config/aarch64/aarch64-cores.def |   1 +
 gcc/config/aarch64/aarch64-protos.h  |   2 +
 gcc/config/aarch64/aarch64-tune.md   |   2 +-
 gcc/config/aarch64/aarch64.c         | 922 ++++++++++++++++++++++++++++++++++-
 gcc/config/aarch64/aarch64.h         |  10 +-
 gcc/config/aarch64/aarch64.md        | 246 +++++++++-
 gcc/config/aarch64/iterators.md      |   2 +
 gcc/config/arm/types.md              |   2 +
 8 files changed, 1172 insertions(+), 15 deletions(-)

-- 
1.9.0



More information about the Gcc-patches mailing list