diff options
author | Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> | 2013-03-11 14:32:10 +0000 |
---|---|---|
committer | Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> | 2013-03-11 14:32:10 +0000 |
commit | c8709b4ebbe88d5e637d1087fbe068913e09fa2a (patch) | |
tree | 4b8f706a7bcccd5f853a091f0e174ab5ad8c4653 | |
parent | 1cc341b8987092b7bc9ae48993b8a432ca04b960 (diff) | |
parent | e545850651346c3da1f0dc326e2763c383fd76ad (diff) |
Merge from FSF arm/aarch64-4.7-branch r196014..r196225.
-rw-r--r-- | ChangeLog.linaro | 29 | ||||
-rw-r--r-- | gcc/ChangeLog.aarch64 | 19 | ||||
-rw-r--r-- | gcc/common/config/aarch64/aarch64-common.c | 11 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-elf.h | 9 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-simd-builtins.def | 19 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 11 | ||||
-rw-r--r-- | gcc/config/aarch64/t-aarch64 | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog.aarch64 | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/abi/aarch64_guard1.C | 2 |
9 files changed, 108 insertions, 2 deletions
diff --git a/ChangeLog.linaro b/ChangeLog.linaro index baeb600bfa4..a5091bae872 100644 --- a/ChangeLog.linaro +++ b/ChangeLog.linaro @@ -1,5 +1,34 @@ 2013-02-26 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> + Merge from FSF arm/aarch64-4.7-branch r196014..r196225. + + Backport /work/sources/gcc-bzr/arm-aarch64-4.7 r196014: + [AArch64-4.7] Backport: Implement section anchors + + gcc/ + * common/config/aarch64/aarch64-common.c + (aarch_option_optimization_table): New. + (TARGET_OPTION_OPTIMIZATION_TABLE): Define. + * gcc/config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): New definition. + * gcc/config/aarch64/aarch64.c (TARGET_MIN_ANCHOR_OFFSET): Define. + (TARGET_MAX_ANCHOR_OFFSET): Likewise. + + Backport /work/sources/gcc-bzr/arm-aarch64-4.7 r196015: + [AArch64-4.7] Backport: Fix g++.dg/abi/aarch64_guard1.C + + gcc/testsuite/ + * g++.dg/abi/aarch64_guard1.C: Add -fno-section-anchors. + + Backport /work/sources/gcc-bzr/arm-aarch64-4.7 r196225: + Subject: [AArch64] Add missing copyright and build dependency for aarch64-simd-builtins.def + + gcc/ + * config/aarch64/aarch64-simd-builtins.def: Add copyright header. + * config/aarch64/t-aarch64 + (aarch64-builtins.o): Depend on aarch64-simd-builtins.def. + +2013-02-26 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org> + Merge from FSF GCC 4.7.3 (svn branches/gcc-4_7-branch 196272). 2013-02-18 Yvan Roux <yvan.roux@linaro.org> diff --git a/gcc/ChangeLog.aarch64 b/gcc/ChangeLog.aarch64 index be507d633b1..f2b93b156bd 100644 --- a/gcc/ChangeLog.aarch64 +++ b/gcc/ChangeLog.aarch64 @@ -1,3 +1,22 @@ +2013-02-22 James Greenhalgh <james.greenhalgh@arm.com> + + * config/aarch64/aarch64-simd-builtins.def: Add copyright header. + * config/aarch64/t-aarch64 + (aarch64-builtins.o): Depend on aarch64-simd-builtins.def. + +2013-02-13 James Greenhalgh <james.greenhalgh@arm.com> + + Backport from aarch64-branch. + 2012-09-06 James Greenhalgh <james.greenhalgh@arm.com> + Richard Earnshaw <rearnsha@arm.com> + + * common/config/aarch64/aarch64-common.c + (aarch_option_optimization_table): New. + (TARGET_OPTION_OPTIMIZATION_TABLE): Define. + * gcc/config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): New definition. + * gcc/config/aarch64/aarch64.c (TARGET_MIN_ANCHOR_OFFSET): Define. + (TARGET_MAX_ANCHOR_OFFSET): Likewise. + 2013-02-04 James Greenhalgh <james.greenhalgh@arm.com> Backport from mainline. diff --git a/gcc/common/config/aarch64/aarch64-common.c b/gcc/common/config/aarch64/aarch64-common.c index df724063d27..bd249e126ee 100644 --- a/gcc/common/config/aarch64/aarch64-common.c +++ b/gcc/common/config/aarch64/aarch64-common.c @@ -36,6 +36,17 @@ #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION aarch64_handle_option +#undef TARGET_OPTION_OPTIMIZATION_TABLE +#define TARGET_OPTION_OPTIMIZATION_TABLE aarch_option_optimization_table + +/* Set default optimization options. */ +static const struct default_options aarch_option_optimization_table[] = + { + /* Enable section anchors by default at -O1 or higher. */ + { OPT_LEVELS_1_PLUS, OPT_fsection_anchors, NULL, 1 }, + { OPT_LEVELS_NONE, 0, NULL, 0 } + }; + /* Implement TARGET_HANDLE_OPTION. This function handles the target specific options for CPU/target selection. diff --git a/gcc/config/aarch64/aarch64-elf.h b/gcc/config/aarch64/aarch64-elf.h index 6d8b933729a..1c021d0ec05 100644 --- a/gcc/config/aarch64/aarch64-elf.h +++ b/gcc/config/aarch64/aarch64-elf.h @@ -25,6 +25,15 @@ #define ASM_OUTPUT_LABELREF(FILE, NAME) \ aarch64_asm_output_labelref (FILE, NAME) +#define ASM_OUTPUT_DEF(FILE, NAME1, NAME2) \ + do \ + { \ + assemble_name (FILE, NAME1); \ + fputs (" = ", FILE); \ + assemble_name (FILE, NAME2); \ + fputc ('\n', FILE); \ + } while (0) + #define TEXT_SECTION_ASM_OP "\t.text" #define DATA_SECTION_ASM_OP "\t.data" #define BSS_SECTION_ASM_OP "\t.bss" diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def index af27079958a..a6a5e12c7a5 100644 --- a/gcc/config/aarch64/aarch64-simd-builtins.def +++ b/gcc/config/aarch64/aarch64-simd-builtins.def @@ -1,3 +1,22 @@ +/* Machine description for AArch64 architecture. + Copyright (C) 2012-2013 Free Software Foundation, Inc. + Contributed by ARM Ltd. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + <http://www.gnu.org/licenses/>. */ /* In the list below, the BUILTIN_<ITERATOR> macros should correspond to the iterator used to construct the instruction's diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 1e546ccd37b..ed5b6bbf270 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -7950,6 +7950,17 @@ aarch64_vectorize_vec_perm_const_ok (enum machine_mode vmode, #define TARGET_VECTORIZE_VEC_PERM_CONST_OK \ aarch64_vectorize_vec_perm_const_ok +/* Section anchor support. */ + +#undef TARGET_MIN_ANCHOR_OFFSET +#define TARGET_MIN_ANCHOR_OFFSET -256 + +/* Limit the maximum anchor offset to 4k-1, since that's the limit for a + byte offset; we can do much more for larger data types, but have no way + to determine the size of the access. We assume accesses are aligned. */ +#undef TARGET_MAX_ANCHOR_OFFSET +#define TARGET_MAX_ANCHOR_OFFSET 4095 + struct gcc_target targetm = TARGET_INITIALIZER; #include "gt-aarch64.h" diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64 index 715ad1da2c0..59e21386801 100644 --- a/gcc/config/aarch64/t-aarch64 +++ b/gcc/config/aarch64/t-aarch64 @@ -27,6 +27,7 @@ $(srcdir)/config/aarch64/aarch64-tune.md: $(srcdir)/config/aarch64/gentune.sh \ aarch64-builtins.o: $(srcdir)/config/aarch64/aarch64-builtins.c $(CONFIG_H) \ $(SYSTEM_H) coretypes.h $(TM_H) \ $(RTL_H) $(TREE_H) expr.h $(TM_P_H) $(RECOG_H) langhooks.h \ - $(DIAGNOSTIC_CORE_H) $(OPTABS_H) + $(DIAGNOSTIC_CORE_H) $(OPTABS_H) \ + $(srcdir)/config/aarch64/aarch64-simd-builtins.def $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/aarch64/aarch64-builtins.c diff --git a/gcc/testsuite/ChangeLog.aarch64 b/gcc/testsuite/ChangeLog.aarch64 index 63cb8af9c85..65358e15e28 100644 --- a/gcc/testsuite/ChangeLog.aarch64 +++ b/gcc/testsuite/ChangeLog.aarch64 @@ -1,3 +1,10 @@ +2013-02-13 James Greenhalgh <james.greenhalgh@arm.com> + + Backport from mainline. + 2012-11-06 Andrew Pinski <apinski@cavium.com> + + * g++.dg/abi/aarch64_guard1.C: Add -fno-section-anchors. + 2013-01-18 James Greenhalgh <james.greenhalgh@arm.com> Backport from mainline. diff --git a/gcc/testsuite/g++.dg/abi/aarch64_guard1.C b/gcc/testsuite/g++.dg/abi/aarch64_guard1.C index af82ad2ec36..ca1778b8730 100644 --- a/gcc/testsuite/g++.dg/abi/aarch64_guard1.C +++ b/gcc/testsuite/g++.dg/abi/aarch64_guard1.C @@ -2,7 +2,7 @@ // 8-byte doubleword and that only the least significant bit is used // for initialization guard variables. // { dg-do compile { target aarch64*-*-* } } -// { dg-options "-O -fdump-tree-original" } +// { dg-options "-O -fdump-tree-original -fno-section-anchors" } int bar(); |