Oleg Endo [Fri, 11 Oct 2019 11:12:28 +0000 (11:12 +0000)]
backport: re PR target/88630 (Incorrect float negating together with convertion to int on ST-40)
gcc/
Backport from mainline
2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
PR target/88630
* config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
* config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
also for TARGET_FPU_SH4_300.
(sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
TARGET_SH4_300.
* config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
(negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
(*negsf2_i): Split into ...
(negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
(abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
(**abssf2_i): Split into ...
(abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
(negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
(*negdf2_i): Split into ...
(negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
(absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
(**abssf2_i): Split into ...
(absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
Eric Botcazou [Fri, 11 Oct 2019 08:57:58 +0000 (08:57 +0000)]
decl.c (annotate_value): Really test the sign of the value when deciding to build a NEGATE_EXPR.
* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Really test the
sign of the value when deciding to build a NEGATE_EXPR.
<PLUS_EXPR>: Remove redundant line.
<BIT_AND_EXPR>: Do the negation here.
Oleg Endo [Tue, 1 Oct 2019 15:02:25 +0000 (15:02 +0000)]
backport: re PR c++/88562 (Incorrect pointer incrementing on SH4)
gcc/
2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
Backport from mainline
2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
PR target/88562
* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
sh_check_add_incdec_notes to preserve REG_INC notes when replacing
a memory access insn.
As part of the backport for pr82920, the following three testcases
that are only present on the 7 and 8 branch, also needed amendment.
2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
PR target/82920
* gcc.target/i386/indirect-thunk-bnd-1.c: Adjust scan-asms for Darwin,
do not use -fno-pic on Darwin.
* gcc.target/i386/indirect-thunk-bnd-2.c: Likewise.
* gcc.target/i386/ret-thunk-25.c: Skip for Darwin, which has a
different ABI for returning this category of complex value.
Darwin doesn't support mx32, and some tests were
failing because it was trying to do them. When we
disable this it turns out that quite a few tests
requiring mx32 support were not guarded.
gcc/
2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
PR target/82920
* config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
Darwin.
gcc/testsuite/
2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-14 Iain Sandoe <iain@sandoe.co.uk>
The various thunks output codes have inconsistent output
mechanisms. The patch factors out some common code that
writes out the jumps and uses the regular output scheme
that accounts for __USER_LABEL_PREFIX__.
The testsuite changes are largely mechanical compensation
for the revised output (and the fact that Darwin doesn't
use non-PIC by default).
gcc/
2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
PR target/82920
* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
(ix86_output_indirect_branch_via_reg): Use output mechanism
accounting for __USER_LABEL_PREFIX__.
(ix86_output_indirect_branch_via_push): Likewise.
(ix86_output_function_return): Likewise.
(ix86_output_indirect_function_return): Likewise.
gcc/testsuite/
2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
Dominique d'Humieres <dominiq@gcc.gnu.org>
[Darwin, opts processing] Fix missing RejectNegative etc.
This adds RejectNegative in a number of places it was needed,
reorders the opts into two groups (one general and one driver-only).
We also add a minimal description to each opt, and note some that
are now obsolete. The only functional change is to permit
-mtarget-linker= as an alias of -mtarget-linker.
This fixes the Darwin part of PR89327
2019-09-27 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
Eric Botcazou [Mon, 23 Sep 2019 08:10:03 +0000 (08:10 +0000)]
trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep on the underlying type of the node.
* gcc-interface/trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep
on the underlying type of the node.
(Call_to_gnu): Likewise with the type of the prefix.
Max Filippov [Mon, 23 Sep 2019 07:50:40 +0000 (07:50 +0000)]
xtensa: backport fix for PR target/90922
Stack pointer adjustment code in prologue missed a case of no
callee-saved registers and a stack frame size bigger than 128 bytes.
Handle that case.
This fixes the following gcc tests with call0 ABI:
gcc.c-torture/execute/stdarg-2.c
gcc.dg/torture/pr55882.c
gcc.dg/torture/pr57569.c
gcc/
2019-09-23 Max Filippov <jcmvbkbc@gmail.com>
Backport from mainline
2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
* config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
pointer adjustment for the case of no callee-saved registers and
stack frame bigger than 128 bytes.
This test fails for Darwin m32 because it's scanning for absence
of an instruction that's validly used in PIC code. Fixed, in this
case, by using non-PIC codegen.
2019-09-17 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
* g++.dg/pr71694.C: Use non-PIC codegen for Darwin m32.
For the test to succeed there needs to be some header that is to be found in
the 'expected' place i.e. <sysroot>/usr/include/. It's important that it is
not the name of a header for which fixincludes have been applied, since such
headers will be found in the gcc include-fixed dir and, in general, reference
additional headers. The dummy sysroot will prevent the additional headers
from being found, resulting in a failed test. The fix is to use a header name
that isn't expected to be present in a real sysroot.
2019-09-16 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-24 Iain Sandoe <iain@sandoe.co.uk>
* gcc.dg/cpp/isysroot-1.c: Use <example.h> as the test header.
* gcc.dg/cpp/usr/include/stdio.h: Rename...
* gcc.dg/cpp/usr/include/example.h: ... to this.
Thomas Koenig [Sun, 15 Sep 2019 22:35:40 +0000 (22:35 +0000)]
backport: re PR fortran/91557 (Bogus warning about unused dummy argument _formal_*)
2019-09-15 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk
PR fortran/91557
* trans-decl.c (generate_local_decl): Do not warn if the symbol
is artificial.
* trans-types.c (get_formal_from_actual_arglist): Set artificial
attribute on dummy arguments.
2019-09-15 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk
PR fortran/91557
* gfortran.dg/warn_unused_dummy_argument_5.f90: New test.
[objective-c/c++, testsuite] Workaround for PR90709.
Since we cannot parse the current NeXT headers, because of PR90709 and its
dependents, we have a large amount of testsuite noise for Darwin platforms.
In order to restore the usefulness of the testsuite, we are going add headers
without the modern syntax elements that trigger the bug, and use these for
test runs on newer Darwin.
The headers are imported from GNUStep, with some local modifications to make
sure that __BLOCKS__ is honoured as a gate for Apple-style blocks closures.
CF-CFString.h, F-NS*.h are proxy headers that use the installed CoreFoundation
or Foundation headers on systems <= Darwin12 and the GNUStep headers for newer.
Use the CF-CFString.h, F-NS*.h proxy headers where needed in the objective-c
testsuite. Make minor adjustments to tests as required, providing that those
do not alter the test intent.
2019-09-15 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-15 Iain Sandoe <iain@sandoe.co.uk>
PR objc/90709
* obj-c++.dg/proto-lossage-7.mm: Use proxy headers.
* obj-c++.dg/strings/const-cfstring-2.mm: Likewise.
* obj-c++.dg/strings/const-cfstring-5.mm: Likewise
* obj-c++.dg/strings/const-str-12.mm: Likewise.
* obj-c++.dg/syntax-error-1.mm: Likewise.
* obj-c++.dg/torture/strings/const-cfstring-1.mm: Likewise.
* obj-c++.dg/torture/strings/const-str-10.mm: Likewise.
* obj-c++.dg/torture/strings/const-str-11.mm: Likewise.
* obj-c++.dg/torture/strings/const-str-9.mm: Likewise.
* obj-c++.dg/cxx-ivars-3.mm: Skip on later Darwin, where the 10.4 API
in no longer supported, also on m64 where there's no meaning to it.
* obj-c++.dg/isa-field-1.mm: Suppress unwanted warning, add comment why.
* obj-c++.dg/objc-gc-3.mm: Skip for Darwin > 16, the API use is an error
there.
* obj-c++.dg/qual-types-1.mm: Prune a spurious l64 warning.
* obj-c++.dg/stubify-1.mm: Tidy up after better compiler warnings.
* obj-c++.dg/stubify-2.mm: Likewise.
* obj-c++.dg/try-catch-1.mm: Likewise.
* obj-c++.dg/try-catch-3.mm: Likewise.
Backport from mainline.
2019-06-15 Iain Sandoe <iain@sandoe.co.uk>
PR objc/90709
* objc.dg/encode-7-next-64bit.m: Use proxy headers.
* objc.dg/image-info.m: Likewise.
* objc.dg/method-6.m: Likewise.
* objc.dg/no-extra-load.m: Likewise.
* objc.dg/objc-foreach-4.m: Likewise.
* objc.dg/objc-foreach-5.m: Likewise.
* objc.dg/proto-lossage-7.m: Likewise.
* objc.dg/strings/const-cfstring-2.m: Likewise.
* objc.dg/strings/const-cfstring-5.m: Likewise.
* objc.dg/strings/const-str-12b.m: Likewise.
* objc.dg/symtab-1.m: Likewise.
* objc.dg/torture/strings/const-cfstring-1.m: Likewise.
* objc.dg/torture/strings/const-str-10.m: Likewise.
* objc.dg/torture/strings/const-str-11.m: Likewise.
* objc.dg/torture/strings/const-str-9.m: Likewise.
* objc.dg/zero-link-1.m: Likewise.
* objc.dg/zero-link-2.m: Likewise.
* objc.dg/zero-link-3.m: Likewise.
* objc.dg/isa-field-1.m: Suppress unwanted warning, add comment why.
* objc.dg/headers.m: XFAIL for Darwin14-19.
* objc.dg/objc-gc-4.m: Skip for Darwin > 16, the API use is an error
there.
Backport from mainline.
2019-06-15 Iain Sandoe <iain@sandoe.co.uk>
[Darwin, testsuite] Adjust two tests that fail on newer OS versions.
Newer OS versions (10.14+) do not provide some of the CRTs that are used
for older ones (e.g. 10.5), and thus link tests that specify targeting
such a revision fail. We retain the testing of the correct defined OS
version number but switch to compile-only testing for these two tests.
2019-09-13 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
* gcc.dg/darwin-minversion-1.c: Use compile rather than link/run.
[Darwin, X86, testsuite] Adjust test for Darwin's align syntax.
Darwin has a .align taking a power of 2 by default, so that some
tests expecting a byte count are failing, fixed by adjusting the
scan-asms. We also avoid the ABI-mandated indirection for common
and PIC extras for m32 (by adjusting compile options).
2019-09-12 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-27 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr22076.c: Adjust options to
match codegen expected by the scan-asms.
Eric Botcazou [Wed, 11 Sep 2019 10:44:06 +0000 (10:44 +0000)]
re PR rtl-optimization/89795 (wrong code with -O2 -fno-dce -fno-forward-propagate -fno-sched-pressure)
PR rtl-optimization/89795
* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
[Darwin, X86, testsuite] Fixes for three PIE tests.
Darwin requires PIC code in order to support PIE; amend the test scan-asms
to match this.
2019-09-10 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-26 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr39013-1.c: Adjust scan-asms for PIE to
account for PIC code on Darwin.
* gcc.target/i386/pr39013-2.c: Likewise.
* gcc.target/i386/pr64317.c: Likewise.
[Darwin, testsuite] Address PR91087 - XFAIL parts of pr16855.C.
The testcase is failing to instrument part of the source because of a bug
in the ordering of static DTORs. It seems unlikely that this is generically
fixable in the toolchain (and given that it's likely to be a dynamic loader
change would not be expected to be applied retrospectively to OS versions
that are out of support). To avoid the testsuite noise, xfail the count lines
that don't match (we can adjust the xfails as/when the upstream bug is fixed).
dejagnu xfails do not seem to work when embedded in a line like:
~Test (void) { .... /* count(1) { xfail ... } */ }
the closing brace seems to confuse the parser. The solution is to exapnd the
text onto three lines.
2019-09-09 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-07-25 Iain Sandoe <iain@sandoe.co.uk>
PR gcov-profile/91087
* g++.dg/gcov/pr16855.C: Xfail the count lines for the DTORs and the
"final" line for the failure summaries. Adjust source layout so that
dejagnu xfail expressions work.
Some of the i386.exp tests fail on Darwin because their scan-asm
match strings are too general. In some cases the strings also match
instances in the .file and size directives or in comment output. This
makes the match strings more specific.
2019-09-09 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-24 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr66819-3.c: Specifically, check that there is no
call to "bar".
* gcc.target/i386/pr66819-4.c: Likewise.
[Darwin, X86, testsuite] Disable tests that cannot pass.
Some of the i386.exp target tests cannot pass on Darwin because
either the port doesn't support a feature, or the ABI demands
sufficiently different codegen that matching the output with
scan-asms would require a different test. Skip these.
2019-09-09 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-24 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr70738-7.c: Skip for Darwin.
* gcc.target/i386/pr24414.c: Likewise.
Jakub Jelinek [Mon, 9 Sep 2019 11:43:08 +0000 (13:43 +0200)]
re PR target/91704 ([X86] Codegen for _mm256_cmpgt_epi8 is affected by -funsigned-char)
PR target/91704
* config/i386/avxintrin.h (__v32qs): New typedef.
* config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
instead of __v32qi.
We don't have support for -mcmodel={medium, large, kernel} so don't
expect tests for those things to work.
For now mark them as xfail where possible and skip where that isn't.
These changes will be logged onto the PR and therefore can be backed
out when the facility is implemented.
2019-09-08 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-01 Iain Sandoe <iain@sandoe.co.uk>
PR target/90698
* gcc.target/i386/pr49866.c: XFAIL for Darwin.
* gcc.target/i386/pr63538.c: Likewise.
* gcc.target/i386/pr61599-1.c: Skip for Darwin.
The c-c++-common tests fail (or XPASS depending on which) on Darwin
because if doesn't emit a.ident marker. For X86 Darwin, this is a
trivial oversight; the assembler supports the directive. We can
therefore use the default target hook there.
2019-09-08 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2018-12-23 Iain Sandoe <iain@sandoe.co.uk>
Gnatlink has code that checks for duplicate '-shared-libgcc’ switches (but not
duplicate ‘static-libgcc’) and also pushes ’static-libgcc' onto the link line for
targets that default to static linking, provided '-shared-libgcc' is not present.
For targets that should use a shared libgcc we need the same process to be
applied (in inverse), in the event that they do not default to providing the
shared flag implicitly.
So this adds the complementary set of tests for the shared case and pushes
the shared flag as needed. As a minor tidy-up there’s no need push duplicates
of the libgcc switch onto the link line when one has already been seen (given by
the user).
The patch does not alter any of the platform defaults for static/shared libgcc,
but it ensures that the intent of the link is explicit.
2019-09-06 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-30 Iain Sandoe <iain@sandoe.co.uk>
* gnatlink.adb (Link_Step): Push -shared-libgcc explicitly, when it
is the target default (unless overidden by the static flag).
When the user has put an instance of shared/static-libgcc do not push
a duplicate of this.
Darwin doesn't emit a .file directive by default
and one of the scan-asm hits for ELF targets comes from
this directive. Adjust for Darwin and explain.
2019-09-06 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-20 Iain Sandoe <iain@sandoe.co.uk>
PR testsuite/58321
* gcc.target/i386/memcpy-strategy-3.c: Adjust count for Darwin and
add a comment as to the reason for the difference.
* gcc.target/i386/memset-strategy-1.c: Likewise.
[Darwin, X86] Backport fix for tests using .p2align.
This fixes a number of testcases that expect use of .p2align, which
was somehow omitted from the darwin X86 port (but is available in all
assemblers used with it).
2019-09-06 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
[Darwin, PPC, testsuite] Fix pr80125 testcase for Darwin.
Darwin (unlike most of the members of the PowerPC port family)
defaults to signed chars, so the test was failing to compile with
a "mismatched parameters" error.
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/powerpc/pr80125.c (foo): Use an unsigned char
vector explicitly for the vec_perm.
[Darwin, PPC, testsuite] Fix pr71785 testcase for Darwin.
Firstly, we adjust the test conditions to use non-PIC code for Darwin.
Secondly, we have to account for out-of-line GPR restores which gives
a false positive on one of the scan-assembler-not. Lastly, we make the
test a bit more specific for Darwin - that it looks for absence of
branches to local labels.
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/powerpc/pr71785.c: For Darwin, make test non-PIC,
expect the out-of-line GPR restore, and test specifically for
absence of branches to local labels.
This test needs the cpu and machine asserts to be implemented
which hadn't been done for PPC Darwin. We also need to emit
__PPC__ for 32/64b and __PPC64__, __powerpc64__ (64bit) as per
the other members of the PowerPC port.
2019-08-27 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
for cpu and machine. Factor 64/32b builtins.
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
for cpu and machine. Factor 64/32b builtins.
Backport from mainline
2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
When we are parsing a source file, the very first token might
be a PRAGMA_GCC_PCH_PREPROCESS. This indicates that we are going
read in a PCH file (named as the value of the pragma). If we don't
see this pragma, then we know that it's OK to release any resources
that the host might have set aside for the PCH file.
There is a thinko in the current implementation, in that the decision
to release resources is happening unconditionally right after the first
token is extracted but before it's been checked or acted upon.
This leads to the pch bug on Darwin, because we actually do release
resources - which are subsequently (reasonably) assumed to be available
when reading a PCH file. We then get random crashes or hangs depending
on the interaction between unmmap and malloc.
The bug is present everywhere but doesn't show on (say) Linux, since
the release of PCH resources is a NOP there.
This effects all the c-family front ends, because they all use
c_lex_with_flags () to implement this.
The solution is to check for the PRAGMA_GCC_PCH_PREPROCESS and only call
c_common_no_more_pch () when that is not the first token.
A secondary effect of the collection is that the name of the PCH file
can be collected during the ggc_pch_read() reset of state. Therefore
we should issue any diagnostic that might name the file before the
collections are triggered.
gcc/
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
PR pch/61250
* ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
and issue any diagnostics needed before collecting the pre-PCH
state.
gcc/c-family/
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
PR pch/61250
* c-parser.c (c_parse_file): Call c_common_no_more_pch ()
after determining that the first token is not
PRAGMA_GCC_PCH_PREPROCESS.
gcc/cp/
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backported from mainline
2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
PR pch/61250
* parser.c (cp_parser_initial_pragma): Call c_common_no_more_pch ()
after determining that the first token is not
PRAGMA_GCC_PCH_PREPROCESS.
This is about 32/64b host and multilib support across the range of Darwin
systems.
Prior to Darwin8 (OS X 10.4), the toolchains support only PowerPC and only 32b.
On Darwin8 it is possible to target a 64b multilib, but with support limited
to a few of the main libraries on the system (not a recommended configuration).
From Darwin9 to Darwin17 (OSX 10.5 to 10.13) it is possible to have either
32 or 64b hosted toolchains, with support for a 64 or 32b multilib respectively.
On Darwin9 the kernel is 32b, but with support for 64b executables, so it's
conventional to build a 32b host toolchain supporting a 64b multilib. However
this is not enforced (merely a convention).
There is also some platform hardware supporting Darwin10/11 which is only 32b
and for which the same situation applies. However, from Darwin10 to Darwin17,
the majority of platform hardware supports a 64b kernel and it's conventional
to build a 64b host toolchain with support for a 32b multilib.
On/from Darwin18 (OS X 10.14), the development headers (in the SDK) no longer
expose the interfaces for the 32b multilib support (although sufficient runtime
support remains installed that the testsuite can be run for a 32b multilib).
The PR is raised against this latter situation since the absence of exposed
interfaces causes a 'default' bootstrap fail regardless of the availability of
the runtimes. Given the number of permutations, I felt it warranted a general
solution, especially since the current scheme of target headers and t-make
fragments has become somewhat messy.
The changes here enforce the single 32b PowerPC multilib for Darwin < 8 and the
single X86 64b multilib for Darwin >= 18. This means that there is no longer
any need to configure Darwin18+ '--disable-multilib', but also that if you want
to use the ability to continue to test the compiler's 32b multilib there, you
need to make a configuration targeting an earlier OS version (and using the
SDK from that).
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
PR bootstrap/87030
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
PR bootstrap/87030
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
* config/i386/darwin32-biarch.h .. to here.
* config/i386/darwin64-biarch.h: Adjust comments.
* config/rs6000/darwin32-biarch.h: Likewise.
* config/rs6000/darwin64-biarch.h: Likewise.
* config.gcc: Missed commit from r273746
(*-*-darwin*): Don't include CPU t-darwin here.
(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
an error message if i686-darwin configuration is attempted for
Darwin >= 18.
Backport from mainline
2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
PR bootstrap/87030
* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
an error message if i686-darwin configuration is attempted for
Darwin >= 18.
(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
(powerpc-*-darwin*): Use biarch files where needed.
(powerpc64-*-darwin*): Likewise.
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
arch case.
* config/i386/darwin32-biarch.h: New.
* config/i386/darwin64.h: Rename.
* gcc/config/i386/darwin64-biarch.h: To this.
* config/i386/t-darwin: Rename.
* gcc/config/i386/t-darwin32-biarch: To this.
* config/i386/t-darwin64: Rename.
* gcc/config/i386/t-darwin64-biarch: To this.
* config/rs6000/darwin32-biarch.h: New.
* config/rs6000/darwin64.h: Rename.
* config/rs6000/darwin64-biarch.h: To this.
(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
arch case.
* config/rs6000/t-darwin8: Rename.
* config/rs6000/t-darwin32-biarch: To this.
* config/rs6000/t-darwin64 Rename.
* config/rs6000/t-darwin64-biarch: To this.
[ObjC] Recognise 'instancetype' as equivalent to 'id'.
This is primarily about fixing a number of testsuite fails, it
implements the parsing of 'instancetype' but doesn't alter the
code gen (relative to using id in the same position). It is
part of the work-arounds for PR90709.
gcc/objc/
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* objc/objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
(objc_global_trees): Add instance type and name.
(INSTANCE_TYPEDEF_NAME): New.
* objc/objc-act.c (synth_module_prologue): Build decls for
objc_instancetype_type and objc_instancetype_name.
gcc/testsuite/
2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline.
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
Richard Biener [Thu, 5 Sep 2019 12:11:52 +0000 (12:11 +0000)]
backport: [multiple changes]
2019-09-05 Richard Biener <rguenther@suse.de>
* lto-streamer.h (LTO_minor_version): Bump.
Backport from mainline
2019-05-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/90328
* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
* tree-data-ref.c (dr_may_alias_p): Check whether the clique
is valid in the loop nest before using it.
(initialize_data_dependence_relation): Adjust.
* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
loop as loop-nest to dr_may_alias_p.
PR tree-optimization/87609
* tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
2019-02-22 Richard Biener <rguenther@suse.de>
PR middle-end/87609
* cfghooks.h (dependence_hash): New typedef.
(struct copy_bb_data): New type.
(cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
(duplicate_block): Likewise.
* cfghooks.c (duplicate_block): Pass down copy_bb_data.
(copy_bbs): Create and pass down copy_bb_data.
* cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
(rtl_duplicate_bb): Likewise.
* tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
remap dependence info.
* gcc.dg/torture/restrict-7.c: New testcase.
2019-02-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/87609
* tree-core.h (tree_base): Document special clique values.
* tree-inline.c (remap_dependence_clique): Do not use the
special clique value of one.
(maybe_set_dependence_info): Use clique one.
(clear_dependence_clique): New callback.
(compute_dependence_clique): Clear clique one from all refs
before assigning it (again).