Skip to content

Conversation

@leviathanch
Copy link

Without those includes gcc will refuse to build with any isl with a
version of 0.20 or higher.

redi and others added 30 commits September 2, 2019 10:34
	* doc/html/*: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275305 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275326 138bc75d-0d04-0410-961f-82ee72b054a4
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-03  Iain Sandoe  <[email protected]>

	Backport from mainline
	2019-08-23  Iain Sandoe  <[email protected]>

	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-03  Iain Sandoe  <[email protected]>

	Backport from mainline
	2019-08-23  Iain Sandoe  <[email protected]>

	PR pch/61250
	* c-lex.c (c_lex_with_flags):  Don't call
	c_common_no_more_pch () from here.

gcc/c/

2019-09-03  Iain Sandoe  <[email protected]>

	Backport from mainline.
	2019-08-23  Iain Sandoe  <[email protected]>

	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-03  Iain Sandoe  <[email protected]>

	Backported from mainline
	2019-08-23  Iain Sandoe  <[email protected]>

	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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275346 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275360 138bc75d-0d04-0410-961f-82ee72b054a4
PR81800 is about the lrint inline giving spurious FE_INEXACT exceptions.
The previous change for PR81800 didn't fix this: when lrint is disabled
in the backend, the midend will simply use llrint.  This actually makes
things worse since llrint now also ignores FE_INVALID exceptions!
The fix is to disable lrint/llrint on double if the size of a long is
smaller (ie. ilp32).

    gcc/
	PR target/81800
	* gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
	operand is larger than a long int.

    testsuite/
	PR target/81800
	* gcc.target/aarch64/no-inline-lrint_3.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275374 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275393 138bc75d-0d04-0410-961f-82ee72b054a4
	PR fortran/91660
	* decl.c (gfc_match_decl_type_spec): Improve and restore error
	message for malformed types-spec.

2019-09-05  Steven G. Kargl  <[email protected]>

	PR fortran/91660
	* gfortran.dg/pdt_4.f03: Fix invalid code.
	* gfortran.dg/pr91660_1.f90: New test.
	* gfortran.dg/pr91660_2.f90: Ditto.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275432 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275447 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275480 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275491 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275499 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/avxintrin.h (__v32qs): New typedef.
	* config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
	instead of __v32qi.

	* gcc.target/i386/pr91704.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275511 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
	instead of __v16qs.

	* gcc.target/i386/pr87853.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275512 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275553 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275620 138bc75d-0d04-0410-961f-82ee72b054a4
	* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
	inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275637 138bc75d-0d04-0410-961f-82ee72b054a4
This was reported in https://bugzilla.redhat.com/show_bug.cgi?id=1749578

	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker.__call__):
	Fix syntax error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275646 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275678 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275693 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275707 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275721 138bc75d-0d04-0410-961f-82ee72b054a4
	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  <[email protected]>

	Backport from trunk
	PR fortran/91557
	* gfortran.dg/warn_unused_dummy_argument_5.f90: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275734 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275739 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275761 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275831 138bc75d-0d04-0410-961f-82ee72b054a4
    Backport from trunk
    PR fortran/91550
    * frontend-passes.c (do_subscript): If step equals
    zero, a previuos error has been reported; do nothing
    in this case.
    * resolve.c (gfc_resolve_iterator): Move error checking
    after type conversion.

2019-09-18  Thomas Koenig  <[email protected]>

    Backport from trunk
    PR fortran/91550
    * gfortran.dg/do_subscript_6.f90: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275892 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275922 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275984 138bc75d-0d04-0410-961f-82ee72b054a4
This patch implements a small improvement for the heuristic in lra
which decides when it has to activate the simpler register allocation
algorithm.

gcc/ChangeLog:

2019-09-20  Andreas Krebbel  <[email protected]>

	Backport from mainline
	2019-06-06  Andreas Krebbel  <[email protected]>

	PR rtl-optimization/88751
	* ira.c (ira): Use the number of the actually referenced registers
	when calculating the threshold.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@275991 138bc75d-0d04-0410-961f-82ee72b054a4
The tests fail because Darwin indirects common accesses which causes different
codegen and the mismatch in output. Placing the vars in regular .data section
fixes that.

gcc/testsuite/

2019-09-20  Iain Sandoe  <[email protected]>

	Backport from mainline.
	2019-05-11  Iain Sandoe  <[email protected]>

	PR testsuite/81058
	* gcc.target/i386/avx512bw-vpmovswb-1.c: Use regular data section
	for variables on Darwin, rather than common.
	* gcc.target/i386/avx512bw-vpmovuswb-1.c: Likewise.
	* gcc.target/i386/avx512bw-vpmovwb-1.c: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@276003 138bc75d-0d04-0410-961f-82ee72b054a4
gccadmin and others added 26 commits December 14, 2019 00:16
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279389 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279400 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279406 138bc75d-0d04-0410-961f-82ee72b054a4
We also need unlowered_expr_type when considering associated types for ADL.

	* name-lookup.c: Use unlowered_expr_type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279446 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279448 138bc75d-0d04-0410-961f-82ee72b054a4
The backend emits 16 bit memory loads for single element character
vector.  As a result the character will not be right justified in the
GPR.

gcc/ChangeLog:

2019-12-17  Andreas Krebbel  <[email protected]>

	Backport from mainline
	2019-12-16  Andreas Krebbel  <[email protected]>

	PR target/92950
	* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
	and lhrl with llc.

gcc/testsuite/ChangeLog:

2019-12-17  Andreas Krebbel  <[email protected]>

	Backport from mainline
	2019-12-16  Andreas Krebbel  <[email protected]>

	PR target/92950
	* gcc.target/s390/vector/pr92950.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279454 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279481 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279558 138bc75d-0d04-0410-961f-82ee72b054a4
	from SVN trunk r279309, r278387, r278389, r278478.

	PR target/92545
	* config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field.
	* config/avr/avr-devices.c (avr_mcu_types): Adjust initializers.
	* config/avr/avr-mcus.def (AVR_MCU): Add respective field.
	* config/avr/gen-avr-mmcu-specs.c (print_mcu)
	<*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code
	for spec definitions.
	* config/avr/gen-avr-mmcu-texi.c: Rewrite.
	* doc/avr-mmcu.texi: Regenerate.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279565 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279617 138bc75d-0d04-0410-961f-82ee72b054a4
2019-12-20  Roman Zhuykov  <[email protected]>

modulo-sched: fix branch rescheduling issue (PR92591)

	PR rtl-optimization/92591
	* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
	for history > 0 case.
	* params.def (sms-dfa-history): Limit to 16.

gcc/testsuite:

	PR rtl-optimization/92591
	* gcc.dg/pr92951-1.c: New test.
	* gcc.dg/pr92951-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279643 138bc75d-0d04-0410-961f-82ee72b054a4
2019-12-20  Roman Zhuykov  <[email protected]>

	* gcc.dg/pr92951-1.c: Rename to ...
	* gcc.dg/pr92591-1.c: ... this.
	* gcc.dg/pr92951-2.c: Rename to ...
	* gcc.dg/pr92591-2.c: ... this.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279647 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279688 138bc75d-0d04-0410-961f-82ee72b054a4
Without those includes gcc will refuse to build with any isl with a
version of 0.20 or higher.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279703 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279713 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279721 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279728 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279733 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279737 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279744 138bc75d-0d04-0410-961f-82ee72b054a4
This fixes a build fail for PPC on Darwin10.

On Darwin10 it's possible to make a 32b PPC build using the
'Rosetta' emulator. However, these builds need to make use of
Darwin9 crts (for exes, dylibs and bundles). This adds the
change to cater for bundles.

gcc/ChangeLog:

2019-12-28  Iain Sandoe  <[email protected]>

	Backport from mainline.
	2019-12-14 Iain Sandoe <[email protected]>

	* config/darwin.h (DARWIN_EXTRA_SPECS): Add new
	bundle spec. (DARWIN_BUNDLE1_SPEC): New.
	(STARTFILE_SPEC): Use darwin bundle spec.
	* config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
	(DARWIN_DYLIB1_SPEC): Delete duplicate.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279748 138bc75d-0d04-0410-961f-82ee72b054a4
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@279749 138bc75d-0d04-0410-961f-82ee72b054a4
@gfrix gfrix self-assigned this Dec 31, 2019
@gfrix gfrix self-requested a review December 31, 2019 01:56
@gfrix
Copy link
Member

gfrix commented Jan 2, 2020

Thanks for taking an interest in this project, we really appreciate any engagement.

We've been planning to merge in upstream changes for a while now. Seeing as everything necessary to fix the problem exists in the upstream, we will probably pass on merging this PR, since the problem will be fixed when we officially pull in the upstream changes.

I see you're interested in seeing that happen sooner rather than later, so we will move up our plans to do that and try to have something in the main branch in the next couple weeks or so. I'll leave this open until we do that, as a reminder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants